对我来说,在 C 或其他编译语言之前学习 Python 是个好主意吗?[关闭]

StackOverflow https://stackoverflow.com/questions/2399471

  •  25-09-2019
  •  | 
  •  

现在我正在通过 OpenCourseWare 学习 MIT 的计算机科学入门课程。作为本课程的一部分,我正在学习 Python 语言。

我读过很多关于学习 C 的好处的文章。在深入研究 Python 之前,我想知道先学习 Python 是否会阻碍或帮助我。

你认为我会从Python中养成任何坏习惯或类似的东西吗?

编辑:由于问题的主观性,更改为社区维基。

我很感谢我的第一个问题的所有精彩答案。事实上,我对答案/评论的诚意感到非常震惊。非常感谢大家!

有帮助吗?

解决方案

37年的工作上帝说到懂得多国语言,我可以告诉你,在Python的工作可以让你几乎完全专注于获得的算法正确的,而不是担心的详细信息的。我已经写了大概300-400,000行C在我的生活,它是可以承受的唯一途径是基本上创建自己的OO环境。

C有它的用途,但这些天,他们往往是要么一)让你接近一个硬件,或者b)处理一个真正紧密的循环。如果您发现需要它,看看喜欢痛饮或SIP的工具到C集成到你的Python。

其他提示

有关历史的原因,C是第一语言很多程序员,特别是这些上一代,了解到。然而,许多人(包括这一代)的,第一次学习C以前学过一种或几种其他语言,一般那些具有更高的抽象水平(基本,LISP,帕斯卡尔,仅举几例)。

我是后一种(即,C不是我的“原生”的语言,虽然,我掌握了大会很早就),而且我很相信有认真关联的许多好处“游”进了C语言,尽管作为实用性的问题,我们很多人绝不会在很多这种语言的任何后果的编程。这就是说,我看不出有任何令人信服的理由,使C是你的第一的语言,或暗示任何以某种方式掌握的Python(或序言或......)会在一定程度地损害一个人的编程能力在未来十年...

所以我的建议是:享受Python的,把它的结果! 当你进行编程的感觉,做自己的观点,以学习C在一段时间。它是一门课程,其中包括编写编译器和/或操作系统尤为重要,正如说,有关在许多其他方面。你会看到,其他比可能的“面” /句法陷阱(这些发生的事情,至少对我来说,学习一门新的语言或切换回我的一个老的语言,暴露于别的东西的时后同时),你应该使用C没有问题,至少你学习其他语言相关的任何问题。

我不是专家程序员,但是从我的理解和运用的是,Python是一种非常简单而强大的语言,让你做任何你需要的。

在C你上正在发生的事情更多的控制,这也意味着你必须自己写的那些细节,而在Python有人做了它为你和你的选择,对于几乎所有不同的情况下工作。

因为C较低级别(更接近机器,实际上是如何工作的),它被更紧密地编译成机器代码CPU的需要而Python是什么,是更高层次的语言,会不会最终被以最快的速度。

我想从Python中转型的阵痛到C会更喜欢“我为什么要做这一切?在Python中我会一行来完成!”

我只能提供该学习C会使你的欣赏的Python和其他动态类型语言更多。我经常说同样的话,任何人谁是精通PHP。两者的创作划伤一些严重的痒处。不,它不是像“当我是你的年龄我同行三英里的雪派”的那种东西。

如果能够赋值给一个变量,并有可变只是“自我调整”来存储你喂什么它是一个的惊人的成就的人谁花了大量的时间与C对多个工作架构。

此外,在C写一些类型的多线程的服务让您的真正的体会Python中到底有多便携的。

有其他好的原因,动力,让“更接近金属”,理解内存管理和学习有关的编译器和优化。不过,我怀疑,那会打你是多么轻松的高级语言真的是第一件事情。

声明:我主要是用C

您必须要到什么地方开始,而Python是一个程序员开始一个不错的选择:你不需要使用编译器( - >好用),具有丰富的库( - >可以完成很多),并且是面向对象(主流这些天)。因此,避免挫折感在这方面最小化。但始终牢记,有很多其他的语言在那里,你应该学习他们。如果你想成为程序员,并从中获利,你需要(至少)拿起C ++,Java或C#的Python之后。

好问题!永远记住,你的编程技能永远不应该依赖于语言。尽管如此,C 语言是计算机科学领域的理想学习语言。编程有 4 个级别,通常每所大学本科课程都提供以下科目:

  1. 过程式编程
  2. 面向对象编程
  3. 使用数据结构编程
  4. 设计模式**

你必须一步一步来,一定要掌握这4个级别。然后在一天结束时,您必须决定您真正想做的事情,然后您将有足够的知识必须使用哪种语言的哪些功能来解决什么问题。C 是许多操作系统的语言,包括 Unix、Linux 和 Windows。C 的指针的威力是迄今为止任何语言都无法比拟的。Python是一门很好的语言,有它自己的优点。在这个阶段我可以给出的一个重要建议是“语法”。最初,您应该掌握 C 语言,并获得一些 Python 的实用知识。一旦您熟悉了 C,那么您使用 C++、C#、Java 和 PHP 进行编程就会变得相当容易。但是,如果您直接从 Python 开始,那么您可能会对基于 C 语法的语言感到不舒服。对于热衷于编程并从 Visual Basic 开始的初学者来说也是如此。还要关注编程的行业趋势和发展。但要坚持本科课程教给你的内容。

我也是一名计算机科学本科生,同时也是一名程序员,所以我知道你正在经历什么。希望我的建议对你有帮助。

首先学习 Python 的主要问题是,之后你尝试学习的所有其他语言可能都会遭受不可避免的比较。然而,有时你 必须 使用不同的工具,因为您别无选择。这些情况的示例可能包括:

  • 执行速度非常快(SWIG、Cython、psyco、pypy、unladen-swallow 等)
  • 没有 python 运行时的平台(但这种情况很少见)
  • 对多核高并发的需求(不同的python VM通常可以处理这个)

最好是从需要的角度而不是谨慎的角度来使用每种工具;换句话说,只有在特定情况需要时才学习C。

Python有一个直接,使得它更容易学习。蟒为了容易,C(和相关的语言)的功率。

作为问题指出:号没有先学C。学习Python。

最后,你将不得不学习C,当你需要破解的嵌入式系统,bootsequences,Linux内核代码等,您将需要了解指针和您的系统将crasch和刻录如果你没有得到他们的权利第一时间。您需要自行返回使用的内存。这通常是一个噩梦,并不能真正有助于编程,因为这些东西只是碍事的喜悦,让你度过无尽的时间在调试器。

最后,在嵌入式系统上,您将了解一些汇编语言,然后你会发现,C是只是一个包装上大多数装配在芯片架构/ CPU的可能性。指针是内心深处由晶体管支持的寻址模式。

所有现代语言让你成为一个更好更快的程序员,他们已经不再使用这些东西。你真的不学习如何使用打字机,这些天,除非你去的地方没有电,你呢? C是简单地对十分特殊的应用程序。

我不认为你会莫名其妙地成为第一个学习Python的根本缺陷。有很多的好处,学习多种编程语言和Python本身是探索一种有趣的方式。例如,如果你有一些性能问题与Python你可以探索编写代码的某些部分在C(或耐热玻璃/用Cython或Fortran语言等...),然后包装起来,并使它在你的Python代码中使用。

就个人而言,我喜欢的手时,我正在学习的东西写很多代码。我认为这是Python中的良好做法和写作算法(在纸上)是很多倍比C或C ++(并不总是)写他们更方便。这是相当多的原因,彼得说,有花在细节较少的努力,所以你就可以花费在其他概念性的东西。

我还是很业余爱好者,但有一两件事,我在着手处理的是一种编程语言是一种工具,但它往往是一个独特的工具。有迹象表明,意味着将要采取从一种语言到另一种,这些都是伟大的编程技巧。但是能够“神交”语言也很重要,在实际意义。出于这个原因,我觉得你决定先学,无论语言不那么重要了,因为它来开发移动上和学习的技能,以有效地表达自己的另一种语言反正是很重要的。

在世界现在是有一定程度的Python“fanboysm”的。越来越多的程序员(其中一些非常可观的)认为蟒蛇是回答所有他们的不满。看到“酷”怎么又是蟒蛇后,便开始传福音的语言,在精神病的程度,否认显而易见的事实:Python是不是意味着一切/每个人

如果您将跟随你可能会开发一个附加的反射Python路径:在时机成熟时“让我们看看到图书馆看看,如果它不是已经完成”,并且一段时间,之后,你就必须学习C,你会拼命地说:“我简直不敢相信我一直在使用一些void *指针的抱着我的数据写我自己的字典什么是与这个C语言反正!?!”

已经通过Borlands TURBOC教C / C ++作为我的第一个编程语言在1996年++ 1.0(蓝屏和黄色文字),我可以认真地建议学习的东西(在这种情况下Python)的C以外也就是说C / C ++将帮助你如果你想知道更多关于硬件交互(嵌入式开发,驱动程序写作等。)

根据该Hanselminutes播客VB.NET编译器是用C,以便它仍然有它的用途。

大多数编程概念是独立于语言的;你更好用,很容易学习和使用,所以你可以专注于基本面的语言开始了服务。该语言就不会C.

ç使得可怕教导语言;它从来没有打算这样使用。它被设计用于谁想要更多的灵活性和控制比规定的时间(70年代初),其他语言的有经验的程序员。你花更多的时间学习一下C的怪癖比你做一下实际的编程。

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