Matt Raible has been building web applications for most of his adult life. He started tinkering with the web before Netscape 1.0 was even released. For the last 16 years, Matt has helped companies adopt open source technologies (Spring, Hibernate, Apache, Struts, Tapestry, Grails) and use them effectively. Matt has been a speaker at many conferences worldwide, including Devoxx, Jfokus, ÜberConf, No Fluff Just Stuff, and a host of others. Matt is a DZone MVB and is not an employee of DZone and has posted 149 posts at DZone. You can read more from them at their website. View Full User Profile

How do you get started in programming?

  • submit to reddit

I recently received the email below from someone asking how he might get started in programming. I think this is a popular topic, especially given the current economic situation in the US (unemployment is high, but not in the tech industry). For that reason, I figured I'd post my response here and allow others to chime in with their advice.

I read about you on LinkedIn, forgive my intrusion. Since you seem like an expert in the field of designing websites I wanted to know your thoughts on switching into this field late in life. I am 41 and looking to make the move from an unrelated field (finance) to programming. So far I have learned HTML, CSS and some Javascript. I have taken classes on C and Java. I have made some basic Android phone apps.

What languages do you think I should focus on? What is the fastest way to get up to speed to make a career of it? Classes? Take a entry level job? Study on my own?

Thanks for any insights….

My reply:

It's interesting that you're switching from finance to programming. I did the same thing early on in my career, but I was fortunate enough to do it in college (I have degrees in Russian, International Business and Finance) and therefore able to audit some CS classes before I graduated.

I think the most valuable skills these days are front-end skills (HTML, CSS and JavaScript). If you can combine those skills with the ability to design websites, you'll go along way. I've taken a different approach where I have excellent front-end skills, but also know a lot about the backend.

While it helps to have a Java background these days, the real sweat spot is the JVM and the containers that run on it like Tomcat and Jetty. A lot of Java developers are learning Groovy and Scala, but unfortunately a lot of their documentation/books are targeted towards Java developers.

The fastest way to get up-to-speed on it is to start your own project (if you can't get a company to hire you to do it). I'd suggest creating a webapp that solves a problem that you have, makes your life easier, etc. If you open source it and build a community around it, that's just as good as working for a company as far as experience goes. Combine this with studying on your own and you can likely come up to speed very quickly.

As a programmer, what advice do you have for someone looking to switch careers, or get into our industry fresh out of college?



Published at DZone with permission of Matt Raible, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Damien Lepage replied on Sat, 2011/07/30 - 12:27pm

The main advice I see is to stick to mainstream programming languages. Here, for web development, there are basically 3 choices: Java, C# or PHP. The former may have the more job opportunities but watch out for the gazillion of frameworks. If someone follows this path, I would recommend learning Spring too (arguably framework #1 in the industry). The latter (PHP) has probably the lowest barrier on entry. For quick results I would recommend this one.

Lund Wolfe replied on Sat, 2011/07/30 - 1:37pm

This isn't really a do-over career change, since he/she has business domain knowledge in finance. There is plenty of development work here and domain knowledge is at least as important for successful applications as development skills. This is true in any industry where you need business people with the patience to learn programming or developers with the patience to learn the business domain. The ideal is to have a passion for both.

He needs to find out what skills/frameworks are used/favored by business. Ideally he can leverage his knowledge and experience in his current company with a department doing software development. They will likely be impressed with his experience and enthusiasm because technical people are in short supply. He should find out what they desire in skills/frameworks and maybe even assist them on a trial basis so both can get an idea of what they are getting into. Search job sites like dice and craigslist, too, to see what programming skills are commonly desired/useful in your field that will impress a potential employer. If you are targeting a particular company or location you may be constrained to languages/tools that those companies use.

You learn by doing. Buy good books and build small sample apps of the type and functionality that you know are needed or that demonstrate your basic skills with the tools/frameworks and boost your confidence. This will put you way ahead of the other junior developer candidates, too.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.