If you are like me, your career has moved in different directions. At times it progresses forward, others it moves laterally, and sometimes it even feels like it is going backwards. In my case, I started out in development, moved into a related but different field, and lately started feeling the desire to move back.
Many of the languages I learned in college — and even those I used while working in development — are outdated. I was introduced to development using COBOL, FORTRAN, Pascal, C and Visual Basic. Not only are these languages outdated, but also there are some major conceptual differences when developing modern web or mobile applications.
Here are some of the resources I used to bring myself back up to speed.
Books, Magazines, and Blogs
Reading is a great way to learn at your own pace. But there are so many books, magazines, and blogs on software development that you have to make some smart choices.
For HTML, I bought HTML & CSS: Design and Build Websites by John Duckett. It’s a well-written book with great explanations, pictures, and some good examples to follow.
Books get out-of-date rather quickly in this field. A great way to keep up with what is happening now is to read content online. There are many developers writing great blog topics — in fact, too many to follow them all. I also found it useful to read magazines like Web Designer, which always has strong articles with great explanations on a single topic. It’s a bit expensive, so I subscribed through Google Newstand to get it at a lower cost (though, I must admit, I still prefer the printed magazine).
I found a number a number of free courses on different development languages (especially HTML and CSS), but most of them weren’t comprehensive.
Fortunately, there are great subscription-based sites like Lynda.com, which offers courses from beginner to advanced levels. Lynda.com has courses on development languages, plus courses on concepts such as Object Oriented Programming and Agile Development.
I took two of the courses offered on Java development and then specifically Android development. I found the explanations of various concepts to be at the right level for me, and it did a good job of guiding you thru a development project with good examples to follow. You are always able to pause the instructor if you find yourself falling behind.
The biggest issue I had with reading and online courses was making time to actually read or listen to the course. I setup a schedule for myself but then found myself breaking it to do other things. In addition, there was nobody to ask questions of or get help from if you got stuck. I thought taking an instructor-led class would motivate me to make a better effort, especially since I would be paying significantly more per class. And I was right.
I started with a 2-day course on design at Grand Circus. It was mostly about working on the front end of projects, defining the solution with clients, and developing ways to communicate the solution with the client and developers. This was a great course, so a then took a 60-hour course on Android development. I provided a conceptual look at Android — what you can do with it, what features are available, how complex it is to develop — then got deeper into development. I really appreciated this class too.
I am again working in software development, and I feel the time spent learning modern web development has been very helpful in my new role. It has given me a greater confidence when working with customers and helping them develop, define, and responsibly estimate software solutions that meet their needs.
Learning is a never-ending process, especially in the always-changing software development field. I will continue to use these tools to learn more about software development, Agile practices, and Test Driven Development.
I’m sure I only scratched the surface of the books, online courses and other tools available for learning. What are some of your favorite tools?