TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Am confused. Please suggest

2 点作者 sunny_s超过 15 年前
Hi, I am a long time reader, first time submitting. I'm a bit confused with my current situation, I would be very grateful if you guys could give me a few pointers. I am not so experienced as most of you here, but i've mostly picked up stuff I'm interested in quite well and easily.<p>My primary interest is network programming. I have done quite a bit of reading and experimenting and am familiar with mechanisms of most protocols. Now I want to start writing code. I read introductory stuff on python and grasped it well too. I had just started playing with the python modules, when I met somebody(with a tall reputation) at the local lug meeting who told me that I could always learn python very easily later but C was the language I must know, specially given my interest on network programming. I did some research and thought maybe the guy is right. So I've been with a k&#38;r for 4 weeks now. It didn't intimidate me but I am progressing very very slowly and maybe that's why also slacking a bit. I am posting this because I'm at the stage where it's even worrying me now. I'm always thinking that in python i could be building stuff right now. I know python won't teach me low level things like memory management etc, but my progress is pain-stakingly slow in C.<p>Question: Should I continue battling with C like i'm now and write some working code in it or switch to python where i'll be at a bit more ease? Will a high level language spoil me too much to come back to C later?

4 条评论

mbrubeck超过 15 年前
It's absolutely not true that C is necessary to be a network programmer. There are some cases where it will absolutely be the best tool (especially for embedded or proprietary hardware), but just look at all the useful network software being written in Erlang, Java, Python/Twisted, Ruby/EventMachine, and now Node.js (just to name a few).<p>Memcached, for example, was first written in Python, then ported to C. Dustin Sallings (one of the maintainers of memcached) has also written a Java client, a server port in Erlang, another server in Google's Go language, and yet another in Python with Twisted:<p><a href="http://dustin.github.com/2009/10/11/ememcached.html" rel="nofollow">http://dustin.github.com/2009/10/11/ememcached.html</a><p><a href="http://dustin.github.com/2009/11/12/gomemcached.html" rel="nofollow">http://dustin.github.com/2009/11/12/gomemcached.html</a><p><a href="http://github.com/dustin/twisted-memcached" rel="nofollow">http://github.com/dustin/twisted-memcached</a><p>I hope that inspires you to continue to learn new tools based on what you want to work with, and not think that you "need" to learn one specific tool. On the other hand, I agree that learning C is a worthwhile goal, will teach you a lot, and will help you contribute to many existing companies/projects.
mahmud超过 15 年前
You can get-by with just read-only C skills. Invest your time learning the ins and outs of python and its performance characteristics.<p>It's also inevitable that you will have to learn systems programming; POSIX or Win32 API most likely, for Unix and Windows respectively. But not for another year or so.<p>Have fun.
gills超过 15 年前
You can learn the ins and outs of network programming in pretty much any language. When you find yourself needing the level of control or speed which C offers, or compatibility with some platform, then go there.
jmonegro超过 15 年前
You might find very useful answers over at StackOverflow, or ServerFault, most likely from people who are already successful network programmers.
评论 #990805 未加载