非科班程序员怎么弥补和科班程序员之间的差距?

念念旧!


你好,对于你的问题,我来发表一些个人的观点。


对于你的问题“怎么弥补和科班程序员之间的差距”,我因为个人工作时间也不是很久,所以方法上不能给你什么建议,所以在这里我来为你分析下你所说的科班程序员。

科班程序员

我应该算是你所说的科班程序员,但是我没觉得我比其他非科班的程序员高贵、厉害多少,当然,这可能因为我是一个学渣吧。

科班程序员就是计算机相关专业的毕业生,那么,计算机相关专业和其他专业有什么不同呢,我想,你觉得和科班程序员有差距的原因,也许就是因为这些不同而造成的。

  • 大学计算机课程

那我来说,首先是在学校的课程,我现在还记得的课程都有:

C语言,C++,数据结构与算法,计算机网络,java,计算机科学导论,计算机组成原理,软件工程,软件测试,操作系统,数据挖掘等等。

当然随着学校的不一样,课程可能会有变化,但是像数据结构与算法,计算机网络,C语言这几个,应该都是有的。

你可以了解下,你和计算机专业差的知识在哪块,这样当你想去追赶他们的时候,就会有一个方向。

  • 计算机专业的训练方式

我自己虽然是一个学渣,但是我还是参加过我们院开展的一些有助于学生发展计算机技术的活动。

首先接触到的就是 ACM 协会,当初也是不知道怎么就加入了,什么也没了解,结果就是去了一两次,就放弃了,最后看来,加入这个协会对学生的帮助是很大的。

在大一大二的时候,暑期一般都不会有什么事情,这时候协会就会聚集同学们利用暑假时间来集训,刷题,提升他们的编程、算法能力。

现在想起来,如果我能坚持下去,那么可能我比现在会更好。

还有就是在大三大四的时候,当学生有了一定的计算机基础,各个实验室的老师就开始召集一部分学生,组建一个个实验室,开始做项目。可以想象,从大三就开始做项目的同学,到了毕业,项目经验应该是很丰富了。

我自己是大三快完了的时候才加入了一个老师的实验室,感觉真的是受益匪浅,实际的做项目经验,让我能在毕业之后比没做过项目的同学,更好的找工作。

  • 计算机专业同学的创业

我们学校是有一个专门提供给有想法的同学实现自己想法的基地,各个有自己想法的同学,会聚集一帮志同道合,技术不错的同学一起做自己的项目。

虽然大部分都是夭折的,但是这个过程和经历,会让他们与众不同于其他同学的。


以上是我总结的我们学校计算机专业的一部分,你可能觉得专业课是你和科班程序员拉开差距的地方,其实不然。

在我看来那只是做程序员的基本条件,非必要条件,我们学的那么多知识,是会提高我们知识的广度,但是我所见的厉害的同学,都会有自己专精的一部分,对于不感兴趣或者不熟悉的地方,也会和学渣一样。

所以真正我觉得会和非科班拉开差距的地方,是我所说的其他的方面,这些东西,让计算机专业的同学不仅在学校的时候就能增长经验,还让他们了解了怎么去实现自己的梦想,如果当他们技术足够,想法足够,那么,他们会爆发出很强的能量。


这些是我觉得科班和非科班的区别,但我自己认为,这些东西只是让两者的起点不同。

不要说不公平,既然你想跨专业,那你就应该知道其中的难度。

当你成功的进入的程序员行业,那么就不要总是觉得不如科班的,要是你跨专业,还比科班的厉害,那么不是科班的是学渣,就是你是天才。

说这些不是说非科班就应该比科班的差,我想说的是,差距是肯定有的,但当你追上科班的水平的时候,那时候的你,眼睛里恐怕只有“比你厉害的程序员”和“比你差的程序,而不是“科班”和“非科班”。

不要给自己打上标签,你的能量超乎你的想象。


^_^

我这里有一些当年自学时候找的计算机相关专业资料,想学习的话可以私信哦


abigbread2018


作为一名从事IT行业多年的老程序员,同时我也在带研究生,所以我来回答一下这个问题。

在我看来非科班程序员与科班程序员的差别主要在以下几个方面:

第一,知识结构。这是主要的差别,科班出身的程序员往往具备完善的知识结构,包括操作系统、网络、计算机体系结构、数学、数据库等内容,这些内容对未来的编程有非常大的帮助。对于非科班程序员来说,这部分知识也是需要重点弥补的。

第二,学习能力。我带软件团队多年,给我一个比较明显的感觉是非科班出身的程序员比较畏惧接触新内容,这对一名程序员来说影响还是比较大的。每当软件团队有新的任务时,我一般都会开会让大家集中讨论,往往是科班出身的程序员敢于承担新的开发任务。

从带软件团队到现在,我没有一次遇到非科班程序员主动承担新任务的(需要学习新技术),但是很多时候,机会就是从承担新任务开始的。记得多年之前(大概8年前),我第一次带移动互联团队,做Android开发的程序员都是从Java转过来的,但是没有人接触过iOS开发,我就开会讨论,看有没有人主动承担iOS开发任务,结果一个刚参加工作没多久的程序员主动承担了任务(毕业于北京理工大学计算机科学与技术专业),目前他已经是移动互联开发团队的主要负责人了。其实,承担新任务也是一种对自己学习能力的自信,非科班程序员也要培养自己这种自信。

第三,解决问题的思路和途径。科班出身的程序员往往有多种解决问题的思路和途径,而非科班程序员解决问题的思路往往比较单一,一旦这个思路有问题就不知道该怎么办了。出现这个问题的根本原因还是基础薄弱,经历更多的项目自然能培养这方面的能力。

我也带过一些非科班出身的研究生,通常情况下,这些研究生在刚入学的时候做实验非常慢,进入课题组之后需要一个较长的适应期。一般我在研一的时候就会给非科班的研究生列出一个书单,主要是根据学生自身的知识结构来决定要弥补的知识,通常需要弥补的是操作系统(Linux系列)、数据库、计算机网络、编译原理、数据结构等内容,通常计算机专业研究生的数学基础都比较扎实,所以逻辑思维能力基本上没有太大的问题。

按照历史经验来看,虽然早期的时候非科班学生编程比较慢,但是到研究生的后期基本上与科班学生没有多大的差距,有的甚至是同学中的佼佼者。所以,不用担心非科班身份,只要不断学习并弥补自己知识结构上的差异,做一个优秀的程序研发人员是完全没有问题的。

还有,对非科班程序员来说,如果在工作中遇到了较大的职业发展瓶颈,那么考研是一个不错的选择。

我的研究方向是大数据和人工智能,我在头条上会陆续写一些关于大数据方面的科普文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有编程方面的问题,或者是考研方面的问题,都可以咨询我。

谢谢!


IT人刘俊明


作为一个非科班的程序员,如何弥补和科班之间的差距,只有你真的比科班的人写得好!因为你没有学位,没有系统的课程,只有真正从实战中越过学位这个坎儿,靠的就是你拥有超强的写代码的能力。而这种能力,只有靠写大量的程序和代码,积累经验,切实锻炼出比大部分科班同学更强的coding skill的能力。


多练习,多做项目,多踩坑,在开发的过程中,除了极少数的项目需要顶尖的理论知识的算法,绝大部分的日常开发,依靠的都是经验。每天保证一定的代码量,开始很困难,因为没有理论知识,所以有很多问题不懂,遇到不懂的问题再去查资料。


选定一个方向,比如像你所说的,学习的是Java,就去网上去找相关的视频教程,跟着视频教程来走,系统学习一遍,然后再看一些Python相关的书籍,做一些项目,这样印象会更加深刻,有关软件开发方面的名著。


以前在“如鹏网”上学习Python的学习路线,可以作为学习的参考。有网络的地方就可以学习,以前学习的时候就是利用空余的时间来系统的学习的,大三就开始工作了,拿着薪资上大学,积累工作经验。

1、Python基础

2、数据库开发技术

3、web前端

4、Python web开发及企业项目实战

5、Linux

6、NoSQL

7、数据可视化

8、爬虫技术

9、人工智能

最后,你需要的是自信,非科班生绝对可以做得比科班生要牛逼。写个程序而已,有多高深?非得读个几年书?说白了,只要你肯不要命的、勤奋地写代码,未来的发展会非常的不错的。


玩着学编程



分享到:


相關文章: