October 21, 2010 2:34 PM Subscribe
: I'm applying for software jobs, but I don't want to forget what I know. How should I practice to keep my skills sharp?
posted by Chicken Boolean to computers & internet (22 answers total) 23 users marked this as a favorite
I got my BS in CS, but I don't have much real-life experience. I want to be able to answer interview questions off the top of my head, not after thinking for a minute. Since I'm not programming all the time anymore, I'm starting to forget things—I need a project to work on so I can keep programming fresh in my mind. It wouldn't hurt if I could learn something new while I'm at it.
The languages I know best are C/C++, Java, and Python, but I doubt the language matters all that much. I also don't think learning a new language (like C#) would be worthwhile, but learning new language-independent topics might be a good idea. (For example, I'm totally ignorant of databases/SQL and anything web-related; obviously those are big topics!) I could be wrong about all this, so let me know if I am.
Here are some options I already thought of, but that seem unsatisfying:
- Project Euler, 99 Lisp Problems, etc. Solving these little arithmetic puzzles is very different from making structurally complex software of the kind that I'd be working on in real life.
- Learn a new computer science subject by reading a textbook and doing all the problems that involve programming. Though I would enjoy learning new stuff, this seems like too much theory and too little actual code-writing.
- Find an open-source project and start contributing. It seems overwhelming to just download some huge codebase and get to work without any guidance; I have no idea where to start. (Is there a way to make this easier?)
- Write a web server or a raytracer, as suggested in this old thread. A web server might be good, but I don't know how a web server works or anything about networking/HTTP. Should I learn all that?
Any other ideas? Or do you think any of the above are actually good ones? Thanks!