一 笔记 | 这就是软件工程师

一:新手上路 1.1基本储备:入门必学的语言和工具
①入门推荐语言:
这些语言的语法比较简单,有大量的库和语法糖
②入门必学工具:
操作系统 编程工具Code
③正式入门语言:
Java 它是所有语言中综合实力最强的,除此之外还需要更专业的编程工具,比如更专业的操作系统Linux,更专业的编程的IDE(集成开发环境,比如),版本管理工具Git,相关的编程框架(比如 )等 。
④数学:
至少要学习离散数学中的数理逻辑和集合论,还有能力的话可以深入一下:数学建模,图论,抽象代数,拓扑学,运筹学,博弈论等这些都是机器学习,AI的基础 。
⑤英语
英语是编程技能提升的关键,一定要学好英语,尽可能的用英文去检索技术关键词,在技术方面美国是领跑,学好英语有助于我们去源头学习 。
1.2选择平台:去面向未来,技术驱动的公司
选择平台时,新人应该判断两件事:这家公司是否面向未来,是否受技术驱动 。
第一,这家公司做的事情,能不能适应未来的发展 。计算机与互联网的发展都太快,如果要选择,一定优先选走在未来航道上的那些快速发展的公司 。
第二,你要去的这家公司是不是一家技术驱动、以技术文化为主导的公司 。也就是说要去对技术和软件工程师都非常重视的公司 。
1.3认识自己:找到适合自己的路线
一个人要想认识自己,就得看清自己的特长,兴趣,热情 。
①特长
你要找到自己可以干成的事,找到别人找你请教的事,这是找到自己特长非常重要的方法 。找到特长后,扬长避短就好 。
②兴趣
如果你没有找到自己的特长,就找自己有兴趣、有热情的东西,即使再难再累都不会放弃的事 。不怕困难,痴迷其中,就算你没有特长,有了这种特质,你也是头部人才 。
③方法
如果你没有特长,也没有兴趣和热情,就要学方法 。比如学习时间管理,学习做计划,学习统筹,学习总结犯过的错误,举一反三,学习探究事物之间的因果关系,等等 。
④勤奋
如果你前三者都没有,你还能做的事就是勤奋 。勤奋注定会让你成为一个比较劳累的人,也是很有可能被淘汰的人 。虽然勤奋越来越不值钱 。但是只要你勤奋,至少能够自食其力 。
1.4编码规范:不要逆着规范做事
新人动手编码前,必须先熟悉公司的规范,特别是编程规范 。这样的目的是为了高效协作,你只需要花很少的时间就能看懂,哪怕这个程序你不熟悉或完全没见过 。这对提升团队效率的影响是巨大的 。
1.5公司差异:即使没有规范,也得自我要求
新人进了公司先要熟悉规范、按规范做事,这是最基础的训练 。即使没有规范,也得自我要求 。即使公司没有对新员工做相关培训,自己也要有意识的去关注和学习一些规范 。
①编码规范
我们需要关注的不仅仅是编码,还有代码评审、单元测试,这些都属于编码规范 。
②设计规范
设计规范包括API(接口规范)、设计模式(比如面向对象的设计模式、设计原则SOLID)、架构规范(比如分布式架构规范)等 。
③生产规范
生产规范指的是一套标准化的上线流程 。比如软件工程师不是写完代码就行,还要做测试,测试完再上线,整个生产流程里有很多规范 。
1.6整洁代码:不是写出来的,而是读出来的
代码的整洁程度代表着一个软件工程师的专业素养,不是写的人说自己的代码整洁就算整洁,而是读的人觉得整洁才算整洁 。
判断你的代码整不整洁,一个最基本的标准是,读代码的人根本不用问你,只要上下读几行或者看看注释,顺着逻辑就能知道这些代码是什么意思,以及他要用的话该怎么用 。