V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yezhifei241
V2EX  ›  程序员

一个计算机小白对于职业规划与必备技能的咨询

  •  
  •   yezhifei241 · 2020-08-31 10:24:23 +08:00 · 2680 次点击
    这是一个创建于 1579 天前的主题,其中的信息可能已经有所发展或是发生改变。

    题主是个普通一本大学学历的小白,由于专业不对口但是又想当程序员,于是自学起了相关内容,目前主要水平仅仅停留在大学时期的 C 语言基础,必修课的 c#以及自学的 java 基础,本着先就业再择业现在是在一个小公司做相关的 c#开发,主要以出差做项目为主,毕竟也不属于科班出身很除此之外再无别的长处,年轻嘛,肯定不甘安于现状,所以想请教一下大佬们,想要走 java 相关方向应该是怎样的职业规划,最重要的是当下我应该学习哪些必备的技能。救救孩子吧 T-T 。

    18 条回复    2020-09-04 20:07:06 +08:00
    shizepeng
        1
    shizepeng  
       2020-08-31 11:11:25 +08:00
    Java 只是一门技术语言,在网上找个系统点的教程基本上可以入门级需求。

    从初级 Java 程序员到中级,无非是技术应用的成熟度和业务的熟悉度。
    中级到高级倾向于对技术的整合能力,对系统的把控能力,对架构的设计能力。
    至于架构师偏向于理论研究,根据需求能建立完整的技术理论体系并加以实践。

    其实你没必要死盯着 Java,可以看看 py 语言,看看 go 语言都不会比 Java 差。Java 之所以庞大,因为它是最先满足大规模工业化生产的条件的,但是随着工业化进程的加速,有些地方已经不再适合于当下。所以你先了解了解再来作决定。
    yezhifei241
        2
    yezhifei241  
    OP
       2020-08-31 14:21:19 +08:00
    其他近些年流行起来的语言有稍微了解一下背景,主要是 java 目前还是主流语言之一也没那么快被替代。再不确定其他语言是不是有足够的活力得情况下还是保守的想先了解 java 。也看了不少人家的帖子,都说从 C 语言开始看,从数据结构,算法开始学,这些可能对于不管那种语言编程都会有用,这里也想咨询下是不是真的有这个必要,因为我觉得这些更多的应该是会涉及到程序设计与优化过程中才会去更仔细考虑得东西。我是更倾向于是不是应该提升自己对于相关技术,业务得能力,回头再去学习这个方面的知识。
    假定我确定要走 java 这条路,您能给点相关建议吗。(目前看网上一些开源程序我可能看的懂片段得代码,但是整个一套程序下来就会看得很迷茫)
    yezhifei241
        3
    yezhifei241  
    OP
       2020-08-31 14:21:46 +08:00
    DeWhite
        4
    DeWhite  
       2020-08-31 14:33:40 +08:00
    因为现在很多东西,我们都是不去了解底层具体是怎么使用的。
    其实大家都是在实现业务逻辑,如果自己并不是科班出身的话,要去做开发则是要全面一些。
    兼顾前后两个方向,我自己也是逆向转开发的。从我对应用语言的角度上来看,其实语言更挑剔城市。
    新兴起的独角兽,很多为了省钱方便都使用 Go 做微服务,其实就以我目前来看。
    java 作为老一代的基建很多问题都可以直接解决,Go 的很多问题其实在前期开发也有解决方案。
    到稍微成熟一点就需要自我打磨。
    Jooooooooo
        5
    Jooooooooo  
       2020-08-31 15:34:53 +08:00
    你翻一下大学计算机系学的课就知道要学啥了

    一般来说, 除去高数等之类的通用数学课, 计算机三大项是必不可少的

    操作系统, 网络技术, 数据结构
    brendan
        6
    brendan  
       2020-08-31 15:37:18 +08:00
    其实我现在的状况跟你差不多,现在也挺迷茫
    kop1989
        7
    kop1989  
       2020-08-31 15:43:54 +08:00
    不知道工作年限如何,如果是刚刚参加工作的话,不妨先做好手头的工作。
    主要就是巩固好基础课:数据结构、计算机网络,然后巩固好面向对象方面的知识。
    然后如果真的想做 java 方面的工作,可以先靠基础和算法来面试 java 后端的初级岗位,然后再在工作中学习。

    不过说真的,没必要过分纠结于语言。工作年限上来了什么语言都不是阻碍。
    yezhifei241
        8
    yezhifei241  
    OP
       2020-08-31 15:58:57 +08:00
    @DeWhite 肯定是希望自己能够更全面,但是目前还是能力有限,还得是干着大家都干的活一样的单纯去实现业务逻辑完成工作。

    @Jooooooooo 有了解过,原本有打算跨专业考研,后来因为个人一些原因耽误了就放弃了。真的切实有必要的话还是会从这些先看起得

    @kop1989 刚工作了一年,就目前得工作内容也算是轻车熟路了,主要也是需要出差,有打算要换工作,换工作就需要充充电,与其说充电吧,对于我来说可能相当于删号重建;对于语言没有特别得纠结,有了足够的开发经验的话,其他语言应该不会很难学,选 java 主要也是一个好就业,毕竟首先还是要生活;现在给自己定的目标差不多就是,巩固 java 基础知识的同时去了解数据结构与算法相关,后续再补充操作系统和计算机网络相关知识。( ps:你是利物浦球迷吗)

    @brendan 总是要经历这样一段过程的,虽然痛苦。还是尽力找方向走出来吧。
    wysnylc
        9
    wysnylc  
       2020-08-31 16:03:22 +08:00
    @shizepeng #1
    "Java 之所以庞大,因为它是最先满足大规模工业化生产的条件的,但是随着工业化进程的加速,有些地方已经不再适合于当下。所以你先了解了解再来作决定。"能举个不适合当下的例子吗?
    RedBeanIce
        10
    RedBeanIce  
       2020-08-31 16:10:16 +08:00
    可以 QQ 聊一下,NjUxMjY3Nzk3
    fasionchan
        11
    fasionchan  
       2020-08-31 16:26:34 +08:00
    so easy. 看看计算机专业都有哪些基础课,一门门啃下来就是一个合格的程序猿了。别老是整什么新编程语言,语言只是冰川一角。
    youyouyou0123456
        12
    youyouyou0123456  
       2020-08-31 16:46:43 +08:00
    java 现在一般都是用来做业务,而基础设施则越来越多用 go 。不过你既然会 c#,c#写业务跟 java 写业务能有啥区别?你不如好好把 c#写好,把计算机基础打牢,之后到了好一点的公司,想走哪个方向再走那个方向。如果就喜欢 java,不如报个培训班,之后包装一下简历出去找,如果自己慢慢学,估计回头还是找个小公司。
    slert
        13
    slert  
       2020-08-31 17:04:21 +08:00
    建议看看左耳朵耗子到程序员练级攻略
    yezhifei241
        14
    yezhifei241  
    OP
       2020-08-31 17:19:23 +08:00
    @RedBeanIce 谢邀

    @fasionchan 现阶段不纠结语言了,还是基础还是太差,打算先把基础打好,真要是选可能还是选 java

    @youyouyou0123456 你说的都很现实,c#在写代码方面和 java 确实区别不大,只是就业方面 Java 可能更有优势一点;当时培训班没报,就是买了套网课,也是为了先就业也没想过包装简历,现在也是为了避免你说的回头还是找小公司,我需要增强跳槽时候的竞争力,打算做好手头的工作同时把一些通用的基础的知识补齐,补充了解一些 java 开源项目。
    fasionchan
        15
    fasionchan  
       2020-08-31 17:37:47 +08:00
    @yezhifei241 java 是个不错的选择,优先把数据结构、算法设计、操作系统、网络、数据库这些基础课补一补吧
    winglight2016
        16
    winglight2016  
       2020-08-31 17:43:11 +08:00
    编程语言什么都可以,熟练掌握一门主流语言基础上可以进一步学习网络、服务器、数据库(后台开发),或者 H5/css/js (前台开发),再或者研究一下 APP 开发。

    总之,编程思想挺重要的,但是似乎对编程入门者很难,需要深入了解一门语言之后才能体会到,所以也许等到入职之后再了解也来得及。
    bxqqq
        17
    bxqqq  
       2020-08-31 21:30:41 +08:00
    给你提供另一个思路,做后端就 java,前端就 js,不知道学什么,就去面试,你面个 3 5 次就知道需要学什么了。就是这样,让你从头学操作系统,计算机网络啥的。不如多看看面经,然后手头自己的项目争取做好,over 。
    shizepeng
        18
    shizepeng  
       2020-09-04 20:07:05 +08:00
    @yezhifei241 C#社区太小了,而且 C#有先天的局限性,不建议继续努力。

    如果你确实作好了往 Java 方向走,那么请继续往下看,

    初级 Java:学好 Java 语言的基础,基础,基础,还是 TMD 基础,这对于你快速就业有很大帮助,初级 Java 程序员,面试官问的问题基本上是基础,至于做过什么项目不重要。其次,学好 SSH 框架、ibatis 框架等 Java 的几个基础框架和 Servlet 、数据库连接等基础技术,学好 SQL 语言,学习下前端技术(可以不用精通,但是要学会基本运用)。总得来说,初级 Java 程序员以基础为主,大概沉淀 1-2 年时间。

    中级 Java:熟悉常用的 Java 技术以及相关框架,熟悉业务系统,这两者都要熟悉,因为后面可以决定你的职业规划,如果你对技术有兴趣可以往高级开发或者架构师方向走,如果你对业务感兴趣,后面可以走项目经理或者产品经理。这个是职业成长阶段,很重要,沉淀个 2-3 年,作好被产品经理蹂虐的心理准备吧。

    如果你往技术路线走,那么请往这里看。
    高级 Java:熟悉应用 Java 技术的高级应用(像多线程,高并发,消息队列,通信技术等等),会设计技术架构,会设计应用系统,可以带领技术团队(次要),这个时候,你可以理直气壮地从技术层面叼产品经理,不用客气,往死里面叼,报你的以前被他蹂虐之仇,反正他不懂技术。总之,你得精通 Java 技术和怼死产品经理,沉淀个 3-5 年吧。

    如果你往业务层面走,往这里看。
    做个项目经理其实也挺好的,精通业务,能够带领团队做项目,那么开启了你的第二春,当个小领导,带着一票程序员默默耕耘,拓展你的人际关系,作好你的管理,带好你的团队,为自己后期创业打下基础(假如你要创业)。

    ======================================假装是分割线

    关于架构师
    架构师在技术层面上跟高级开发相差不了多少,唯一的差异就在于技术思想,说通俗点是理论建设,有的高级开发困在这里面一辈子成不了架构师,有的高级开发一点就通,直达九天。
    做到架构师的水准,我觉得才是打通任督二脉,开始不关注技术实现了,理论大于实践,你能设计多优秀的架构,能解决多大的技术问题,取决于你的认知、你的阅历、你的经验、你的机遇等等,集大成者。
    理论建设,才是走向架构师的核心,如果你能走到架构师的位子,那么恭喜你,你可以讨论国家政策了,你可以制定公司政策了,可以一本正经地装 X 了,你可以说一些谁都听不懂的话了,已经走上了人生巅峰,作好迎娶白富美的准备吧。

    你说还有 CTO ?
    同为大佬,谁也不会比谁差,就看谁的运气好,谁的情商高,谁的底子厚,谁的背景好,仅此而已。

    祝你好运!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:09 · PVG 16:09 · LAX 00:09 · JFK 03:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.