百科问答小站 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/C++吗? 
  有没有什么上古的程序代码至今依然没被更替? 
  纯C语言的工作有前(钱)景吗? 
  如何引导程序员新人按正确的流程开发? 
  Cpu访问cache未命中,是否还需要访问一次cache? ? 
  计算机专业学计算理论基础的意义? 
  如何看待《腾讯互娱员工猝死,同事呼吁公司少加班》? 
  为什么有人说弄懂了《算法导论》的 90%,就超越了 90%的程序员? 
  为什么计算机学术界认可顶级会议论文,而其他领域几乎都是只认可顶级期刊? 

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





© 2025-04-11 - tinynew.org. All Rights Reserved.
© 2025-04-11 - tinynew.org. 保留所有权利