Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Good question. I'll speak to what I'm familiar with.

For networking, a command-line TFTP client/server is a good exercise. Pay close attention to how to handle the corner cases that crop up, and try your code against a few implementations. If you're interested in protocols, you could use libpcap to read raw packets and write a simple protocol analyzer to read packets on your home network.

If you want to focus on software architecture (e.g. how do I build a system that is maintainable as it gets bigger) you should pick a pet project, follow through, and iterate on it mercilessly until you think you hit a maximum of readability and low coupling. Then show someone who's better than you, and talk about it. I did that with an IM client and learned an awful lot.

Also, dabble in metaprogramming and concurrency. They'll pay off eventually, even if they seem esoteric right now.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: