How do you get started in programming?

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?

Posted in Java at Jul 28 2011, 11:12:09 AM MDT 8 Comments
Comments:

I'd tell him to check out user groups where he lives that focus on the technology stack he's interested in.

In Denver we have the Denver Java Users Group, the HTML5 group, the Denver Open Source User Group, and the Agile group. Those are a great way to both learn the latest about your technology, and network with people who are in your industry.

If possible, contribute to an open source project or volunteer with a charity that needs tech resources in the area you are interested in.

Finally, see if there are conferences within your reach. One example is the NFJS (No Fluff, Just Stuff) tour which has technology conferences that are rich in information but aren't thousands of dollars to attend.

Posted by Greg Ostravich on July 28, 2011 at 11:30 AM MDT #

My advice would be "think twice, get into health care instead".

Programming is a profession where you live a very secluded life, in man-only environments, where you have limited scope for a career - most IT people end up earning the same salary for ages, despite a tremendous accumulation of knowledge there is simply too much competition. IT jobs are too easily outsourced.

I am 50 now and although I keep putting a lot of energy in my profession I really see no progress. My dentist in 2 hours makes the money that I make in 1 week - and I earn a good wage!

Posted by A Disappointed IT on July 28, 2011 at 12:49 PM MDT #

S/he should contribute to an open sores project to get a foot on the door, in the absence of real world 'coding in anger' experience.

Posted by zqudlyba on July 28, 2011 at 05:26 PM MDT #

I would advise first to go through the book Learn Python The Hard Way to see if you've got a programmer's spirit, and to see if you like it. And by that I mean, enjoy it so much that you can't not program. If you're gonna be switching career, do it for something you're passionate about.

Paraphrasing some of the book conclusion though, I would advice to become a programmer, if you do love it, but stay in finance.

Banks usually have vast IT departments and a rare commodity amongst programmers are those who really know the domain. It's gonna be your differentiating factor. In fact, hard to fill positions are what are sometimes called business analyst: people acting as a bridge between client and programmers, able to translate the client's need into clear specifications for the developers.

And if you want more than be pushing buttons as you're told year after year without changes, you might want to read this book even before starting your IT career. The Passionate Programmer

Posted by Jeff Heon on July 28, 2011 at 09:13 PM MDT #

"most valuable skills these days are front-end skills (HTML, CSS and JavaScript)"

I found that these skills are the easiest to master= and thus are cheapened by the fact. While too many projects that outsource complex systems to India fail, the UI development(HTML, CSS and JS) is the one segment that is going strong in India. UI design is still something that is not easily outsourcable, since it requires a lot of creativity and a lot of time invested into UX. In short, the pure front-end skills are the lowest priced skills on the market. UI development today fails the 70 part of the 70/10 rule(If you're better than 70% then you will be a highly sought after professional, if you're in the top 10% then you are an expert.)

Posted by Aleksandr Panzin on July 30, 2011 at 10:17 AM MDT #

Jeff Heon is spot on. S/he should stay in the finance business even as a programmer.

Having a programmer that understands the business processes is very valuable for any financial institution, and the financial domain pays well.

Posted by John on August 17, 2011 at 12:12 PM MDT #

There is no free lunch on anything.

He/She would have to trade time with the desired skill sets. There is no short cut in anything. You just have to burn extra hours at night, weekend, etc.

Which language should He/she learn?
That's really interesting question. I wish I know the answer.
Note that learning a tool can help on your career as well. CMS tools, Sharepoint, etc.
Don't just learn language. Learn with a tool will be a huge asset. Java + BPM tools. C# + Sharepoint, Oracle ADF + web center... etc.

Little changes in lifestyle would help as well. Try to go to work 2 hours early and come back from home 1 hours late everyday and study on stuff you desire during those hours will be accumulated after a year. I get way too distracted from home :)

Good luck.

Posted by Song Choe on August 17, 2011 at 12:12 PM MDT #

When asked for advice on careers, a wise old and brilliant professor that I had in college would only say to me "do what it is that you love, or you will be nothing but a slave to your career." Very good advise. I've been writing code for 20 years and still learning. Never listened to "managers" who insisted I get into management. Loved writing code. Read books. Learn new languages. Want to program on the Web and learn JavaScript? Read books and listen to podcasts by guys like Douglas Crockford. Learn, experiment, and enjoy!

Posted by Bill Walker on August 20, 2011 at 06:41 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed