It's through this process that I found a blog called "Coding Horror". On that blog, I found this entry which laments the quality of CS programs (the failure of CS programs is actually a common topic that people seem to be writing about). Specifically, it mentions that graduating CS students tend not to have practice in software rollout, including version control and deployment software.
Now, I consider myself to be a decent programmer, but I also don't have any experience in this area either. A lot of this is because my projects tend to be personal and are not team-based. A lot of it also is because I do most of my work on a Windows computer, and I always feel like my options there are limited (especially since my computer at home doesnt even have nmake or a c compiler) unless I am prepared to go through a big hassle. What I need is a real computer running real linux, not just Cygwin. Although, this is a topic for another thread.
There are a few things that I would really like to try to do, mostly for my own personal development:
- Learn version control and deployment software: Subversion/CVS, make, etc. I think I know make well enough in theory, but I've never employed it.
- Convert over my two sourceforge projects to use Subversion, for practice.
- Try to move some of my perl modules (especially my MediaWiki modules) to CPAN. That's going to require other sorts of organization, plus cross-platform testing, etc.
- With a knowledge of version control in hand, I would like to try and join a big software development project, like MediaWiki, Pserl6, or Parrot. Even if i just submitted a bug patch here or there would be a big step up from my usual software development routine.