一、为什么会要改做程序员?

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

我问,为什么想要做工程师?

答案五花八门,其中「工资高」「好找工作」「有职业发展」是很常见的理由。

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

抛开其他因素,先只讨论薪水:业界标杆 BAT 的薪水如下

百度

阿里

腾讯

但对于大多数半路决定做程序员的人来说,上图这样的薪资是很难达到的。

多数半路学编程的人,是通过培训班来速成的。在开发的求职市场上,如果你是通过 IT 培训班学习的,那一定会面临尴尬的境地:不管真实水平如何,都会在求职过程中受到「隐形的歧视」。

为什么企业不愿意给培训班学生 offer,甚至连面试机会也不安排?

我摘录几个招聘者对此的看法——

某创业公司 CTO :「X智、X马的学生没有基础,在实际工作中后劲不足,学新东西慢」

某互联网巨头 HR :「IT 培训班的老师本身水平就层次不齐,代码能力强的人不会去当培训老师」

如果深究根本原因,「优秀人员率」是关键。

企业招开发,好比在篮子里挑鸡蛋(人才)。北邮这样的计算机名校,好比一篮子鸡蛋,只有10个质量次等的;培训班,好比一篮子鸡蛋,只有 10 个质量优等的。

如果你是公司的技术 leader 和 HR,在要保持招聘效率的情况下,会如何选择呢?

实际情况是残酷的:尽管很多培训班在招生收费时,一再承诺「培训完包找到月薪 XXXX 的工作」,但很多培训班的学生进入求职市场时,却迟迟找不到工作。找到的工作的人中,平均薪资也不高。

当然,培训班或者自学的程序员,也有不少非常优秀的人,论薪资完全不输于北邮这种名校的学生。如何成为这样的人?且看下章。

三、如果不是名校科班出身,怎么使自己脱颖而出?

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

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

A,中学时对计算机和数学感兴趣,大学学习数学,毕业时放弃了国外数学专业的 offer,进了国内互联网巨头做程序员。在大学期间的 ACM 经历、和同学合伙创业做网站的经历,是他求职互联网公司时 offer 拿到手软的核心竞争力之一。

B,学习任何东西都很快,大学学的工商管理,毕业去某跨国软件巨头做销售,年入几十万。后来突发心血学编程,完全是通过网络资源自学。通过几个有影响力的个人项目,成功应聘开发职位,同样成长很快。

藉由上面两个例子,我想说的是:学编程并不是一件轻松的事。
如果你本来就对此感兴趣,或者学习能力强且有毅力,成为一个高薪的开发并不难。

如果你对编程不感兴趣,学新东西效率低下,只是奔着程序员工资高(其实有很多工资不高的程序员),去报个培训班学编程,那么希望自然是渺茫的。

在能力突出又非科班出身的情况下,可以通过影响力大的个人项目、闪亮的 github 个人页、ACM 等来为自己的能力背书。

也可以在程序员聚集的社交网络活跃,得到其他大牛的认同,他们自然愿意帮你内推。

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

写了江民杀毒的王江民先生,三岁时因患小儿麻痹后遗症而腿部残疾;他初中毕业后,回到老家从一名街道工厂的学徒工干起,最后成为拥有 20 多项创造发明的机械和光电类专家。

38 岁的时候,江民开始学习计算机。几年后,他就成为中国最早的反病毒专家,创立了影响力巨大的江民杀毒。

王江民先生,就是我前面说的那种学习任何东西都很快、又有毅力的人。这样的人,无论做什么事都能成功。

或许对于王江民的故事,你早已烂熟于心,那我再说一个 22 岁学编程,最终进了 facebook 的程序员的故事。他的天赋和经历,和我们常人的差距不算很大,是很好的学习榜样。

事情的缘由是这样的:有人在 quora 上提问,「如果我想成为一名顶级软件工程师,17 岁开始学编程,还来得及么?」

曾经在 Facebook 做开发的 Don Pinkus 在这个问题下,分享了他从 22 岁开始学习编程的经历。

如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

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

  • 22 岁 – 我学会了什么是 if 条件判断语句。

  • 24 岁 – 我进入 Facebook,成为了一名分析师

  • 25 岁 – 我在 Facebook 的职位变成了工程师

  • 26 岁 – 我用业余时间做了个小项目,赚到一大笔钱。我觉得自己继续留在 Facebook 拿死工资,永远也不可能赚这么多钱,于是我便离开了 Fackbook,用这笔钱开了一家创业公司,并从一家顶级风投公司处获得一大笔投资。

我今年 26 岁。

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

2007 年(18岁):我进入 Vassar College,成为医学预科班的大一新生。

2008年(19岁):大二这年,我转专业,开始学习经济学。

2009 年( 20 岁 ):大三这年,我感染了 mono 病毒,大部分时间都躺在病床上,不能去学校上课。

2010 年 7 月( 22 岁):这一年,我大学毕业了,进入 Morningstar 公司工作,从事数据分析。

我在 Morningstar, 一家金融公司,做一名数据分析师。那时的我还完全不懂代码。

2010 年 8 月( 22 岁):我为 Morningstar 的新主页出了个 idea,他们很喜欢。

项目:FindData

我提出为公司开发一个新主页,公司的人很喜欢这个 idea,因此给我安排了一个 五人团队来完成此事,虽然这五人都是新招进来的兼职员工。

我常常会冒出新想法,但没有能力自己实现,因此只能求助其他团队成员来帮忙。他们是兼职员工,除了我的项目外,还有自己的本职工作要完成。我希望加快项目的进度,于是便开始学习编程。

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 应用,我只花了两个月时间。虽然这个 web 应用看上去还不够好,但至少能用了。

2011年(23岁):Morningstar 没使用我的项目。同时在这一年,我完成了四个网站。

项目:FindData、BarCraft、Morningstar 图形交互、Amuse

我的产品 FindData 完成后,Morningstar 却不喜欢,所以他们最终没有使用。后来我意识到,这其实是个明智的选择。即使是现在的我来选,也不会使用这个不完善的产品。

但当时的我,对这件事耿耿于怀。我申请转去了新团队,新的工作里,我每天都要和 Excel 打交道。

我真不喜欢这样的工作。于是我每周用一天时间完成本职工作,另外四天都拿来学习编程。我几乎每个月都会完成一个新的网站,这样持续了五个月的时间。

2012 年(24岁):我进入 Facebook ,成为一名分析师。

项目:Tickur、Lookgr、Roomidex、Searchnwork

我在 Facebook 最初申请的职位是项目经理,但几轮面试后,我被拒绝了。

幸运的是,Facebook 的数据分析团队对我很感兴趣。也许是因为我着迷于网站,懂数学,同时还有金融行业背景。几轮面试后,他们录用了我。

在 Facebook 的那段时间,工作环境促使我快速成长。周围的同事都比我厉害,因此我不得不尽最大的努力,让自己跟得上团队的脚步。

在 Facebook,我学到了世界上最优秀的科技公司的运作秘诀。Mark Zuckerberg 做决策时,从不盲从「数据驱动 data driven 」、「最小化可行产品 minimum viable product」这些流行术语。

白天,我学着如何运作一款产品、一个项目、甚至是一个公司。

晚上,我继续学习写代码,实现自己的想法。现在想想,我当时的代码非常糟糕,但代码水平在快速进步。我从中获得了很多经验,建网站的速度也越来越快了。

2013 年(25岁):我成了一名Fackbook的工程师

项目:DataFinder,一个 Facebook 的项目

我不是个优秀的工程师。虽然我知道什么是 inheritance,在构造个人项目时,也能用 PHP 完成,但也仅此而已了。

我甚至不知道什么是排序 sort,并且对算法和数据结构一无所知。

我知道的仅仅是:分析团队使用的内部数据工具,还可以做哪些改进,同时我还知道该如何做。因此,我以工程师的身份加入了数据团队。

虽然,我写代码的速度可能只有科班出身的工程师的十分之一,但感谢我分析师的职业经历,同时在交互及设计上的能力,所以团队内部对我的评价很不错。

2013 年 4 月:业余时间,我开始做 http://Blockspring.com
项目:Blockspring

在业余时间,我和高中同学 Paul 合作一个项目 Blockspring。他是个聪明又努力的人,但在编程上比我还业余,只懂一点基础。那时候,他刚辞去了咨询师的工作,开始创业。

我们项目的其他创始人都是兼职的,Paul 是第一个全职加入的。那时候我已经接过很多私活了,但 Paul 是我第一个真正意义上的合伙人。

其他几个创始人常常对网站的设计,还有是否要加入一些小功能而争论,这浪费了大量的时间和精力。

我并非想说我的第一批创始人不好,错误主要在于我:不知道如何处理与他们的关系,也不懂如何为大家设定预期目标。当你管理一家创业公司时,你要做的最重要的事情之一,就是为公司设定好目标及所有权。

最终,我们还是完成了 Blockspring 项目。

2014 年 3 月(26岁):为 Blockspring 找到了客户

我们尝试向许多公司推销 Blockspring,但都以失败告终。

我们在博客上公开了产品简介,一个来自纽约的人认为它挺有潜力,于是我们便飞去纽约向他推销。

我们最终还是没能将产品卖给他,但他承诺出钱让我们留在纽约一周,好继续开发Blockspring。

我向 Facebook 申请了一个星期的假,留在纽约继续开发 Blockspring。

Facebook 允许员工业余兼职。很多工程师都有自己的业余项目或兴趣爱好,如果公司想留住那些有创业精神的员工,就必须允许他们追求自己的梦想。同时你也可以把公司环境建设得更有吸引力,让他们觉得相比兼职,他们更喜欢这份本职工作 —— 这是不是很酷炫的想法?去Fackbook 工作,体验一下吧!

但无论是我推广 Blockspring,还是花时间继续扩展它的功能,都分散了我的精力,让我无法集中精力做好 Facebook 的本职工作。我认为这无论对公司,还是对团队都不公平。

如果我还想继续开发Blockspring——虽然这个网站几乎没有用户——我就不得不离开 Facebook。

于是,我便辞去了 Fackbook 的工作。

感谢 Facebook 给我提供了全世界最好的工作,不仅有高额薪水和非常好的福利,还让我交到了很多好朋友。

2014 年 6 月:Y-Combinator公司

我们加入了Y-Combinator公司,这家公司提供资源帮助初创公司快速发展,是家非常棒的孵化器。

我们忙碌了三个月,每天的工作时间长达 16 个小时。

多数人在一个项目上,连续工作两天就会感到厌倦了。在刚加入 Y-Combinator 的时候,我们在白板上写下了一个数字:85。这意味着从那时算起,到产品演示,我们总共只有 85 天时间来完善产品。

我们夜以继日地工作,最终在约定的时间内完成了产品,也因此获得了投资。

2014 年 8 月:回到正常生活

我们结束了与 Y-combinator 的合作,搬到了旧金山的新办公室。我休息了一个月,周末去做些自己的事情而不是 Blockspring。

现在我又忙碌起来了,完善一些 Blockspring 相关功能,学习图像、动画、博客的技术,在网上浏览别人的交流学习经验。

半路学编程,可以成为大牛吗?相关推荐

  1. 没有基础半路学编程,靠谱吗?

    1.如果你没有去做,是不会知道自己能不能成为大牛的. 2.学习是一辈子的事情,哪里来的半路出家?25岁学编程,35岁的时候你就是有10年编程经验的人. 3.在互联网时代,随处可见的秘籍太多,而诚心修炼 ...

  2. 没有基础半路学编程,靠谱吗

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1.如果 ...

  3. 半路转行,如何学编程?这些建议给你

    有网友在网上提问:转行学编程还能成为技术大牛吗? 收到诸多网友评论的同时,也被不少网友反问: 1.成不了技术大牛,就不学编程了吗? 2.学习是一辈子的事情,哪里来的半路出家?25岁学编程,35岁的时候 ...

  4. 30岁,转行学编程来的及吗?

    常常会有网友提问:自己马上30了,现在转行学编程还来得及吗?不少热心的网友纷纷提供了自己的意见: "成不了技术大牛,就不学编程了吗?" "学习是一辈子的事情,哪里来的半路 ...

  5. 奉劝那些想学编程的人

    残忍的真相 一名参加过线下培训的同学,曾这样坦言: 我们那个班60多人,学完就剩20多人,学完立马找到工作的有12人,一年后还在IT行业的只有7人. 计算机专业从事对口工作的比例,又有多少? 很遗憾, ...

  6. 别怀疑,孩子在家里也能学编程!

    作者 | 伍杏玲 出品 | 极客宝宝(ID:geek_baby) 在今年三月,教育部公布的<2019年教育信息化和网络安全工作要点>中指出,推广编程教育,推动中小学阶段设置人工智能相关的课 ...

  7. 日本乐天要求员工学编程,AI 进中小学课堂,全民编程时代来了!

    作者 |伍杏玲 出品 |极客宝宝(ID:geek_baby) 李开复在<人工智能>里说过:人工智能将在未来取代一半人的工作,人根本不是机器的对手,他们不喊累.不闹情绪.犯错率极低. 他提醒 ...

  8. 大学java怎么算学得好_为什么现在大学里很多计算机系的大学生,学编程的时候总学不好...

    小编发现如今在大学校园里,总是会出现一种现象,就是现在大学里很多计算机系的大学生,学编程的时候总学不好,这到底是为什么呢?因为看不懂?因为不认真?相信很多同学也会感到疑惑,那小编就一起来分析一下吧,同 ...

  9. 学编程需要什么基础?

    程序员薪酬高.工作环境好,是很多同学向往的职业,让很多非计算机专业的同学羡慕不已.非计算机专业难道就不能成为程序员了吗? 一.学编程需要什么基础? 1.数学基础 从计算机发展和应用的历史来看计算机的数 ...

最新文章

  1. J2EE面试题集锦(附答案)
  2. iframe父页面获取iframe子页面的元素 与 iframe子页面获取父页面元素
  3. 03-缓存一致性---提高性能和引入CoreLink CCI-500
  4. 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法...
  5. echarts迁徙图 vue_【可视化插件】Vue项目中Echarts流向图迁徙图实现
  6. SAP Spartacus Session affinity
  7. android中的帧动画,[Android开发] Android中的帧动画
  8. Ajax表格控件实现
  9. 一个CSS3滤镜Drop-shadow阴影效果
  10. Hive数据导出的几种方式
  11. mysql配置好后_安装完 MySQL 后必须调整的 10 项配置
  12. iframe关闭当前窗口_iframe 、 a标签、input标签
  13. 安装matlab时常用模块,matlab 安装哪些模块
  14. 潮流能模型matlab,基于matlab的yalmip最优潮流建模的Infeasible problem
  15. 一场分销裂变活动,不止是发发朋友圈这么简单
  16. Dejal Simon for Mac(服务器监控程序)
  17. 零基础应如何学习UI设计
  18. TypeScript - 函数
  19. Android UID相关知识
  20. 全国高校通信与信息系统专业排名

热门文章

  1. 2020年产品经理生存报告
  2. ADF单位根检验三种形式_质量部来料质量控制:检验程序、检验标准、待检规则、问题处置...
  3. java 开发书籍 目录_《零基础 Java 开发 》全书目录
  4. 明显调用的表达式前的括号必须具有函数类型_Chisel(二) Scala语法 变量与函数...
  5. 作者:谢华美(1976-),男,就职于中国人民银行征信中心数据部
  6. 【软件工程】软件复用
  7. 【离散数学】集合的划分与覆盖
  8. 互逆的压缩与解压(洛谷P1319、P1320题题解,Java语言描述)
  9. 机器学习中的Numpy库基础——向量、矩阵和数组
  10. table固定表头滚动