英文原文:What I wish I'd known starting out as a programmer
正如老牌 Faces 乐队的经典老歌《Ooh La La》中的歌词一样“ I wish that I knew what I know now when I was younger”,我常常想,要是我早点知道这些建议就好了。回首往事,刚开始的时候我只是非常单纯地喜欢写代码,也不知道要规划自己的职业生涯以及如何与人相处。我常常懊悔,要是我能早点知道下面这 8 条简单又实用的技巧,那我能少走很多弯路,避免很多麻烦。
1. 注重交际。
我以前特别专注于计算机,任何打搅我的人和事我都认为是不速之客。我承认那个时候我的反应有点过头,因为还是有很多值得认识的业界知名人士和值得相交的朋友,但是我却没有好好保存他们的名片。我从不刻意记他们的名字,也不与他们联系。如果需要找工作的时候,我只会去用户组看看。
我发现对于一些年轻的开发人员而言,找工作似乎是小菜一碟。但我不然——有很多时候,他们总是对我说,你是个开发人员,知道点基本的语法和如何搜索(我刚刚进入这一领域的时候,还没有谷歌),想要立即被聘用是远远不够的。甚至有的时候,实在没办法了,我只能没完没了地发邮件给猎头。这种类似的情况以前时有发生,我有心无力。
还有一些比我更有技能的开发人员却总是难以找到自己属意的工作、也总是失败,因为他们从来不曾“出类拔萃、鹤立鸡群”。他们从来没有在正确的时刻会晤正确的人。的确,时机和运气都不错,但是就是没有抓住机遇。即便你第 9 次参加聚会,还是没有人与你交谈,那你还是应该继续精神抖擞哪怕是当花瓶,也要为第 10 次聚会好好准备,也许下一次就遇到你的伯乐和钟子期呢。
此外,还要和同伴打好关系。虽然现在的你们还只有 20 多岁,没啥话语权,但是 5 到 10 年以后,一切将发生翻天覆地的变化,也许某个你一直忽略的家伙突然一鸣惊人了。如果你仅仅因为他们无趣而无视他们,那么以后他们手中掌握的重要机会也会无视你。
2. 解决问题。
现在的我,对此已经习以为常,毫不感冒了,当然以前可没有这么淡定,解决问题对我来说不亚于是一场灾难。关键在于不要深陷于任何推测而不可自拔。可以选择几个推论然后去证明它们是错的,也不要做选一个然后绞尽脑汁去证明这是对的这种傻事。尽可能选择替代理论。假如出现端口冲突,那么有可能是连接到错误的网络设备或者未分配的 IP 地址。这种情况的异常不是真正的错误。
解决问题的本质就是运用学会的知识和以前积累的经验,竭尽所能地去解决种种未知的事物。
3. 根据市场和职业目标选择编程语言和技术专长。
做我所爱,爱我所做,这样我们才会心甘情愿地奉献自己的精力,系荣辱于其一身,不是吗?当然,也不能忽视现实原因。那就是软件开发这一行发展潜力很大,能让我们挣很多钱。
不管基于什么样的考虑,我们选择了这一行业,这就是事实。并且,有分析指出,这个市场未来几十年还将膨胀数倍,需要大量的从业人员。有大量的公司将如雨后春笋一个个冒出来,但是让我很疑惑的是,开发人员的就业机遇并没有出现井喷。向大家展示自己的激情和活力,与时俱进,不可故步自封、自满自足。科技世界的变化是如此之快,你最喜欢的技术搞不好今天还广受欢迎,明天就成为昨日黄花了。
4. 软件其实很少有真正的创新。
很多从业 5 年的开发人员都亲眼目睹过,几乎所有的厂商都曾重新命名软件后,又当做新产品再次推出去。而那些有着 10 年工作经验的开发人员,对这种情况已经习以为常了。当你和一些老开发人员开会时,你会发现他们对于新产品总是兴趣缺缺、不以为然。后来你会知道,虽然这些所谓的新产品也有一些创新,但是通常都是早先技术的结合。举个例子,Hadoop 现在很火,但是你可知道,HDFS 是一个分布式文件系统,而分布式文件系统已经存在了几十年了。
5. 从职业角度出发,而不要着眼于眼前的工作而因小失大。
一开始我跳槽的原因显得有点可笑:不喜欢在一个小隔间工作、额外每小时多 5 美元等等。然后在下一个工作中又成为了我跳槽的原因,循环往复,惶惶而不可终日。“能否对我的职业生涯有所帮助?” 这才是我们工作最需要考虑的原因。有时候,这样一份工作意味着更多的责任和机会。可能我还是会去大公司工作——但是不久之后会辞职。因为在一家 IT 大公司我们是很难从内部展示自己的能力,而且机会非常有限。
6. 一周工作超过 40 小时。
如果你觉得这是在建议你做一个工作狂,不顾忌身体死命工作,那你就错了。我的意思是我们应该将时间投资到事业上。如果你觉得你只能在老板不注意的时候偷偷学习,那么你的机会总是有限的——你的老板是不会专门训练你让你有更多的机遇的。
7. 编程并不难,但是我们自己会把它搞复杂,变难。
我不赞同 Joseph Gentle 的话。自从人们将软件这一行从硬件中脱离出来,软件开发却仍然被我们弄的乱七八糟。想要编程其实只需要阅读书籍、集中注意力、拥有逻辑思维能力即可。而且现在有很多书籍、课程和模型会告诉我们如何走完整个编程流程。但是,要是碰到合作项目,那编程就会变复杂了。
8. 学会沟通。
如果你无法用英语(或其他大家可接受的语言)正确书写,那就需要去进修一门写作课。如果你觉得实在没法克服自己的怯场顺利做演讲,那就应该去接受专门的课程。可以自己站在镜子前面练习,也参加一些聚会,逐步学习。这和会写代码一样重要。
下面谈谈你的看法:如果你是有着至少 5 年经验的从业人员,你希望自己一开始就能明白什么事情?如果你是个新手,那么哪条建议对你有用?欢迎畅所欲言。
译文链接:http://www.codeceo.com/article/8-programmer-career-tips.html
翻译作者:码农网 – 小峰