如何从垃圾变为有尊严有职业水准的程序员
Posted 正在战斗中
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从垃圾变为有尊严有职业水准的程序员相关的知识,希望对你有一定的参考价值。
我这里要说的主要是基于个人这几年的一些感受!
在工作的前20年,我一直以为程序员都是勤勤恳恳,颇有对于技术的爱好!
我也不必为自己讳言,我是一个对技术抱有爱好,但不算勤奋,很普通的一个人。
但至少,我对于技术保持着好奇心和求知欲!关于求知欲,我觉得这是做技术人所应该持有的最基本的态度!
然而当我离开故地,来到上海的时候,才发现错的有点离谱。于此,我也对于行业,对于社会,对于国人有了更深入的认识!
由于我的工作性质和以前有所不同,所以我需要负责招聘和管理程序员,而不是仅仅写写代码而已!
从我这几年的找人、用人经历,我总结几点:
1) 新人糟糕的不少
2)有些人糟糕的表现能够突破下限,无论是为人还是技术
有的读者可能认为我太偏激了,或者认为我公司是不是太差。
这么说吧,我自认是一个正常的中国人,性情也温和。至于公司,成立将近20年,规模一般般,大概百来号人,算是小微企业,待遇一般般,但也算正规!
下面我就一一展开:从情况到原因、解决途径!
一、我们一眼看到的不是沙子,而是失望
我们这一代人对人失望的时候,通常喜欢用这么两句话:朽木不可雕,烂泥扶不上墙。
那么标准是什么?我们那一代人的是(至少我是那么认为的):
1)对自己不负责-既不认真,也不努力。
2)没有自知之明
3) 屡教不改
为了便于读者的理解,我这里就说几件事情。
我一直以为我们现在的教育不是很好(不算很好,但也过得去),但是我没有想到最近5~7年之内的教育是那么的不好。
头一两年招聘的时候,我们笔试比较少,更多的是面试。但是招聘了一批人之后,我就发现了巨大的问题:想象和现实之间存在这鸿沟。
我不并仅仅为自己部门招聘人员,也为其它部门(这里是交付)招聘人员。人员基本要求:熟悉java开发、会一些web开发。
由于公司的政策,相当多的新员工是来自于专科和三本学校(大部分是民办),公司认为实施工程师不需要那么好的。
假设某个张三是交付部门的新员工,我会发现以下情况之一或者好几点:
不熟悉计算机的基本概念。不熟悉到什么程度? 完全突破下限
- 分不清楚内存和磁盘,把磁盘称为内存
- 基本没有网络知识,仅限于会用手机上网。不会配置网卡,也说不清楚iso七层协议是啥东西
- 操作系统不熟悉,不懂cmd,不懂很多快捷键,连360,腾讯管家之类的也用不清楚
专业技能极差
- sql写不清楚,仅限于select * from xxx where xxx. 稍微复杂一些的就不会了
- 有的连递归排序算法也写不清楚
- 让他安装或者学习一个新的技能,简直能要他的命,经常得到的回复是:我不会,我不懂! ( 卧槽,不会不懂? 不会去百度,去学习,难道我是你老师,是培训学校?)
- 只会最简单的crud,可惜crud也搞不太清楚,因为有些规范他们还不怎么关注
习惯极差
- 从不做笔记?把自己当张松了。也可能不知道有做笔记这种事情,在学校没有学会,也没有养成习惯!
- 不懂得收藏地址和收集问题
控制力和上进心极差
- 上班喜欢磨洋工。为什么宝贵的时间不用于工作学习,而用于一些无聊的事情上?好像他的表现都是为了公司,而不是为了个人。 似乎多摸鱼一些,他能够赚到一样。
这种幼稚的摸鱼表现的副作用:
-
- 拖累个人表现
- 降低企业效益
- 最重要的是,浪费自己的生命,因为工作也可以学习到许多知识
- 一个喜欢摸鱼的人,不会得到团队和公司的认可。企业不会给这种人机会。
- 如果离职了,那么不会得到推荐的机会,因为口碑!
- 个人时间(网上、周末)大部分时间都是在玩游戏,这个从个人的朋友圈等处就可以看到
- 周末不懂得提升自己,总是游戏或者死宅!
这种堕落的表现是要严厉批评的。不过,如果有人自甘堕落,并且颇为心安理得,自得其乐,我们也不能限制这种“自由”。
毫无责任心
- 已经那么烂了,能使有责任心吗?对自己都毫不负责
- 工作没有做完,总是准点下班,从不考虑下班的时候思考如何解决或者着手解决
当然也不是一直都那么烂,进步也有,但一般不如意。
我认为,可能部分的高中生的表现都比他们好,至少那些高中生勤奋、认真。
我被震惊、甚至愤怒!这些人的表现,突破了某些下限!
这样的人在我的公司还有一点规模,而我由于各种原因, 必须坚持改善这种情况。
好的一面是,我们的情况在改善之中;其次我下属的团队这样的人比较少;我们之中也有具有专业精神的人。
为什么这些20出头的技术人,都那么烂。。。?
公司问题和管理问题,是另外一回事,我不做过多的讨论(虽然这里占据很大一个责任)。我认为更主要是。。。
二、我们的教育和社会存在重大的问题
一直以来,我认为作为一个毕业生,最基本应该掌握:
1.计算机基本知识,包括计算机结构、简单算法、基本网络知识,基本硬件知识、对windows或者linux熟悉(毕竟这批人很多从小用电脑);用得清楚开发工具
2.具有基本的学习和工作习惯。对于社会和职场至少应该有一些非常基础的认识
3.作为一个成人,应该懂得自律,不能再沉迷于游戏,懂得为自己着想
4.有基本的责任感,对自己负责,对工作负责
5.最重要一点,作为技术人,应该保持对技术的热爱!
对于这些人,我的看法是:
- 大部分是废品,好的也有,但较少
- 就算有品行良好的,上限也是堪忧
虽然,不需要这些新同事做复杂的活,但是培养这些人也是非常费劲事情,如果你有当过老师或者当过父母就知道了。
有的读者,看到这里,认为我是歧视,其实不是,我只是陈述了令一些人不愉快的事实!
对于那些有良好品性的人,我永远喜爱并尊重他们,那怕他的学历真的很糟糕
这些员工有价值吗?很小。以后也没有价值吗? 未必,关建看他们自己的改变。
那么这些人为什么会变为那样的人? 因为他们大部分来自糟糕的学校;因为他们自身的能力有限。
这些学校为什么糟糕了,因为这些学校没有对学生真正负责人。由于我们教育的习惯,这些人很多到了大学之后完全放飞自我,而大学的老师不怎么对这些学生负责任。
或者说,这些学校,这些教师,大部分完全不具有教书育人的基本素养-他们缺乏仁心、缺乏许多教育者的基本素养。
何以这些大学和他们的教师会变成那样? 体制负有较大的责任。注意并非说社会制度的问题。
首先大部分的教育领导热衷的是一时的名利,并不会考虑长远,他们更在乎硬件条件,还有一些虚假的指标。其次这些领导的素质比较低下,他们的能力比较有限,当他们把精力放在教学之外的时候,对于
教育本体就没有那么多精力和能力进行了。更不用说,有些领导根本是心术不正,甚至可以说其心可诛!
这个世界有又坏又有真本事的人,而大部分的这些学校领导属于坏而本事有限的人。
那么这种情况怎么破解了?问题比较复杂,我觉得不适合说太多,因为一时也说不清楚。
学校糟糕是一个方面,但是话说回来,不是还有其它原因吗?
1.不知道求人不如求己!
2.作为一个成人没有对自己负责。一个人不对自己负责,没有前途可言!
3.子不教,父之过
相当多的90后严重缺乏家庭教育和社会教育,而后者是更加严重的。
我所认为的社会教育,指的是大家族、所在居住地对于人的教育。
由于社会的剧变,物质生活好了,但是国家付出的代价是非常巨大。在某些方面,我甚至认为得不偿失,我一直这么认为。
我们要发展生产,主要是为了吃饱,让国力强大。但为了一代人而放弃另外一代人,是不是有点过了?
为了发展生产,我们的社会变得比较缺乏人性,年轻人没有教他们基本的礼仪,生存之道。而一些不良团体和风气对于这些年轻人的三观起到了破坏性的作用。
他们的家庭,他们的社会环境没有教育他们基本的道理:为人处世,先在于做人。做人在于有良好的品性,和团体很好地融合。
这些年轻人能够学到的,或者被灌输的都是一些愚蠢的东西。
所以,有时候,心灵的破坏比肉体的破坏还可怕!
破坏良好的社会人文环境很容易,有人以为可以很容易地恢复,其实不是的,那要耗费无数的心血和漫长的时间和精力--不仅仅是个人、家庭,还要包含国家!
4.巧妇难为无米之炊
有的学校也负责,但是学生属于朽木级别,老师也头痛!
5.你不是这一块材料,被赶鸭子上架,难为你了!
老师负责人,学生也认真努力,但是就是学不好,为什么? 因为他就不是这一块料。
这些学校出品的也不全是差生,也有一些部分还不错的,只可惜企业未必有那么大的耐性和成本去淘宝!
对于大型企业和国企,基本不太可能去找这些学校!
中小企业从这些企业招聘,最好是找相熟的人内推下,或者是已经毕业被市场证明过的!
三、如何解决
有了问题,就要解决问题!
社会层面,我无能为力!
对于我们公司而言,采取以下措施:
1.增加笔试和上机测试
2.入职之后,适当增加培训
3.增加考核环节
4.尽可能不找毕业生!毕业生更可怕,因为很多一点社会常识也没有,不了解职场规矩,有的还好高骛远!
我们找人所考虑的第一要素是品性,我们始终相信:只要有好的品性,成为一个合格的程序员还是有希望的!而且对于这些同事,我们的要求也不是那么高,只要求他们掌握基本的东西即可!
这些基本的东西,只要个人多花费时间、死记硬背、多练习,总是可以掌握的!因为这里不存在融汇贯通、创新等方面的内容。
对于个人而言,其实非常简单:
1.端正态度,认识不足
2.笨鸟先飞,拼命学习!强调下:是拼命,而不是一般般努力。如果只是一般努力,那么永远也不会有赶上同行的机会!因为要竞争的是同年而不是后辈!
具体到技术方面,我们只要求掌握以下内容:
1.熟练使用操作系统
2.懂基本的网络概念和配置
3.掌握基本的文档能力,会写简单的需求,操作手册
4.数量掌握sql,或者说简单一些,就是mysql。此外要会安装MYSQL,做简单的优化
5.会MVC框架,SSM
6.会js.我认为每个程序员都应该掌握这个,无论是前端后端!应该js还是比较简单的!
7.会安排自己的时间、具有一定的团队协作能力!
四、最后一个问题-如何成为更好一点的程序员
首先什么是“更好一点的程序员”的标准?
1.品性过关,心智成熟
2.前文的基本能力都要具备
3.掌握基础技能:了解计算机结构、操作系统基本的构成和原理、网络的基本构成、基本的算法和数据结构、基本的设计原则和常见的设计模式(套路)
构建基本的计算机世界观,理解计算机和编程是怎么回事!
我们常常会因为无知而彷徨,因为彷徨而烦乱,大大影响和世界的交互!
4.精通手里的工具,例如eclipse,idea,netbean之一种,精通文本编辑工具、sql客户端。。。。
要真的精通,而不是只会打开、不是别人问你的时候,答的磕磕巴巴,甚至做沉思状!
5.熟练编写软件开发过程的各种文档(可以不要很精通设计,有能力最好掌握)
6.精通一门语言,这里先说java。保证熟悉变量、对象、io、网络、多线程等等
7.了解常常使用的各种工具的原理和结构,例如jvm、关系数据库、高速缓存
8.掌握几个常见的工具或者框架,例如spring+springMvc,netty
9.如果您是前端程序员,万万不要沉迷于各种框架之中,那样会走弯路的,很可能工作几年都做不出一个复杂的页面,解决一些复杂的性能问题
因为一些企业应用的页面可能比常见的电商界面复杂得多多!
以上有一个前提:弥补基础,这个是重中之重。万丈高楼从地起!很多人听过。可惜很多人忘记了,或者不以为然!
由于许多人的基础实在是太差,很多基本概念不懂,学习起来非常费劲,甚至是痛苦。但这个是绕不过,绕不过,绕不过!
附上百度汉语,对于“精通”的解释
精通,汉语词汇。 拼音:jīng tōng 指精诚所至,通达感应;透彻通晓。 语出《庄子·刻意》:“纯素之道,惟神是守,守而勿失,与神为一,一之精通,合於天伦。”
通俗一些,精通就是:别人问的时候,能够立刻答复;出些一个需求/要求的时候,立刻知道如何解决,并很快解决。
万万不要把只会做,不会说,当作精通,错!错!错! 我希望读者某天能够明白我说的。
最后,本文许多都是套话。但是套话就是接近真理。
本文不指望每个人能够理解!希望这些有点让人不悦的文字能够对一些人起到微末的帮助!
以上是关于如何从垃圾变为有尊严有职业水准的程序员的主要内容,如果未能解决你的问题,请参考以下文章