写给刚考入大学的计算机专业迷茫的同学

748 查看

写给计算机迷茫的学弟们

第一章、英雄莫问出处

刚刚入学的学弟们总会抱怨自己的学校差,不是211,不是重点,甚至不是本科,不得不承认,学历有时候会决定你的起点,不过相对比较起来,来到计算机专业是你最幸运的事情,如果你学的是物理,数学,那么在一个校风很差,老师不怎么负责的学校里恐怕很难成长起来,如果你是一个电子专业的,那些昂贵的电子设备可能一个普通学校不可能会有。但是学计算机就不一样了,All you need is an computer.因为互联网就是这些搞计算机的人发明的,自然互联网上的计算机自学资源也是最丰富的,你可以随意浏览牛人的博客,Stand on the giant`s shouder.
//todo:extending this

第二章、给你一盏指明灯


这是一颗计算机树,我们基本上都是关注与计算机树的枝叶部分,我记得之前有一句话,程序 = 算法 + 数据结构
可是现在实际开发中,程序 = 业务逻辑 + API。
随着高级语言的兴起,为我们简化和封装了大部分数据结构和算法。这提高了生产力,也让许多人忽视了计算机的根基,侯捷曾说过,勿在浮砂筑高台,说的就是现在的开发者过于浮躁,只流于顶层api和framework的使用,不知其所以然。所以中国有大量的低端程序员,而中高端程序员普遍少于印度等国家。
如果以未来的职业分类,我想大部分人以后的工作可以分为两大类。

算法工程师

他们每天都在看最新的论文,写代码很少,但是内涵大量算法知识,工作主要在调整算法参数。
他们的作品以论文居多,通常写出算法给出文档,就交给程序员去实现啦。

软件工程师

他们大部分在编写企业内部应用,如erp系统,企业管理系统,等等。
还有做手机APP开发的,开发各类APP和游戏。
还有给程序员做开发的,各类的IDE,Framework,Language,Library。
还有做Web开发的,如 做网站,做Web Application,做Web 2.0的东西,做电子商务,做Web服务。

嵌入式工程师

给各种手机开发底层驱动,给电子设备开发程序,如路由器,电视。
各种各行各业的电子设备的内部软件。
todo:extending this

第三章 入门

语言入门

关于语言入门,一说起来程序员们的口水战就开始了,支持最多的是C,其次C++,然后就是各种高级语言了,Java,Python等等。
我这里更倾向于Java语言,因为都是类C语言,语法上大同小异,初学者需要建立一些基本的语法概念,而C的东西Trick太多了,容易让初学者迷糊,打消初学者的积极性,而且Java现在不管是学术界还是工业上,都有广泛应用,入门足够简单,不会有C里面那么多不规范,或者说Trick,让初学者犯迷糊,其次,对于一个初学者,学会了C,基本上啥也干不了,我指想要编写通常意义上的应用程序根本无从下手,而Java入手则非常容易,想搞ACM,没问题,写图形界面程序,没问题,写安卓,可以,做网站,可以。
Java入门推荐书籍:Think in Java
Java入门在线学习系统推荐 http://www.fenby.com/course/list/1003