我正在寻找一些指示,我指向了这个网站。
我的主要兴趣是网络编程。我做了很多阅读和实验,熟悉大多数协议的机制。现在我想开始编写代码。我阅读了关于python的介绍性内容并且也很好地掌握了它。我刚刚开始玩python模块,当我在当地的耳机会议上遇到一个人(名声很高)时告诉我,我以后可以很容易地学习python但是C是我必须知道的语言,特别考虑到我的兴趣关于网络编程。我做了一些研究,并认为这个家伙是对的。所以我现在已经在k& r工作了4周。它并没有吓倒我,但我的进展非常缓慢,也许这就是为什么还要松懈一点。我发布这个是因为我现在处于让我担心的阶段。我一直在想,在python中,我现在可以构建一些东西。我知道python不会教我内存管理等低级别的东西,但是我的进步很痛苦 - 在C中很慢。
问题:我是否应该像现在一样继续与C战斗,并在其中编写一些工作代码或切换到python,我会更轻松一点?高级语言是否会让我失去太多,以后再回到C?
答案 0 :(得分:15)
只需使用Python。您可以访问与C中相同的低级套接字API,而无需同时了解间接和内存管理。
稍后,如果您发现Python太慢而无法达到您的目的,您可以在C中重写一些部分。但是不要一开始就这样做。
答案 1 :(得分:8)
这取决于您拥有的网络编程目的。你想要一个非常稳定,安全但速度较慢的高级语言,或者你想要用尽我的意见(但我的意见)但快速的低级语言。
当它不依赖于速度时,我会选择python。你可以用它做很多事情。你需要的任何东西都已存在。 Python是基于C构建的,因此您也可以访问相同的API。
在Python中,它既简单又强大。由于你是新人,我有一些链接,可以帮助你:
有很多书:
只是为了好玩,一些漫画:
我希望这对你有所帮助。
答案 2 :(得分:5)
根据您希望工作的网络堆栈的级别,C可能是必不可少的,有用的或几乎不相关的。但是,如果首先尝试解决C问题,那就是磨损你的动力,一定要回到Python并获得一些成功,因此你可以获得一些成功 - 你可以稍后再回到C.首先学习一种更容易的语言,一个更难学的语言,是一个非常自然的进步!例如,麻省理工学院使用Python进行一些“编程101”课程 - 然而,绝大多数情况下,这并不会让学生在以后的课程中使用更难的语言,如C语言(甚至是C ++,这更难!)。 / p>
答案 3 :(得分:5)
二十年前,即使是十年,你也离不开它。
现在有很多人这样做。
世界上超过一半的程序员可能(实际上)可能不知道C.对于Web工作和大多数应用程序工作来说,这是完全没有必要的。我很慷慨 - 如果你真的要包括网络,业余爱好,海外顾问等,那么使用C的百分比可能相当低。
Embedded通常使用C,但我已经在2个嵌入式平台(波形分析器和有线电视盒)上工作,除了Java工作之外我什么都没做。
老实说,对C语言的基本理解对于编写驱动程序和理解指针很有帮助,但是现在你可以轻松地完成整个职业生涯而不需要C.我个人会完全跳过C ++,尽管它是使用了很多,我认为现在学习它没有任何大的优势。
答案 4 :(得分:2)
我建议使用Python。因为它是比C更高级的语言,所以你可以更多地关注“什么”而不是“如何”。这意味着您可以避免C所需的详细程度,以实现您现在需要完成的任务。
这并不是说从不需要低水平的细节。当然可是,但是在这个时候我建议你忽略它并在将来拿起它,如果你需要的话。
答案 5 :(得分:1)
作为一名python程序员,我会给你相反的建议。先学习python。至少在你学习了它与你在C中可以做的相比的局限性和可能性之前,然后使用C来解决那些你无法在Python中解决的问题。 :)
答案 6 :(得分:1)
我建议将Python作为任何完整编程初学者的最佳选择。我认为对于网络来说,Python可以很好地运作。
在网络中,您必须等待一段时间(以计算机术语)才能发送和接收消息。即使您的语言比C慢得多,您也可能没有注意到任何差异。并且Python网络库的低级内核可能无论如何都是用C编写的;当您使用Python作为调用C代码的方式时,Python并不是很慢。
另外,作为初学者,你会惊讶于C在处理所有可能的错误条件方面的工作量。在Python中,您可以使用异常处理来轻松处理错误。它确实更好。
最后,如果您的应用程序运行良好但在Python中速度太慢,您可以非常轻松地编写一个C“模块”,它将取代Python应用程序的性能关键部分。获得一个工作原型,找出必须快速的部分,然后用C替换那部分。比在C中完成整个工作要少得多。
目前我将C作为我的日常工作,我编写Python以获得乐趣。我可以在几行Python中完成很多工作。您会发现使用Python更容易学习,您将完成更多工作,您将获得更少的错误,您将享受更多。
我建议从书Learning Python开始。
祝你好运,玩得开心!答案 7 :(得分:1)
我建议从Python开始,除非你绝对需要速度。人们常说编程语言只是工具箱中的工具,而某些编程语言将能够比其他语言更好地完成给定任务。如果你不需要速度,Python将用更少的代码完成你想要完成的任务,并且更容易学习。
我完全是自学成才,从Apple II BASIC到汇编语言再到脚本语言(Perl,PHP,Ruby),现在主要使用C. C是一种相对较小的语言,但我相信我刚开始用C,我可能会失去动力。从Python开始 - 你将学习编程的要点,然后如果你有需要或者想要在以后学习C,那么它将更容易学习。
答案 8 :(得分:0)
学习lisp,它的性能几乎与C相当,并且易于学习,你可以在lisp中做更多的事情,而不是在python中学习它并不难学。您还可以进行自然语言编程来解决问题。 go lisp。