谈到程序员(尤其是零项目经验的程序员)找工作,培训班是个不可回避的讨论热点。虽然本人也做过兼职Java培训老师,多少了解些培训班的事,但在这问题上无意为任何培训学校站台。而且本人一直在做技术面试官,所谓兼听则明。
本文将从技术面试官的角度,再加上了解到的培训班一些见闻,聊聊我对如下两个方面的话题。第一,培训班的作用有多大?该不该上培训班?第二,针对低基础的程序员,尤其是零基础想转行的程序员,给出些找到第一份相关工作的建议。
1 培训班的价值在于节省时间
我见到很多培训班给出的培训内容很符合实际企业需求,给出的项目案例包含的功能点也很值钱,确实能帮到一些零基础对软件行业两眼一抹黑的人,能把他们带入行,给出一些启动知识,甚至还能帮忙推荐工作。
比如要招工作经验在1年以下的java程序员,一般中小公司的要求是能干活,比如能跟着项目经理干SSM框架的活,能照着别人的代码完成自己的任务,也能写些不复杂的SQL,对项目经验,有最好,没有也没关系。
对于上述标准,一个二本学生其实用半年到一年,上点心,看视频看资料然后照着调试,可能也能达到要求,而培训班能通过三个月,甚至更短的时间,让学员达到这个水准,毕竟人家培训班的教学方式经过了时间的检验,而且培训班里的老师和大学的老师相比,可能更熟悉社会上软件公司里的项目开发技能。
不少人问过我,该不该上培训班?这个其实不能一概而论。
1 如果你自认为平时混混沌沌的,成天不是玩手机就是闲逛,那么首先需要确立良好的学习习惯,比如多看书多看资料多运行代码。
2 如果是在大二大三阶段,还有时间来积累知识,也是可以建议自己多看视频多写代码,相关资料太多怎么办?自己慢慢探索,很多时候试错很能锻炼自己的思考和学习能力。
3 如果很不幸到了大四面临找工作,但发现自己之前积累太少导致找工作很难,但目前想明白了,发心上进了,钱也够,这个阶段可以考虑些上培训班,毕竟时间不等人,但自己依然要多看资料多运行代码。
4 工作以后手头有闲钱了,想锦上添花学个值钱技术(比如机器学习大数据等)然后跳槽涨工资,而自己学可能比较费时间,这可以报个培训班,毕竟早一天学好早一天能换好工作多挣钱。
总之,首先自己得上进,自己看资料学习自己通过运行代码积累知识,这个阶段谁也代替不了,哪怕自己学刚开始很难,也会走弯路。其实,衡量下自学所需的时间代价和培训班的学费。
2 很多情况下,不是不努力,而是不知道该怎么努力
在上文里,我提到了自己看资料看视频写代码,其实做起来很难,比如不知道学哪些知识,或者刚开始阶段代码环境调试不通,或者不知道某些知识点该学到什么程度。不少大学生可能也上心过,但在遇到上述困难后就放弃了,又如我面试过不少初级程序员,论态度绝对到位,但对一些基本问题无法回答到点子上。现在想想,除了态度端正外,方法也很重要,这里就给出些零基础和低基础的程序员如何自学的建议。
第一,一定要多投入时间,量化一下,工作后大概每天用2个小时,早上半小时,上班路上半小时,晚上回家后1个小时,周末两天加起来用4小时学习。如果还在校,就得每天至少用八小时。
第二,就看培训学校的培训大纲,这些往往时他们用时间总结出来的比较贴近企业需求的要求点,比如java方面包含基础知识,数据库,框架知识,分布式技能等,先按学校里课程表一样,给自己列个学习计划,比如xx日到xx日,学java集合,哪段时间学SSM,这样做起来哪怕有延后,但大致能保证在某个时间节点前学完某个知识。
第三,在列好学习计划以后,按从简到难的步骤,先买书学,再看视频。比如学SSM框架,先买两到三本书,照着书上的案例运行一下,有个大致的理解,如果在运行过程中,可以找些视频看,案例无需复杂,能体现全栈即可,这步就搭建一个所谓的脚手架项目。在这个步骤中,业务无需复杂,因为以后工作的业务一定和这无关,每个点也无需深入,但求全栈走通。
第四,有些培训班的培训课程上,会有些值钱的关键技术,比如redis,linux之类的,这些往往在第三步搭建脚手架项目时用不到,平时自学时也会忽视,但一定得了解这方面的技术。
一般来说,通过上述步骤,主观上努力,客观上不断看书看视频调试代码,一个零基础的大学生,最多用半年,就能上手在软件公司里看比较基础的活了。
3 培训班良莠不齐,如果要上该怎么选
在有些场景里,供自己学习的时间来不及了,比如要着急找工作,或者着急换行业,这时候可能不得不找个培训班,那么该怎么遴选?
1 一定得有自己的主见,别轻信培训班介绍老师的说辞,因为他们很多是接受过话术培训的。
2 培训班有直营有加盟了,所谓加盟就是某公司把钱给总部,由总部给培训材料,有时候甚至加盟的培训学校会视频上课,而不是老师直接过来上课。我无意评论直营和加盟的模式,但大家可以自己想一下。而且,最好找个名气比较响的开办时间比较长的培训班。
3 一定得到现场去一下,去的时候除了听介绍外,最好再到各班级走走,看些班级里的同学在上课时在干嘛?是在认真听课还是做其它事情?
4 最好再试听两三位老师,有些老师是只会照本宣科运行代码然后照着结果说,而比较好的老师应该会围绕“技术如何在项目里应用”这个主线,而且表达能力出众,哪怕再复杂的技术也能让学生轻易理解。如果培训班的老师只会照着书本读,运行案例后再说明,而无法给出自己多年项目经验的积淀,那么这种老师的能力就一般了。如果培训班里大多是这样的老师,那还不如自己学。
4 从面试官角度说下培训班学生不该有的幻想
有不少初学者会认为培训班是万能的,尤其是有些不实的宣传会让学生加深这种想法,有这种想法后,学员或者期望过高,或者过度依赖,从而忽视自己的努力。哪怕你上了培训班,你可以得到一定的收获,但收获不是无限的。
1 对培训班的“包就业”许诺,得谨慎地看待。
大家可以换位思考一下,如果你项目经理,你想招哪类人?培训班确实能帮助程序员上手,但能干活只是其中一个考量因素,其它还需要考量程序员的学历,专业出身,相关技术的使用年限等。而且,公司有时也会遇到用人荒,确实很欢迎培训班推荐人过去,但也不大可能因为和某些培训班比较熟,就招个能力技术没达标的程序员进来。
2 对培训班的包装简历,大家自己斟酌。
站在技术面试官的角度,如果候选人面试得当,我甚至无法甄别候选人在简历中的某些夸张描述。比如明明候选人在去年的公司里做的是测试,但描述成Java开发,至于在简历中写了其实没用到的技能,更是无从考察。对于这种无法通过背景调查验证的信息,说句无奈的话,只要候选人有本事吹,别穿帮,我只能认可。
无奈并不意味着我认同,相反我会尽我职责甄别此类现象,如果有,则会不得不给候选人打上“不诚信”的标签。不过我知道有些培训机构甚至会自己开个皮包公司,让些其实没工作经验的程序员补上相关经验,这做虚假简历的做法就有些过了。而且我在上海,有劳动手册和退工单等方式可以看之前工作的情况,这能甄别出此类虚假简历,在其它地方我就不知道了。但我想说,虚假简历哪怕在技术面试阶段能过关,但背景调查就过不了,至于小公司不会做背调,这个就另当别论了。
3 培训班不是万能的,进了培训班不是进了保险箱,而且刚开始对公司和工资别抱有太大希望。
不容置疑,培训班确实能帮助程序员就业,而且我在上海,有各种规模的公司,培训班靠技术积累和人脉积累,一些网站上的高就业率我也信(我相信并不意味着我为之背书),而且部分学员的工资会过平均水平。
不过前提是,第一你进培训班之前的背景就不错,比如两人在培训班里其实学差不多,但本科出身的人工资普遍会比大专要高,第二你在培训班里更不能得过且过,第三,尤其得积累实际动手的能力。不过话说回来,如果进培训班前的起点比较低,那么可能经过若干月后,确实能找到工作,但可能局限于楼层公司或小公司,而且刚开始的起点工资未必高。
5 准备简历时切记,项目经验优先,算法题其次(低基础程序员在找工作时的普遍问题)
大多数培训班会辅导就业,也会做模拟面试,有些培训班的辅导就业老师可能不会提到,其实应聘时,面试官首要看的是项目经验,而算法智力题仅仅是考察候选人的基础和思维能力。道理还是比较好理解的,总是想招个能立即干活的,而不是需要经过一段时间上手学习和试错的。
大多数培训班的就业老师也算经验丰富了,指导后的简历和面试说辞一般不会太差,如果候选人在培训班里确实认真学,找个小公司,甚至通过外派进一些大公司也是有可能的,我之前的博文里也有不少相关经验。这里我就专门说下培训班出身的候选人普遍存在的问题,以及对应的好的做法,如果你投了很多简历,但没面试机会,那么可以参考我之前的博文你的简历能帮你争取到面试机会吗 。
1 简历在文字上费了很多工夫,但没有展示自己的商业项目经验,毕竟项目经验是第一考察项,如果没有,就把课程设计,毕业设计以及培训班给的项目写到简历中,这总比没实践经验要好。
2 回答仅仅停留在理论层面。比如有个问题。
String a = "123456"; a.substring(0,3); System.out.println(a); 大多数候选人能说出结果应该还是123456,但仅此而已。在讲完后,哪怕再多说一句,我在平时项目里会时刻注意这点,那么就能显得你不是光会理论,而是会应用到开发中。如果能回答大多数问题时都能带上一句,面试官就会感受到你的经验是来自开发,并不是来自背题目。
3 过度看重加分项,或者一个点讲很透彻,但全栈流程层面说不清楚。比如有候选人会振振有词地和我说在spring cloud里引入redis缓存的做法和好处,但spring从前端到后端再到数据库的流程未必能理解,这就无法达到起码的“能山寨代码”的要求。
6 低基础程序员在做第一份工作时的注意点
其实零基础或低基础的程序员找到第一份工作不难,不过可能进小公司的概率大些。 而且由于应聘第一份工作时,更多靠的是面试技巧,本身的知识储备未必扎实,而小公司对程序员的性价比要求会很高,所以不少培训班出身的程序员可能未必能过试用期。但在第一份工作里熬个一两年,其实后面的发展就相对平坦了。
刚进公司的时候,一定得多问,遇到问题得早点抛出。很多任务其实按个人能力,做起来会有困难,这时一定得厚着脸皮多问别人。如果某程序员闷声开发三天,然后什么都没产出,等项目经理问了再提出自己问题,这类人一定过不了试用期。相反如果多问,可能刚开始的时候项目经理会认为你的能力比预期要差,但好歹能完成任务,通过不断寻求帮助一定能很快提升,这样过试用期的可能性就大很多。
而且,在完成任务的同时,一定别仅限于代码层面,多去和测试或者产品需求方沟通,别坐等被分配任务,这样项目经理就会认为不仅有能力写代码,还有解决实际问题的能力。
当程序员有实际项目经验后,之前培训班的因素可能就不怎么突出,所以积极一点的话,在第一份工作里,甚至可以准备向大公司靠拢,进大公司不难,在我的这篇博文里,宁撞金钟一下,不打破鼓三千,IT人要有志气,要进就进大的好的公司,我就写了进大公司的经验,这同样适用于培训班出身的程序员。
7 总结,不该妄自菲薄,自己上进才是正道
培训班出身的程序员没有原罪,相反从他们身上,我看到的是积极上进。而这部分程序员被拒的原因大部分是他们没有实际项目经验或者能力不达标,而一些参差不齐的培训机构过多夸张简历和技能的做法更加深了市面上对培训班的偏见。
前文提到过,不是所有公司在招人时有资格提出高要求,不少公司甚至会面临用人荒,所以培训班出身的程序员绝不该妄自菲薄。自己本身就上进,外加培训班的助力,这才是发展的正道。
如果大家感觉本文有帮助,请推荐本文,也欢迎大家通过评论来交流。
版权说明:
有不少网友转载和想要转载我的博文,本人感到十分荣幸,这也是本人不断写博文的动力。关于本文的版权有如下统一的说明,抱歉就不逐一回复了。
1 本文可转载,无需告知,转载时请用链接的方式,给出原文出处,别简单地通过文本方式给出,同时写明原作者是hsm_computer。
2 在转载时,请原文转载 ,谢绝洗稿。否则本人保留追究法律责任的权利。