刚刚入学的学弟们总会抱怨本身的学校差,不是211,不是重点,甚至不是本科,不得不认可,学历有时候会决定你的起点,不过相对比较起来,来到计算机专业是你最幸运的事情,若是你学的是物理,数学,那么在一个校风不好,老师不怎么负责的学校里恐怕很难成长起来,若是你是一个电子专业的,那些昂贵的电子设备可能一个普通学校不可能会有。可是学计算机就不同了,All you need is an computer.由于互联网就是这些搞计算机的人发明的,天然互联网上的计算机自学资源也是最丰富的,你能够随意浏览牛人的博客,Stand on the giant`s shouder.
//todo:extending this程序员
这是一颗计算机树,咱们基本上都是关注与计算机树的枝叶部分,我记得以前有一句话,程序 = 算法 + 数据结构
但是如今实际开发中,程序 = 业务逻辑 + API。
随着高级语言的兴起,为咱们简化和封装了大部分数据结构和算法。这提升了生产力,也让许多人忽视了计算机的根基,侯捷曾说过,勿在浮砂筑高台,说的就是如今的开发者过于浮躁,只流于顶层api和framework的使用,不知其因此然。因此中国有大量的低端程序员,而中高端程序员广泛少于印度等国家。
若是以将来的职业分类,我想大部分人之后的工做能够分为两大类。算法
他们天天都在看最新的论文,写代码不多,可是内涵大量算法知识,工做主要在调整算法参数。
他们的做品以论文居多,一般写出算法给出文档,就交给程序员去实现啦。segmentfault
他们大部分在编写企业内部应用,如erp系统,企业管理系统,等等。
还有作手机APP开发的,开发各种APP和游戏。
还有给程序员作开发的,各种的IDE,Framework,Language,Library。
还有作Web开发的,如 作网站,作Web Application,作Web 2.0的东西,作电子商务,作Web服务。api
给各类手机开发底层驱动,给电子设备开发程序,如路由器,电视。
各类各行各业的电子设备的内部软件。
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学习