专业选择重不重要? 这几乎成了每年高考后的「全民话题」. 有人说「专业决定就业」, 有人说「职业无关专业」. 对于程序员群体而言, 大学专业对他们的职业选择发展又有着怎样的影响? 非科班的程序员都来自哪些专业? 非科班程序员在求职和职业发展中是否会受到专业限制? 将结合平台数据和候选人采访, 揭开程序员身上的「专业面纱」.
1 程序员这碗饭, 科班出身更「吃香」
百度百科对于「计算机相关专业」的定义是: 包括计算机, 电子, 通信, 信息, 数字, 自动化, 生物医学工程相关的学科. 本文将以此定义来划分「科班程序员」和「非科班程序员」. 根据平台统计, 计算机相关专业的程序员, 即「科班程序员」, 占程序员总比例 81%, 而非计算机相关专业的程序员, 即「非科班程序员」, 仅占总比例的 19%.
凯奇结合自己的亲身体验, 侧面证实了这一比例的合理性.「我们公司的程序员差不多也是这样的分布. 虽然网上有很多非计算机相关专业的程序员自学成为大牛的传说, 但是相比计算机相关专业的程序员, 这样的概率远远偏低. 毕竟四年的计算机专业学习, 决定了一个程序员的起点甚至最终能够达到的高度.」
虽然越来越多的企业在程序员招聘时不再将「计算机相关专业」作为门槛, 但是在实际招聘中却无一例外地更青睐科班人才.「除非你有大厂背景, 有很强大的项目经验, 否则你很难说服面试官你没有四年的专业学习, 照样比那些科班毕业生更强.」作为公司技术招聘面试官的凯奇说, 相对于社招的综合考量, 很多企业的校招更倾向简单粗暴.
「非计算机相关的程序员在社招时还有工作经历来证明自己, 但是对于应届毕业生, 企业更愿意在计算机相关院系中挑选种子选手.」
今日头条 2019 年校招 JD
对于程序员的「专业出身」, 网上一直存在两种论调. 一种认为是否为计算机相关专业对于程序员的影响不大, 毕竟编码是一个实践性很强的工作, 用的技术与语言需要在实际工作中不断积累, 学校里学的都是偏理论性的知识, 对于实际工作意义不大. 另一种认为科班程序员和非科班程序员即使看似 code 水平差不多, 在初级阶段也看不出太大差距. 但是一旦进阶到中高级, 差距就日渐显现. 非科班的程序员缺乏底层知识和原理, 根基不稳导致他们很难到达程序员行业的金字塔尖.
凯奇也表达的了同样的观点. 他列举了工作中的一些细节来说明科班与非科班程序员的差别. 比如对于一些技术常用语的掌握, 非科班的程序员很容易按字面翻译而闹笑话. 比如将 portable 理解成便携的, PDF 误读为便携式文档格式, 将 class library 直译为班级图书馆. 除此之外, 很多非科班的程序员经常把 C/C++ 写成 CC++.「这些看似都是一些小细节, 但是却恰恰反映出一个程序员的专业素养. 很多自学与转行的程序员最大的问题就是急功近利, 只注重死记硬背, 面试都能够应付, 但是在实际工作中却很难独挡一面.」
对于一些公司将培训班的程序员「拒之门外」的现象, 凯奇说并不能怪这些公司区别对待.「培训班教出来的更多是码农, 而不是真正的程序员. 很多人在培训班里学了一门语言加框架, 做些小项目, 刷刷面试题, 就感觉自己很厉害. 这种急进的教学方法虽然短期有效, 但是长远来看却是害了很多人.」
「不过, 并不是科班程序员一定比非科班的程序员吃香. 如果大学四年全程都在混, 即使从计算机相关专业毕业也无济于事. 但是相比那些扎实学了四年专业基础的科班程序员, 非科班的程序员想要追赶上他们, 必须要付出双倍的努力. 这才是大部分非科班程序员所缺乏的.」凯奇最后说道.
自己是一个 6 年的前端开发工程师
这里推荐一下我的前端学习交流扣 qun:784783012 , 里面都是学习前端的, 从最基础的 html+CSS+JS[炫酷特效, 游戏, 插件封装, 设计模式] 到移动端 HTML5 的项目实战的学习资料都有整理, 送给每一位前端小伙伴. 2019 最新技术, 从企业招聘人才需求 到怎么学习前端开发, 和学习什么内容都有免费系统分享. 好友都在里面学习交流, 每天都会有大牛定时讲解前端技术!
2 只有想不到的专业, 没有不能转的「门外汉」
为了更好地分析非科班程序员的专业来源, 现按照国务院学位委员会, 教育部颁布的《学位授予和人才培养学科目录 (2011 年)》中 13 大学科门类, 将 2676 位非科班程序员按专业划分为文史哲教, 经管法, 医农, 艺军和理工五大类.
根据统计可以看出, 即使是非计算机相关专业的程序员, 70% 仍然为理工生, 其次是文理兼修的经管法专业, 再次是艺术专业 (军事学仅 6 人), 偏文科的文史哲教和偏生化的医农专业则占比最少.
在大家普遍印象中, 理工男才是程序员的代名词. 但实际情况是, 程序员的专业五花八门, 几乎囊括所有类别. 这得益于计算机基础课程在大学的普及, 很多学校甚至把通过全国计算机等级考试作为学生毕业的必备条件, 这使得大部分大学生都具备了一定的计算机或编程基础. 互联网的快速发展催生了「程序员就业热」, 许多对计算机感兴趣或本专业不好就业的学生在供需关系的推动下, 毫不犹豫地投身「转行大军」.
3 人人皆可程序员? 最终得靠「基本功」
有人曾预言未来编程将和英语一样, 成为大众普及的技能, 人人皆可做程序员. 职业顾问丽娟认为这种观点混淆了「职业」与「业余」的区别.「编程作为兴趣可以广泛, 但是作为职业一定要经过系统持久的学习和训练. 这也是初级和中高级程序员的差别.」
从计算机相关专业程序员和非计算机相关专业程序员的人均薪资对比可以看出, 1-3 年工作经验的程序员不管是否为科班出身, 人均薪资差距并不算大. 但是随着工作年限的增加, 人均薪资差距逐渐拉大. 而人均面邀数则与之相反, 工作年限越久, 科班与非科班程序员的人均面邀数差距越小.
与上文提到的美玲相似, 很多非科班程序员的薪资涨幅长期处于「低压」状态. 丽娟说这和缺乏大学四年的专业学习不无关系.「除了编程思维比较弱, 很多非科班程序员缺乏长期的职业规划与思考, 很容易急功近利, 通过不断地跳槽寻求加薪, 而科班的程序员相对要更稳当一些.」
历史学专业的致远便是这样的情况. 2012 年毕业的他迄今为止已经换过 6 份工作, 每一份都不满一年, 职位也一直停留在 web 前端开发.「我也知道频繁跳槽不好. 但是我是从包装设计转行程序员, 从传统公司到互联网, 内心一直缺乏安全感. 我总是很轻易地因为别人的升职加薪而感到焦虑, 试图通过跳槽变得更优秀, 然而却怎么也跳不去自己想去的公司, 薪资也一直涨得很慢.」
纵观那些「一路通关」的非科班程序员, 无一不在「基本功」上下足了功夫. 有人大学时辅修了计算机软件专业, 有人跨专业考研到计算机相关专业, 有人参加各种编程大赛历练自己.
「从招聘方的角度, 我们不太建议 0 基础转行. 虽然程序员的很多技能点可以在工作实践中获得, 但是底层原理和逻辑思维却需要在学校提前学习和培养.」丽娟说起很多程序员 Code 能力很强, 但是面试一被问到底层基础知识就发蒙.「有些程序员抱怨面试官问的基础知识与实际工作毫无联系, 但公司的真正目的是在考察你的基本功, 以此来判断你之后能否成长为他们最终需要的高级人才.」
非科班程序员专业云图
从非科班程序员专业云图可以发现, 虽然来源类别丰富, 但是占比靠前的几个专业都和计算机基础学习紧密相关. 例如理工科的「数学和应用数学」,「电气工程及其自动化」和「机械设计制造及其自动化」, 经管科的「工商管理」和「国际经济与贸易」, 文科的「英语」以及艺术类的「艺术设计」. 这些课程学习不仅打下了程序员所需的技术和语言基础, 而且进一步拓宽了其他领域的学习. 例如经管专业的程序员在金融互联网领域如鱼得水, 艺术专业的程序员更注重功能和美观的结合.
「相比单一的科班程序员, 这些融合了计算机基础和其他不同学科的非科班程序员更受垂直领域互联网公司的青睐. 但是不管领域如何广泛, 计算机基础是 1, 有了这个 1, 后面无数个 0 才有存在的意义.」
结语
「现在为工作流的泪, 都是当初选专业脑子进的水.」这句话成为很多职场人表达「选错专业误终生」的调侃, 也就有了网上「劝人学医, 天打雷劈; 劝人学法, 千刀万剐; 上辈子杀猪, 这辈子教书」的段子. 但是历数每个专业, 似乎都难逃吐槽之音, 就连热门的计算机专业, 不也被打上了「秃顶」,「码农」等标签吗?
从长期职业生涯来看, 专业是否对口只决定了工作前两年是否得心应手, 之后的发展完全取决于个人的持续学习与努力. 很多非科班程序员在工作中落后于科班程序员, 纵然有专业不对口的原因, 但是更多的是由于个人后期学习不够扎实, 缺乏持之以恒的韧劲.
「如果你已经落后, 唯一的选择就是在别人走的时候选择跑.」这是一位 27 岁转行的非科班程序员说过的话. 他用了不到 3 年的时间跳槽到大厂 P7, 成了别人口中的「传奇」. 当然, 与其中途追赶, 不如在起跑前就做好准备. 毕竟大学生活, 如果不谈恋爱不打游戏, 无聊得该只剩下学习了.
你是什么专业的程序员? 不妨留言, 写下你的「专业」与「职业」体会.
自己是一个 6 年的前端开发工程师
这里推荐一下我的前端学习交流扣 qun:784783012 , 里面都是学习前端的, 从最基础的 HTML+CSS+JS[炫酷特效, 游戏, 插件封装, 设计模式] 到移动端 HTML5 的项目实战的学习资料都有整理, 送给每一位前端小伙伴. 2019 最新技术, 从企业招聘人才需求 到怎么学习前端开发, 和学习什么内容都有免费系统分享. 好友都在里面学习交流, 每天都会有大牛定时讲解前端技术!
来源: http://www.jianshu.com/p/b7a50f0f0e98