IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

周兆熊的博客 2015-02-14 14:03:34 累计浏览 9,186 次
本机暂存

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

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

   我的答复如下:

   你好!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

周兆熊

2015年2月13

同分类推荐文章

  1. 科技爱好者周刊(第 401 期):如何赚到10亿美元 (2026-06-26 08:05:38)
  2. 如何做决策 - 从 Go 的一个 issue 说起 (2026-06-26 08:00:00)
  3. Seven Player:Windows上播放115网盘视频的增强工具 (2026-06-09 00:06:47)

查看更多 开发者 文章 →

建议继续学习

  1. 我是如何学习计算机编程的 (累计阅读 181,147)
  2. SmartSprites - 命令行形式的CSS Sprites生成器 (累计阅读 123,898)
  3. Java开发岗位面试题归类汇总 (累计阅读 22,159)
  4. android 开发入门 (累计阅读 19,532)
  5. 每个程序员都应该学习使用Python或Ruby (累计阅读 17,920)
  6. 再次写给我们这些浮躁的程序员 (累计阅读 17,229)
  7. 我的PHP,Python和Ruby之路 (累计阅读 13,150)
  8. HashMap解决hash冲突的方法 (累计阅读 12,657)
  9. 给年轻程序员的建议 (累计阅读 11,069)
  10. PHP程序的执行流程 (累计阅读 10,035)