不说鸡汤,谈谈现实:半路学编程能成大牛吗?

2015年08月24日 13:59 0 点赞 0 评论 更新于 2025-11-21 18:51

一、为何想转行做程序员?

在日常工作以及知乎上,常有很多人向我咨询职业生涯的抉择。他们大多对自身职业现状不满,打算学习编程成为程序员。

我问他们为何想成为程序员,答案多种多样,其中“工资高”“好找工作”“有职业发展”是较为常见的理由。

二、半路转行做程序员,在求职市场上的现状如何?

先抛开其他因素,仅讨论薪水。业界标杆 BAT 的薪水情况如下(图表为我司 100offer 制作):

  • 百度
  • 阿里
  • 腾讯

然而,对于大多数半路决定做程序员的人来说,很难达到上图所示的薪资水平。多数半路学编程的人会通过培训班来速成。在开发求职市场中,若通过 IT 培训班学习,往往会面临尴尬处境:无论真实水平怎样,在求职过程中都会受到“隐形的歧视”。

为何企业不愿给培训班学生 offer,甚至不安排面试机会呢?我摘录几位招聘者的看法:

  • 某创业公司 CTO:“X 智、X 马的学生没有基础,在实际工作中后劲不足,学新东西慢。”
  • 某互联网巨头 HR:“IT 培训班的老师本身水平参差不齐,代码能力强的人不会去当培训老师。”

深究根本原因,“优秀人员率”是关键所在。企业招聘开发人员,如同在篮子里挑选鸡蛋(人才)。像北邮这样的计算机名校,好比一篮子鸡蛋,只有 10 个质量次等的;而培训班,则好比一篮子鸡蛋,只有 10 个质量优等的。若你是公司的技术 leader 和 HR,在要保证招聘效率的情况下,会如何选择呢?

实际情况很残酷:尽管很多培训班在招生收费时,再三承诺“培训完包找到月薪 XXXX 的工作”,但很多培训班学生进入求职市场后,却长时间找不到工作。即便找到工作,平均薪资也不高。

当然,培训班学员或自学的程序员中,也有不少非常优秀的人,他们的薪资完全不输给北邮等名校的学生。那么,如何成为这样的人呢?请看下文。

三、非名校科班出身,如何脱颖而出?

一个有趣的现象是,有些去上培训班的学生,其实是正规四年本科计算机专业毕业生。他们为何还要去上培训班呢?因为在大学四年里,他们并未掌握应有的能力。

相反,有些自学成才的人,也成了同事眼中的大牛。我举两个例子:

  • A:中学时就对计算机和数学感兴趣,大学学习数学专业,毕业时放弃了国外数学专业的 offer,进入国内互联网巨头成为程序员。大学期间的 ACM 经历以及和同学合伙创业做网站的经历,是他求职互联网公司时拿到众多 offer 的核心竞争力之一。
  • B:学习能力强,学东西很快,大学学习工商管理专业,毕业后进入某跨国软件巨头做销售,年收入达几十万。后来突然决定学习编程,完全通过网络资源自学。凭借几个有影响力的个人项目,成功应聘开发职位,并且成长迅速。

通过以上两个例子,我想说的是,学编程并非易事。如果你本身对编程感兴趣,或者学习能力强且有毅力,成为高薪开发人员并非难事。但如果你对编程不感兴趣,学习新东西效率低下,只是冲着程序员工资高(实际上有很多程序员工资并不高)去报培训班学编程,那么成功的希望自然渺茫。

在能力突出但非科班出身的情况下,可以通过有影响力的个人项目、出色的 github 个人页、ACM 竞赛经历等来证明自己的能力。也可以在程序员聚集的社交网络积极活跃,获得其他大牛的认可,他们自然愿意帮你内推。

四、半路学编程的前辈们的成功经验

王江民先生的故事

写了江民杀毒的王江民先生,三岁时因患小儿麻痹后遗症而腿部残疾。他初中毕业后,回到老家从街道工厂的学徒工做起,最终成为拥有 20 多项创造发明的机械和光电类专家。38 岁时,江民开始学习计算机。几年后,他成为中国最早的反病毒专家,创立了影响力巨大的江民杀毒软件。王江民先生就是那种学习能力强、又有毅力的人,这样的人无论做什么事都容易成功。

Don Pinkus 的故事

或许王江民的故事你早已熟知,那我再讲一个 22 岁开始学编程,最终进入 facebook 的程序员的故事。他的天赋和经历与常人差距不大,是很好的学习榜样。

事情源于有人在 quora 上提问:“如果我想成为一名顶级软件工程师,17 岁开始学编程,还来得及么?”曾经在 Facebook 做开发的 Don Pinkus 在这个问题下,分享了他从 22 岁开始学习编程的经历。原文见 When are you too old to become an engineer?,现翻译如下(Don Pinkus 自述视角):

我,Don Pinkus,22 岁才开始学习编程,以下是我学习经历中的里程碑:

  • 22 岁:我学会了什么是 if 条件判断语句。
  • 24 岁:我进入 Facebook,成为一名分析师。
  • 25 岁:我在 Facebook 的职位变为工程师。
  • 26 岁:我利用业余时间做了个小项目,赚了一大笔钱。我觉得继续留在 Facebook 拿固定工资,永远不可能赚这么多,于是我离开 Facebook,用这笔钱开了一家创业公司,并从一家顶级风投公司获得了一大笔投资。

我今年 26 岁。我很幸运,但并不特别。只要你像我一样全身心投入一件事,一定也能成功。接下来,我将讲述我的经历,希望能激励你去做感兴趣的事。永远不要因为觉得“太晚了”而放弃新机会和学习新知识。

2007 年(18 岁)

我进入 Vassar College,成为医学预科班的大一新生。

2008 年(19 岁)

大二时,我转专业开始学习经济学。

2009 年(20 岁)

大三这年,我感染了 mono 病毒,大部分时间只能卧床,无法去学校上课。

2010 年 7 月(22 岁)

大学毕业,我进入 Morningstar 公司,从事数据分析工作。当时我对代码一窍不通。

2010 年 8 月(22 岁)

我为 Morningstar 的新主页提出一个想法,公司很喜欢。项目名为 FindData,公司安排了一个五人团队来完成,不过这五人都是新招的兼职员工。我常冒出新想法,但自己没能力实现,只能求助其他团队成员。他们是兼职员工,除了我的项目还有本职工作。为加快项目进度,我开始学习编程。

2010 年 12 月(22 岁)

开始学习编程,项目仍是 FindData。我开始学习 HTML、CSS 和 Javascript,这三种语言可用于构建各类网站,如博客、普通网站、Facebook 等。我打开 www.w3schools.com 开始学习,掌握了 HTML 和 CSS,并帮父亲的公司开发了主页。不过现在看来,这个主页做得很差,父亲没用,这是个明智的选择。接着我去 http://lynda.com 学习,掌握了 jQuery(本质是 javascript),此时我能为网站做出交互式原型。还是在 http://lynda.com 上,我又掌握了 PHP 和 MySQL,这样就能把数据存到数据库中,网站有了后端。至此,我成为一名全栈程序员,可以搭建完整的 web 应用。从对编程一无所知到能搭建完整 web 应用,我仅用了两个月时间,虽然应用效果还不够好,但至少能用了。

2011 年(23 岁)

Morningstar 未采用我的项目。这一年我完成了四个网站,项目包括 FindData、BarCraft、Morningstar 图形交互、Amuse。产品 FindData 完成后,Morningstar 不喜欢,最终未使用。后来我意识到这是明智的选择,即便现在的我来选,也不会用这个不完善的产品。当时我对此事耿耿于怀,申请转去新团队,新工作每天都要和 Excel 打交道,我很不喜欢。于是我每周用一天完成本职工作,另外四天都用来学习编程,几乎每月完成一个新网站,持续了五个月。

2012 年(24 岁)

我进入 Facebook 成为一名分析师,参与的项目有 Tickur、Lookgr、Roomidex、Searchnwork。我最初申请的是项目经理职位,但几轮面试后被拒。幸运的是,Facebook 的数据分析团队对我感兴趣,可能因为我痴迷网站、懂数学且有金融行业背景。几轮面试后,他们录用了我。在 Facebook 的工作环境促使我快速成长,周围同事都比我厉害,我必须尽力跟上团队步伐。在 Facebook,我学到了世界上最优秀科技公司的运作秘诀,Mark Zuckerberg 做决策时,从不盲目遵循“数据驱动 data driven”“最小化可行产品 minimum viable product”等流行术语。白天,我学习如何运作产品、项目甚至公司;晚上,我继续学习写代码实现想法。现在回想,当时我的代码很糟糕,但代码水平提升很快,积累了很多经验,建网站的速度也越来越快。

2013 年(25 岁)

我成为 Facebook 的工程师,参与项目 DataFinder。我并非优秀的工程师,虽然知道什么是 inheritance,在构造个人项目时能用 PHP 完成,但仅此而已。我甚至不知道什么是排序 sort,对算法和数据结构一无所知。我只清楚分析团队使用的内部数据工具还能做哪些改进以及如何改进,因此以工程师身份加入数据团队。虽然我写代码的速度可能只有科班出身工程师的十分之一,但得益于分析师的职业经历以及在交互和设计方面的能力,团队对我的评价不错。

2013 年 4 月

业余时间,我和高中同学 Paul 合作项目 http://Blockspring.com。他聪明且努力,但编程比我还业余,只懂一点基础。那时他刚辞去咨询师工作开始创业,是第一个全职加入项目的人。我接过很多私活,但 Paul 是我第一个真正意义上的合伙人。其他几位创始人常为网站设计和是否添加小功能争论,浪费了大量时间和精力。问题主要在我,我不知如何处理与他们的关系,也不懂如何设定预期目标。管理创业公司时,为公司设定好目标及所有权是最重要的事情之一。最终,我们还是完成了 Blockspring 项目。

2014 年 3 月(26 岁)

为 Blockspring 寻找客户。我们向许多公司推销 Blockspring 均失败。在博客上公开产品简介后,一个纽约人认为有潜力,我们飞去纽约向他推销,虽未成功卖出产品,但他承诺出钱让我们留在纽约一周继续开发。我向 Facebook 申请一周假期留在纽约开发。Facebook 允许员工业余兼职,很多工程师有业余项目或兴趣爱好,公司为留住有创业精神的员工,必须允许他们追求梦想,也可把公司环境建设得更有吸引力,让员工更爱本职工作,这想法很酷,不妨去 Facebook 体验!但推广和扩展 Blockspring 分散了我的精力,让我无法专注于 Facebook 的本职工作,我认为这对公司和团队都不公平。若想继续开发 Blockspring(虽然网站几乎没用户),我只能离开 Facebook,于是我辞去了工作。感谢 Facebook 提供全世界最好的工作,不仅薪资高、福利好,还让我结识了很多好朋友。

2014 年 6 月

我们加入 Y - Combinator 公司,这是一家很棒的孵化器,为初创公司提供资源助其快速发展。我们忙碌了三个月,每天工作 16 个小时。多数人在一个项目上连续工作两天就会厌倦,刚加入 Y - Combinator 时,我们在白板上写了数字 85,意味着从那时到产品演示,只有 85 天完善产品。我们日夜工作,最终按时完成产品并获得投资。

2014 年 8 月

我们结束与 Y - combinator 的合作,搬到旧金山的新办公室。我休息了一个月,周末做自己的事而非 Blockspring。现在我又忙碌起来,完善 Blockspring 相关功能,学习图像、动画、博客技术,浏览网上的交流学习经验。

以上便是我的全部经历,希望对你有所启发。

作者信息

洞悉

洞悉

共发布了 3994 篇文章