说下我的观点,培训班出身的程序员,只要能成功地通过找到工作入行,而且学历也不差,其实是和科班出身的程序员没差别。也就是说,工作个几年,可以通过跳槽进入到好公司,或者说升级到架构师,原因如下。
1 就以java为例,找到工作后,所用到的技术,初级的话是spring boot做增删改查技术,中级的话是数据库jvm调优,高级的话是分布式架构,外带面试所用的技术,都能通过实践或学习得到。
2 一些人认为,java开发如果要向上发展,需要计算机专业所学的操作系统等专业课,其实不然。提升时只需要学数据结构算法之类的比较初级的技能,非科班出身的程序员在提升时不存在技术上的阻碍。
3 除了提升所需的技术以外,提升时所需的跳槽相关技术,比如写简历的技巧和面试技巧,这些也是公开透明的,培训班学员在这方面也不存在阻碍因素。
但是,培训班出身的程序员毕竟不像科班出身的程序员那样接受过系统的计算机科学方面的培养教育,而且入行的年龄要普遍晚于科班出身的程序员,甚至还有可能有学历方面的原因,所以在提升时,除了技术因素以外,可能会存在年龄和学历这两方面的问题。
1 年龄方面的问题。
一般来说,一个java初级开发要升级到资深开发,需要3到5年,资深开发升级到架构,需要2到3年,而程序员第一个年龄瓶颈在30,这个年龄如果还在小公司做初级开发,竞争力会降低。
所以非科班出身的程序员,通过培训班入行的年龄应该在25岁左右,当然越早越好,如果年龄超过28,甚至30,不是说不能入行,但入行后得非常上进,否则就有可能在30岁左右依然在小公司,这时不是说无法再提升,而是提升的难度就会增加。
2 学历方面的问题。
一般大公司,包括国企外企或大厂,会要求求职者是本及以上学历。目前如果专升本大概要3年,再低学历升级到本科我就不知道了。
这方面如果和年龄因素结合起来,比如25岁大专学历,通过培训班入行,那么在技术上升级到资深开发的同时,就应当考虑学历升级。但如果28岁入行,外带大专甚至更低的学历,那么到了30岁,一方面去大公司可能会在学历方面受限,另一方面再要完成升级学历可能要到30以后了,这就会增加继续提升到难度。
讲完上述铺垫后,就讲讲培训班出身的程序该如何入行,如何发展。
其实对培训班学员来说,找到第一份工作从而成功入行的难度甚至大于入行后的提升,毕竟提升所需的技术可以通过实践得到,而在毫无相关经验的前提下要入行,哪怕经过培训班加持,哪怕会包装简历甚至练习面试技术,这其实并不简单。
1 一定得在简历上列上java等方面的商业项目经历,学习项目不算,同时要在面试中充分证明自己能干spring boot等项目,如果做不到这点点话,找工作太难。至于知否要包装简历,去问你们培训班的就业辅导老师。
尤其是超过25岁以上的培训班学员,如果零java等方面的商业项目经验,甚至无法通过简历得到面试机会。
2 面试时,优先准备spring boot做项目的技能,同时要通过项目规模,项目所用的组件和项目管理方式等细节,向面试官证明你有项目开发经验。
但事实上,很多很多培训班学员在找工作时,只背八股文和算法,无法证明自己用spring boot等技术做项目的能力,那对不起了,面试很难过。
3 有些培训班会讲些值钱技术,比如java方面会讲分布式高并发,微服务,基于docker或k8s的容器技术。但找工作时,依然只能靠最基础的spring boot等方面的开发经验。
原因不难解释,面试官不仅会问求职者会哪些技术,更要结合项目场景问,培训班在讲这些高级技术时,可能也就讲个api,而论项目场景未必要用到高并发,也未必要用到云端技术,那么问下来只能算是“知道”,而不能算“在项目中用过”。
甚至有些培训班学员准备面试时本末倒置,优先准备高级技术,忽略spring boot等基础技能,这样就会导致高级技术说不好,基础技术说不了的结果,也无法通过面试。
4 第一份工作,优先找小公司,甚至是外包公司。这些公司没法挑人,甚至有可能明知求职者包装简历,只要别太过,面试时能说好基础的开发技能,这些公司还真能进,总之是先入行再发展。
接下来再以java程序员的发展途径,讲讲培训班学员入行后怎么发展。
1 熬过试用期。
不管培训班学员在面试时吹得再天花乱坠,入职后顶多一周,就会让别人看出底细。这种情况下 ,得态度好,早到晚走,多问多干,有问题早点提,写代码时多借鉴现有的代码,这样熬过试用期不成问题,具体细节看我如下的文章。
本人最近在做面试辅导,其中不乏有培训班出身的学员,他们第一份拿到的工资可能各有千秋,但都能过试用期。
2 通过解决实际问题提升能力。
项目开发时遇到的各种问题,尤其是线上问题,要多参与。通过排查问题,一方面能更熟悉业务,另一方面更能熟悉一些常用的java技术和组件。当然培训班学员在刚开始的时候,估计甚至都不会看日志 ,但别人解决问题以后,一定要多请教别人,然后自己复盘操作一遍,用别人的思路排查下问题,这样做多了,就知道问题怎么排查了,就能通过排查问题不断提升能力了。
其实就通过做熟业务,并在日常工作中多解决实际问题,快则半年满则1年 ,哪怕是培训班出身,也能熟悉各种项目开发技术和一些常用的排查问题多方法,外加培训班出身的学员年纪普遍偏大,此时再去找个高级开发的活,问题真不大。
3 第一份工作别干久,顶多2年就跳槽。
前文也说了,培训班学员通过第一份工作,解决了入行的问题,通过这份工作能熟悉基础的开发技术和项目管理和部署方面的技能。而第一份工作给出工资,以及公司的规模未必理想,所以一般干个1年半到2年,真可以跳槽了。
此时由于当下干到是java开发的活,这样虽然在培训班之前干的活和java甚至是和IT无关,只要面试说好,求职者就算说之前干的也是java,面试官可能只能相信。这样技术到位资历到位,找个高级开发的活,同时跳个好公司,问题真不大。
4 争取进大厂,争取做架构。
其实培训班出身的学员,经过第一份工作磨练之后,论能力应该和科班出身的程序员没差别了。比如讲,同样2位程序员干同样的话,自己不讲的话,别人还真未必知道是科班出身还是培训班出身。
培训班出身的程序员通过第一份工作入行,而在第二份工作中,就别再做重复的增删改查的活了,在java方面 ,就可以向两方面去靠。第一是各种分布式组件的API,第二是用各种分布式组件的API去应对高并发的请求。
由于此时的身份已经是资深开发了,或者至少是高级开发,此时可能公司规模未必大,但有机会接触到redis,dubbo,kakfa等组件,也有机会去做高并发到需求,解决高并发到问题。
不过在实际操作中,要做到大厂架构毕竟很难,哪怕是科班出身的程序员也未必能确保做到这点,但如果按上文所说准备java或其它方面的技能后,年龄上来后,找个国企或外企或银行保险之类的稳定点的公司,问题应该不大。
回到主题上,培训班出身的程序员,除非年龄学历或工作态度方面有不利的因素,绝对有机会向上升,而且只升到高级开发都算差的,当然话不能说绝对,培训班出身的,工作后一直在小公司做增删改查的程序员也很多,一般的时间点是怎么样的?
1 比如25岁打算入行,用半年时间上培训班,一般培训班讲课4个月,剩下两个月找工作。
2 找到工作后,用顶多2年升级到高级开发,再用2到5年升级到架构。
3 当然架构不是那么好升,但可以在入行后用5到7年时间,升级到资深开发,或者找个稳定点的能抗中年危机的公司,问题不大。
这也是前文提到的,入行IT有年龄限制的原因。比如28岁入行,尚能在33岁到35岁找个国企或外企,如果是30岁以后入行,可能入行就会遇到中年危机,可能还未必有机会干到35岁。
也写那么多了,做个总结。
1 通过培训班入行得综合考虑年龄和学历方面的因素 。
2 培训班学员,通过第一份工作入行的难度做大,相比之下,后面的发展,就可以说是靠勤奋了。
3 入行后要提升不是一朝一夕的事情,得多跳槽,多积累资深技术的项目经验,这样未必能一定确保进大厂,当然进大厂不是没希望,但至少能确保在35岁的时候找到个比较稳定的平台。
最后祝广大程序员朋友都能找到心仪的工作,同时在技能和薪资方面实现双丰收,也请大家多多点赞我的文章。