Article summary
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.
In order to move my career back into the software development field, I needed to update my technical skills and become more proficient with modern software development languages. I wanted to focus on languages used in Web and mobile development initially, so I limited my scope to HTML/CSS, JavaScript, Java and Android. (I’m sure a good discussion could be had about my choices, but I felt it was important to know more about these first.)
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.
I find it best to learn by doing, so I also bought Creating a Website: The Missing Manual by Matthew MacDonald, which guides you through the whole process of building a website. It helped greatly in understanding the concepts of developing a site with HTML and CSS with just enough JavaScript to understand what can be done with it.
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).
Online Courses
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.
Classroom Training
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.
Conclusion
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?
Thank you for sharing the great post about software development. It’s better for everyone to have idea of the latest skills of IT market.