当一个生意很赚钱的时候,什么乱七八糟的人都会想来作这个生意。这很正常。程序员
当一个职业薪水高的时候,什么乱七八糟的人都会想从事这个职业。这也很正常。面试
程序员就是其中之一。算法
对其余高收入的职业来讲,存在一个门槛,就是从业资质。它能保证进入这个行业的人,能知足一个最低标准,以确保这个职业的产出质量。数据库
程序员这个职业没有实际的从业资质门槛。你几乎凭一张嘴就能找工做。编程
先说说程序员三种来源,就是:培训出来、计算机专科毕业、计算机本科及以上毕业。网络
而真正的计算机教育,如今只存在于本科。本科一上来不学编程,而是先学两门课:计算机原理和操做系统原理。数据结构
这两门就好似中学化学:未来用不到,但起码知道药为何能治病,木头为何会燃烧,看上去毫无关联的现象其实都是共同的机制在起做用。框架
计算机原理和操做系统原理也是同样,经过了解 CPU、系统总线、内存映射、磁盘分区、设备驱动,从而了解计算机的设计者们面对各种问题,他们都是经过何种思路来解决的。数据结构和算法
接下来是否是能够学软件开发了?没有,接下来是数据结构和算法。这两门课也是要仔仔细细的学,先学一点编程语言的语法,而后把这些数据结构和算法挨个都实现了,这才算掌握。数据库设计
那接下来是否是真的能够学软件开发了?没有,接下来是网络原理、图像处理、多媒体原理、数据库原理,在这些课程里面要把图像的灰度计算、网络包的纠错、非对称加密、遵守范式的数据库设计等等所有实践一遍。到了这个程度,学生方才具备了程序员应有的思惟方式。
除此以外还有三门课:汇编语言、专业英语和计算方法。前两个好理解,而计算方法就是如何设计一套算法,在实现复杂的高等函数计算的同时,保持偏差最小化。由于计算机精度有限,通过几十万次加减乘除偏差会变得很大,因此像天气预报、工业设计方面是不能简单的套用函数去计算的。
这些课程在锻炼学生思惟方式的同时,也在开阔学生的眼界:计算机这个行业深不可测,增删改查之类的,连根毛都算不上。
那接下来,是否是真的,真的能够学软件开发了?没有,接下来是学校为你准备的最后一步:软件工程。就是让学生在工做以前先对软件开发的过程有个概念。
这是最后一门课程,接下来就毕业了。
妈的,软件开发到底教没教?开发工具呢?框架呢?
反正在我那时候,学校是一丁点都没教。
全靠学生自学。
上面这些就是从大二开始,三年的专业课程要学的。学生把这些课程学懂了,其知识水平跟专科和培训机构出来的彻底不是一个层次。
再看另一边:培训机构六个月(这时间还算长的)出来,是什么样子呢?
语言会,框架会,工具会,增删改查会;但你要他设计一个链表,不会,要他查询数据库记录而后组成一个树结构,不会,要他写一个简单的的锤子剪刀布游戏,不会。没错,不少人就是这样,低能到这种程度还自觉得达到了程序员的标准,这在十三年前是不可想象的。
再好比用工具,没问题的时候还好,一出了问题就抓耳挠腮不知因此,错误信息摆在面前也看不懂,不知道怎么办,我说你调试一下吧,只见一边鼠标晃来晃去一边咂嘴吧,不知道该在哪打断点。
这种状况下谈什么自学能力那都是扯淡的知道不。不少人觉得自学能力是个隐藏属性,我想怎么吹均可以。但实际上一我的的自学能力很容易就看得出来:自学能力强的人不会轻易求助别人。就这么简单。
因此之前针对计算机专业的程序员面试,有些是假设面试者已经懂的基础上,不会提某些问题,但如今不同了,有些问题必须问了,好比什么是进程?进程是如何启动的?进程启动失败了会怎么样?这就比如问一个会计的求职者什么是钱。
我曾经很天真,觉得入职的新同事虽然水平差,但只要对技术有热情,我仍是能够带起来。最后发现不少人一离开培训机构就彻底失去学习能力,觉得凭几个月学的那一点毛皮就能混吃到老。
曾几什么时候,从事程序员人都是对技术很是有兴趣的。如今这样的人愈来愈少了。只要这个行业无门槛的状况继续保持,状况就不会中止恶化。
我不是但愿把本科学历当成程序员的最低标准,由于本科专业课程仍然是与市场脱节的,只教知识不教技能。我只但愿有一个真正实用的软件公司都认可的职业门槛,不达到这个门槛就不能从事程序员。这是一个成熟的行业必需具有的。
这就是我得出的结论。