我正在寻找一些指针,我指向了这个网站.
我的主要兴趣是网络编程.我做了很多阅读和实验,熟悉大多数协议的机制.现在我想开始编写代码.我在python上阅读了介绍性内容,并且掌握得很好.我刚刚开始玩python模块,当我在当地的耳机会议上遇到一个人(名声很高)时告诉我,我以后可以很容易地学习python但是C是我必须知道的语言,特别是考虑到我的兴趣关于网络编程.我做了一些研究,并认为这个人是对的.所以我现在已经在k&r工作了4周.它并没有吓倒我,但我的进展非常缓慢,也许这就是为什么还要松懈一点.我发布这个是因为我现在处于让我担心的阶段.我一直在想,在python中,我现在可以构建一些东西.我知道python不会教我内存管理等低级别的东西,但是我的进步很痛苦 - 在C中很慢.
问题:我是否应该像现在一样继续与C战斗,并在其中编写一些工作代码或切换到python,我会更轻松一点?高级语言是否会让我失去太多,以后再回到C?
只需使用Python.您可以访问与C中相同的低级套接字API,而无需同时了解间接和内存管理.
之后,如果您发现Python对于您的目的来说太慢,您可以在C中重写一些部分.但是不要一开始就这样做.
这取决于你有什么目的的网络编程.你想要一个非常稳定,安全但速度较慢的高级语言,或者你想要用尽(但我的意见)但是快速的低级语言.
当它不依赖于速度时,我会采取python.你可以用它做很多事情.你需要的任何东西都已存在.Python是基于C构建的,因此您也可以访问相同的API.
在Python中,它既简单又强大.既然你是新手,我有一些链接,可以帮助你:
Python食谱
隐藏的功能
代码像Pythonista
有很多书:
潜入Python(免费)
学习Python
如何像计算机科学家一样思考(免费)
只是为了好玩,一些漫画:
用Python飞
从C到Python
新宠物(仓鼠球)
我希望这对你有所帮助.
根据您希望工作的网络堆栈的级别,C可能是必不可少的,有用的或几乎不相关的.但是,如果首先尝试解决C问题,那就是磨损你的动力,一定要回到Python并获得一些成功,因此你可以获得一些成功 - 你可以稍后再回到C. 首先学习一种更容易的语言,一个更难学的语言,是一个非常自然的进步!例如,麻省理工学院使用Python进行一些"编程101"课程 - 然而,绝大多数情况下,这并不能让学生在以后的课程中使用更难的语言,如C语言(甚至是C++,这更难!).
二十年前,即使是十年,你也离不开它.
现在有很多人做.
世界上超过一半的程序员不可能知道C.这是可能的(实际上可能).对于Web工作和大多数应用程序工作来说,这是完全没有必要的.我很慷慨 - 如果你真的要包括网络,业余爱好,海外顾问等,那么使用C的百分比在这一点上可能相当低.
嵌入式通常使用C,但我已经在2个嵌入式平台(波形分析器和有线电视盒)上工作,除了Java工作之外我什么都没做.
老实说,对C语言的基本理解对于编写驱动程序和理解指针很有帮助,但是现在你可以轻松地完成整个职业生涯而不需要C.我个人会完全跳过C++,尽管它已经使用了很多,我看不到现在学习它有什么大的好处.