除去学历,科班出身的程序员其实并不占优势!为什么这么说呢,首先我们先来对比下计算机系和培训班所学习的课程。
1 在IT方面,计算机系会讲些基础课程,比如数据结构,算法,操作系统和编译原理等,当然也会开写编程课,比如C++和JAVA,有的学校还会开Python/ target=_blank class=infotextkey>Python和spring Boot方面的,但是在讲语言的时候,是存粹讲语法,不会结合项目应用。
2、培训班里,会讲语法,但一般都会结合项目讲开发,比如java方面,会单纯讲目前最好找工作的技术,比如spring boot,再讲项目里怎么用这些技术,一些好的培训老师还会讲如何解决项目里的实际问题,或者再讲些诸如组件等深层次的内容。
其次大家更可以从“大学和职业学校”的差别来看待计算机系和培训班所开设的课程。
计算机系之所以要设置这些基础课,是想把计算机专业的学生培养成在计算机科学方面的人才,比如设计个算法,优化个数据库,或是干脆设计个操作系统等。而培训班就相当于技校或职业学校,直接讲技术。
事实上,国内还真有设计或优化算法,设计操作系统或做国产数据库等计算机科学领域的工作,只不过这方面的活比较少。IT方面大多数的活是做开发,比如用Spring boot+数据库+分布式组件做个项目。
也就是说,大量的计算机系毕业生和培训班学员一起在干技术开发的活,在这赛道上,除去学历和相关项目开发经验等因素,计算机专业的毕业生其实并不占优势。
1 .计算机系所讲的数据结构和算法等,其实在开发中用到的都是些比较浅的技能,比如线性表队列等,算法一般是排序和搜索,这块培训班里哪怕不讲,培训班出身的程序员用少量的时间一般也能掌握。
2 .计算机系所讲的操作系统,编译原理,计算机组成原理和其他一些基础课,在项目开发中,用到的顶多也是些概念,真正对项目开发帮助不大,尤其是对只需3年开发经验的初级开发来说,这些技能用武之地真的很少。
3 .软件开发真正相关的,是编程语言和数据库,这块培训班是结合项目讲,而真正能做到结合项目精讲开发技术的计算机系,可能不会太多。
所以在程序员刚入行的3年内,其实培训班所讲授的技术会用得更多些,计算机系毕业生在刚开始工作的一段时间内,要做的事情也是把所学到的理论方面的技能转换成职业开发技能。