我是编程的新手。我有一个学期的计算机科学(我们使用java)。我在课程中得到了A,并且能够完成所有指定的工作,但是我不确定我是否真的理解它。我忽略了文本并通过查看示例程序然后反复试验来学习。除了两个知道java或其他OOP语言的人之外,我领先于班级。

我想学习Python。我还将从我拥有的额外部件构建第二台PC并使用linux。基本上,我想增强我对计算机的了解。这就是我的动力。

现在学习python是否有任何好的编程理论书籍会有用?或者我应该详细了解计算机如何在最低级别运行?我认为我不足以问我想要的问题。

我想简单一点,我想知道我应该知道什么才能充分利用学习python。这不适合职业生涯。这是出于对知识的渴望。我不再是计算机科学专业(它也不会直接应用于我预期的职业生涯。)

我不打算在“30天”内学习。或“1周”或管他呢。所以,从一个非常基本的水平开始对我来说没问题。

提前致谢。我做了一个搜索,并没有找到我想要的东西。

更新:感谢您提出的所有好建议。我发现这个网站在工作,在我的家用电脑上找不到,所以我现在就开始阅读。

有帮助吗?

解决方案

我的建议始终是从高级抽象开始。你不需要知道逻辑门如何工作以及如何使用它们来构建CPU - 这很酷的东西,但是一旦你搞砸了它就会让很多更有意义在更高的层次。因此,Python是学习辅助的绝佳选择。

如何像计算机科学家一样思考:使用Python学习可在互联网上找到并且是对使计算机运行的高级概念的出色介绍。它甚至是特定于Python的。

如果你想要将你的大脑从里到外, SICP 将做得很好。不过,我不推荐它作为第一篇文章;它很重要。

这两本书都是高级的。他们不会教你任何关于内存结构等低级细节或CPU实际做什么的东西,但这是我以后要保留的东西。

D'A

其他提示

特别是对于你问题的Python部分,我强烈推荐 http://www.diveintopython3.net/作者:Mark Pilgrim。这是免费的,结构很好。

Python是一个不错的选择,你会玩得很开心!

http://www.pythonchallenge.com/

我认为这个挑战非常适合与主要的python强项联系,并且有一个很好的论坛,每个级别都有很多有趣的Python线程。

这很大程度上取决于您学习Python的总体目标。您是将其视为学习第二语言还是更好地了解计算机以及如何有效使用编程语言?

从听起来你想要更好地了解计算机并成为更好的程序员。学习Python等新语言可能无法帮助您。如果你感兴趣的话,我仍然建议学习Python,但是一旦你学会了一种编程语言,学习一门新语言的很多东西就会熟悉语法和数据类型(通常)。

你曾经提到过,你不确定是否理解你所上课的材料。如果您觉得自己不了解基本概念(例如循环,类等),那么学习Python将有助于您理解编程,因为大多数书籍/指南都会重新审视这些概念(学习Python,第3版应该帮助这个)。如果你理解这些概念,但是你不确定如何应用这些概念,那么我的建议是学习数据结构和常用算法(例如排序,搜索等)。

根据个人经验,我不知道如何将我从入门编程课程中学到的知识应用到个人编程项目中。从类中学习数据结构有助于通过提供基于此先前知识的算法/数据结构来巩固我之前学习的那些概念。这个课程还允许我对使用这些数据结构方面的问题进行不同的思考。

要了解不同类型的数据结构,请参阅: http://en.wikipedia.org/wiki/List_of_data_structures 。通常,每个数据结构对于特定目的是有用的(例如,二叉搜索树有助于搜索分类信息)。不幸的是,我没有任何书籍建议(我们班上没有使用过书)。谷歌搜索“数据结构”应该是一个很好的起点。

数据结构还让我思考实现的效率。 “复杂性”是指“复杂性”。算法的大小决定了给定代码段运行的时间。这样可以轻松比较其他实现并确定哪个更好。

我还想评论一下,在学习计算机概念时,最好的学习方法就是做。一本书/课只能解释这么多,其余的你必须自己学习。每个人的学习方式都不同,编程是一种获取您所阅读材料的方式,并以您最了解的方式思考。

我希望我回答你的问题。此时,您并不需要担心底层硬件。这有助于了解您是否计划将此作为职业(您不是),或者想要针对您正在运行的硬件进行优化(在这种情况下,您不希望使用Python) 。 Python是了解数据结构的一个很好的选择,因为它为你实现了很多数据结构,但知道它们的用途非常重要。

如果您还在学校,请参加数据结构课程,看看您的想法。如果您喜欢,我建议您重新考虑编程/ CS在您职业生涯中的作用。你不需要专攻,但考虑一个未成年人或至少一个利用你正在学习的技能的职位。我这样说是因为尽管这不是你的专业,但你有兴趣了解计算机的工作原理并采取措施,例如学习Python,构建自己的计算机和安装Linux。

如果您有任何其他问题,请随时提出。感伤

Python是一种高级语言,因此学习计算机如何在最低级别运行不会带来太多直接好处。

不要误解我的意思 - 我坚信计算机的低级操作,例如:汇编语言和硬件,是每个优秀程序员都应该熟悉的东西,因为它确实可以帮助您以任何使用的语言,高级或低级别更有效地编程。但是,在你获得相当多的经验之前,它不会对你的Python编码产生太大的影响。如果您刚刚开始使用Python,我建议远离计算机的低级操作,并立即专注于Python的基础知识。一旦你对此感到满意,你可以继续使用类似C的东西,然后开始查看一些较低级别的东西可能是合适的。

至于你应该知道的......我猜不多。 Python是一种开始编程的优秀语言。它简单易用,但它足够丰富,可以让您以高水平的复杂性工作。我建议可能会看一个教程;我碰巧知道的是在Python网站上 ,但我并不是说它必然是最适合你的。 Google搜索应该为您提供足够的入门时间。

几个月前我开始使用Python(作为我的第一个编程语言)。我建议学习Python,由Mark Lutz 开始。但请记住,学习好的关键是要心胸开阔,耐心,愿意工作,并且找不到你不理解的事情。

玩得开心!

我建议您查看 http://www.diveintopython.org/ 上的在线图书。学习python。

至于python项目,我会尝试学习Django框架。它是用于构建Web应用程序的框架。他们有一个很棒的教程,可以开始使用它。这也可以让您体验在Linux机器上构建Web服务器的经验。

  

增强我对计算机的了解

嗯,你到底是什么意思? Python或任何其他高级语言旨在实际隐藏所有讨厌的细节。这是其中一个原因,为什么它适合非专业人士(例如科学家)。

如果你想知道这些东西是如何运作的,你应该学习纯粹的C.然而,如果你不打算任何与SC有关的职业,那么就没有太多意义了。学习一些更高级的算法和数据结构。这将使您更有趣,更有用,并且与平台和语言无关。

简短回答:所有

答案很长:

学习您的第一语言总是一个挑战,在您的Java经验之后,许多其他语言看起来会更简单。也就是说,学习编程语言的真正挑战是学习何时使用特定的语言 - 你可以在时机成熟的时候找到适当的文档。

作为一个具体的开端,跳到维基百科并浏览他们的分类编程语言列表 ,点击你听过的所有名字(以及其他任何引起你注意的名字),如果文章有代码示例,请给它一两分钟的时间沉入其中(当然,文章的其余部分会有所帮助) )。这里的要点不是掌握每一种语言(这是(1)毫无意义和(2)不可能),而是掌握那里的内容。对于任何语言,都有一些其他类似的语言,如果你能在这些类别中至少读取一种语言,那么你将掌握相当大的编程范围。当一个新项目出现时,它的某些内容会让你想起你找到的某种语言,你可以将这种语言作为项目的一部分来学习。这可能听起来像是很多工作,但是在你的第五大语言之后,你完全失去了数,只是在不注意的情况下偶然学习新的语言。

当您停止使用一种语言作为您的家庭语言时,您将能够从其他语言的示例中学习,即使您从未编入过这些语言。就个人而言,我只编写了一些Haskell程序,但能够读取 Haskell让我接触到了许多想法,我可以在更实用的Scala和Python程序中回收(哦,是的,在你之后)学习Python,给Scala一个浏览器,你可能再也不会使用Java了)

即使找到最适合工作的语言也不是全部。在您的工具箱中拥有大量工具,您可以通过用最简单的语言编写项目的每个部分,在短时间内将惊人的东西放在一起。这可能不适合所有项目,但是,男孩,你能做一些令人印象深刻的演示。

需要很多年才能达到这样的程度:没有编程语言是完全外来的(或者至少是外国人超过一天的黑客攻击),但我认为这是一个非常健康和现实的长期计划。征服每个粗略类别的代表性样本。祝你好运!

由于Python不是我的第一语言,我找到了 Python Cookbook 有助于学习

  1. Python的功能
  2. 惯用语,“pythonic”,做某事的方法。

编程语言教学一直与学习时的陈词滥调相关联。 “编写程序以学习编程”。我也会提出同样的建议。

如果你打算从基础开始。这当然是最值得建议的起点。它很冗长,但它总是值得的。 http://www.diveintopython.org/

因为您使用的是某些Java,这对您来说可能更好。 http://www.swaroopch.com/notes/Python 。启动python 2.x或3.0。我个人是python 3的粉丝。但是对于初学者来说,很难获得样本,并且在线参考程序。所以对你来说2.x可能会更好。但我把它留给你。

就像我开始“写程序......”一样。你可以从这里开始。

  1. http://www.spoj.pl/ - 一个编程挑战网站,您可以在其中选择从各种各样的主题,大多数算法和具有巨大的问题数据库。当然,编程语言的选择取决于你。
  2. http://projecteuler.net/ - 一个数学问题网站,在这里你只需提交一个答案,这里允许作弊,所以可以自由地借用别人的逻辑,但是自己尝试编写程序。
  3. 在您认为自己已经熟练掌握python之后,可以尝试本书中的食谱python cookbook http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973

    对于应用程序开发,在您认为可以处理它之后,请从 wxPython 或<开始a href =“http://www.riverbankcomputing.co.uk/software/pyqt/download”rel =“nofollow noreferrer”> PyQt 。我个人会建议PyQt。它反应灵敏,速度快,并且具有良好的开发周期,我没有长时间使用WxPython,但我写的很少的程序,很久以前,感觉不是很好。再一次,它取决于你。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top