1、软件人员的主要技能包括需求能力、架构能力、设计能力、实现能力、验证能力和维护能力。
2、学习时间管理,不要解决一个问题两次;创造性头脑是无比珍贵的资源,不应该浪费在重新发明轮子上,尤其是还有很多迷人的新问题在那里等着你的时候;时间是宝贵的,共享信息,分享成果,这样可以让其他程序去解决新的问题,而不是永不休止的重复解决老问题。
3、基本技能
(1)从脚本语言开始:将以Python(JS,Ruby等)
(2)静态一门面向对象语言:建议Java/C#
(3)精通一门底层编码语言:建议C(汇编等)
(4)最好是把五种语言都学会了:Python、Java、C/C++、Perl和LISP
4、基础软件编码思想:自然、精简。
5、软件质量属性
(1)可维护性:关注如何减少代码的修改成本
(2)可测试性:关注如何降低发现bug的成本,以及如何提供bug的定位能力
(3)可靠性:关注怎么让代码不出问题,或者出了问题如何减低影响,如何修复
(4)性能:关注如何让代码跑得更高效
(5)简洁:关注如何让软件更容易适应变化
(6)可移植性:关注软件写出来以后,如何方便的移植到其他系统中。
6、重构优化遵循三个原则
(1)发现并解决问题,思考总结,在有更好的方法时,及时优化代码;
(2)扩展视野,积极主动的借鉴其他领域的至少与经验;
(3)将能力扩展到需求分析、架构设计、高层测试、现网维护,积极主动承担更多的内容,在实践中培养对软件的深刻理解和优化能力。
7、学习成长路线
1、编程规范是程序员的基本功,代码是程序员的表达方式,编程规范也是程序员的修养。
2、软件开发过程
1、编译过程
1、函数的优点
(1)降低复杂度,易于思考
(2)便于协同开发
(3)代码复用,减少代码量
(4)封装变化
(5)良好的可移植性
2、Good code is not bad code!
1、圈复杂度小于7
2、拇指姑娘-矮-巨大-函数
3、拇指姑娘-瘦-多层-嵌套
4、职责单一
5、抽象层次单一
6、参数不超过3个
7、避免重复
8、避免重入问题
9、不要返回局部变量
1、基本类型:char,boolean,short,int,long,float,double。
自定义类型:
typedef unsighed char uchar;
typedef struct tag_student{
int id;
}
2、内存的分划与管理
1、栈
联系客服