收藏 分销(赏)

我是如何成长为一名程序员的.doc

上传人:xrp****65 文档编号:8850510 上传时间:2025-03-04 格式:DOC 页数:7 大小:48.50KB 下载积分:10 金币
下载 相关 举报
我是如何成长为一名程序员的.doc_第1页
第1页 / 共7页
我是如何成长为一名程序员的.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
Matt DeBoard:我是如何成为程序员的 2011-12-18 22:30 | 14066次阅读 | 来源:MattD 【已有0条评论】发表评论 | 作者: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文档,加入中的#Django,经常在里面提问。这是我经常做的,感觉还不错。坦白讲,我不会死坐在那看这些东西,我会试着编写一些程序以加深理解其中的概念,然后再阅读来验证我的结果。有些人可能觉得没效果,但对我十分有用。用不用这种方法,最终由你决定。 现在HTML&CSS的学习资料非常多,它们也较容易学习。我学习了我能用到的所有HTML&CSS相关知识。我记不太清楚HTML&CSS的工作原理,比如语法&语义。我不知道如何创建“Gradient”,但我可以找到创建它的方法。我认为这是很重要的。 问:你是怎样向公司展示你的技术技能的?是否给他们看过你之前的作品? 答:Github。我十分强调使用Github。做一个项目,把它导入Github,以此向大家展示你的激情、智慧和好奇心。 当然,还有网络。参加一些技术会议;多和同行进行交流;要善于用Twitter、博客。多在自己专注语言领域的社区中进行交流;去认识更多的技术人员;同时向大家展示你是多么热爱编程工作。在我得到第一份编程工作前的一个星期里,我在Fabric上发起了一个关于“Python中Capistrano”的小型对话。这件事让我拥有了自己的人际小圈子。 结论 如果对我所做事情进行一个总结的话,我想说的是: ● 多提问,充满好奇心,充满热情; ● 要努力学习一种语言,而不是Web框架; ● 努力工作; ● 运用互联网,多参加技术会议,多用Twitter和博客。多参加社交活动,向大家展示你对工作充满热情,是团队的光荣; ● (可选项)把自己置于绝望的境地,除了成功,别无选择。 我最后想表达的观点是——我很幸运。我不是一个很了不起的程序员。今天结束后我仍然是一个新人,仍然有很多东西要学。我的职业生涯才刚刚开始。我通过努力改变了自己的人生,我感到十分自豪。希望我的经历能够帮助大家。 How I Became a Programmer written on Wednesday, November 23, 2011 I posted a very brief response to a post on HackerNews yesterday challenging the notion that 8 weeks of guided tutelage on Ruby on Rails is not going to produce someone who you might consider a "junior RoR developer." It did not garner many upvotes so I figured that like most conversation on the Internet it faded into the general ambient chatter. Imagine my surprise when I woke up to couple handfuls' worth of emails from around the world asking me what I did, how I did it, and how I got a job. I'm assuming, judging by the relatively small amount of mail I got from a random aside on HN*, that there must be a lot of people who are trying to figure out how to pursue a career in programming. First, A Disclaimer or Two Please note that this blog post is entitled, "How I Became a Programmer", not, "How You Can Become a Programmer." I'm not a self-help guru or wise or even a particularly good programmer. I did, however, decide at an inflection point in my life to pursue something vigorously and it paid off. Any insights gleaned from my experience are yours to make on your own; I doubt I'll have much insight for your personal situation. Also, after consulting with my girlfriend, my total time of dedicated effort to becoming a paid programmer was actually about 12 weeks, not ~10 as I stated in the post I linked to above. So, there you go. My Story: tl;dr In brief: I left the Marine Corps after more than a decade in July 2010. I got a job at the state lottery as a PR flak in August of that year, and lost it in mid-February. In mid-May I got hired as a part-time "junior User Experience engineer" at DirectEmployers Association. By late August I was a full-time, regular old "User Experience engineer." When I lost my job I decided that I was done doing PR; I wanted to be a programmer. I took my tax return and stretched it out on a ramen and water diet. My family (dad, mostly...) was nervous as hell. In that February to May span I spent basically every waking moment learning to program, learning about Linux, and learning about computer science. I taught myself Python, I taught myself Django, I learned some functional and imperative programming, and got semi-decent at the Linux command line. Voila. Without further ado, I'm going to write about what I didn't do, then dive into the questions I got via email. What I Didn't Do One of the things that was asked in almost every email was, "How did you learn Django in 11 weeks?" I want to make it clear that I didn't set out to learn Django per se. Django is just a very nice toolkit of abstractions that makes creating web applications easy using Python. As far as I'm concerned learning Django was incidental to learning to program. I did not -- and still don't -- want to be considered a "Django developer." I'm not even sure I want to refer to myself as "a Python programmer." In other words, I do not feel that I would be as modestly competent as I am today if I had spent an inordinate time becoming an expert at the abstraction layer of Django, instead of learning the concepts that make Django work. Questions From Email Did you begin with web or book resources? Yes I did. :) Django has excellent documentation, but StackOverflow is a much more comprehensive help source. On more general topics, I believe that MIT's OpenCourseware Introduction to Computer Science video lecture series was one of the first real computer science resources I consumed. I watched through lecture 13 or something. What kind of hours were you putting in on a daily and weekly basis? A lot. Sometimes 8, sometimes 12, sometimes 16. I was a willfully unemployed single parent, so I not only had a passion for programming, I was also hungry (figuratively speaking) and desperate. I put myself in a position where I had no room to be lazy or complacent. I think above all else that made me work 10x harder. I didn't play video games, I didn't watch TV, I didn't sleep all day. All I did all day every day was code, hack, program and develop. Did you have a mentor of any kind? I did indeed. A very smart guy was and is my mentor still, though I've learned enough that I don't rely on him as much for guidance as I used to. He mentored my metamorphosis into a programmer in nearly every way. Some specific ways he provided leadership: Practical programming knowledge (especially Python & Django); command-line expertise; got me up-and-running with emacs & vim; career advice. It helps that he is a very successful & well-respected guy who has a reputation for informed skepticism. Was there anything from your previous background and experience that you feel was a particular asset in your self-guided studies? Not really. I was a computer geek from way back, had a few BBSes in the late 80s (yes, I'm a child of the 80s & 90s), learned QBasic & VisualBasic back in the day, and tinkered with Python for a few years off and on... mostly off. Other than that, nope. How did you come to choose Django to study? The guy whose career I was trying to emulate had made a very successful career for himself with Django. Pretty straightforward from there. Would you mind sharing your learning process? I want to restate that I am not a self-help guru or particularly special in any way. I just worked hard because I was hungry and in a self-made corner where I had no choice but to succeed. I consumed everything I could that would get me to a place where I could make money doing something I love. That was my learning process. Seriously. I would appreciate it if you can show me how you learned Django and give me any tips/tricks sites/books to look at to learn Django or even HTML/CSS, JavaScript (Front-end Engineering stuff) I don't have any tips or tricks to learning except just doing it. I spent a lot of long (but enjoyable) hours learning stuff. As I said above, I did not and do not consider it fruitful to "learn Django," "learn Ruby on Rails," or "learn Noir." I think a contributor to my success was learning the languages and the concepts behind them, then using a web framework to better learn that language. I learned the framework incidentally to my education in the language. Go read the Django docs, join #django on and ask questions constantly. That's what I did and it worked ok for me. But honestly I didn't just sit down and read stuff most of the time. Usually I was making things in order to learn concepts better, then reading in support of my goals. I'm a hands-on learner. Some people aren't, but I am so it worked for me. Decide on your own if that's good for you. As far as HTML & CSS there is just so much information out there, and they're such straightforward concepts. I learned as much HTML & CSS as I needed to do what I needed to do. I did not memorize much about how HTML & CSS work, i.e. syntax & semantics. I don't know right off the top of my head how to create a gradient, but I do know right off the top of my head how to find out. I think that's the important thing. How did you show the company your skills? Did you show them the projects you've made? Github, Github, Github. I can't emphasize it enough. Make stuff, put it on github, show people you're passionate and smart and curious. Also, network. Attend meetups. Meet people. Tweet. Blog. Interact with the community around your language(s). Get to know people. Demonstrate to the world that you really love programming. The week before I saw the job posting for my first programming job I delivered a lightning talk on Fabric, Python's Capistrano analog. That got me on a few people's radar. Conclusion If I had to summarize the big overview of how I did what I did, I'd say: 1. Ask questions, be curious, be passionate 2. Learn a language, not a web framework for god's sake. 3. Work hard 4. Network, attend meetups, tweet, blog, be social and show people you'd be fun to work with, and a credit to team. 5. (Optional) Put yourself in a position of desperation, so there is no choice but to succeed My final point really is that I got lucky. I'm not an amazing developer. At the end of the day I'm a newb and I still have a lot to learn. My career is just beginning but I am proud of the effort I put into changing my life. I hope my experiences can help some other folks. * I should note that I was already of a mind to blog about this since my cousin Jeff has also taken up programming after leaving the environmental consultancy business. This entry was tagged career and programming
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服