计算机科学与编程入门

6

我是新来的,对软件开发和编程也很新,我的意思是没有任何经验或学校背景。

由于我目前正在通过互联网学习医学,每天平均使用电脑8-9小时,这使我对编程非常感兴趣。我从一位Reddit用户那里得到了一个链接,在开始这个项目之前,我有一些问题。

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm

  1. 对于初学者来说,这是否太难了?
  2. Python™编程语言是否是正确的选择,还是我最好学习其他类型的语言开始入门?
  3. 除此之外,我自己学习基本编程的其他方法有哪些?对于完全的初学者,有没有更好的入门方式?

谢谢您的时间!

9个回答

8

我认为,Python是一个不错的选择。你可以参考Google Python课程介绍,这些课程非常实用。

祝你好运!


7

6
作为医药领域的专业人士,拥有几乎平坦学习曲线的Python语言是您最好的选择。您可以获得开源教程和书籍,如《Python之禅》, 《深入Python》, Norman Marloff的Python介绍以及其他(只需搜索“Python教程”即可)。《像计算机科学家一样思考》系列图书试图向您介绍程序设计。Python的最新版本是《Think Python:软件设计导论》。虽然这些教程非常有用,但为了更全面、系统地学习该语言,我建议您阅读Mark Lutz的《学习Python》
对于医学研究实践,您还应该学习很多数学,特别是统计学,包括数据表示方法。数学也是任何计算机科学课程的必修课程。Python为此提供了非常好的库,如numpy/scipy和matplotlib。Matplotlib有一个非常完整的tutorial
如果您将学习重点放在生物医学研究的分子方面,Python将为您提供非常强大的工具。例如,请查看biopython以处理基因组和蛋白质组数据。巴斯德研究所有一个关于Python for biologist的有趣教程。

3

哇,这么多 Python 支持者!

无论你选择哪种语言,最重要的是要记住,你应该从小处开始,先学习基础知识。从像 Python 这样具有小学习曲线的语言开始,将帮助你巩固基础,而不会陷入更高级的概念中,这可能会让你感到沮丧 - 但这并不意味着从更高级的东西开始会妨碍你!

我个人是从Java(辅以C / C ++)开始的,感觉这并没有限制我的发展...

你提供的课程规格似乎是面向对象编程的良好起点,我建议你还应该通过阅读各种类型的语言及其有用之处来补充学习。一开始你可能无法理解很多概念,但不断地参考它们,很快你就会开始了解事物运作的如何为什么
最重要的是:实践,实践,再实践——我无法强调这一点!你写下的每一行代码,读过的每一本书都会教给你新的东西。你尝试学习的每一门新语言都将有助于你理解编程设计

让你入门的最好例子(你会爱/恨它)是“Hello World”程序,自时间开始以来成为所有编程语言的起点 - Python示例, Java示例


我已经擅自修复了超链接。回答得很好! - Konrad Rudolph
(上面的评论是对 http://www.doxdesk.com/img/updates/20091116-so-large.gif 的幽默提及。) - badp
@Konrad:感谢您修复了这个问题,虽然现在我已经有足够的声望来自己解决它 :) - soulBit

1

有很多适合初学者的编程语言,你可以从任何一种语言中学习相同的概念。一个具有良好直觉的优秀程序员应该能够学会使用任何一种语言。由于每种语言都有其强项,你没有足够地解释你想用编程做什么。

个人而言,我喜欢Python或Java。C/C ++更难入门。

Python的一个缺点是它的一些错误消息比Java的更晦涩难懂,这对开发人员来说可能很令人沮丧。在我看来,Python在兼容性方面也需要努力。有Python 2.X和Python 3.X两个版本,它们并不完全兼容并且在某些方面是间接演变的。

如果你想学习更多关于计算机科学而非编程的知识,建议阅读类似CLR这样好的算法书籍。


1
Python 3.*被设计为与Python 2.*部分不兼容(当电池被移植到py3k时,大家实际上都在使用它)——这就是主版本号更改的全部意义。向后兼容性可能是一个巨大的负担:http://docs.google.com/viewer?url=http://www.informit.com/content/images/9780321440303/samplechapter/Chen_bonus_ch01.pdf - badp

1

课程6.00(你的链接)看起来像是一般的编程介绍。它使用Python,而不是Python教程。这可能是一个很好的开始,看看你是否真的对这个主题感兴趣。

如果你想要一个扎实的基础来编写和理解程序(而不是特定语言的语法),课程6.01《计算机程序的构造和解释》是经典的。它使用Scheme作为语言,可能需要更多的工作才能完成比6.00更多的内容。另一方面,你会从中获得更多的收获。


0
  1. 我没有学过这门课程,但考虑到它是一门入门课程,我认为对于初学者来说应该是不错的选择。而且既然这是一门MIT的课程,我也可以猜想它应该很不错。

  2. Python是一个很好的编程语言,因为它很容易上手。然而,另一方面,它之所以更容易,部分原因是因为它是一种非常高级的语言。这意味着你可能无法通过学习Python来学习一些更基本和重要的编程概念。我开始学习C++,然后第三门语言我学的是Python,发现学完C++后学Python变得非常容易。但这让我明白了为什么使用Python更快、更容易,因为Python语言会自动完成一些在C++中需要手动完成的工作,但知道如何完成这些工作很重要,因为并不是每种语言都像Python一样高级。尽管如此,它仍然使得入门编程的难度降低了。

  3. 有很多很好的资源供初学者学习编程。从像MIT OpenCourseWare、Udacity、Coursera等网站上的MOOCs,到专门教授编码的网站,如Code Academy、TreeHouse、CodeSchool等,再到在线书籍和教程,如thenewboston.com、tutorialspoint.com、如何像计算机科学家一样思考(这本书教Python)、如何以艰难的方式学习(各种语言都有这些教程)、http://www.reddit.com/r/carlhprogramming/?count=375&after=t3_9ot7r(用于学习编程基础和C语言),还有很多其他资源。最好的方法是通过谷歌搜索初学者编程资源。


0

我也是编程新手,但由于我在高中学过C#的模块,所以选择了这条路。

我的主要学习来源是一本书(Jack Purdum的Beginning C# 3.0),我从今年二月开始学习这本书,上周参加了我的第一门课程。它是微软C#介绍课程(MS2069),在自己的时间里做了很多工作后,我在上课时有了一个好的起点,虽然这些都是入门级课程,涵盖了很多内容,其中许多我不理解。课程的速度各不相同,虽然我觉得我的速度很快,但我建议在报名之前先进行一些预备学习,并支付一笔第三方课程费用,以最大化您从课程中获得的机会。

我还推荐C#作为第一门语言,没有任何编程经验,我发现C#非常容易阅读和理解,每个新代码似乎在我阅读时都很明显。


0

我很欣赏你的热情。我在计算机科学的职业生涯中开始并不是学习一门编程语言,而是像以下这样学习基础知识: 1)计算机组成原理 2)操作系统理论 3)编程基础(任何编程语言) 4)数据结构 5)编译器设计与原理 6)数据库管理系统概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接