`

[转载]系统管理员变程序员 四步转型

阅读更多
作者:Justin James
翻译:PurpleEndurer,2010-08-03 第1版



  一位TechRepublic成员想知道如何实现从系统管理员到程序员的转型。好消息是他已经有一些开发经验:

  我一直想转行,从系统管理员转做一个软件开发者,我有一些利用Python脚本来让Linux任务自动化的经验,我一直在研究面向对象的范例,Git仓库用法和Django的Web应用程序开发模式,当然我的经验中大部分是管理,配置和安装Linux服务。

  我想知道如何制做简历和求职信更能打动公司,因为我的系统管理经验比软件开发多。

  我正在寻求一份初级程序员的工作!

  这位成员已经给自己打下了良好的基础,例如使用Python和诸如使用源代码管理之类的“保健”做法。我没有使用过Django,但我听说这是个好东东。他也正视自己的能力,寻求初级程序员的职位。所以,凭借这个良好的开端,他可以做些什么来实现职业生涯的转变呢?以下是我的意见。


  第一步:专注于必备与差别

  我的职业发展口头禅很简单:牢固掌握初级程序员的“必备”技能,并专注于个体差别。对于典型的企业开发,入门级职位必备的有:

这些语言中的一种或多种:VB.NET,C#,PHP和Java
使用数据库/ SQL知识
版本控制的概念
JavaScript,HTML和CSS的基础知识
Web服务(SOAP或REST)
Web开发基础知识(理解会话,Web开发模型等等)。

  入门级程序员的个体差别如下:

体验一个真实环境中的项目(这是最重要的区别)
在团队环境中亲身进行版本控制
团队协作,最好是实行正常的开发模式并确定等级
质量保证
单元测试
高级JavaScript,HTML和CSS
二级语言,如Python、Scala和Ruby
调试


  第二步:为开源项目作贡献或作志愿者

  我为打造开发履历提的下一条建议应该不会让普通读者感到惊讶:找一个可以尽一份力的开源项目,或捐赠你的时间,到当地慈善机构进行编程。

  在这个阶段,如果你选择了开源项目这个途径,应找到一个现有的项目,而不是试图自己开创;向项目中的其他开发人员通报你的技术水平,询问他们是否同意让你略效绵力。

  如果你成为一个慈善机构的志愿者,要确保该机构中有可以和你一起工作和学习的程序员。要保持谦虚,听取他们的意见;如果遇到自己觉得没有任何意义的事情,要通过一种友好的方式询问他们为什么做这样的事情,这样你可以从他们身上学到东西。

  这种方法的主要好处

  您将获得宝贵的经验,这些经验如果你只靠自学来获得的话会需要更长的时间。经过半年月或一年的时间(即每周5至15小时),你将拥有令人印象深刻的入门级技能,并且你的简历看上去会很不错。最妙的是,它不会花费你一分钱!

  你会对自己的优劣和喜恶(这并不一定与优劣相同)有一个很好的认知。你也会发现,这对你来说是否真的是一个不错的职业选择。

  在这个过程中,你不应该丢弃目前的职位。如果经济与四年前一样,要丢弃自然容易一些。但现在,就业市场在许多方面仍然很疲软,我不会匆忙跳槽,除非我确实能胜任新工作,因为另觅一个系统管理员的工作的希望非常渺茫。

  你将有别于其他初级程序员,其他初级程序员刚刚离开学校,寻找第一份工作。由于某些原因,绝大多数大学生有这种奇怪的信仰,他们花4年时间节衣缩食上了大学,指望着毕业时有工作虚位以待。1998年时,辍学大学生只要知道HTML,一年就可以挣5万美元,确实如此。更糟的是,大多数院校在教学中省去了作为程序员真正需要的技能,如团队协作,像敏捷开发之类的开发方法,源代码管理,质量保证,等等。雇主们对雇员的技能要求比10年前更高,这些技能大部分只能从现实环境中学到,这对大多数入门级程序员来说是一个重大的挑战。


  第三步:积极进取

  如果你所在的地方有程序员组织,请加入他们的集会并结识其中的每一个人。在集会前后的时间里与他们交谈,你会学到许多东东。只要让他们知道你正在努力学习,我保证他们会急不可待地与你分享知识并提供建议。

  第四步:研究开发的历史

  我想将维基百科作为一种了解开发历史的资源。如果你花一些时间阅读关于葛丽丝·霍普,阿兰图灵,艾伦·凯,拉里·沃尔,丹尼斯·里奇,保罗·格雷厄姆,约翰麦卡锡(仅举几例)的事迹,在未来将会具有比我见过的大多数程序员们更好的学习基础。

PurpleEndurer注:
Grace Hopper(葛丽丝·霍普)
http://zh.wikipedia.org/zh-cn/Grace_Hopper
Alan Turing(阿兰·图灵)
http://zh.wikipedia.org/zh-cn/%E8%89%BE%E4%BC%A6%C2%B7%E5%9B%BE%E7%81%B5
Alan Kay(艾伦·凯)
http://zh.wikipedia.org/zh-cn/Alan_Kay
Larry Wall(拉里·沃尔)
http://zh.wikipedia.org/zh-cn/Larry_Wall
Dennis Ritchie(丹尼斯·里奇)
http://zh.wikipedia.org/zh-cn/Dennis_Ritchie
Paul Graham(保罗·格雷厄姆)
http://zh.wikipedia.org/zh-cn/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86

  我认为自己因为了解这段历史而成为一个更好的程序员。当我们浪费时间做无用功时,这方面的知识也可以帮助我看明白(例如,Web开发对于从事这个行业已超过30年的人而言是一个似曾相识的糟糕)。

  此外,当别人给你提供指导时,你也能更好地分辨对方是装腔作势者还是真才实学者。

  总结

  通过上述这些步骤,你将在现有IT技能基础上重塑,并且在招聘经理查看你的简历时处于更好的位置。你在接受面试的时候,要强调你在先前的职业生涯中学到了大量的故障排除和调试技巧,以及研究问题的方法;这是大多数初级级程序员最缺乏的。

  你可以采取的最重要行动是在以往的经历中获得在现实环境中的动手经验,获得的最好方式是贡献你的时间。许多公司不愿意为新程序员提供机会,而你通过获得这些经验,看起来像一个更好的候选者。(完)


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Purpleendurer/archive/2010/08/03/5784848.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics