数学:数学很重要,而且很有趣。有很多人很害怕数学,但是任何理性的人都不会看不起数学家。数学可以应用在任何领域,而且,还有可能使你成为数学家,在数学史上留名,就等于让后来的最聪明的那少数人认识你,何等荣幸!但是,数学的确很难;幸好,学习计算机不需要太高深的数学,基本上就是老三基(数学分析,解析几何,高等代数),概率论,数理统计,然后就是很浅的离散数学。
但是你数学的基础决定了你的高度。
英语:计算机很多重要的论文都是英文文献,程序设计语言基本上都是英语书写,现在的互联网域名也都是英语的。好在英语很简单,如果数学的难度是n!,英语就是log(n),这里关键的是克服固有的习惯。hints:国内有很多优秀的数学教材,中国初等数学的教学水平是很高的,不要盲目的认为什么都是国外的先进。
如果你数学或(可兼或)英语不好,有两种选择:
1).回去拿起书和笔,从头夯实基础,然后再学习计算机科学。
2).跟着本博客走,我将把你领入门。
当然了,无论你选择哪一条路,还是希望你先看完本文。
为了能够实现帮到你,我会尽快的更新,然后借助大家眼明手快,逐渐的修改错误。
2.计算机核心课程:
硬件:
计算机组成原理
计算机体系结构
计算机接口和汇编语言
如果你想成为古典黑客,就必须有胆量面对硬件,这三门课程基本上可以自学学懂。效果依赖于你花的时间。操作系统有一小部分启动代码是使用汇编语言编写的,学好它们你才有机会看懂操作系统的源代码,这很有趣。
软件:
数据结构
算法(依赖于数据结构和数学分析,而且贯穿计算机科学课程始终)
操作系统
编译原理(难,但是很有趣)
计算机网络(不难,同样很有趣,这和编译原理很像,问题很密集,这就是乐趣)
数据库管理系统(现在大部分学校和教材都是面向关系型数据库。虽然各种NoSQL数据库开始出现,但是,我可以负责任的告诉你:关系型数据库经受了时间考验,并且仍然没有过时,以后会告诉你细节)
人工智能(这是最难的,我不会告诉你任何关于它的东西,如果你愿意,可以教我)
以上就是所有的课程,学的怎么好都不过分。
以下就是需要实践的了:
你必须选择平台:Mac OS X/Windows/linux;建议是选择你熟悉的或你的身边的人使用的,这样出了问题有人帮你解决。
你必须选择编程语言:语言有几千种,流行的有上百种,为了保值投资:我建议:在学习理论时尽快掌握C语言,C语言衍生出很多语言(如:C++/Java/C#/Perl/Python/PHP/JavaScript/Objective-C等等),而它们都很流行;学有余力就学习Lisp,函数式编程会让你受益无穷。Lisp中文资料很少很差劲,这就逼着你通过英文去学,你学会Lisp的时候,英语也学好了,恭喜你;还有一门很重要的语言:JavaScript,这是真正的既流行,又跨平台的语言,它跨越的平台有客户端浏览器,服务器,移动设备,它被戏称为披着C语言外衣的Lisp。
最终要的语言有C/JavaScript/SQL/html/css。
现在设备的运行平台有:
小型嵌入式设备:C语言和汇编语言
桌面应用: C语言和C++语言
服务器应用: C/C++语言,shell/php/perl/python/ruby脚本,JavaScript脚本
浏览器: JavaScript,html,css
移动设备: XML,JavaScript,html,css,Java。
第一次写博客,不知道如何组织内容,请多包涵,以后会更直接。