• 做项目和平时接触的课程里的项目的区别

    • 规范流程
      • 画流程图、架构图:看组的风格,但这是一种规范的表现,可以降低新成员理解项目架构的时间,以及理解偏差(架构图会比文字更好去客观地描述)
      • 项目文档规范:可以参考一下腾讯云一些 api 的文档是怎么写的,这些在课程里是学不到的
    • Git PR、Branch(比如说 Feature/Develop/Release/HotFix):这些规范在个人开发时大家肯定也是碰不到的,像是交 PR 这种环节,个人开发总不能自己给自己在不同地方再重复一次 Code Review 吧
    • 项目规模:以个人开发者 / 课程项目里几个人组队的超小型团队在一个学期能开发出来的东西,和大厂几千个微服务是无法比拟的,微服务之间的耦合、管理,这些都是在企业中能明显感受到的和自己开发的区别。
    • 知识过于科班,难以实际应用:这一点在【迈向大厂开发岗 - 入门开发(前后端概念介绍)】 亦有记载
      • 甚至说像是很多人认为紧相关的数据结构,在后端是完全用不上的。后端通常用数据库做数据持久化,用到本地内存且需要用复杂数据结构储存的情况是少数,对于数据库的储存的话,数据库有自己的数据结构,比如说 Redis 的 Sorted Set,这些你也只需要了解他们的一些特性即可,其实也不需要真的非常科班地去把整个知识体系掌握了。
    • 课程较为真 · 八股文,是真的实际用不到的东西,典型例子:学校的程序设计会考类似于 x += z+++z; 的东西,如果有人真的把这种代码写到生产环境的话,他被同事殴打的可能性将趋近于无限。

  • 学底层的课有没有用呢:你可以更好的成为一个科班人,遇到一些原理性的问题时,你可以知道为什么会产生一些问题,你可以有一个更宏观的意识。这一点在接触一些底层开发时更是会表现地淋漓尽致。再比如说就算是业界的大厂,他们本身也会有一些科研研究方向(偏工程、或者他们实际会遇到的问题的),这些研究就很依赖于一些科班知识。

  • 有没有对开发有帮助的课:就复旦而言,确实是有的,比如软件工程(H),会真的有一位有多段大厂开发经验的同学来带一个小组,直接上手一个真实的前后端项目,介绍微服务的各种架构以及企业真的用得上的框架等等。而不少复旦的老师其实也是能跟得上业界的潮流的,因为老师们自己的科研组里也有和很多业界大厂做横向合作。比如软件工程实验室的彭鑫老师,就是走开发/运维这个研究路径的话,比较推荐的一位老师。再比如说云原生(学 K8s 和 Docker)、数据库设计、24 级信计班同学学的程序设计 A(学 SpringBoot 和 Vue)