到了毕业季,许多刚学校毕业的学生也开始进入职场,进入职场后,很多事情可能与原本想像不同,没有人有把握一开始就百分之能掌握工作的全部项目,软件工程师这行业也是如此,与上个世代相比,软件撰写这个行业也经过许多的转变,特别列举了十个新手网络工程师应注意的相关技能,让初出茅庐的新手也能掌握成为达人的关键。
1、版本控制管理
未涉及版本控制管理可能是现代电脑相关课程中最大的疏漏,这些课程只着重要如何撰写程序码,但却没有于程序码的管理却支字未提。其实每一个软件工程师都应该懂得利用 Git 或 Subversion 有效地创建程序库(repository),编辑、送出程序码,创建与合并分支,并利用版本控制组织化整个工作流程。
2、学会清楚的写作
软件工程师要撰写的可不只有程序码,还有针对专案写下说明、给版本控制写送出注解、写下系统漏洞报告。这些都需要清晰有效的文字交流,不过这个基础的技能程序语言相关课程也一样都被忽略不提了。
3、正规描述法
正规描述法本身就几乎是一门语言学了,每个现代软件工程师都要学会如何使用它。现代的各式程序语言本身有其标准格式可供运用,举例来说,如果在程序中要校验某字串是否含有 5 个字元、1 个破折号和 1 个数字,软件工程序应该马上就能写出“/^[A-Z]{5}-\d$/”这样的描述字句。
4、善用程序库
在 2014 年的今日,再也没人还要正规描述法从 URL 析取主机名称了,因为每个现代程序语言都有执行常用功能的标准程序库可供运用。软件工程师更需要了解,现今的程序语言在经过开发、测试和调校下的标准程序码通常要比自己重新写的程序码更快、更好。
更重要的是,无需再花时间重新撰写的程序码,利用起来总是快得多了。
5、SQL
近来有人表示,多数人的 SQL 都是在工作中才学会的,为何数据库居然然是选修课?还有人不用数据库的吗?
把资料以书面存放的时代已经结束,现在一切数据都要进入数据库了,而 SQL 则是其常用来检索的进出数据库。同时 SQL 也成了一种说明性语言而不是程序语言,所以用它来解决问题时需要新的思考方式。每一个软件工程师也都应了解数据库标准化基础,能够使用 SELECT(以及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE 等指令。
6、会用 IDE、编辑器与 CLI 等工具
只会用锯子的木匠永远出不了师,若以电脑科学专业毕业的人却只懂得使用记事本或 pico 也同样让人感到吃惊。若能熟练的运用这些工具掌控程序码与其他电脑中的资料,会让软件工程师的日子更好过,所以诸如种种 UNIX 的指令,如 shell script、find、grep 及 sed 都是软件工程师要能熟悉运用的。
7、调校除虫
每一个软件工程师都应该能用各式互动式除错软件,让工程师能透过逐步追踪问题,得以从经验中来精益求精寻求改善之道的能力实在是太重要了。
8、预防性编程
就算是明星级的软件工程师也不能完全不发生失误,失控、出错方是世界的常态。预防性编程只是了解这事实所做的预防措施正是理解了这个事实。如果东西不会不出错,人们不会检查文件是否能正常开启、检查客户 ID 是否为合理整数,也不用测试程序执行是否正确。
软件工程师也要知道编译器中的警告都是有实际功效,可让日子好过一点,而不是要人避而远之的麻烦事。软件工程师也都应该知道为什么 PHP 程序的开头都要写着“set_error_reporting(E_ALL)”,而每个 Perl 程序则都写着“use strict; use warnings;”。
9、团队合作
很少程序撰写的工作会单独由一人完成,如果你经常如此,那么往住脑力会受损、程序撰写技巧也会每况愈下。程序码必须与他人交互混合与交换撰写,无论再有才华的工程师,若无法与其他人合作,那么都早晚都会成为一个组织的负担。
10、运用已有的程序码
在学校时,每个作业都是一个新专案,但现实的工作场合不是如此。对于刚出社会的人来说,一开始接到的项任务多半是追踪修改程序漏洞。接下来,可能有机会在现有的程序中添加一些功能来进行修补,如果够幸运的话,在几个月后方有机会设计撰写新程序。