⑴ 如何判断程序员是流水线上的,还是科班出身
从专业课上看,这个最准
科班出身的的基础知识储备是非常完备的,比如计算机组成原理、数据库、编译原理、数据结构、C语言、算法、操作系统、设计模式、汇编、计算机网络、离散数学、模拟电路、数字电路、软件工程。
这些大学里学的东西,当时感觉一点用没有,学这玩意干嘛?
不如学一学怎么写网站,学一学语言,直接上手编程做开发。
当你做了几年之后,才发现这些东西的价值,就跟学钢琴时要注意坐姿、练习琶音、音阶一样,基础的东西,只有你弹大曲子时,才突然意识到,原来那些基本功那么有用。
上面基本上是废话,怎么从专业上判断一个程序员是不是科班的呢?
问他几个专业性的问题就好了,培训班那种流水线,是不学这些知识的。
比如算法题:说一下深度优先搜索和广度优先搜索之间的区别,举例。
比如数据结构:用一句话说一下栈和队列之间的区别,说一下什么是二叉树。
比如数据库:内链接和外链接的区别,举例说明。
比如设计模式:说一下什么是单例模式,什么是工厂模式
比如操作系统:说一下操作系统中几种常见的进程调度算法
上面五个问题,如果对方听都没听过,那么这个人一定不是科班出身的,这个是100%能下定论的。
你可能不是每个问题都能答上来,如果你是计算机专业的,你一定会对这些问题有印象,因为要考试啊,不为别的,至少你听过这些术语的名字,就这么简单。
⑵ 对程序员说点实在话,科班与非科班出身区别在哪
一般来说,计算机软件 专业 科班的人需要掌握《数据 结构》《操作 系统》《高级 算法》《软件 工程》……等一些专业课程,这些是非科班程序员所缺乏的。
但是,作为非科班程序员,本身也有其专业优势,就是能够更好的理解其专业领域的应用需求。所以,非科班出身的程序员,只需要自己补充一下以上课程知识,就可以提高自己的软件开发能力。
总之,不断学习,才会有进步。
⑶ 在你的专业,科班出身的优势是什么
你现在在做程序员,如果你大学的专业是计算机专业的,你就可以说你是科班出身的,如果还有另一个程序员,他大学专业是艺术专业的,那么他就是非科班出身的。简单地说,就是他现在工作所需的知识,是不是他以前在大学专业课上学的。不过科班出身并不一定强于非科班出身,如今互联网发达,很多学习资料都可以轻而易举地从互联网上获得,老师在课堂上所传授的远不及互联网可以搜到的,所以只要自学能力强,非科班出身的也可以学得相当优秀。
⑷ 自学编程到底能不能找到工作
能找到工作。说到培训班我觉得培训班是速成,的确培训班能学到东西,前提是你跟得上培训班的进度,实际情况是大部分人跟不上那个进度 因为大部分人连基础都没有,培训班也有培训班的好处,有老师,便是最大的好处。可以让你少走弯路。
我大学自己学了很多,从单片机到Linux应用等等,都学过,然后大四头脑一热,花了七八千报了网络班,后来才发现,什么用也没用,都是讲的基础知识。
好处:
并不是说培训班就一无是处,他有人带,真的能少走很多弯路。
所以,如果周围有人愿意带你,或者有一定的底子,那么去培训班是没有必要的。而且培训班的费用不少。
并不是对口专业出来的就是科班程序员,有好多大学啥也不会,也是快毕业才去学的,是伪科班。
此外,科班程序员和培训班出来的是有区别的,同样用代码实现一个功能,科班的自己能很快有思路,构造整个功能的框架,可能培训班出来的需要别人指点 ,或者思考很久,同样一个api。
科班的知道在哪些情况下使用它比较好,哪些情况要注意,培训班出来的只知道它能干嘛。毕竟科班的踩过的坑多,培训班是速成。
⑸ 想当程序员,大学应该学什么专业
想当程序员可以学这两个专业:
1、软件工程
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
2、计算机科学与技术
计算机科学与技术专业主要培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。
选了这两个专业,会在大学中学习到c语言,c++,java,javaweb等等一系列编程语言,要注意的是,大学里一般一个学期结束一门语言课程的学习,进度会非常快,课程安排量也不会太充足,想要学好,还得靠自己课下努力才行,至少得掌握一门自己拿手的语言。
当程序员需要具备的能力
1、编程语言能力
作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累。
2、编码能力
遵守编码规范,是一个程序员最基本的要求。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
3、面向对象思维能力
多数编程语言都是面向对象的编程语言。而这些面向对象编程语言的共同精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。
⑹ 非科班程序员和科班程序员的差距到底在哪里
不管是思维上还是做事风格,以及对待问题的解决方式都有所区别。
今天我就给大家梳梳理一下,科班成为相对于非科班程序员,他们的优势到底在哪里?
第一点那就是算法能力。为什么要强调这一条呢,大公司总是喜欢考算法,平时有些项目也有可能用到算法,总之算法就是衡量一个程序员的一把利器源此,作为非科班程序员,大部分时间,学习算法都只能靠自己,作为计算机领域的一门难题,没有老师指导,没有一些好的学习方式,那么你在算法上面的成长,可能也会很少。
所以非科班程序员往往更有自学能力,他们有很好的技术视野,知道如何去扩展自己的技术边界,毕竟他们知道如何很快的切换到另一项技术,或者是另一个领域。对于非科班程序员来说,这种跨界的尝试会更加的轻松一些。总结了以上这几点,我觉得科班程序员和非科班程序员并没有什么天壤之别,只不过大家开始的时候不一样。