本文是我在知乎提问《计算机专业学编程和非计算机专业学编程差距在哪儿?》下的回答,结合了一点自身经验讲了讲这个事情,知乎上反馈还不错,所以也放到CSDN上让大家来看看。这里是知乎原链接。
首先是专业课的差距——你可以到清华大学计算机科学与技术系的官网上找找贵系的人才培养计划,看他们比你多修了哪些课程。计算机专业课程里有很多是涉及计算机基本原理的,有兴趣可以多了解下。
其次是在编程上所花的时间——计算机专业的同学大学四年间,花了大量时间编程。人家改的bug都比你多那么多,对计算机的理解深刻一点也没什么问题。
以上两点是比较容易看出来的;而最后一点,是我认为,不太被人所重视,但是实际上非常重要,同时也是科班同学拥有的巨大优势——有大量与同专业人面对面交流的机会。
在与同专业人大量面对面接触和交流的情况下,就算是科班的弱鸡,也能在同专业大佬的指引下,少走很多学习过程中的弯路。譬如说,C++基础一点都没有,但你总能在系里找到几个能把C++讲得活灵活现的同学。你可以直接问他们问题,因为是同系的同学,他们一般不会拒绝,反而会细心地给你讲解。我身边就一个同学,从C++一点都不会,一路问同系同学加自学,进步神速。我当时自学C++时三五天都没理解的知识点,他通过向同系同学提问,几个小时就弄懂了。
倘若你想了解不熟悉的领域(计算机细分方向其实很多),你也在系里总能找到一些擅长某个细分领域的人。假设你算法不好,可以问ACM选手;想涉猎网络信息安全,直接问网安竞赛选手…他们的经验也许会帮你快速找到正确的学习方向,节省你很多的时间。
相比于非科班同学,他们也许可以在网上加一些技术群,或者看一些技术论坛等等。但是有些时候,面对面沟通效率真的是很高,尤其是你遇到一些情况比较复杂的问题的时候。
综上所述,如果你想超过科班选手,你可以着眼于第一点和第二点,也就是修科班同学的专业课,然后花更多时间去编程。第三点是科班同学所具有的特殊的优势,你可以通过考一个计算机研究生来弥补这方面的劣势;同时,你也可以多多在网络上提问,和专业人士交流计算机方面学习的问题,从而完善自己的知识体系。



