疑问如题,欢迎讨论。后面是自己的一些梳理。

还有两年毕业,准备拿出一年时间去钻研一些技术,为明年的秋招做准备。昨天做的一个梳理也被几个前辈指出问题,如:

  1. 无目的或目的不明确,不能说出“学这个技术要去解决什么问题”。 自我分析是对业界不了解,不知道会遇到什么问题。但又因为导师不放实习,难以去企业中切身学习。 当然最重要的是,我不知道自己要去解决什么问题。
  2. 技术方向不是职业规划,学什么技术不能说是职业规划。 这一点也是我所忽略的,后面被建议多去开源项目PR,就具体的问题规划学习。
  3. 职业规划是以后要做什么岗位,先做到什么岗位,再到什么岗位 只看招聘软件上的职位难以区分,大多是java开发工程师,web开发,服务器开发等等。这个是技术类的,还有管理类和咨询类。但对于要做什么,如何进入,十分模糊。

还有一点是我和同届的朋友聊的,在校内没有大型的项目管理,所以git也无法学习的很好。同理数据库也是,但是在昨晚我想到数据库或许有人在github上有分享,或许可以去找找。git的话确实不太ok,只好暂且放下。

附上昨天的梳理和前辈的回复。



很有意思的问题哈。
就说一点,如果进入像谷歌这样的公司的话,你自学的技术几乎全部没用,都是公司内部的技术重新学习。

    qzhouayi 如果进入像谷歌这样的公司的话,你自学的技术几乎全部没用,都是公司内部的技术重新学习。

    这个之前也略有耳闻。以及微软内部也是要用微软自己的一套开发流程和工具。

    在发布帖子之前,也搜索论坛有没有同学提过类似的问题。看到了这个熟练的迷茫者 (后面站长也推荐了这个)有些启发,不能做长久的迷茫者,尽快选择一个问题,上手一些技术,解决一个问题,后面会有连续的问题出现。最大的成本就是时间,不能空耗时间

    附上熟练的迷茫者 中启发我的两段

    “后来看乔布斯的传记,他说人身上有很多点你是不知道的,最后那些dot,那些点会被连成一条线,但你不知道什么时候会被连成一条线。所以我觉得没有什么东西是浪费的,只是需要一些机缘。
    在哲学上讲,你不要那么斤斤计较,不是每一点都是你人生的转折点,我做了这个事情我就回不来了,没有这回事情”

    但更重要的是,有人会因为无法作出决定就推迟决定,然而实际上推迟决定是最差的决定,在推迟决定期间,时间悄悄流逝,你却没有任何一条路上的积累,白白浪费了时间。

    如果你有一些钱不知道花在A还是B上,你先不作决定,没问题,因为钱还是你的,但如果你有一些时间,不知道花在A上还是B上,不行,因为过了这段时间,这段时间就不是你的了。

    所以,不管有多纠结,也不要从纠结中逃离,试图推延决定,既然终究是个痛苦的决定,就痛一回,好好思考和调查之后作出一个决定并坚持下去,只要不是太不靠谱的行业(相信也没谁会在纠结了之后却选了一个不靠谱的行业的),经过你的积累总会成为高手。

      从公司的角度来说其实没有指望new grad会很多所谓的技术,因为很多都要进来重学,所以能把学校专业课学好也就不错了,其他的进来再说。

      如果真要说的话,对于初中级程序员,前几年最需要学习的大概有这么一些
      熟悉项目使用的语言和相关的编程规范,以及相关的工具框架,也就是所谓的 技术栈。
      写出高质量可维护的程序,并且单元测试做得好。
      学会写设计文档,能够描述问题,可选的解决方案,以及各种解决方案的trade off,以及上线之后如何做监控,如何做测试,如何维护等等。这个有点类似写科研论文。

      可以自己看看哪些是在学校可以锻炼的,其实都挺不容易锻炼的。

        如果你当下的目标只是「还有两年毕业,准备拿出一年时间去钻研一些技术,为明年的秋招做准备」,为什么要去管职业规划这种命题?很多工作好几年的人都没有自己的规划的。

          hsxfjames 如果你当下的目标只是「还有两年毕业,准备拿出一年时间去钻研一些技术,为明年的秋招做准备」,为什么要去管职业规划这种命题?很多工作好几年的人都没有自己的规划的。

          你说得对,职业规划这个题目有点大。现在我在考虑该如何去学,准备去github找开源项目,看看能不能参与进去。

          qzhouayi 如果真要说的话,对于初中级程序员,前几年最需要学习的大概有这么一些
          熟悉项目使用的语言和相关的编程规范,以及相关的工具框架,也就是所谓的 技术栈。
          写出高质量可维护的程序,并且单元测试做得好。
          学会写设计文档,能够描述问题,可选的解决方案,以及各种解决方案的trade off,以及上线之后如何做监控,如何做测试,如何维护等等。这个有点类似写科研论文。
          可以自己看看哪些是在学校可以锻炼的,其实都挺不容易锻炼的。

          谢谢,看下来感觉能学的有技术栈、测试以及描述问题的能力。另外的点我需要后面再做了解,看看能不能锻炼

          抛弃掉职业规划这件事情,你都还没入行都还不知道业界什么样子怎么规划。

          同意楼上周师兄的观点,很多技术栈,你进了公司要重新学。你的上级,上上级也没指望你进来的时候多牛逼,没搞出故障都谢天谢地了。其实框架、各种组件都是举一反三的,厂内很多也是魔改开源,结合业务场景做定制化改造等等,比如你会了grpc,那进了鹅用trpc的转换成本也很低。但有的东西因为场景的限制,你可能很难接触到或者学到?比如我所在部门天流水是千亿级别的,从校园里出来的大部分人只会个mysql能搞得定这么多数据的存储和使用吗?这时候你可能就需要了解一下大数据技术了。

          在公司里,一个大项目的流程大致是(只考虑研发侧):需求澄清、技术方案评审、研发、测试、上线。但这个粒度比较粗,每一个项里面其实有很多很多东西,比如
          技术方案

          • 技术调研
          • 技术选型(性能、成本、功能的考虑)
          • 容灾
          • 部署
          • 监控
          • ...

          研发

          • 敲代码(代码规范,多人协作)
          • 单元测试
          • code review
          • ...

          每一个步骤里面都有很多门道,可学习的东西很多。

          技术都是为了解决问题,我建议是首先你有一个感兴趣的项目然后去落地。在这个过程中,尽可能把软件研发流程的步骤都接触学习下。等进了厂,再借着平台了解更多的东西吧,之后再考虑职业规划的事情。

          从最终目的来看,应该都是相似的,更多在于抽象程度的差异。我在去年回华师整过一个 本科学习的经验分享,当时也有聊过这个话题,校园、学术界和工业界按抽象程度来看,大概是一个类似金字塔的模型:

          至于是否能被工业界所需,取决于它能带来的价值,还有回报周期的差异,展开可能就是 "能否解决现实问题" & "能否给到一个解决更大问题的预期,说服他人为之买单"。

          简单对比下可能有点类似的规律:

          • 抽象程度:学术界 > 工业界
          • 知识的半衰期:学术界 > 工业界
          • 对回报的迫切程度:工业界 > 学术界

          这个话题本身又比较大,于个人而言可能只能在其中找到一点合适自己的平衡,重要的还是脚踏实地去从自己能把握和立足的部分做起,就如楼上 lantern 提到的“迷茫”与“行动”的话题。

          而且计算机世界,无论什么领域,在基本方法(通识技能、编程语言、算法、系统等等)的角度,其实并没有大的变化,在学习过程中有意识地靠近一些就挺好(比如说写 Golang 熟悉了,再往 JavaScript 等语言迁移其实并不难,反之亦然)。

          就不必为以什么技术栈入坑纠结太多,Just follow your heart。

          看到这个问题的标题,我就有点好奇,工业界的技术人员不用上学的吗?而且,同是一个大学的人,学习路线也可能有很大的差异。所以,感觉题主需要好好凝练一下自己的问题。

            Bintou 所以,感觉题主需要好好凝练一下自己的问题。

            谢谢指出,应该换成“在校学生应该为明年秋招找工作,而学习什么内容”。之前是想着能否早些学习工业界的技术内容,好做准备,导致题目总结得不好。

            现在听了楼上那些前辈所说,这么想不现实。就个人而言,能做的是学习语言和框架、做demo、尽量参与开源项目。

            6 个月 后
            lantern 更改标题为「在校学生应该为明年秋招找工作,而学习什么内容

            © 2018-2025 0xFFFF