TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Am confused. Please suggest

2 pointsby sunny_sover 15 years ago
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 comments

mbrubeckover 15 years ago
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.
mahmudover 15 years ago
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.
gillsover 15 years ago
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.
jmonegroover 15 years ago
You might find very useful answers over at StackOverflow, or ServerFault, most likely from people who are already successful network programmers.
评论 #990805 未加载