10项无需手把手指导就能学会的基本技能

初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威。这样的故事实在是司空见惯,编程工作也不例外。

没有几个学生能100%为自己的第一份真正的工作做好准备。如果你不想成为其中之一,请学学以下这10项无需手把手指导就能学会的基本技能:

1、版本控制系统(VCS)

VCS也许是计算机课程最大的疏漏。这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码。每一个程序员都应该懂得利用Git或Subversion有效地创建repository(仓库),编辑与提交代码,进行分支与合并,了解项目工作流。

2、学会写作

身为程序员要写的不只有代码。你还要写项目的发布说明,给版本控制写提交消息,在系统里面写漏洞报告。这些和许多地方都需要清晰有效的文字交流—但这个技能计算机科学却很少强调。

3、正则表达式

正则表达式本身就是一门语言,每一个现代程序员都要擅长。每一门现代语言都支持正则表达式或者有相关标准库。如果代码需要校验某字符串是否含有5个字符、1个破折号和1个数字,你应该马上就能写出 /^[A-Z]{5}-d$/。

4、库的使用

现在已经是2014年,所以没人需要用正则表达式从URL析取主机名了。因为每一门现代编程语言都有执行常用功能的标准库。

程序员需要明白,那些经过开发、测试和调试的代码通常要比自己重新写的代码更好。更重要的是,无需编写的代码实现起来要快得多。

5、SQL

很多人的SQL都是在工作中学会的。数据库怎么会是选修课呢?有不用数据库的吗?

把数据存进平面文件的时代已经结束了。一切东西都要进出数据库,而SQL则是存取数据的语言。这是一门说明性语言,不是程序语言,所以用它来解决问题时需要新的思考方式。每一个程序员都应该了解数据库标准化基础,能够执行SELECT(及INNER、OUTER JOIN)、INSERT、UPDATE和DELETE。

6、会用IDE、编辑器及CLI工具

只懂用锯子的木匠永远也无法出师,所以计算机专业毕业的人只懂Notepad或pico令人惊诧。编程工具帮助操纵代码及其他数据,令程序员生活变得容易。所以每一个程序员都应该知道命令行、shell脚本、find、grep及sed的使用。

7、调试

每一个程序员都应该知道利用交互式调试器或在代码中点缀一些输出语句来调试程序。通过逐步求精来跟踪问题的能力实在是太重要了。

8、防错性编程

错误总是难免的,哪怕是明星程序员也不例外。失控是世界的常态,出错毫不奇怪。防错性编程正是理解了这个事实。如果东西不会不出错,我们就不会检查文件打开成功与否,不会检查客户ID是否合法数字,不用测试代码是否允许正确。

程序员需要知道,编译器告警是有用的工具,可让我们生活得更舒适,而不是要避而远之的麻烦事。每一个程序员都应该知道为什么每一个PHP程序都要这样开头:

set_error_reporting(E_ALL)

每一个Perl程序都要写上这些语句:

use strict; use warnings;

9、团队协作

很少编程工作会让你自己一个人完成,如果你经常这么做,智力会受损,表现会变弱。你的代码必须与别人的交互或者混合。再有才的程序员,如果无法与别人协作,都会给项目造成负面影响,并迅速成为组织的负担。

10、利用现有代码

在学校的时候,每一次作业都是一个新项目。但现实世界不是这样的。对于刚工作的人来说,所接到的第一项任务往往是修改代码漏洞。然后,再在现有代码库的基础上为现有系统增加一个小功能。设计新代码那是几个月后的事情,如果幸运的话。

[本文编译自:blog.newrelic.com]

时间: 2024-10-23 20:52:19

10项无需手把手指导就能学会的基本技能的相关文章

Java游戏开发中应始终坚持的10项基本原则

关于文章中涉及的两个杜撰概念: 一.绘图器:众所周知,Java GUI以paint进行绘图,以repaint进行图像刷新,而完成repaint及paint这一连贯过程中所用到绘图组件,我将其称为绘图器.就我个人的体会,绘图器的调用时机应始终处于repaint之后paint之前,即通过repaint触发刷新后执行,当其中的具体逻辑完成其对应的图像绘制后,再通过统一接口将其图像插入paint中,为了匹配需要,绘图器应始终以接口方式实现. 二.监听器:这里所说的监听器,并不是特指某个Listener组

2020年最重要的10项工作技能

挖掘机技术哪里强?我不知道,但是根据凤凰城大学研究中心未来学会的研究,到 2020 年的时候,最需要的工作技能并不是挖掘机技术.研究人员分析了未来的 6 大变革驱动力,并在此基础上分析出届时最重要的 10 项工作技能. 6大变革驱动力 1.老龄化 根据预测,到 2020 年的时候,中国的人均寿命将达 77 岁,到 2025 时,美国 70% 的人寿命将超过 60 岁.人口老龄化将导致人类对年龄的认知发生变化,个体的职业生涯.家庭生活以及教育也要适应这种变化.退休年龄有可能需要推后(65 岁以后)

苹果否认侵犯10项专利反诉诺基亚13项侵权

北京时间12月12日凌晨消息,据国外媒体昨日报道,苹果对诺基亚提出了一项反讼,称其侵犯了该公司的专利. 苹果在周五向特拉华州威尔明顿联邦法庭提出的指控中称,诺基亚侵权使用了苹果的13项专利,要求法庭责令诺基亚停止侵权活动并支付未指明具体金额的赔偿金.苹果总法律顾问布鲁斯·塞维尔(Bruce Sewell)称:"其他公司必须发明自己的技术来与我们展开竞争,而不是只会窃取我们的技术." 诺基亚在10月份对苹果提出指控,称其侵犯了该公司的10项专利,并寻求追回2007年以来售出的数百万部iP

光大银行基本具备上市条件已完成10项准备工作

已完成上市前的10项准备工作光大银行基本具备上市条件 记者日前从光大银行了解到,该行关于上市的准备工作进展顺利,现阶段光大银行已基本具备上市条件.该行数据显示,目前光大银行不良贷款率已从2007年底的4.49%下降到2%左右,拨备覆盖率从2007年底的91.64%提高到119.96%,资本充足率由2007年底的7.19%提高到8%以上,达到监管要求. 3年未能对外公布年报的光大银行近日已正式发布2007年年报,年报经毕马威华振会计师事务所审计.光大银行2007年实现50.4亿元的净利润,较上年同

云计算安全框架等10项标准被批准为国际标准

10月14日,工业和信息化部副部长毛伟明出席"2014年世界标准日宣传周"活动时透露,截至目前,工业和信息化领域的标准总量已达5.3万项;今年前三季度,已下达行业标准制修订计划1636项.复审计划2275项,批准发布行业标准2419项,云计算安全框架等10项标准被批准为国际标准. 毛伟明在致辞中指出,随着经济全球化的发展,标准的战略地位日益突出,成为争夺产业制高点.主导权.话语权的重要切入点.标准竞争将成为继产品竞争.品牌竞争之后,又一种层次更深.水平更高.影响更大的竞争形式.近几年来

优秀Web设计10项原则:创新实用富有美感

他能够为我们使用家用电器的方式掀起一场革命,现在我们仍然把它作为现代世界的设计灵感,最好例子就是Apple.Apple的许多畅销产品的核心功能都采用了Dieter Rams的设计原则. Dieter Rams最著名的设计思想是优秀设计的10项原则,这些原则通常用来做出好的设计或对其进行归类.这些原则包含了在创建项目的时候设计师需要考虑到的问题,但是这些原则最适用于工业设计,因为Dieter Rams正是在这个领域做出了非同寻常的作品,并得出了这些灵感. 这些原则并不是古板的戒律,并不是不能变通的

8张图看懂office2016的10项新功能

  日前,微软推出了最新版本的办公软件:office2016,那么,office2016与之前的版本相比,有什么不同呢?尤其是目前来自金山wps这款办公软件同行的竞争压力,如果office2016没有几样黑科技,恐怕很难留住微软用户的心.下面,还是一起来看看office2016带来的10项新功能吧! 推荐教程:office2016怎么激活?office2016激活密钥与激活教程 office2016 1.增加智能搜索框 你会注意到在 PowerPoint 2016 功能区上有一个搜索框[告诉我您

优秀的Web设计:优秀设计思想的10项原则

文章描述:优秀Web设计10项原则:创新实用富有美感. 他能够为我们使用家用电器的方式掀起一场革命,现在我们仍然把它作为现代世界的设计灵感,最好例子就是Apple.Apple的许多畅销产品的核心功能都采用了Dieter Rams的设计原则. Dieter Rams最著名的设计思想是优秀设计的10项原则,这些原则通常用来做出好的设计或对其进行归类.这些原则包含了在创建项目的时候设计师需要考虑到的问题,但是这些原则最适用于工业设计,因为Dieter Rams正是在这个领域做出了非同寻常的作品,并得出

J2EE项目危机【翻译】 -避免这10项J2EE危机来确保你的企业JAVA项目成功

j2ee|项目   在我作为开发者.高级开发者.架构师的经历中,我遇到过好的.差的甚至是丑陋的企业级JAVA项目.当我问自己,是什么使一个项目成功而使另外的失败,我发现很难得到一个完美的答案,就好像很难用成功来定义所有的软件项目.J2EE项目也不例外.因此,项目被分为不同级别的成功或失败.在这篇文章里,我主要想为您--读者朋友--揭示影响企业级JAVA项目的最大的10项危险. 一些危险只是简单的延迟项目进度,一些却是错误的征兆,而还有一些使项目彻底没有成功的希望.尽管如此,如果具有良好的准备,征