不管是思维上还是做事风格,以及对待问题的解决方式都有所区别。
今天我就给大家梳梳理一下,科班成为相对于非科班程序员,他们的优势到底在哪里?
第一点那就是算法能力。为什么要强调这一条呢,大公司总是喜欢考算法,平时有些项目也有可能用到算法,总之算法就是衡量一个程序员的一把利器源此,作为非科班程序员,大部分时间,学习算法都只能靠自己,作为计算机领域的一门难题,没有老师指导,没有一些好的学习方式,那么你在算法上面的成长,可能也会很少。
对于算法问题,即使是科班的程序员往往都很难以去克服,更别说我们这些半路出家的程序员了,记得我当初连数据结构,都不知道是个啥,这种情况下去学习算法,真的就是扯淡,学会了数据结构之后,发现也只是学了皮毛,等真正接触一些面试算法题,才发现计算机的世界原来如此的博大精深。
除了算法之外,更要命的东西来了,就是计算机基础,传说中的四门专业课,我相信这几门课程也是横亘在科班程序员和非科班程序员之间的一道巨大鸿沟,科班程序员基本上在大学期间都有机会接触到这些基础课程,而非科班程序员几乎是无法接触到这些课程的。
一般来说,他们能够掌握一门语言,并且学会了如何做项目之后,就觉得自己已经学的很多了,很多非科班的程序员都不知道,对于程序员来说,这些作为根基的东西也是他们必须需要学习的,比如计算机网络,网络编程的基础,如果我们搞不懂计算机网络的话,你甚至连电脑上的ip配置都搞不清楚。
*** 作系统则是很多编程语言能够运行的基础,不管你用的是Java,还是C++,你都要对 *** 作系统有一定程度的了解雹改迅, *** 作系统是你理解各种高级编程语言的基础,特别是后端编程,我们需要考虑内存管理,考虑并发编程,考虑网络编程,等等等等,这些东西都必须跟 *** 作系统打交道。
数据结构就不用说了,刚才我们在算法里已经提到了。还有一门很重要的课程就是计算机组成原理。你不知道计算机组成原理,你就不知道电脑到底是怎么启动的,更不知道CPU到底是如何运转的,如果你连这些都不知道歼备,等以后你真正遇到这些问题时,再让你从头学起,岂不是天方夜谭?
当然了,非科班程序员也有自己的优势。
比如说,理解事情的能力和解决问题的能力,我觉得科班程序员,他们能够成为一个程序员,是一个非常正常的事情,他们按照自己的原有轨迹去做,毕竟这是他们比较熟悉的领域,并且能够把它们做好,非科班程序员就像是半路杀出个程咬金,可能你不知道他之前的积累是怎么样的,你只知道他现在可以通面试。
这里不得不提一点,就是非科班程序员的跨界能力,非科班程序员大多是自学成才,其实要跨界成为一个程序员,还是比较有挑战的,毕竟我们可以在他们身上看到更多的可能性,他们更加有变通的思维,至少在自学这个方面,他们更加有话语权。
所以非科班程序员往往更有自学能力,他们有很好的技术视野,知道如何去扩展自己的技术边界,毕竟他们知道如何很快的切换到另一项技术,或者是另一个领域。对于非科班程序员来说,这种跨界的尝试会更加的轻松一些。总结了以上这几点,我觉得科班程序员和非科班程序员并没有什么天壤之别,只不过大家开始的时候不一样。
一般来说,计算机软件 专业 科班的人需要掌握《数据 结构》《 *** 作 系统》《高级 算法》《软件 工程》……等一些专业课程,这些是非科班程序员所缺乏的。但陪销坦是,作为非科班程序员,本身也有其专业优势,就是能够更好的理解其专业领域的应用需求。所以,非科班出身的程序员,只需要自己补充一下以上课程知识,就可以提高自己的软件开发能力。
总之,不断斗郑学习,才会有进芦桐步。
程序员一枚,从周围同事的情况来看,程序员这行对专业的要求没有想象中那么高,但是也有迹可循。
一:软件工程 / 计算机科学与技术
这两个专业几乎是为程序员量身定做的,在大学时代就能接触到非常多如编程语言、计算机原理(计算机组成原理、 *** 作系统、计算机网络等)、数据结构算法等与编程密切相关的课程,而且大多为必修源游滚课。这些课程学好了以后,大磨团多数同学都还是可以收获一份比较满意的程序员工作的。
二:网络工程 / 信息安全
这些专业也属于计算机大类目下,对比软件工程等会更侧重在网络安全上,当然编程语言、算法、计算机基础也都是这些专业比较重要的课程,对于应届生来说这些都是成功应聘程序员岗位重要的基础知识。
三:物联网 / 电子与计算机工程
这部分专业在大学期间学习的内容不局限在软件本身,除了常见的C汇编语言外,也有很多电子信息硬件等相关知识。在找工作时候,这些硬件知识对应的原理如果掌握的较好,也会起到一定帮助;当然,这也建议你在大学期间花费更多的经历去了解算法和数据结构等软件知识,能够起到不小帮助。
四:人工智能 / 区块链
这些都是新兴的专业,侧重在包括AI、区块链等新一代互联网技术上,除了上面提到的基础知识外,这些特定的技术在面对对口岗位(如策略算雹余法工程师等)有非常大的竞争优势。
总结一下,对口程序员的专业主要集中在大类“0809计算机类”与“0807电子信息类”下,可以多关注这些专业内容。当然,我的同事中也不乏英语、物理、数学等专业毕业的,其实无论在大学选择了什么专业,只要能够定向的学习计算机语言,学些基础知识,都还是有机会成为一名合格的程序员的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)