软件工程师最底层、最原生的驱动力是成就感,高收入只是副产品而已。
人口集聚程度越高的城市,软件工程师的学历和工作经验的溢价越高
35岁危机不是年龄问题,而是能力问题,有能力的人干到退休也没问题
需要有思考、总结、抽象的能力,这些能力能够贯穿周期
需要有持续学习、保持进步的年轻心态
创始人/合伙人
创始人/合伙人是公司的顶梁柱,需要有以下素
能力:
1) 做出贡献 为公司带来资源、吸引人才 带来效益,
其中既包括经济效益,也包括社会效益
2) 带动团队 一个人就是一支军队,能够自驱为公
团队制订方向和实施计划,并能解决执行时的所有问题 ,具
备推动落地的能力
3) 创新优化 能够对现有的东西提出小而美的创
优化,并将其推动和执行
4)前瞻能力 能够感知行业变化,技术潮流, 并依
思考行业和公司的未来,为应对未来做好准备
5) 抓重点,简化,标准 。只有抓住重点 简化问题、第一绵分 行业地出
标准化问题,才可能实现规模化、平台化
贡献者 (Contributor)
这类人是公司的腰部力益,他们对要做的事有热情,并
会想各种方法推动 作的进展,他们需要有如下能力:
探路能力 只要方向没问题,即使没有路,也能够
踱出路来
2) 贡献方法 能够在实施过程中提出更好 更简单的
方法以及相关创意
(3) 解决难题 方法总比问题多,能够带动团队解决一
切拦路的问题
提高标准 能够不断发现不足并弥补不足,解决问
题,提高标准
行家 (Expert)
这类人是公司的手足力扯, 他们要对所做的事情有很
富的 验,能够正确判断和决策,这类人有如下能力:
(1) 降低成本 为公司在执行层面上降低成本 时间
人力 物力)
(2) 提升效率。能够找到最佳的路径或通过最佳实践到
达目地的。
(3) 防火能力。能够发现重要问题,并提前解决,避免
意外发生。
35岁时,至少要到贡献者阶段才行。
按部就班,听命做事的人,容易被替换掉。
软件工程师对于终身学习的要求是最高的,领域进步的太快了。
软件工程师分为6种:交互、系统、算法、数据分析、测试、运维
Java是所有语言中综合能力最强的
数学至少需要离散数学中的数理逻辑和集合论,如果有能力的话,
离散数学的其他主题也可以深入一下,比如数学建模、图论、
抽象代数 、拓扑学 、运筹学、博弈论等。
英语必须要学好,去看领跑的源头,不然只能当一个技工。
选择平台的两大要素:
1、这家公司做的事情,能不能适应未来的发展。
2、你要去的这家公司是不是一家技术驱动、以技术文化为主导的公司。(技术优先,有话语权,重视技术,给软件工程师良好的环境)
认识自己:
特长:就是天赋,DNA里比别人强的东西
找到特长的方法:别人请教你什么,就说明你在这方面有特长
兴趣:仅次于特长
项目流程:
新手一般做的是编码和测试和改bug
新手要做到:1、养成好的工作习惯; 2、提高自己的执行力。
写代码一定要有规范,这样易于维护、易于拓展、易于接手
好的代码是没有止境的,按照等级可分为:
可看懂:能接手
可维护:不用因为修改而大动干戈。
可重用:就行轮胎可以用在自行车也可以用在汽车。
整洁代码:
写的人说整洁那没用,要读的人说整洁才算数
注释应该写,这个方法或接口该怎么用,而不是写这个方法或接口是什么
编程原则:
避免重复:用一种方法来解决多种问题
单一职责:一个类或者一个模块应该有且只有一个职责
高内聚、低耦合:内聚指的是一个模块内各个元素彼此结合的紧密程度,耦合指的是不同模块之间的依赖程度 。
开闭原则:,对修改是关闭的,对扩展(协议)是开放的
但还有一些原则,我们也不必拿它们当教条,比如 “go to 语句不能用“这个原则在业内的争议比较大,我们在写程序的时候就不 定要去遵守
网友评论