The way of CS

看到萧井陌大神的专栏文章,这里发表一下个人看法。

萧大的专栏文章:http://zhuanlan.zhihu.com/p/19959253

入门阶段

萧大的建议是使用python入门(他的原话是启蒙),可以避免同时学习语法,计算机系统,与算法思想的问题。他给出的路线是:

  • • 完成 MIT 6.00.1x麻省理工:计算机科学和 Python 编程导论)。虽然该课程的教学语言为 Python,但作为一门优秀的导论课,它强调学习计算机科学领域里的重要概念和范式,而不仅仅是教你特定的语言。如果你不是科班生,这能让你在自学时开阔眼界;课程内容:计算概念,Python 编程语言,一些简单的数据结构与算法,测试与调试。(这门课我倒是在MOOC上学过了,没时间看视频的话推荐看那本《像计算机科学家一样思考Python》)
  • • 完成 Harvard CS50x哈佛大学:计算机科学)。同样是导论课,但这门课与MIT的导论课互补。教学语言涉及 C, PHP, JavaScript + SQL, HTML + CSS,内容的广度与深度十分合理,还能够了解到最新的一些科技成果,可以很好激发学习计算机的兴趣。(看过一点,目测有点拖沓)
  • 支线任务:阅读《编码
  • • 完成 Python 教程

不过我认为这没有必要,python是一个非常优雅&强力的脚本语言,不过如果以Unix的出现为现代计算机的开端的话,一切都是从命令式语言C开始的。OOP的思想在底层仍旧由堆栈和数据结构实现。所以还是用C最佳。至少对我来说如此。
继续阅读“The way of CS”

编程语言的分类与选择

  1. 机器语言 VS 高级语言
  2. 动态语言 VS 静态语言
  3. 命令式 VS 函数式 VS 逻辑式语言
  4. 强类型定义语言 VS 弱类型语言
  5. 面向对象 VS 面向过程
动态语言:运行期间才去做数据类型检查的语言
——PERL,Python,Ruby……可视为超级脚本语言
——脚本语言:JS,ASP,PHP,bat,shell,VBscript,Tcl
(脚本语言需要解释器来运行)
——宏语言(可视为脚本语言的分支)
——HTML,内嵌网页的脚本语言,解释器就是浏览器

继续阅读“编程语言的分类与选择”