Matt DeBoard:我是如何成为程序员的

Matt DeBoard本是一名退伍军人。他在12周的时间内,由一名非程序员成长为一名专业开发者。对于如何成为一名程序员?他有着自己独到的心得与学习经验。他在博文《How I Became a Programmer》中介绍了自己成为一名程序员的学习经历,并通过问答形式,分享了很多学习经验和心得。CSDN对该文进行了编译,译文如下:

我昨天在"HackerNews"上发表了一个简短的回应——有关于反对"Ruby on Rails"的八星期指导课能够令你成为一名初级RoR开发人员的声音。我没有得到很多赞成票,所以我得到一个结论即是互联网上的谈话正越来越趋向于融入大众舆论。你可以想象一下,当我在收集来自世界各地的少数有价值的邮件的时候,我是多么惊讶。这些邮件大多在问:我过去做了什么,我是怎么做的,以及我是怎样得到一份工作的。我做了一个假设——由于在这些少数的邮件里面有来自遥远的洪都拉斯,那么一定有很多人想知道应该怎样去追寻一个程序员的职业生涯。

首先声明两点

请注意这个博客的标题是“我如何成为一名程序员”,而不是“你如何成为一名程序员”。我不是一名自学专家,也不是一名聪明、优秀程序员。而我在人生转折点做了很有意义的事, 并获得了成功。

和女朋友协商后,我倾注了所有时间,以期成为一名职业程序员,而这个过程仅用了12周,而非我之前说的10周。

我的故事

简单来说,我在海军陆战队服役10多年后,于2010年7月退伍。同年八月,我在一家国立彩票机构做PR的工作,于今年的二月中旬失业。今年五月中旬,我在“DirectEmployers”协会找到一份叫做“初级用户体验工程师”的兼职工作。八月末,我成了公司正式的“用户体验工程师”。

当我结束了那份PR工作时,我觉得自己已经受够了,我想成为一名程序员。我拿出所有积蓄,并整日以方便面和水为食。我的家人(尤其是父亲)简直要急疯了。今年的二月至五月期间,我连走路的时候都在学习编程,学习Linux,学习计算机科学。我自学了Python, Django, 并学会了一些函数式和命令式编程。此外,我对Linux的命令行已相当熟悉。

瞧,不再说废话,接下来我要谈谈我并未做的事情,然后我会回答Email中的部分问题。

我并未做过的事情

Email中问到最多的一个问题是:你如何在11周内学会了Django?

在此我想澄清一下,起初我并非为了学习Django而学习Django。Django只是一个很不错的抽象工具包,它可以帮助Python很容易地开发各种Web应用。我专注于学习Django只是件偶然的事情。

我过去,乃至现在都没有期望成为一名Django开发人员。至今我也不确定自己是否喜欢被称为Python程序员。

换言之,如果我过去为成为一名Django抽象层方面的专家而花费过度精力,而不是用心钻研Django工作原理,那么如今我肯定不会获得现在的能力。

来自邮件的问题:

问:你是通过网络或书籍开始学习的吗?

答:是的。Django拥有丰富的说明文档,StackOverflow是更加综合性的学习资源。此外,对于普遍的学习问题,我认为MIT的公开课“Introduction to Computer Science”视频课程系列是非常棒的计算机科学资源。

问:你每天,每周投入多少时间来学习?

答:很多时间。有时8小时,有时12小时,有时甚至16小时。我计算机编程很狂热,并如饥似渴地学习。我从不给自己偷懒和自我满足的机会,并付出了比平时多十倍的努力。我不玩游戏机,不看电视,甚至整天不睡觉。我每天所做的事情只有学习代码,黑客技术,编程和开发。

问:有人为你指导吗?

答:有。有个非常聪明的人一直在指导我学习编程,虽然我现在有了很大进步不再需要过多依靠他了。他几乎用了所有的方法,来引导我成为一名合格的程序员。在编程知识(尤其是Python和Django开发)、命令行、emacs & vim的学习上,他都给予了详细的指导。他是一个成功的、很受人尊重的、见多识广的怀疑论者。

问:你之前的工作背景和经验对你的自学有什么特殊的辅助作用吗?

答:有一定作用吧。我之前是一个计算机极客,在80年代末泡过很多论坛,学习了QBasic 和VisualBasic,还断断续续地学了几年的Python。除此之外就没有了。

问:你最初为什么选择学习Django?

答:一直作为我职业发展榜样的人凭借Django获得了成功。为此我也选择了Django。

问:介意分享一下你的学习过程吗?

答:我想再次说明一下,我不是自学专家,也不特殊。我只是非常努力,因为我生活很艰苦,并将自己逼到了死胡同,我别无选择,只能成功。我花掉了我所有可以花费的积蓄,就是希望可以找到一份我喜欢的职业。这就是我的学习过程。

问:请分享一下您学习Django的过程,及学习Django(或者HTML/CSS, JavaScript等前端技术)的技巧、网站、书籍;

答:除了认真的学习这门技术外,我没有其他技巧。为了学习Django,我花费了大量的时间,其中也有很多乐趣。

正如我上面说的,我并不觉得“学会了Django”,“学会了Ruby on Rails”,或者“学会了Noir”就成功了。我认为我之所以成功,因为我在学习这些语言的同时,还学习了这些语言背后的原理,之后我通过运用Web框架进一步深入学习了这些语言。框架也是在偶然机会学的。

阅读一些Django文档,加入irc.freenode.net中的#Django,经常在里面提问。这是我经常做的,感觉还不错。坦白讲,我不会死坐在那看这些东西,我会试着编写一些程序以加深理解其中的概念,然后再阅读来验证我的结果。有些人可能觉得没效果,但对我十分有用。用不用这种方法,最终由你决定。

现在HTML&CSS的学习资料非常多,它们也较容易学习。我学习了我能用到的所有HTML&CSS相关知识。我记不太清楚HTML&CSS的工作原理,比如语法&语义。我不知道如何创建“Gradient”,但我可以找到创建它的方法。我认为这是很重要的。

问:你是怎样向公司展示你的技术技能的?是否给他们看过你之前的作品?

答:Github。我十分强调使用Github。做一个项目,把它导入Github,以此向大家展示你的激情、智慧和好奇心。

当然,还有网络。参加一些技术会议;多和同行进行交流;要善于用Twitter、博客。多在自己专注语言领域的社区中进行交流;去认识更多的技术人员;同时向大家展示你是多么热爱编程工作。在我得到第一份编程工作前的一个星期里,我在Fabric上发起了一个关于“Python中Capistrano”的小型对话。这件事让我拥有了自己的人际小圈子。

结论

如果对我所做事情进行一个总结的话,我想说的是:

● 多提问,充满好奇心,充满热情;

● 要努力学习一种语言,而不是Web框架;

● 努力工作;

● 运用互联网,多参加技术会议,多用Twitter和博客。多参加社交活动,向大家展示你对工作充满热情,是团队的光荣;

● (可选项)把自己置于绝望的境地,除了成功,别无选择。

我最后想表达的观点是——我很幸运。我不是一个很了不起的程序员。今天结束后我仍然是一个新人,仍然有很多东西要学。我的职业生涯才刚刚开始。我通过努力改变了自己的人生,我感到十分自豪。希望我的经历能够帮助大家。

原文链接:How I Became a Programmer

译文出处:CSDN

时间: 2024-07-28 12:23:41

Matt DeBoard:我是如何成为程序员的的相关文章

我是一个混蛋程序员

我最近收到了这封来自Artsicle公司创始人的邮件,我大一时整个夏天都在这家创业公司里实习. 来自:Scott Carleton 主题:刚刚重构了你一年前写的 find_art.js 脚本 从某些方面上看,我心里想:你是个相当混蛋的程序员. 但从另一方面上讲,真扯蛋,这个脚本在过去的20个月里完美的运行,根本不需要我去碰它.:) 本文的作者: Dan Shipper Scott说的一点没错:我是个混蛋程序员.我不认真的注释我的代码.有时,我会违反DRY编程原则.我不喜欢使用奇妙的三重操作符表达

再谈“我是怎么招聘程序员的”(上)

原文链接:http://coolshell.cn/articles/4506.html 我以前写过一篇"我是怎么招聘程序员的"的文章(在CSDN那里有很多人进行了回复).今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因: 近半年来我在进行了大量的招聘工作,对面试有一些新的体会. 酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考. 我有一个同事最近面试了一家公司,他和我分享了一个博士专家对他的面试,也让我思考了一些. 在豆瓣上看到&quo

【转帖】我是怎么招聘程序员的

 我是怎么招聘程序员的 收藏 此文于2009-12-18被推荐到CSDN首页此文于2009-12-21被推荐到CSDN首页如何被推荐? 原文:http://coolshell.cn/?p=1870(酷壳) 很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章. 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,

再谈“我是怎么招聘程序员的”(下)

原文链接:http://coolshell.cn/articles/4490.html <<<再谈"我是怎么招聘程序员的"(上) 在上篇中,我们说到了一些认识人的方法(操作,知识,经验,能力),还有一些面试的方法(算法题,实际生产活动中的挑战),下面我们来说说,面试的风格,还有一些点评. 把应聘者当成你的同事 有些公司的面试官,在面试过程中问你一个算法题,然后等着你解答了,如果你给出一个答案,然后就会问你有没有更好的答案,如果你给出了正确的答案,他们就会问你一个更难的

我是一个垃圾程序员

英文原文:I Am a Bad Software Developer, 编译:Dennis Gao 在过去的4个月里,我深刻地反思了我自己.就在7个月前,我还在从事一份虽不是十分讨厌,但却也感觉不到任何快乐的工作.我还不能确切地描述为什么我会有这样的感觉,直到我的一个朋友再次找到我,说有一份工作虽然干的活一样,但有机会参与开源软件项目开发,然后我就跳槽了.这一切让我知道了: 我是一个垃圾程序员. 3个月后我选择离开了这家公司.当时我签的是临时合同,在还没有完全投入工作前,却先感受到了公司内部的派

我是怎么招聘程序员的

很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章. 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉得一个好的面试,面试官是很重要的,所以,本文想从"面试官"的角度来阐述一下.于是,有了下面这样一篇的文章,希望本文对你的职场经历有用,特别是那些正在招聘和面试程序员的朋友,我觉得这篇文章会

泄了气的老程序员

我是Tim Bray,XML 标准的创始人.我是一名程序员.我喜欢写代码.在过去的几十年里,我的基本活动就是写大量的代码,写大量关于这些代码的文章.我的博客的读者之多,足以证 实这是一种相当有用而合理的组合活动.但是,我最近有些沮丧,有些受打击.我想我会克服,但我认为这里面的故事值得与大家分享. Ed Finkler的文章The Developer's Dystopian Future让我产生了很多的共鸣.我很不希望像Matt Gemmell那样离去:Matt最终决定去写小说.我尽量让我的段落篇

探讨:东方程序员眼中的西方程序员是怎样?

引言:本文译自StackExchange上的一个讨论贴:东方程序员眼中的西方程序员是怎样的?,有网友发帖问: 在我看来,东方的程序员如何看待西方同行是一个有趣并且重要的问题. 通常认为东方国家(印度/中国/菲律宾)是为西方国家提供外包服务(美国和欧洲)的. 你有过参与离岸开发的经历吗?如果有,你对此有何看法? 对于西方程序员你有哪些总印象吗(比如是否具有协作精神,是否按时交付产品,或者他们的工作质量如何)? 以下是来自东方各国程序员的答案: 一.印度程序员 Danish 身为印度人,我想谈谈印度

30多年程序员生涯经验总结

在我30多年的程序员生涯里,我学到了不少有用的东西.下面是我这些年积累的经验精华.我常常想,如果以前能有人在这些经验上指点一二,我相信我现在会站得更高. 1.客户在接触到产品之后,才会真正明白自己的需求. 这是我在我的第一份工作上面学来的.只有当我们给客户展示产品的时候,他们才会意识到哪些是必须的.给出一个功能性原型设计远远比一张长长的文字表格要好. 2.只要有充足的时间,所有安全防御系统都将失败. 安全防御现如今是全世界都在关注的大课题.大挑战.我们必须时时刻刻积极完善它,因为黑客只要有一次成