在目前非科班出身半路转行者往往成为程序猿中比较敏感的一部分。

伴随着互联网行业的发展,市场对Java工程师的需求一直居高不下,程序员也不再囿于计算机科学或软件工程等个别专业的毕业生。「非科班」程序员的背景五花八门,近一些的是通信、物理、数学、自动化等理工科,远一些的则有设计、英语、艺术甚至历史。

客观上来说,在编程领域里的确存在「童子功」的说法,接触编程时间过晚,不仅技术上处于劣势,在思维方式、解题经验方面也很可能落后。这也是为何科班出身的程序员往往具备压倒性优势。

不过,英雄不问出处,非科班出身的Java程序员,也千万不要先入为主地陷入「技不如人」的自我认知里。你学习技术是为了找到一份满意的工作,实现个人价值,而互联网公司更关注的是你的理论知识到底有多少能落到实际商业应用中。

大学基础教育可以让科班出身的人有更广博、健硕的知识体系和计算机领域的学习能力,但对非科班出身的童鞋而言,用业余时间补好大学4年的差距其实非常难,也并非完全必要,因为大学教育和产业应用之间也存在明显的脱节。

归根结底,非科班的Java程序员们在开始自学计划前,要先理解当下的产业界通常对Java开发人才到底有怎样的要求,以终为始,有针对性地弥补差距。

互联网公司需要怎样的Java工程师?

1.初级 Java 工程师(1-2 年)

初级Java 工程师需要基础扎实,在精通 Java 之外,深入了解数据库技术也是必选项。计算机原理和思维逻辑清晰,能干活。

2.资深Java工程师(3-5 年)

有3-5 年经验的 Java 工程师,要求算法基础和编程能力扎实,有分布式、高并发经验优先,可独立负责一个模块的开发。在技术上一专多能,不仅限于写好 Java,还要触类旁通,对公司业务所需的新技术能快速学习运用。

3.Java 专家/架构师(5 年及以上)

在技术专家阶段,拥有成熟大厂的高并发、分布式经验很重要。各个公司对架构和专家型人才的要求与业务需求结合得更紧密,因此,除了吃透技术深度、高效解决技术团队的技术难题、做好团队分工之外,候选人以往的业务场景也要和公司相契合。

除了以上常规要求之外,如今进入下半场的互联网行业对 Java 程序员的招聘门槛的确比以往更高。

首先是对学历等硬性背景要求更严。有些一线知名企业甚至要求一本、重点院校CS 相关专业的简历优先。对非科班的同学而言,这也很无奈。

其次,更注重对算法基础和核心开发经验的考察。国内的一线大厂近年逐步向国外互联网公司看齐,开始重视对Java 程序员的算法和计算机原理的考察。此外是考核过往的核心开发经验。

最后,有转型能力和意愿的Java 人,机会更多。互联网公司在拓展新业务时,也需要转型 Golang、Python 等更新更轻巧的技术栈,拥有 Java 和后端基础的程序员转型起来更有优势。

比如,腾讯的主流后端语言是C++,阿里、TMD 是 Java,百度则是 C++、Java 和 PHP;但几家新兴独角兽(英语流利说、哔哩哔哩、今日头条和趣头条等公司)对 Go 和 Python 的应用更普遍,尤其是今年 Go 的劲头很猛。因此,基础扎实、学习能力强的 Java 工程师,可适用更多业务场景和开发需求,在市场上更吃香。

非科班出身该如何弥补技术差距?

100 offer还采访了一些非科班出身的 Java 候选人,他们如今都成为了各自企业的技术骨干。这些「半路出家」的经历或许也能给你一些启发。

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

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

“当时也不知道自己适合做什么,想着这份工作经历就算 Gap Year 吧,就被派去负责产品了。”小羽此前并未接触过任何产品相关的知识,一切都只能靠现学。

九个月后,一个机会降临到小羽面前,某金融类央企的认证部门需要一名产品经理,小羽投递的简历被对方 HR 看中,很顺利便录用了她。

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

早在大学一年级时,小羽就在公共课程上学习到了关于C++ 的基础知识。但那时她对编程还没有特别的兴趣,答应转岗,更多是因为她觉得写代码更符合她理工科的偏好。

“一开始,人家是给我一个别的项目,让我照着写照着抄。”留给小羽的速成期不算太长,而她成长的方式也比较直接粗暴:看源码。不停地看,有不懂的地方就去搜,去查,一点点拼凑出来。好在接受过多年的数学训练,小羽对于强调逻辑的代码工作逐渐得心应手。一个月后,小羽上手了 Java。

工作的第二年,小羽开始接触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 等应用技术,他都逐一涉猎。

在代码中摸爬滚打8 年后,曹巍如今在一家互联网企业担任技术总监。回顾自己从非科班出身走到今天,曹巍认为虽然过程有些艰辛,但好在自己是一个耐得住寂寞的人,当技艺打磨到足够优秀时,旁人的闲言碎语自然会终止。

对于从 0 学习一套编程语言,他认为,在有关编程技术的深度和准确性上,书本很重要。“任何东西都是碎片化的,一个技术点可以发散到其他碎片点,最终就弄明白了整个脉络。我的学习路径是从每个技术点开始,摸清楚技术脉络,最后需要深入了解技术原理就去看书。”

从别人的故事中,我们提炼出了以下6条建议,送给非科班的 Java 程序员们:

1、要有清晰的自我规划和定位,及时了解 Java 市场的需求变化,做到知己知彼。

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

3、大量阅读源码;

4、积极发问,关键在于用最少的时间获取最多的收益;

5、尽管技术博客和社区论坛上的大神很多,但阅读书本仍是系统习得知识的最好途径;

6、转型要趁早,越晚代价越大。

非科班出身程序员该如何弥补技术差距?相关推荐

  1. 非科班出身程序员,如何超越科班程序员?

    作者 | 梅梅 本文经授权转载自100offer(ID:im100offer) 2019年的高考志愿填报基本结束,又一群00后们即将迈入大学校门,成为某某专业的新人.不管这个专业是他们熟悉或者不熟悉, ...

  2. 非科班程序员逆袭:一个被称阿里“码神”,另一个颠覆软件生态

    专业对口自然可贵,非科班出身程序员一样可逆袭,书写一段传奇,成为佳话. 马云的扫地憎"多隆" 阿里巴巴有一位特殊技术合伙人蔡景现,花名"多隆",相貌平平的他,却 ...

  3. 揭开程序员身上的「专业面纱」:非科班程序员,都来自哪些专业?

    [文章来源微信公众号:每天学编程] 专业选择重不重要?这几乎成了每年高考后的「全民话题」.有人说「专业决定就业」,有人说「职业无关专业」.对于程序员群体而言,大学专业对他们的职业选择发展又有着怎样的影 ...

  4. 尤雨溪:全职做开源年薪百万,非科班程序员也能成功

    9 月 19 日,VUE 终于迎来了 . 众所周知,VUE 的作者尤雨溪是一个资深的二次元爱好者.自 2014 年以来,VUE 的每个重要版本都会被赋予一个神秘代号.从 VUE 1.0 的 " ...

  5. 非科班程序员看科班程序员和非科班程序员之间的差别

    不知怎么的就想起这个话题,于是写写自己的看法,和大家讨论讨论. 首先定义2大讨论对象: 科班程序员:在从事程序员前是读计算机及相关专业的,如:计算机,数学,软件工程等.他们从事程序员这行主要是因为自己 ...

  6. 28岁退休的非典型程序员:我的人生不需要别人来设计

    作者丨刘燕 离开的路就在前方,但还有更长的路等在远方. 2 月 12 日,字节跳动前端工程师郭宇在朋友圈发出了一封告别信,宣布正式"退休".这条消息在一个小圈子内广泛传播,原因并非 ...

  7. java高深技术总结_一名25K以上的高薪Java程序员总结出的技术以及学习技能

    原标题:一名25K以上的高薪Java程序员总结出的技术以及学习技能 总所周知,Java是目前使用最为广泛的网络编程语言之一. 它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点. 一般 ...

  8. 28 岁退休程序员自述:不是富二代,行政专业出身,非典型程序员

    作者 | LinkedIn 来源 | LinkedIn(ID:LinkedIn-China) 最近,知乎上一个提问"如何看待年仅 28 岁的郭宇宣布从字节跳动退休?"火了,阅读讨论 ...

  9. 非Java程序员转行Java-day01-入门基础

    1.学习大纲介绍 课件中的代码及资料:提取码:yexw 学习中的依赖包及安装文件:提取码 :8par 2.数据流向分析 2.1.应用型软件开发本质 增删改查(非常重要,5星) 2.2.大型网站演变历史 ...

最新文章

  1. 【 FPGA 】FIR滤波器的采样速率与系统时钟速率不同时的资源消耗分析
  2. VS项目中引入dll的方法
  3. 微星z370黑苹果_记录一下装了第二台黑苹果(Z370 + High Sierra)
  4. 安装Windows更新程序遇到错误:0x80070422
  5. bootstrapTable基础操作
  6. 线性代数【8】-1 线性方程组
  7. [CareerCup][Google Interview] Find kth number in a BST
  8. VS11中添加PagedList引用
  9. html代码中数学公式,html中使用mathjax数学公式
  10. MSP430学习笔记(一)--从点灯说起
  11. NB-IoT窄带物联网的优势特点
  12. python的学习笔记案例1--汇率兑换3.0
  13. UVA 202 - Repeating Decimals(模拟)
  14. python 免费空间_用python做大数据
  15. LoadRunner测试结果分析重要环节:合并图
  16. 机器人编程要学哪些知识
  17. 几款mac小应用,让你的苹果设备真正实现无缝衔接
  18. Python自学教程
  19. Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题
  20. 马克·库班:建议用DAI支付以太坊Gas费

热门文章

  1. 四大列表控件之RadioButtonList控件(单选按钮)
  2. Open vSwitch(OVS)相关问题
  3. java 实现dns劫持_什么是HTTP劫持和DNS劫持
  4. 修改服务端监听器端口号为1526
  5. 数据存储(Po累Po累)
  6. 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
  7. 电子印章系统基础“角色权限”分配攻略
  8. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
  9. Ureport2的表格更改小技巧
  10. iOS之深入解析App Thinning的应用瘦身优化