编程ing

高中时就对编程有着很大的兴趣,然却稀里糊涂的选上了税务这个专业。在这里我不想批评中国的教育,以前我什么也不懂,还好现在知道了,也为时未晚。

想自学编程也不是一天两天的事情了,其实高中就有这打算,但都是自己看教程,没有什么毅力,坚持到现在一事无成罢了。现在都大三了,着实鄙视自己啊。行了,闲话也不多说了……

自学的路子是按着酷壳上的《程序员练级攻略》,这里就不转载了,喜欢的可以自己google。至于其他的关于计算机理论的基础性的东西,目前是这么考虑的:先按着攻略来,等到需要的时候在恶补……

在此,感谢下酷壳上这么好的文章,还有刘未鹏(我自学编程的榜样,包括建这个博客也是受他影响)……

 

以下关于计算机理论的知识摘录于知乎,以备以后学习用:

==============

作为计算机专业学生,最应该学习的课程前五位是什么?

@张小兵

计算机专业概念有点大。我本人毕业于国防科技大学计算机科学与技术专业,个人觉得就计算机科学与技术专业而言,以下这些是必修的:

1、计算机组成原理(包括先修课程“数字逻辑与数字系统”,简称“数电”):这是一门硬件基础课,学完后你能清楚的知道如何从用最简单的数字元件,像搭积木一样构成整个计算机系统,那就算及格了。

2、线性代数,概率论和离散数学:要知道,凡是能称之为“科学”的专业,就必须有一定的数学功底,否则难以称作“科学”。这三门课我觉得是本科时期最重要的三门数学课,比高等数学重要。如果你想在计算机科学的道路上走远点,那这三门可是必修的。

3、MIT开设的《Introduction To algorithm》,中文版叫《算法导论》:我觉得应该学习它而不是国内习惯开设的《数据结构》。数据结构仅仅是算法的一部分,国内的数据结构课程回避了很多本质的东西,仅仅是对一些常见的数据结构的罗列,学起来总有些不痛不痒的感觉。《Introduction To algorithm》虽然有些章节夹杂着很多很让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。

4、操作系统与编译原理:操作系统可以说是《算法导论》的实验课,最好能在学习期间自己实现一个小型的操作系统,或者操作系统各分系统的Demo。编译原理可能是普遍本科生觉得难的一门课,但是作为软件科学家,这是基础中的基础,学完之后所有的语言在你看来应该没有太大的区别,这么课应该是离散数学+算法导论的实验课。最好能在学习期间自己实现一个小型的编译器,语言最好是自创。

5、掌握一门常用的编程语言和编程技术:能了解你用过的所有的程序内部大致是怎样的,能用你熟悉的语言编写大部分的程序,至少不能是对任何一个程序满头雾水。

以上这些不难做到,我觉得是基础中的基础,我偏激的以为,不能掌握他们就不应该获得学位。

==============