计算机专业学生的自我修养

作者: AndyXu | 来源:发表于2015-04-08 12:30 被阅读6821次

    作者/ 徐凯强

    很多同学问过我,毕业后想去腾讯、阿里等一些知名互联网公司工作,应该如何努力;另外一些行动比较早的同学,通过竞赛(ACM-ICPC)、实验室、实习接触到了计算机行业中的一部分领域,对下一步的发展又产生了更多的疑问。

    今天这篇文章,我想为在IT行业发展的计算机专业学生,解决以下三个困惑[1]

    1、学了计算机专业,怎么还是做不出网站、软件、APP?

    2、如果我想搞技术,那么学习计算机理论部分还有没有必要?

    3、我现在应该如何提高技术水平?

    1、学了计算机专业,怎么还是做不出网站、软件、APP?

    小李想成为想成为一名开挖掘机的高手,有人告诉他,要先学习《机械动力学》才能开好挖掘机《柴油发动机原理》;还有人告诉他,深刻理解了“燃气涡轮发动机”的原理,对成为挖掘机高手有很大帮助。

    初学者被高大上的名词击倒是一件很正常的事情,所以我们首先搞清楚,计算机专业学的究竟是什么。计算机专业的必修课有这么几个:

    数据结构、计算机网络、计算机组成原理、算法分析与设计、数据库原理、软件工程

    做网站、做APP是哪个课程教的呢?答案是,哪个也不是。计算机科学研究的都是非常基础的东西。即使有些名称看着和开发有关,教授的内容也不是开发软件,比如这里所说的“软件工程”,不是教你开发网站、App的,而是研究如何系统、规范化的开发和维护软件,以及结合管理技术和技术方法来管理项目的学科。

    实际上,国内大学的计算机专业的名称往往是“计算机科学与技术”,包括了计算机科学、计算机技术两部分。做网站、做APP,就属于那个“与技术”。在学校里,“与技术”的部分往往只开设几门技术早已过时的课程,开发App当然不在其中,这也跟IT业界发展速度快有很大关系。


    2、如果我想搞技术,那么学习计算机理论部分还有没有必要?

    你选择学习内容的标准,就看它能否显著提高你的生产力。科学和技术的区别在于,科学追求尽量深入,探索原理;而技术追求尽量封装,提高效率。

    当技术遇到效率瓶颈时,往往是因为依赖底层理论细节或原理,这时就应该尝试去透彻地理解它们。比如说如果你开发了一个网站,十分火爆,每分钟有几千个人访问你的网站,这时数据库没有办法同时响应这么多人请求,网站卡住了。数据库原理课上教给你的知识,举个例子说‘索引’,就是你解决的数据库性能问题的利器。

    但具体到Web、APP开发,最能提高你生产力的,不是《编译原理》,而是那些前/后端框架和脚本,学完了你马上就能做产品。当然,上边说了,你要学挖掘机,一定要先学《机械动力学》,否则你就没有内功,永远不可能成为挖掘机高手,我并不反对这种说法,但是理论和技术没有高低贵贱之分,技术中也有很多理念需要学习,经验也需要积累,有良好的理论基础可以帮你更好的学习技术,但并不能取代技术的学习过程。

    总而言之,技术和科学是不能完全分开的,如果你不懂得如何实现,那么你设计的时候就会陷入困局。编程当然不是仅仅决定如何开发实现那么简单,但是在最好的情况下,编程实现就是对理念的设计--因为最好的设计方式就是实现它。


    3、我现在应该如何提高技术水平?

    学技术的关键思路是两点:一个是模仿,一个是边实践边学[1]。以做网站为例,首先你可以看看w3schools.com,或者用Codecademy,学会HTML和PHP(或者Python)基本操作。然后找一些简单的框架,比如Bootstrap和Django,学习一下是如何用的,然后,你可以自己设计一个小网站,尝试把它做出来。

    不要让完美主义拖慢了你,不需要把所有的东西都学会了再开始。做的过程中,遇到障碍再去针对性地去学习和解决,或者寻求帮助。这种边实践边学习的模式,才是学技术的正确思路,这跟搞理论研究的思路是不一样的。

    当你对技术开发有了基本的理解之后,你就可以尝试去找实习了,最好找那种把实习生当正式员工来要求的公司,这样你就能很快的成长起来。

    [1] 文中三个‘困惑’取材自苏椰老师的知乎回答(http://www.zhihu.com/answer/32455092

    相关文章

      网友评论

      • 602738969b1e: @阿拉阿拉 时间成本。
      • 陶马文:上学的时候不大容易意识到枯燥的基础课知识有多重要,但是以后一个人的技术水平都是由这些基础决定的。
      • 深度沉迷学习:确实 现在总觉得大学上的课都是在浪费时间 感觉学的东西那么少将来恐怕连技校都不如
      • aaaad6a656f1:在学校就好好学理论,技术什么的到时候一接触就明白了,都不用怕。
      • farmas:gg,你写的也太慢了吧…
      • 萌面大道:大一,自学数据结构,很抽象=_=,还在自学Swift。。。要学的好多-_-#
      • f886718d8e26:同大三 上个月去找实习 人家都要有项目经历的 瞬间。。想去报培训班
      • Atof:一开始工作很迷茫 现在慢慢转变过来了 每天都能学些新东西 很满足
      • AlvinL: @JenkinZhang 你错了,这些课基础课,而且很重要,好好学,以后你会用到了,掌握了这些基本知识,以后学起其他东西就会感觉游刃有余,我是过来人,还有操作系统,计算机网络也很重要
      • b6deb44c923d:现在大二,正在学算法分析与设计,数据库原理,软件工程。觉得很枯燥,感觉像是混时间还不花这时间去学点技术,但为了考试,也只得硬着头皮去学。。。
      • 阿拉阿拉:可以这么想:那些那么难懂的基础课你都能熬过去的话,那些app什么的就几乎是easy渣渣了。
      • e1ae88b57949:那些课都听不下去
      • 775790a75bdf:组成原理和计算机网络真是硬伤 实在是不知道怎么学

      本文标题:计算机专业学生的自我修养

      本文链接:https://www.haomeiwen.com/subject/onuntttx.html