毕业后想成为一名软件开发工程师,应该如何学习,我整理了一下,觉得可以如下几个过程,逐步深入。希望对大家有帮助。
1、基础
这是每个开发者的起点。开发者刚刚学会了某种语言, 比如C语言,学习了基本的数据结构和算法,并通过一些练习对知识点进行巩固。这些练习主要以课后练习为主,是一些简单的基础概念的练习,比如打印输出、接收用户的输入、数组的遍历、排序,或者链表等。
接下来是做一些简单的项目,这些项目没有复杂的算法和高深的领域知识,比如数据的统计分析、产品的售后管理系统等。这些项目虽然简单,却是一个真实完整的项目。不仅练习了开发者对语言的应用能力,也体会了软件开发的全生命周期,即软件工程,从项目的需求分析,到设计开发,到软件发布和项目验收,最后到软件的维护。
通过简单的项目,掌握了对语言的驾驭能力,并熟悉了软件工程。随着能力的提升,慢慢地就会接触更复杂的项目,使自己能力得到进一步的巩固和提升。
能力的提升方面包括:对语言的应用得心应手,对软件的设计驾轻就熟。接触并熟悉更多的语言,如动态语言Pyhton、脚本语言Bash、新兴语言Golang、Swift等。通过语言间的对比,对语言的优势和缺点又比较清晰的了解,从而在项目中合理选择语言。
2、架构设计和系统分析
随着项目越做越多,会发现多数是在重复,到了一个瓶颈。这是可能要阅读大量的书籍,向软件架构和系统分析转型。在设计软件时,要多留意架构设计。软件架构可以通过演化得到。但是若能看得更远,提前做些设计,会事半功倍。
这个阶段,可能要花大量的时间在业务领域。因为软件技术已经暂时不需投入太多精力了,也有时间关注业务领域了。熟悉业务领域,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制订项目开发计划等,能根据实际工作环境,评估和选用适宜的开发方法和工具;能按照标准规范编写系统分析、设计文档等。在实际项目中锻炼系统架构和系统分析能力。
愿意的话,可以考一个系统架构师或者系统分析师。
3、基础算法和项目管理
发展到这个水平后,对软件技术和业务领域都比较熟悉。所谓穷则独善其身,达则兼济天下。很可能会带带新员工。这是练习领导力的一个机会,可以体会一下如何带人。为下一步带团队打下基础。可以把手上的一些事情安排给他们做。自己抽身出来研究更重要的事。比如研究基础算法、拓展新的领域等。
其实到这个阶段有两个选择,可以向项目管理进一步,做项目经理。也可以钻研基础领域,做领域专家。
希望对你有帮助。
另外,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++是比较好的选择,笔者有一个C/C++的编程千人湫羣(604,168,719)你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的伙伴就可以进来交流。下面给大家分享一下C/C++的学习路线图:
有疑问加站长微信联系(非本文作者)