百科问答小站 logo
百科问答小站 font logo



如何向一个零基础的人,解释学习计算机编程的正确顺序和原因? 第1页

  

user avatar   an-shi-ren-jian-chou-chang-ke 网友的相关建议: 
      

我大一刚入学的时候也是零基础,我读的是哥伦比亚大学本科的计算机专业。核心的专业课包括:

1. java入门:主要是借着java讲一些OOP的理念和写程序的基本思路,顺带草草过一下计算机科学领域比较重要的分支。

2. 数据结构:用的语言是java和scala,比较侧重于数据结构的实现和复杂度分析。整个学期的作业都是实现主流的数据结构,比如堆、栈、树、哈希表等等。

3. c语言编程:主要目的是通过指针和c语言里比较底层的功能来介绍内存、进程、网络一类的知识。期末最后是用c语言写个服务器。

4. 计算机理论:以证明为主,讨论可计算性。从finite state machine到context free grammar再到图灵机,最后讲了一些P和NP的问题。

5. 计算机硬件系统:从下而上讲计算机是怎么实现计算的,粗略地介绍了一下cpu的运行原理。

核心课程里面还有几节必修的数学课:多元微积分,线性代数,离散数学,概率统计。个人感觉对机器学习方向的人会非常有用,对系统方向的学生感觉实际用处不大,只能算是普及一下理工科通识。

上完核心课程每个人可以选个track,比如我选系统工程就学编译原理,操作系统,计算机网络,分布式系统,数据库等等。

总结下来感觉哥大课程设置比较中规中矩,该覆盖的都覆盖到了。而且比较侧重理论,侧重理解而不侧重实践。我还是比较推崇这样的方式的,因为理论扎实的话,其实上手实践非常容易。但反过来就不一定了。

学了一些函数式编程后,甚至认为入门课程可以更加偏向理论一点。如果入门课不讲OOP而是讲lambda calculus,类型系统,和代数类型的话,我当时对程序的理解还会更深一些。作为大一新生,如果你时间允许的话,我认为可以挑一个functional language自学,比如Haskell或者OCaml。

补充一句,我上面说到的课在各大教育网站上都可以找到类似版本。比如说普林斯顿大学在Coursera上就有一节数据结构的公开课,质量很高。其他的我没有看过,但仔细找的话应该都有。




  

相关话题

  大二学生,计算机科学与技术专业,学到数据结构和组原有点心态爆炸了,看不懂敲不出代码,还有救吗 ? 
  如何看待北大古生物「一个人的毕业照」主人公转行计算机?「冷转码」(冷门专业转码农)现象反映出哪些问题? 
  热爱互联网,想到硅谷去工作有哪些办法? 
  c#匿名委托获取自身的方法? 
  程序员该选择Macbook Pro吗? 
  JSON「最后不能加逗号」是不是错误设计? 
  有哪些好笑的关于程序员的笑话? 
  学习编程照着别人的代码敲进去有效率吗? 
  大括号不换行的坏处有什么?为什么有人不换行? 
  技术发展是否也是一种原罪? 

前一个讨论
据统计广东 2021 年末常住人口达 12684 万人,较上年末增加六十万人,这一数据说明了什么?
下一个讨论
北冥神功可以无限吸而且不打折扣么?





© 2024-06-05 - tinynew.org. All Rights Reserved.
© 2024-06-05 - tinynew.org. 保留所有权利