How To Become A Software Engineer/Programmer
1) Know that you love software before you commit to it. You’ll know when you take your first pseudocode class: a clear division forms between the people who get it and the people who don’t. If you’re in the “don’t” section, choose another career.
2) If you don’t like teaching yourself new things, the skills you learn today will be irrelevant in less than a decade. Accept the commitment to learn throughout your career as a coder, or accept your eventual fate as a has-been.
3) College degrees matter less than hands-on knowledge and time spent at the keyboard. I outpaced my entire class in college because I bought my own programming books that deviated from the coursework, and as a result I learned things they were not teaching in school.
…
5) Early on, decide if you want to focus on application development or software engineering. Application development deals with making user interfaces, interfacing different systems together, solving business process problems, and exposing applications to the outside world (i.e. web services and other remoting techniques). Software engineering deals with creation of utilities and processes that support information processing, tends to be more math intensive, requires a lower-level understanding of the trade, and rarely deals with the systems that expose the software to an end user. There are core differences in these two disciplines and 100 shades in between, so figure out what you like.
Good blog post; those thinking of a career in software development should read the whole thing. By the way if you are a programmer already that loves it and looking for a new position: my work is hiring a Ruby on Rails developer.
Related: Joy in Work, Software Development – The Software Developer Labor Market – A Career in Computer Programming – The Manager FAQ – IT Talent Shortage, or Management Failure?

Myself is a electronic engineering student.
I do have to learn C++ and Micro-P.
That’s the hard thing to do for this career. We need to keep intact of newest information or we will be outdated.
Great post. I really believe in what you said about the hands on know-how, that’s why in my military service I’m going to serve in a special unite that is the main source of software for the IDF. Hard to get that kind of experience elsewhere. 😉
Step one: Know that you love software before you commit to it.
Software is like a lot of things that you can’t really know if you love it or not until you try it.
I think the easiest way to find out if you have any aptitude for this stuff is to just use our good old friend google to find a tutorial and start building something.
I took lots of classes and honestly hated the classes but still love coding. Kinda weird. School does have its role, but with software, you just have to get your hands dirty and see if it agrees with you.
Points 2 and 3 are right on the money. In fact, they could probably be tied together. “Things are changing so fast, the stuff you learn in college is outdated by the time you graduate.” I have been doing this for a while, so i’m speaking from experience. Looking back, i can’t say i regret it. I just wish i could learn faster because technology is literally moving so quick I can’t keep up with it all…
I guess one of the reasons that makes software engineering so different as a career is the fact that it is so much more accessible as a career than others. Trying to teach yourself to be a Doctor or Engineer online and in blogs (although it has been done) is not recommended. Software engineering, on the other hand, can be self taught and worked wth froma young age, so it’s possible to ahve a really good insight into what that kind of work will be like – corporate politics etc aside!
PHP + Linux is the best combination language and OS.
You really have to love programming in order to become competent a it. I happen to be a professional programmer and i really love what i do. Make sure that you are keen on that and you will be on your way to mastering it.
Pingback: Votizen is Looking for Software Engineers » Curious Cat Engineering Blog
Pingback: Increasing the Undergraduate Study of Programing and Software » Curious Cat Science and Engineering Blog
Pingback: Working as a Software Developer » Curious Cat Science and Engineering Blog