非科班出身的程序员,不仅要面对科班出身者的技术优势,还要面临职场偏见,尽管压力重重,但只要够努力,这一切都不是问题。

随着互联网行业的蓬勃发展,市场对于程序员的需求激增,这个职业也不再囿于计算机科学或软件工程等个别专业的毕业生,非计算机专业出身的程序员为数不少,他们的主业曾是物理、数学、自动化,甚至英语、艺术或历史,但都出于对编程这一事业的青睐,投身成为程序员。

什么是非科班出身的程序员

顾名思义,并未出身于计算机相关专业的程序员,在行业中普遍被认为是非科班选手。

在编程领域里,除非天资超群,否则童子功越早打下越好。接触编程时间过晚,不仅是编程技术上处于劣势,也意味着在思维方式、解题经验方面的落后。这也是为何科班出身的程序员在面对非科班选手时,往往具备压倒性优势的原因。

他们面临的困难

作为一门技术工种,半路出家当程序员谈何容易。对于一个希望转型成为程序员的求职者,留给他学习技能的时间窗口通常极为紧凑,而知识积累的欠缺导致他们往往在一开始只能以速成的方式谋求技术熟练,这往往加固了外界对他们技术不扎实、「流于表面」的印象。

尤其对于一些专业跨度巨大的程序员,他们的转型壁垒更是常人难以想象。有的人在转型前对于编程的理解近于白纸,即便是在内行人看来通过自学足以达成的技术工具,在这些转型者面前仍如无法逾越的大山。他们只好通过培训机构实现从 0 到 1 的技术入门。

但培训机构,在程序员一行中始终毁誉参半,在统计数据的时候,一位受访者曾经公开声称,自己拒绝接受任何曾在编程培训机构报班的程序员求职者。

即便如此,仍有许多这样的案例发生在各个公司之中,这些技术转型者怀着对事业的目标,克服了一个个技术学习和思维方法上的障碍,抵御住了周遭那些质疑自己选择的声音,面对工作中或明或暗的不信任,埋头于编程语言和企业业务,最终以不错的职业发展回击了外界给予他们的刻板印象。

非科班程序员如何弥补技术优势

本周我们搜集并采访了一系列拥有转型经验的候选人,他们均非编程科班出身,如今都成为了不错的程序员,成为各自企业的技术骨干。他们将分享自己是如何从半路出家者走到今天的经验。

小羽:数学系出身的理科女,阅读源码

2014 年的时候,小羽还压根没想过自己未来会和代码发生化学反应。她那时刚刚从中国最好的大学毕业,专业是数学系。几个月后,一心想着未来出国深造的她进入了一家互联网金融公司,职位是产品经理。

「当时也不知道自己适合做什么,想着这份工作经历就算 Gap Year 吧,就被派去负责产品了。」数学系出身的小羽此前并未接触过任何产品相关的知识,一切都只能靠她现学。九个月后,一个机会降临到小羽面前,某金融类央企的认证部门需要一名产品经理,小羽投递的简历被对方人事部门看中,很顺利便录用了她。

在与新领导的沟通中,对方得知小羽原本的专业是数学系,「要不你来试试写代码?」面对建议,小羽稍一考虑就答应了下来。

早在大学一年级时,小羽就在公共课程上学习到了关于 C++ 的基础知识。但那时她对编程还没有特别的兴趣,答应从产品经理转型技术岗,更重要的原因来自小羽本身觉得写代码这事更符合她理工科的偏好。

「一开始,人家是给我一个别的项目,让我照着写照着抄。」比起产品经理,程序员的身份对技术要求更高,留给小羽的速成期不算太长,而她成长的方式也比较直接粗暴,那就是看源码。

「不停地看,有不懂的地方就去搜,去查,一点点拼凑出来。」好在接受过多年的数学训练,小羽对于强调逻辑的代码工作逐渐得心应手。一个月后,小羽上手了 Java。

2016,小羽开始接触 Python、Pascal 以及 C++,对于编程语言和数据库的尝试也越来越多。Spring、MySQL、Redis 等框架或数据库逐渐开始被纳入知识体系,由于工作内容涉及前端开发,小羽又学习了 Angular、React 等框架。甚至对于数据挖掘、svm、神经网络,她也有了一定涉猎。

回忆自己从入门到上手的经验,小羽认为最有意义的工作就是阅读源码。「我技术提升最快的那段时间,就在阅读大量源码,包括 JDK 的源码。那个阶段后,我就感觉自己真的已经迈过了刚入门的状态了。」

「源码能够直观、系统地为学习者描绘这门编程语言是如何工作的。」如今,小羽在一家知名软件企业担任架构师,尽管进入职场仅仅三年,小羽早已完成了从编程新人到技术骨干的转型。

曹巍:出身工科的程序员,强化学习还得看书

曹巍是工科生,2009年本科专业时,他的身份是一名「材料成型机控制工程专业」的学生,这个名字对非工科生无疑相当拗口。

毕业后,曹巍来到了北京,已然成型的互联网气氛打动了曹巍。回头审视自己的专业技能,曹巍心想,用接下来的生命继续和数控机床打交道,太乏味了。

好在他还有其他的技能。大一时,曹巍的室友是一位迷恋计算机文化的工科男,在室友的带动下,曹巍自己也早早自学了 Java。

「Java 这个语言,它有个特色是面向对象,这在不接触编程的普通人那里,是很难去理解的概念。所以我花费在思维转换上的时间很多。为了在脑海里弄明白它究竟是个什么东西,刚开始花了一个多星期的时间。」

2010年1月,曹巍进入一家软件企业,担任元数据产品开发。从新人开始,曹巍一边工作一边积累自己的技术经验,3年后,曹巍进入某数码集团负责技术架构,从 Java 到 Spring MVC、MyBatis/Hibernate、Dubbo 等服务端框架技术, 再到 HTML、JSP、Servlet、JavaScript 等应用技术,曹巍逐一涉猎。

回顾自己从不相干的专业转型成为程序员的过程,艰辛是必不可少的感觉,但曹巍认为那总是存在的。好在自己是一个耐得住寂寞的人,当技艺打磨到足够优秀时,旁人的闲言闲语自然会终止。

对于从0学习一套编程语言,曹巍颇有心得:「我的理解,任何东西都是碎片化的,一个技术点可以发散到其他碎片点,最终就弄明白了整个的脉络。所以我的学习路径是从每个技术点开始,摸清楚技术脉络,最后需要深入了解技术原理,就去看书看视频。」

视频方面的学习,在这里给大家推荐一个架构交流学习群:650385180,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多。

尽管对于一个程序员而言,网上有大量现成的技术博客,每天都在分享精巧的代码思路,但在有关编程技术的深度和准确性上,曹巍认为书本依然重要。

在代码中摸爬滚打 8 年以后,曹巍如今在一家互联网企业担任技术总监,回想自己技术身份的转型,他觉得其实只要是足够耐心,以及主动学习,是否科班出身的话题终究会在周围的人嘴里消失。

马越:地理专业的技术达人,靠培训机构入门

马越是南京人,早在大学里,马越就以技术手段活络著称。他读得是南京本地一所知名高校,专业是地理信息系统。在一项地理信息整理工作时,他独立完成了地理信息系统网页搭建任务的最初版本。

「我从小就喜欢玩电脑,也爱看IT名人的传记。」在九十年代,中国的商业传记中,最受欢迎的当属比尔·盖茨,马越对于 IT 的概念大部分也来源于此。

尽管对 IT 有兴趣,但马越一直没想过学习编程,他在地理信息专业的课程得心应手,将来的出路被寄托于研究所或者交通企业。但是,为学院搭建网页的那几个月真正改变了他,为了完成这个任务。马越开始潜心学习编程语言,他选择的第一款语言是 Python。

「豆瓣最早就是阿北在咖啡店里用 Python 写出来的。我玩豆瓣,我也用 Python。」顺利结束了学院的任务后,马越突然意识到了自己在技术板块的潜力。

毕业后,马越应聘进入某大型交通企业,并在其中自告奋勇承担一部分 IT 技术工作。在那同时,他决定为自己的编程技能充电。

为了真正入门,马越在公司附近报了一个软件编程速成班。在培训班里,马越接触到了 CSS 和 JavaScript,也系统性地了解了数据结构、算法与数据库。

「培训只能算入门工具,我当时作为非科班出身的人,这是适合我的途径。」马越明白,在编程行业,培训班出身一直处在鄙视链的下游,他能做的只有屏气积蓄实力。

在交通企业,马越的工作逐渐受到上层认可,工作也彻底调整为技术岗位。Intellij IDEA,oracle,kafaka,cucumber,sonar,Jekins,马越用到的技术工具越来越多,承担的工作责任也逐渐核心。

与小羽一样,他也意识到了阅读源码的好处。「比起现在很多线上培训用的视频教学,阅读源码要直接得多,进步也快得多。」

工作3年后,马越离开了国企,目前已入职一家互联网企业,担任 Java 工程师。在用人单位的反馈中,马越的计算机基础、业务经验均是上乘,唯一的短板在于上一份工作在国有单位,因其技术站与互联网不同。但在马越眼里,这实在算不上难对付的问题。

后记

总的来说,非科班出身的程序员在市场上基数不算小,其中大多数的确面临编程水平有限、知识分布不平衡、技术经验存在短板等现实困难。而行业对于非科班出身者的偏见也几乎是普遍存在的。

那么对于一个希望转型成为程序员的非计算机科班出身人员,有哪些值得重视的经验呢?通过以上案例, 归纳如下:

  • 快速建立知识体系 获取程序员式的思维方式

  • 寻找合适的途径实现技术入门 比如报名参加一个口碑良好的短期培训课程

  • 找一门语言入手,精通之后再学其他 C、C++、PHP、Python、Java 都是强大且普世的入门语言

  • 大量阅读源码 根据多数受访者的经验,阅读源码是最快的成长途径

  • 初学者应该积极发问 依靠别人的经验并不可耻,关键在于用最少的时间获取最多的收益

  • 依靠书本进行深入学习 尽管技术博客或者社区论坛上的大神很多,但阅读一本书仍是系统习得知识的最好途径

  • 转型要趁早 对程序员这份工作而言,越晚转型的代价越大

半路出家程序员的痛旁人不会懂相关推荐

  1. 二十载风雨飘摇,成败荣辱也潸然――Borland程序员之痛

    二十载风雨飘摇,成败荣辱也潸然                                                ――Borland程序员之痛   (宋宝华 [email]21cnbao@ ...

  2. 程序员,想要彻底弄懂Redis,这15点你一定要明白~(纯干货)

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Java实现QQ登录和微博登录个人原创+1博客:点击前往,查看更多 作者:耿直的小码农 来源:https://s ...

  3. 从程序员到项目经理(六):懂电脑更要懂人脑

    从程序员到项目经理(六):懂电脑更要懂人脑 说起程序员三个字,我觉得既骄傲又可悲.骄傲的是,我们曾经是时代骄子,是一群真正改变世界的人:可悲的是,我们很多致力于改变世界的程序员,却生活在自己的世界里, ...

  4. 安卓程序员永远不懂iOS程序员的痛? | 每日趣闻

    戳一戳小程序查看更多! 往 期 趣 闻 ☞是你写程序时的样子吗?| 每日趣闻 ☞如果编程语言是飞机 | 每日趣闻 ☞只有程序员才懂的手势 | 每日趣闻 ☞程序员圈的鄙视链 | 每日趣闻 ☞程序员和产品 ...

  5. 程序员之痛:六次创业五回失败了

    作者 | Rishabh 译者 | Arvin,责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 以下为译文: 在Loki.ai 成为一家成功的公司之前,我在5年内经历了5次创业失败.这 ...

  6. 我的人生没有面试季,半路出家程序员也能一往无前

    后来发现Java比较热门,就去了培训机构学习了半年的时间,出来找工作的时候,不是我挑工作,而是只有公司要我,我就去上班. 刚从事这份工作的时候,什么都不会,学到的东西在实际工作中用的不多,很多东西都是 ...

  7. 程序员之痛:诊断下你会不会突然间瘁死

    随着资历越来越高,程序员薪水也开始上涨,但同时人生的风险在加大,从国内每年数起的"高薪死"看,IT业的程序员时刻面临着职业风险,随时有载在键盘上的可能. 以下症候判断你是否处理这个 ...

  8. 从程序员到项目经理(五):程序员加油站 -- 不是人人都懂的学习要点

    学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 一.学习也是一种能力 看到这个标题,有人会说:&q ...

  9. 从程序员到项目经理(5):程序员加油站 -- 不是人人都懂的学习要点

    学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 一.学习也是一种能力 看到这个标题,有人会说:&q ...

最新文章

  1. 如何使用Nsight System?
  2. leetcode--无重复字符的最长子串--python
  3. 什么?Redis 的 QPS 是 MySQL 的 100 倍?
  4. BERT和ERNIE谁更强?这里有一份4大场景的细致评测
  5. 309. Best Time to Buy and Sell Stock with Cooldown
  6. 自定义本地Maven 仓库 配置
  7. 构造方法,this,super关键字
  8. Activiti 接收任务活动
  9. qt4.8创建.pri_注意Java 8的[Pri​​mitive] Stream.iterate()中的递归
  10. Python项目:用微信自动给女朋友每天一句英语问候
  11. java textarea append_JavaFX TextArea.append()导致java.lang.NullPointerException
  12. python网络-多进程(21)
  13. Opera Unite如何架设自己的网站
  14. Linux进程地址空间探究
  15. immutability因React官方出镜之使用总结分享!
  16. 面对10倍需求只用 40% 成本,这是一种怎样的体验?
  17. 套件端口 群晖_群晖套件重装过程中提示端口被占用的解决方案
  18. win10下如何装win7
  19. 有效地报告自动测试结果
  20. DPU芯片头部企业云豹智能加入龙蜥社区,共同推动新一代数据中心基础设施蓬勃发展

热门文章

  1. linux中 ~ / ./分别表示什么目录
  2. 四旋翼飞行器5——各类方案设计及参考
  3. H5跳转微信公众号关注页面
  4. 他如何从一位专车司机成功变身CEO?
  5. apkanalyzer.bat could NOT be found in D:\Program Files\android-sdk的解决方案
  6. iOS 视图,动画渲染机制探究
  7. 开环直流电机的机械特性_直流电机调速开环控制.docx
  8. 计算机文件自动备份到移动硬盘,电脑文件定时自动备份到移动硬盘,有什么方法?...
  9. 读《解忧杂货店》有感
  10. Android程序打包安装过程