1月13日晚8点,开启了我的第一次知乎Live,主题是:程序员的精进:你适合做开发吗。因为时间原因,Live中提到的部分问题没来及回答,特意整理出来,一一回答,记录在这里,作为补充。
【1】软件开发工作各个阶段的人分别负责做些什么?以及各个阶段需要哪些专业知识?
从技术路线上来看,开发者一工程师-->高级工程师---->架构师(技术专家)
一般的工程师,会负责产品模块的设计与编码。
高级工程师,会负责大的模块或子系统的设计以及核心模块的编码。
架构师对技术选型、产品架构负责,同时也可能完成核心模块的开发。另外也会负担一部分团队管理、技术讲授、客户支持等工作。
技术专家在某一个细分方向上有深入研究,能够在这个方向上解决复杂问题。另外也会负担一部分技术讲授、客户支持等工作。
具体到需要什么专业知识,和你做的产品有关。
【2】 从一个领域的开发工作跳到另一个领域的开发工作需要做哪些准备?例如从移动通信跳到VR?
准备分两种:1. 行业或产品领域知识的准备,比如通信和VR游戏,就牵涉到产品知识的准备;2. 专业知识和技能的准备,通信可能会用到C语言、协议分析等知识与技能,而VR用到的技能不同,可能会用Unity3D或者C#。
【3】 30岁转行还来的及吗?没有科班背景?
什么时候转行都来得及,江民杀毒的创始人王江民38岁转软件开发,后来笑傲中关村,开启杀软的黄金时代。但年龄确实会带来一些影响,比如你50岁转软件开发,就可能受到国内用人单位的潜规则的影响。最关键是你真的想做某个职业,那就去做,准备接受一个较为缓慢的过渡期,等你用自己的热情和能力完成了爬坡,前景就展开了。
【4】 电气专业不知道未来该选硬件还是软件
这个需要盘点自己,看看自己的兴趣在哪里,比如你更愿意琢磨硬件、设计硬件、组装硬件,还是更愿意去思考让硬件工作起来的系统,或者硬件暴露给使用者的交互界面。找出兴趣,作为选择的参考。另外也可以考虑做硬件的工程师和做软件的工程师有什么不同,分别找到一些相关的职场人士,看看他们的工作与生活状态,你更喜欢哪一种。
【5】 程序员的天花板是年龄还是什么?
我认为天花板不是年龄,而是你的“应用流程”,也就说你运用知识、技能、经验解决问题的流程和能力。如果你有好的应用流程方面的能力,那你就可以超越初阶的知识、技能,把你的这种能力复制到各个领域,就能够突破常见的技能方面的天花板。如果你只知道在别人思考得出的解决问题框架内按照别人的安排来完成一部分执行的工作,那你的天花板就显而易见。
【6】 目前在做大数据领域开发,但不太喜欢觉得很无聊,想自学全栈开发和前端,但这个就需要大量下班时间的自学,想知道应该怎样规划自己的时间安排
用业余时间学东西,要一个一个来,不要同时学很多,一个阶段学一样。所以,先分析自己要学的内容,挑一样出来。
然后需要定一系列的目标,形成由浅入深的目标阶梯,每一个目标,都要