新入行程序员应该知道的十个秘密

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

  没有几个学生能 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、利用现有代码

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

转载来自:http://mobile.51cto.com/news-452335.htm

时间: 2024-10-14 11:42:46

新入行程序员应该知道的十个秘密的相关文章

新入行程序员应知的十个秘密

新入行程序员应知的十个秘密 初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威.这样的故事实在是司空见惯,编程工作也不例外. 没有几个学生能 100% 为自己的第一份真正的工作做好准备.如果你不想成为其中之一,请学学以下这 10 项无需手把手指导就能学会的基本技能: 1.版本控制系统(VCS) VCS 也许是计算机课程最大的疏漏.这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码.每一个程序员都应该懂得利用 Git 或 Subver

新入行程序员需要知道的十个秘密

初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威.这样的故事实在是司空见惯,编程工作也不例外.没有几个学生能 100% 为自己的第一份真正的工作做好准备.如果你不想成为其中之一,请学学以下这 10 项无需手把手指导就能学会的基本技能:1.版本控制系统(VCS)VCS 也许是计算机课程最大的疏漏.这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码.每一个程序员都应该懂得利用 Git 或 Subversion 有效地创建 reposi

新入行程序员考虑自己是否明白以下这8件事情

[e良师益友网]关于下面这些事情,我常常想,要是我刚入这一行时就知道的话那该多好,能少走不少弯路,取得的成绩也肯定比现在高.唉,往事不可追,所以在这里我想分享给大家,尤其是刚进入这一行的新手,请仔细考虑自己是否明白以下这8件事情. 1.良好的沟通能力 工程管理是一个团队 活动,哪怕有时候这个团队只有你一个人.由于每时每刻都有那么多事情需要相互了解,所以沟通就成为了最大的问题.90%的工程管理指的就是沟通.比如,我 们得向人解释bug是什么?如何有效诊断?如何向大家完整地表述自己的复杂想法?沟通是

新入行程序员须知的8件事

英文原文:What I Wish I Knew When I Became a Software Engineer 今年已经是我成为软件工程师的第 5 个年头了.关于下面这些事情,我常常想,要是我刚入这一行时就知道的话那该多好,能少走不少弯路,取得的成绩也肯定比现在高.唉,往事不可追,所以在这里我想分享给大家,尤其是刚进入这一行的新手,请仔细考虑自己是否明白以下这 8 件事情. 1. 良好的沟通能力. 工程管理是一个团队活动,哪怕有时候这个团队只有你一个人.由于每时每刻都有那么多事情需要相互了解

一个野生程序员的真实自述:我是如何从数学专业学渣入坑程序员的

1.引言"恭喜你,成功的避过了所有的正确答案,选择了错误答案".没错,我是一个数学专业的普通大学生(准确地说,是学渣一枚),排除万难,我终于还是入了程序员的坑(不好意思,给程序员抹黑了)! 2.生活爆锤了我一顿我是一个平凡的人,人生也一直都是平淡且稀里糊涂的!像别人家孩子发生的事从来不会发生在我身上.在稀里糊涂的高考完之后,竟也能稀里糊涂的上了一个还凑活的本科院校(虽然是数学专业),算不上好,也算不上坏.没有像大多数的考生一样抱怨没发挥"好",满怀憧憬的准备开启我的

为什么要对新入行的人爱理不理?

我在深圳,是做软件开发的,最近想做木质挂件摆件的生意,自己设计图案,找工厂来生产.用百度搜,结果大多是阿里巴巴网站上的,阿里巴巴网站右下角有个在线恰谈,可以在线聊天,大部分公司是没有回应的,这个能理解,做工厂的可能不重视这个.不过也有一些有回应的,可是问几个问题之后,基本上就不回复了,我的问题大约是这样: 请问你们公司能定制挂件吗?图案我这边出. 你们一般是用什么木料吗? 我能指定木料吗?比如说要用桃木. 我并没有问什么敏感问题,甚至都还没有问到价格,但是随后就没有答复了. 我前几年也有问过做服

程序员需要知道的十个操作系统的概念

说明:我之前在网上看到这篇文章觉得非常好,于是把它翻译了下来.当然很多地方翻译的很渣,见笑了.温馨提示,文章有点长. 原文链接: https://medium.com/the-aspiring-programmer-journal/the-10-operating-system-concepts-software-developers-need-to-remember-480d0734d710 程序员需要知道的十个操作系统的概念 Do you speak binary? Can you comp

有人认为,“中文编程”,是解决中国程序员编程效率的一个秘密武器,请问它是一个“银弹“吗?

银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹.在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人,吸血鬼等超自然怪物的特效武器.后来银色子弹常被用做致命武器的代言词.被比喻为具有极端有效性的解决方法,作为杀手锏.最强杀招.王牌等的代称. IBM大型机之父弗瑞德.布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以<没有银弹:软件工程的本质

20年的老程序员对新入行的朋友的一些建议

从事编程这一行也已经20年了,到今天为止,有关编程方面的知识我也写了六七门课程了,教授课程的时间也已超过了1000小时,下面我所说的全部是我多年来的实践的经验之谈. 编程真的不是一件容易的事. 不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍.工作的时间越久就越能明白这个道理.不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题.如果你已不有了进取心,那么当遇到难道无法解决时你就会想要放弃. 编程也是最让人沮丧的事情 正常的编程过程都是这样的:尝试.失败.学习.