IT技术博客大学习 共学习 共进步

一个大二学生有关如何成为一名软件工程师的疑问及答复

周兆熊的博客 2015-02-14 14:03:34 浏览 9,062 次

   最近,一个大二学生在微信上与我交流,提出了以下问题:

   我是学软件工程的,但是对其发展方向并不明了,至今只学了cjava 没有学c++,老师只是上课,其他都是自己去了解的,想知道如何才能成为一名软件工程师等等这些。

   我的答复如下:

   你好!

   对于你的描述,我感同身受。在大学里面,老师只会将基本的专业知识教给你,而学得如何,只有靠每个学生自己去领悟和钻研。同时,相对工作岗位的要求,我们在大学里面学到的东西是非常简单的。我们不能期望在学校里面就把以后要用的东西全部学会。为啥要提倡“终身学习”呢?就是因为学习是伴随一个人一生的事情。

   在回答你“如何才能成为一名软件工程师”的问题之前,我想简单说一下软件工程师都要做哪些事情。一般而言,软件工程师做的事可以分为两大类:第一类是开发工作,第二类是维护工作。

   对于开发工作,主要包括以下方面:

   (1) 编写软件代码,实现软件的功能。这是大家最为熟知的。

   (2) 在编写代码之前,我们会评审软件需求(也就是看自己到底要做什么事,是否做得出来),并编写软件的详细设计文档和单元/集成测试方案文档。等这些文档评审通过之后,再开始编写程序代码。

   (3) 对编写完成之后的程序进行自测(包括单元测试和集成测试),自测通过之后发起对程序的同行评审流程,等评审、修改且自测通过之后再提交程序版本,供后续测试人员进行系统测试。

   (4) 在提交程序版本之前,还要完善相关的研发文档,包括对之前的详细设计及测试方案文档进行修改,及新编写测试报告等。

   对于维护工作,主要包括以下方面:

   (1) 解决测试人员在系统测试过程中所发现的问题,即修复程序的bug

   (2) 解决客户反馈回来的软件问题,即解决现场问题。

   (3) 如果在原有软件版本的基础之上出现了新需求,那么还要制作发往现场安装的软件升级包。

   从以上软件工程师做的事情可以看到,一个软件工程师需要具备以下能力:

   (1) 硬能力。包括:专业能力(学校里面的课程主要是培养这个)、业务能力(包括编写代码和文档的能力等)等。

   (2) 软能力:包括:分析解决问题的能力、与人沟通交流的能力、承受压力的能力、自我调节的能力等。

   如果你想在成为一名软件工程师,那么你就要在学校里面注意培养以上两种能力。具体而言,你可以多动手编写程序、适当做一些难度适中的项目、参加一些社团活动、利用假期到单位实习等。具体的路如何走,每个人都是不一样的,你自己要制定好学习计划,要利用好在校的每一天来提高自己。

   我的以上意见,请参考。希望你把握好在校的每一个学习机会,顺利毕业,并找到满意的工作。再次感谢你对我的信任,请继续关注本人博客。

周兆熊

2015年2月13

建议继续学习

  1. 开发与研发 (阅读 11,822)
  2. 程序员和工程师有什么不一样? (阅读 7,423)
  3. facebook 的工程师文化 (阅读 7,185)
  4. 谈谈在校程序员技能培养 (阅读 6,983)
  5. 2015中国程序员生存报告,请勿对号入座 (阅读 6,143)
  6. 一个程序员的血泪史 (阅读 6,123)
  7. PM与工程师 (阅读 3,845)
  8. 浅谈技术工程师的进步 (阅读 3,543)
  9. PM与工程师・续 (阅读 3,363)
  10. 事关“工程师思维” (阅读 3,283)