最近一直在思考这个问题,部门里面有两个培训出来的,学历不高的小伙子,在明确任务情况下,做的很快功能实现的也差不多。一旦遇到出现问题,很容易钻牛角,在时间很短的时间内很难琢磨出解决办法,说到这里可能觉得是不是工作年限不够,从编程的学历经历来看对于已经工作两年的,是可以独立解决一些力所能及的事情的。难道学历不高真的可以成为制约一个人学历编程的障碍?似乎不应该这么轻易的下结论。
编程是一个不停的建立认知的过程,对一个概念随着时间以及认知程度的提升,理解的层次就会越来越深刻。这就是为啥小白和高手在使用同一个api的时候,会有截然不同的表现,认知层次有差别。举个简单的例子,初学者对goto语句,很听老师的话,在任何时候都不去使用,对于有经验的高手会有不同的认知情况,从他们的角度出发既然编程语言里面创造这个关键字,说明在某些场景肯定会有用武之地,容易冲破一些限制,做出一些有创造性的功能或者架构。曾经听过这么一句话:一个程序员想做点创造性的东西,起码5年的时间,想想也是有道理的,前几年还是在姗姗学步的过程中,还没有真正掌握一些属于自己的思想,有思想了框架层次能力也就具备了。
上面说到的姗姗学步的过程,就是建立自己知识体系的过程,说到建立知识体系就涉及到一个大面的问题,需要对一些概念有一定的认知,这个过程就是计算机专业老师教的哪些理论知识。说到一些概念知道大概的意思,但是不知道内部以及底层的实现。建立知识体系就是把这些概念内部实现原理理解融会贯通的过程,然后把各个独立的概念贯通在一起的过程,每个人认知程度不一样,需要的时间也不尽相同。建立真正的编程思想以及全面的知识体系这个过程都是要走的,有些非计算机专业的,学历低的,填鸭式培训的,都容易缺失这两个环节。
本着负责的态度,笔者让这两个小伙伴制定一个一年的计划,把一些缺失的概念,弥补回来,在这个过程中慢慢建立自己知识体系。不能不说现在的无处不在的培训结构,很多基础怎么样的,忽悠过去填鸭式的灌输,短时间也能做出点,简单些的小项目(其实很多都算不上),因为时间短的原因很难在基本概念上补得上,所以建议那些急切参加培训的想把基础知识补一下再去不迟,进度太快很难跟得上,免得后期建立残缺的知识体系。
笔者曾经遇到一个高中学历的编程高手,代码能力极强,逻辑能力很强。通过接触了解到自学补全了N多层面的知识,这是通过后天的努力硬生生把缺失的补上去了。说了这么多,学历到底对编程有哪些影响?
语言层面的缺失,目前主流的编程语言基本上是英语,看不懂技术文档在一定层面减缓学习进度
如果英语基础不是很差的情况下,没有必要专门拿出大块的时间去学习,高中水平基本上就够应付常见的,在阅读文档过程中,遇到不懂的再去学习,见一个学一个。语言影响相对来说还是小些。
计算机基础知识层面的缺失,这个主要在建立知识体系时候,作为支点来使用,不全很难建立全面的知识体系
计算机基础知识的缺失,需要花费大量的时间去弥补,制定好计划,按部就班的就实施,需要拿出点毅力,随波逐流意味着提前放弃自己。
前几天听到有人说过,做码农是一个可以靠勤奋让自己走向中产阶级的一个方式,说的有点夸张,仔细想想也是有一定道理,起码可以让自己做到衣食无忧,而且一门技术在手心里也不慌。
唠叨了那么多,学历低是让自己起点变得稍微低了一些,但是绝不是让自己放弃的理由。世上有多少因为弥补缺陷而让自己在补的过程中,发现了自己巨大的潜力。美国奥运史上最牛游泳运动员菲尔普斯开始游泳是为了缓解缺陷障碍伴多动症,然后一直坚持去泳发掘出自己在游泳方面的巨大天赋。
笔者认为编程是一个对脑力要求很高的工种,但是并不代表需要多大的门槛,只需要有一颗持之以恒的决心。在实际的工作生活中,就是有这么一种人属于大器晚成类型,所以要对自己保持足够的耐心和信心。