初级程序员如何快速成长?

刚好在Quora上看到一个类似的问题,「如何在三年之内成长为顶级 Coder?」

排名第一的答案是一幅发(nao)人(dong)深(da)省(kai)的漫画,分享给大家:

楼主简单翻译如下:

Days 1-10 自学变量、常量、数组、字符串、公式、申明、函数... …

Days 11-21 自学流程、指针、引用、类、对象、继承、多态... …

Days 22-697 做大量的娱乐性编程。在hacking中寻找乐趣,但一定要记住从失败中学到经验。

Days 698-3648 和其他程序员交流,共同完成项目,向他们学习。

Days 3649-7781 自学高级理论物理学,以及量子力学。

Days 7782-14611 自学生物化学、分子生物学、遗传学... …

Days 14611 用生物学知识做一瓶返老还童药水。

Days 14611 用物理学知识建造一个通量电容器,回到第21天。

Days 21 杀死以前的你,取而代之。

(文末)在我看来,这是最简单的方式完成「21天学会C++」。

—————————————————————————————————————

哈哈,看完了这个神奇的漫画,是不是,脑!洞!大!开!

但是如果你笑笑就算了,那就真是Too young, too simple, sometimes too naive.

因为,用三年时间成长为顶级Coder是有可能的。

不信?排名第二的答案是酱紫说的,

快速成为顶级Coder,你需要的是「自律」和「坚持」。

请注意,我们说的是「Coder」,而不是「Programmer」或「Software Engineer」。

对于Coder,我们是有客观评价标准的,那就是参加「编程比赛」。

楼主研究了一下所谓的「编程比赛」或「算法大赛」:

除了国内的各种程序设计大赛,如百度之星、有道难题,更推荐参加国外的编程比赛网站,如「topcoder」、「codeforeces」。这些网站上每个月都有比赛,只要你有一台能上网的电脑就可以免费参加,和全球的Coder竞争,赢得了比赛还有美金拿哦。

简单来说,你至少需要做到以下几点:

进入topCoder的练习室,每天花4-6个小时练习编程。

制定一个计划,比如:每天解决10个初级问题,每周搞定3个中级问题、1个高级问题。

如果在某个问题上困住了,马上去论坛求助。要知道,问问题体现了你的思维逻辑,问出好问题也是需要练习的。试着每周在问答网站 stack over flow 上问一个问题吧!

不要闭门造车,把你的代码展示给别人看,他们提出的意见会让你事半功倍,推荐免费网站coder review。

学会看别人的代码,看代码其实比自己写代码更难,但是高手是可以轻易调用别人的代码的,推荐github,可以轻松地找到海量的开源代码。

建议采取一些外部的措施克服拖延症,比如开通一个博客、或微博,每天在上面记下你今天做过的一件重要的事情,保证每天晚上都带着巨大的满足感入睡。

如果坚持做到以上这些,你完全成为一名顶级Coder。

需要注意的是,编程比赛关注的是算法能力;

但是,要成为一名 Programmer或 Software Engineer,你还需要项目经验。

正如Facebook喜欢雇佣所谓的 「Full stack programmer」,就是一个人从设计、到交互、html、css、javascript、server、sql、架构,以及数据统计都能做。成为Full Stack Programmer最好的方式就是不断做个人项目。

参加Hackathons 或 game jams 就是锻炼项目能力的好方法。

在规定的时间内,一群开发者分享、讨论、组队、分工协作,用创意思维完成项目任务。无论是制作一个游戏,还是网站,在整个项目的进程中,你会不断经历发现问题、解决问题、获得经验的过程,从而保证在实际工作中也能轻松解决问题。

总之,

楼主以为,入行时间并不是衡量人才能力的绝对标准,碌碌无为的「老人」在各行业都不鲜见。在3年之内能否成长为一名优秀的 Coder 或 Programmer,其实取决于你对所做事情的理解程度。

对所做事情理解的越深,你就会做的越好。

成为一名优秀的程序员和成为其他行业的高手一样,都需要不停地学习、练习、反省和总结。这不仅是最初3年的要求,而是贯穿整个职业生涯的要义。

所以,初级程序员想要获得快速成长,一定要拥有不怕麻烦的责任心,和不满足于现状的上进心。

成为顶级 Coder 或 Programmer之后,无论是升职加薪,还是出任CEO,赢取白富美,走上人生巅峰都不是梦想啦~!

时间: 2024-09-10 14:17:13

初级程序员如何快速成长?的相关文章

想问个问题就是初级程序员怎么有点看不懂ITEYE,不如说首页的很多问题都没见过。

问题描述 刚来ITEYE不久发表一下对ITEYE的看法.别拍砖哦.可能就是刚来能站在旁观者清的角度上看一下ITEYE.除了问答版块有个入门技术,整体感觉有点华而不实,把初级程序员的吸引力降低了,当然俺不是说ITEYE的坏话,只是想ITEYE发展的更好,提个建议而已.如果有个菜鸟板块就好了,就叫:师傅领进门板块哈哈.要么就来个新手入门也好呀.反正我看着首页晕晕乎乎的.还有就是怎么有那么多什么什么专访,反正我是没兴趣看.还不如来个和天涯类似的天涯职场,这个职场只说咱们程序员的事情. 解决方案 先潜水

教你如何成为一名Java初级程序员

程序|程序员 目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员.本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享. 个人认为想成为一个合格的JAVA初级程序员应该具备如下知识: 一.面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;

如何成为一名合格的Java初级程序员

目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员.本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享. 个人认为想成为一个合格的JAVA初级程序员应该具备如下知识: 一.面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类:什么是封装,什么是多态,什么是继承:什么是抽象类,

职场-java web方面的初级程序员刚到公司很多不会怎么办

问题描述 java web方面的初级程序员刚到公司很多不会怎么办 大牛们求指点 本人刚从培训班出来 培训时感觉学的不错 但是上班后发现公司用的东西比较复杂 各种json的运用 xml的运用WebService 与dblink做服务交互 与数据传输 maven与GIT 这些以前培训班都没怎么接触过 现在感觉压力好大 想学 都不知道从哪里开始 现在每天都失眠 求指点 谢了 好心人求指点

腾讯官方微博出题,半小时写出程序可当初级程序员

问题描述 某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率. 解决方案 解决方案二:做不出来的人是不是还算不上程序员撒解决方案三:半小时做出来.就可以去腾讯做初级程序员了..解决方案四:感觉跟概率论的做公交停站次数有些相似,只不过这个会降级,降到1不能降...求初级程序员以上的人解答解决方案五:0.3的8次方乘以9/1000对吗...解决方案六:30%解决方案七:错了,0.

【AI系统首次实现真正自主编程】利用遗传算法,完爆初级程序员

本文讲的是利用遗传算法,完爆初级程序员,让AI自动编程一直是计算机科学家的梦想.目前这个方面的成果还非常有限,比如让AI自动补完编程语言,或者执行简单的加法程序.今天我们要介绍的这项工作,号称是第一个能够全自动生成完整软件程序的机器学习系统"AI Programmer". 研究人员表示,他们用这个系统证明了长久以来的假设,那就是功能完备的程序确实能够被自动生成.具体到这项工作,AI Programmer利用机器学习中的遗传算法,模拟复杂的指令.虽然现在AI Programmer生成的程

ios-老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频

问题描述 老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频 作为一名对C++十分熟悉的老程序员,如何快速掌握iOS开发, 斯坦福的iOS在线课程很有名http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall 还有这套课程 http://www.xcelme.com/courses.php 教师Gary Bennett写过两本iPhone的书for Apress Books: iPhone Cool Pr

编程报错-初级程序员 正在学习老黑莓编程,有几个问题请教

问题描述 初级程序员 正在学习老黑莓编程,有几个问题请教 我是照着黑莓开发入门到精通那本教程书,编的,但是到后来一些页面,编的代码,老是报错,下载的JDE是7.1的,是不是跟教程比是新的,教程里6才刚出来,咋办

string-java中 String类问题<初级程序员的自我修远>

问题描述 java中 String类问题<初级程序员的自我修远> 刚学习java语言 我看String中源码写的 private final char[] c; 为什么在自己的类中这样写就会报未初始化的错误 解决方案 private final char[] c = new char[长度]; 解决方案二: final char[] c这样写的话,c就不能再指向别的引用,但是你又没给人家初始值,编辑器自然不干了. 解决方案三: 有final属性,要有构造器,并且初始化该属性 public cl