面试官常说,培训机构出身的程序员“代码不干净”,是什么意思?

用户50035732909


在互联网行业,尤其是在移动互联网时代,程序员这个行业的门槛确实降低了很多,由于行业的火爆,程序员的待遇和薪水相比于其他行业来讲,也算比较高。所以,很多非科班出身的学生开始转行程序员,有的是自学,有的是通过培训机构,甚至科班的学生,大学不好好学,毕业的时候去上培训班的情况也有的是。


我感觉不管是科班出身,还是培训出身,其实在职场上,最看重的其实就是能力。但是,由于培训出身的学生,当然,这不能说是参与培训的学生的错,错的是社会和培训机构,以至于行业内的很多公司对培训出身的程序员带着有色眼镜来看。

为什么会带着有色眼镜来看呢?

原因很简单,很多培训机构宣传招生的时候,号称培训四个月,月薪过万,来吸引招生,赚取参与培训学生的钱。但是,你想想四个月真正能学到的东西有多少?四个月学完科班两三年的课程,基础肯定也不扎实,这种情况下,怎么能够让学生培训完月薪过万呢?


当然是简历造假了。简历上培训完,就写自己至少有两年工作经验,实际上一点工作经验没有,只有培训经验。帮助培训学生包装简历,教一些面试技巧去应付面试。从而,导致大家对培训的学生戴上了有色眼镜。


咱不能否认,培训的学生当中,确实有牛逼的,但是如果简历不造假,凭自己能力拿高薪,是无可厚非的。所以,有时候,并不是学生的错,而是培训机构的错。

对于代码不干净,我感觉题主说的这个只是个别现象,带有强烈的个人主义色彩和认识。培训里的学生也有技术好的,不能以偏概全。


正确认识培训

我认为关于培训,培训机构应该禁止虚假宣传,把虚假宣传的时间用在如何努力提高培训人员的能力上和学习上,应该不仅仅教他们技术,也应该正式培训出来时的水平。从而,让培训的学生有一个好的面试经历。


另外,培训的学生也应该认识到,在培训机构最重要的是学习,而不是被培训机构的宣传所误导,从而迷失了自己。


我感觉要让培训更好的服务社会,一个是培训机构要正规,合法,不要虚假宣传,把时间和精力放在培训上,而社会应该也有责任和义务,不要歧视培训出来的学生,社会不歧视,可能培训也不会造假,社会其实从某种程度上来讲,也是有一定的责任的。


关注「非著名程序员」,每天分享有价值的科技内容,也欢迎大家在回答底下留言,一起交流分享,另外回答不易,请点赞支持。感谢!


非著名程序员


看了前面几个回答,有大神,也有赌气的,我来说说我的意见。

培训机构名声不好,从这里出去的程序员一般不会说自己是培训出来的,因为一说就没人要了。

“代码不干净”我也是很少听说,我想应该说的是代码是胡乱拼凑的,没有一定的系统性,只是为了完成任务东拼西凑而来,维护和扩展都非常困难。

也难怪,就那么几个月的时间,想要彻底搞懂一样东西,还不分有无基础,怎么可能呢?

我面试过不少这种人,有一个做前端的,挺高挺瘦一小伙子,吹完自己的“项目”之后,我让他展示一个满意的作品,并询问他的创建思路,结果人家说,极度崇拜乔布斯,所以网页就用黑白两色,也不管其他,中间还带着斑马线,字体也不清晰,是那种小女生比较喜欢的娇弱体。

我的个妈呀,真是大开眼界,果断撵走。

其他的有的说忘带U盘了,有的连基础知识都不知道(不是搞不清楚),还有的直接看着自己带来的作品,说是从网上下载的......

我不是刻意贬低,也有好的,一个中专毕业的,做的作品挺好,回答问题的思路也很清晰,最后要的就是这个人,大专、本科、硕士的都撵走了,实在惨不忍睹。


偶尔装糊涂


大家好,我是码农无疆。软件行业多年老兵,和你聊理想聊技术。

你有疑问,我来回答。面试官常说,培训机构出身的程序员“代码不干净”,是什么意思?

我们可以从团队合作这个角度,理解这个问题。

一个软件产品或者项目,会涉及到代码分工,如果按模块编写,每个人负责编写模块,相当于独自处理一个任务。其次是模块组装,集成为一个更大的模块。比如说其中提供输出的模块出现问题,会连累被输入模块。此时,我们说程序出现了Bug。

  • 集成联调不过,“不干净”的代码意味着逻辑实现问题,需要打回重写。

  • 集成联调通过,但是命名不合规范,没有注释。维护人员也会说这个人代码不干净,不容易理解,没法接手。

代码不干净,什么人会有这样的问题?

代码质量跟这个人编码水平有关,而编码水平的提高并非一日之寒。

在大公司工作锻炼,更能写出高水平,高质量的代码。

培训机构出身的程序员,缺乏实际工作经验,对项目的复杂度,怎样团队合作理解不够。

怎样做到代码干净

公司层面:制定代码规范制度以及合理的软件开发流程等。

个人层面:不要编写大段代码;重复代码封装成方法;添加必要的注释;留下可扩展的空间;测试自己的代码;参考大厂如BAT编码规范等。

总之,无论你是被面试的,还是正在求职路上,都不必被面试官的话吓倒。真正的标准来自于对自我的要求,不是吗?

无疆在线普及科技常识,更多精彩回答等你来看。关注请点右上角,加入无疆粉丝团。


码农无疆


培训机构一般培训4个月,短短四个月很难培训所有内容,一般情况都是以实现功能为主。但是做项目不仅仅是实现功能,还要考虑代码的复杂度,可拓展性,耦合性,内聚性,像c和cpp这种偏底层一点的还要考虑内存的占用使用和释放维护等。

短期内看,实现功能很简单。比如很简单的实现一个链表,有的人用数组,有的人用stl容器。但是stl容器有list,有vector,set,map等等。你无论用哪一种,都能做到存储数据和查找功能。但是还要具体考虑使用情景和容器底层的实现方式。map和set底层是红黑树,对于查找非常有效率,但是插入和删除数据,如果数据量比较大,会动整个树的结构和序列,所以一般用于查找较多,而很少删除和增加的。vector是内存中一块连续的内存,方便插入和删除,但是本身是无序的,所以查找,内部就只能遍历查找了,适用于频繁增删,查找不多,数据不大的情况,之所以数据不大,是因为内存会分配一定的容量给vector,一旦数据超过了容量,内存会另外再开辟更大容量给它,vector原有的数据要全部复制过去,很耗时。而list是一组无序不连续的内存,数据之间依靠指针指向连接,理论上只要不超过可用内存,可以无限制插入删除,插入数据时,在内存中找到差不多大的位置,然后把该位置的地址给上一个元素,一个连接一个就行了。同vector一样,不适合大量的查找操作。此外,由于list占用的内存比较松散,很大可能会发生串地址的情况,即别的指针做个自加操作,就串到list上,并不安全。这里我也不班门弄斧了,头条大佬也多。这些底层的东西培训机构不会也没时间交给你,更不会一一举例,但是在项目中的使用很重要。


哔哩哔哩啪啦啦


这里是丁哥开讲,我来回答一下这个问题。

我不太关心,程序员是不是培训机构出来的。我比较关心的是,什么是干净的代码?如何写出干净的代码?

首先来说什么是干净的代码?

干净的代码客观上说,程序复杂度一定是很低的。

干净与不干净虽然本身有点主观的意味。但是容易懂的代码,很容易修改的代码,大多数程序员都是认同的。

除了程序复杂度以外,从如下几个方面看一个代码是否干净。

. 类和方法足够的小,只执行单一的任务。

. 类的公开接口方法的定义要清楚简洁。

. 代码是可测试的,也就是很容易写出测试代码。

. 测试代码也要容易理解,并且容易修改。

明白了什么是干净的代码,那我们就需要往这个方向努力写出干净的代码来。

再来说一说干净代码的好处。

好处1就是代码方便维护,任何人都可以读懂你的代码。按照现有的代码格式就可以写出同样干净的代码来。

好处2就是方便添加新的功能即程序的扩展。添加新的功能,以不破坏程序的干净度为标准和前提。在软件开发过程中,经常遇到的一个问题就是,添加新的功能以后,导致程序的复杂度大幅提升。这是很不幸的事情,发生这样的情况,一般有多个因素,但是主要的原因是对整个程序架构不了解,再加上项目进度催逼的太厉害。导致程序员会不择手段把功能实现再说。这样子,一个项目的代码看起来会是多个项目的风格。

好处3就是方便培训新的程序员,并让他们很快的融入到团队当中。项目后续梯队的培养是一个项目能够长久发展的重要因素。随着时间的推移,老的项目成员可能会有晋升机会,或者转移到其他的新项目中。如果你的代码是干净的,那么项目的人员更替以后,工作效率也应该不会受到影响。

好处4也是方便将来的自己看懂自己的代码。经验少的程序员很少能够理解这一点。做过很多年项目的程序员,对这一点可能深有体会。

我们假定这样的情况,项目中需要添加一个新的功能,或者需要修改一个bug,而这部分代码只有少数的几个人能够懂。而凑巧的是你就是其中的大牛之一。

于是你打开那些代码。代码历史记录表明是你的代码。但你需要很长时间才能回忆起当初的思维逻辑。甚至永远都想不起来了。

这个时候你可能会后悔,我当初要是把代码写的更干净一些就好了。

最后,祝各位都写出干净的代码来。



丁哥开讲


不干净应该指的是写的代码不严谨,应为在培训机构出来的学生,只是为了实现功能,完成项目,包装简历,找到工作,是不会考虑代码的工整性,严谨型,完整性的。

再加上本身培训机构的教学时间就不够,4个月学基础,学理论,还要做将近三个项目,是没有时间考虑这种代码的结构,只要完成项目,学生能做项目就ok了。

别说我没告诉你,我说的都是真的,我之前就是IT培训机构的教学总监,所以听我的没错,培训机构出来的学生思维能力有限,可培养性很差。


云码素材


任何一个行业,任何一个领域,只要是“火”了,肯定会有一大批人“心急火燎”地随大流。

IT也是一样,互联网的兴起,在加上人工智能AI的发展,导致程序员职业处于供不应求的状态,所以工资很高。大多数人肯定眼红啊,就想挤破头也要挤进这个行业,没有只是储备,那就随便报个培训机构,几个月速成,好赶上这一波风口。

绝大多数人都是奔着钱来的,绝大多数的培训机构也是奔着钱来的,所以就生产出一批一批的“半成品”涌入市场,就是题主说得“代码不干净”。

这也是为什么越来越多的企业对只要是培训出身的应聘者,一律不要的原因。

一,“代码不干净”就是水平还不够。

程序员不是简简单单的把那26个字母打出来就行了,程序员的工作虽然是独立的,每个人负责一个模块,但是模块与模块之间需要衔接。

如果你打完的代码与其他人衔接不上,那就是BUG,而且对整个项目都有影响,相当于你一个人拖累了整个团队。代码出问题一般都说谁编写的谁处理,别人找BUG的话很麻烦,如果你连自己写的代码都顺不下来,那可就尴尬了,大多数培训机构出来的,都是自己写的代码不知道是什么,因为没有基础,学的东西基本都是死的。

二,为什么培训机构出身的程序员会被认为“代码不干净”?

最主要的原因就是没有经验,就像上文说的,都是奔着钱来的,很多人都觉得编程就那些固定的语句,符号,学会了就能做项目,不会深入理解编程。

而且现在的培训机构为了抢资源,都说什么零基础几个月就能成为编程大神,都是扯淡。程序员这份工作,真的非常吃经验,参与的项目越多,代码越简洁,编码水平越高。

比如你敲100行代码写出个程序,大神可能30行就足够,就算人家告诉你怎么做,你都不一定能理解。

在培训机构才几个月就想拥有别人在大学学了几年的编程水平,太不切实际了吧。

三,机会总是会留给有准备的人。

不能说一棍子拍死所有培训机构出身的程序员,有些人水平还真不错,至少能达到公司的招聘标准。

可是很多人都没想过一个问题:去培训机构是为了学门手艺以防万一,还是为了尽快出山赚钱?

任何一份工作,都不是那么简单就能胜任的。倒不是说有些人就是不行,不适合做程序员,最起码在转行时要考虑清楚啊。


朋也


说句题外话,大学学的计算机专业,毕业之后做的也是专业相关的工作,周围接触的基本都是程序员,还从来没有听说过“代码不干净”这个词,不规范或者不写注释等等倒是有。不过有可能就是指的这些?

其实现在越来越多的公司不太想用培训机构出来的人,不是因为代码呈现出来的方式,最主要的原因是:简历包装得太过分了,导致扰乱了这个行业的一些氛围。

再说现在科班(计算机专业)毕业的人也很多了,为什么不直接招学校了经过了3年或者4年专业知识训练出来的人培养而是要那些在培训机构只经过几个月的短暂培训的人呢?


陈家姑娘说职场


现在很多企业对于培训出来的程序员都带着有色眼镜在看,甚至一些过激的企业直接把培训出来的程序员排除在外,这种做法很明显是不正确的,主要很多培训机构的宣传以及包装对于软件市场有非常恶劣的影响,导致很多企业反映非常过激。

软件培训本来就属于查漏补缺的一种极好方式,随着各个行业的成熟对于职员的要求也是越来越高,所以很多人在进入真正的岗位之前先让自己强化一下,提前试营业一些规则,现在培训行业已经慢慢走进大家的生活了,很多机构开始对于工作多年的程序员培训,帮助遇到瓶颈的程序员进行提升,这都是社会进步的一种体现,整个社会对于开发人员的技能要求是越来越高,培训不失为一种好的办法,培训的本质是查漏补缺,就是讲在具备一定基础的条件下培训出来的会有意想不到的效果,但是现在很多机构把培训吹嘘的太严重了,零基础弄上几个月就能顺利拿到高薪,在当今这个社会对于一个普通老百姓钱不是那么好挣。

要正确的对待培训,零基础的并且对于编程这个行业不感兴趣就不要想这码事情了,即使真的想参加培训也要自学上一段时间摸摸自己的底,到底差距在哪里下一步怎么去学习,不要迷信觉得零基础只要加速几个月就把什么事情搞定了,几个月的时间好的机构能让人找到如何学习编程的方法,这种相对来讲更加可靠一些,现在绝大部分的机构采用的是强灌式方式,这种方式能够激发一些人内在的动力,很多人可能都是处于半知半解的状态。

其实参加过培训的人都明白,培训完了通过机构介绍找到工作的只占很少的一部分,大部分都是觉得学的差不多了自己投简历找工作了,毕竟依靠培训机构推荐的工作大部分来讲是外包性质的工作,无论什么状态最终能够达到什么样子的效果是最关键,培训是一种大趋势,但要明白自己需要在什么场景下选择培训更加合适,要清晰的认识培训的本质。

很多机构为了让学员增加面试的机会,直接在简历上大做文章,结果让很多企业非常恼火,本来拿出时间来面试人结果发现面试的人虚假成分太高,造成人力成本的极大浪费。所以有些企业直接采取极端的措施,看到培训的直接拒之门外了,这种做法很明显不合适。有些人基础非常可以通过培训让技术更加全面了,这也是极好的一件事,所以认识上要清晰明了。

回到正题面试官说培训出来的程序员代码不干净,这种本身带有一种很强的个人偏见在里面,培训出来的程序员由于采用的灌输式方式,肯定会在代码习惯以及编程行为有所欠缺,对于初级新手也算是正常的现象,初级程序员容易写错各种错误的代码也非常正常,没有必要带着放大镜看这件事情,无论谁都是从新手走过来的。

希望能帮到你。


大学生编程指南


怎么说呢,培训机构毕竟几个月出品一批程序猿,在某种概念上,都是一些CV攻城狮,所以很容易在代码中留下技术债,所以很多公司对于培训机构出品的程序猿抵触,不过这个更多的在于自己,如果一个计算机相关的可以系统的学习计算机基础知识,并且熟悉语法,那么在毕业前去培训机构学习一些实战内容,然后再去工作,也是可以的。而可怕的是啥都不会,中间学习几个月就出师的。所以最核心的点就是程序猿自身,是不是专注于技术,专注技术,又怎么会有这种问题呢


分享到:


相關文章: