Alex Rivera | Logout

How to gain real world programming skills when you don't work for a software company

Asked 2009-07-02T19:48:40.600
13

I work in the technical group at a large Architecture firm. While there are a number of people here that are very proficient at various programing and scripting languages, it's far from the environment of the development environment of a software company. Rarely are there ever more then one or two people working on a development project, most of which are just automation scripts. There's no source control, or version control setup or anything like that.

My academic background is engineering but not CS or CE. So I've taking a number of programing classes in school, and actually tinkered a lot with VB back when I was a little kid. Yet it wasn't until this past year at my current job have I really had the opportunity to do any real development outside of homework problems in school. In the past year I've transitions from making simple automation scripts to full blow plug-in applications in C#.NET.

I have family and friends that are CS or CE majors, and work for companies whose main product is software. While have no interest in actually working for a software company, but it seems like they do have a major advantage over me. At their work they have people with more experience that can look over their should and give them suggestions to improve their code or logic. Sites like Stack Overflow are great for solving bugs and getting advice, but only when you know you need the advice. I'm sure there are many times when I'm taking the completely wrong approach to something.

What are some of the best ways to improve these real life programing skills? Is there a way to find open source projects (preferably .Net based) that I can help work on, so I can gain some experience working with other (more experienced) programmers? I've also been looking into design patterns, but have a hard time recognizing when to use certain patterns.

Edit
Report

1 Answer

3

Real world programming skills: something you could do for a living, in a professional environment.

Come up with an idea, it doesn't need to be the GREATEST idea ever... then write it. Write it in a professional manner. Use version control, even for a personal project. Have a ticket system, even for a personal project. Get used to doing things in the manner a professional does them, even for a personal project. Otherwise, you're just learning bad habits.

I would even go so far as to ask some of those friends or family who have jobs in the industry to help you out with an impromptu code review. Buy them dinner, I bet they'll do it.

The only way to learn anything is to actually start doing it. Expect that your first code will be awkward, and will be re-written several times as part of your growing process.

Then, if your personal project might have any interest for others... ship. Put it out there. Get user feedback. It will be brutal, and an educational experience that you could not buy at any price. You'll be a better programmer for it.

answered 2009-07-02T19:57:35.307

Your Answer