初出茅庐的你带着仍残留墨香的毕业证书踏上工做岗位,立刻就被书上没写的规则和各类繁杂的平常事务来了个下马威。这样的故事实在是司空见惯,编程工做也不例外。没有几个学生能 100% 为本身的第一份真正的工做作好准备。程序员
若是你不想成为其中之一,请学学如下这 10 项无需手把手指导就能学会的基本技能:
一、版本控制系统(VCS)
VCS 也许是计算机课程最大的疏漏。这些课程光记得教如何写代码,但却每每忘记教学生如何去管理代码。每个程序员都应该懂得利用 Git 或 Subversion 有效地建立 repository(仓库),编辑与提交代码,进行分支与合并,了解项目工做流。
二、学会写做
身为程序员要写的不仅有代码。你还要写项目的发布说明,给版本控制写提交消息,在系统里面写漏洞报告。这些和许多地方都须要清晰有效的文字交流—但这个技能计算机科学却不多强调。
三、正则表达式
正则表达式自己就是一门语言,每个现代程序员都要擅长。每一门现代语言都支持正则表达式或者有相关标准库。若是代码须要校验某字符串是否含有 5 个字符、1 个破折号和 1 个数字,你应该立刻就能写出 /^[A-Z]{5}-\d$/。
四、库的使用
如今已是 2014 年,因此没人须要用正则表达式从 URL 析取主机名了。由于每一门现代编程语言都有执行经常使用功能的标准库。
程序员须要明白,那些通过开发、测试和调试的代码一般要比本身从新写的代码更好。更重要的是,无需编写的代码实现起来要快得多。
五、SQL
不少人的 SQL 都是在工做中学会的。数据库怎么会是选修课呢?有不用数据库的吗?
把数据存进平面文件的时代已经结束了。一切东西都要进出数据库,而 SQL 则是存取数据的语言。这是一门说明性语言,不是程序语言,因此用它来解决问题时须要新的思考方式。每个程序员都应该了解数据库标准化基础,可以执行 SELECT(及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE。
六、会用IDE、编辑器及CLI工具
只懂用锯子的木匠永远也没法出师,因此计算机专业毕业的人只懂 Notepad 或 pico 使人惊诧。编程工具帮助操纵代码及其余数据,令程序员生活变得容易。因此每个程序员都应该知道命令行、shell 脚本、find、grep 及 sed 的使用。
七、调试
每个程序员都应该知道利用交互式调试器或在代码中点缀一些输出语句来调试程序。经过逐步求精来跟踪问题的能力实在是过重要了。
八、防错性编程
错误老是不免的,哪怕是明星程序员也不例外。失控是世界的常态,出错绝不奇怪。防错性编程正是理解了这个事实。若是东西不会不出错,咱们就不会检查文件打开成功与否,不会检查客户 ID 是否合法数字,不用测试代码是否容许正确。
程序员须要知道,编译器告警是有用的工具,可以让咱们生活得更温馨,而不是要避而远之的麻烦事。每个程序员都应该知道为何每个 PHP 程序都要这样开头:
1 set_error_reporting(E_ALL)
每个 Perl 程序都要写上这些语句:
1 use strict; use warnings;
九、团队协做
不多编程工做会让你本身一我的完成,若是你常常这么作,智力会受损,表现会变弱。你的代码必须与别人的交互或者混合。再有才的程序员,若是没法与别人协做,都会给项目形成负面影响,并迅速成为组织的负担。
十、利用现有代码
在学校的时候,每一次做业都是一个新项目。但现实世界不是这样的。对于刚工做的人来讲,所接到的第一项任务每每是修改代码漏洞。而后,再在现有代码库的基础上为现有系统增长一个小功能。设计新代码那是几个月后的事情,若是幸运的话。web