Continuous Learning: Keeping up-to-date and acquiring new skills

According to the Bible, after Adam sinned and ate the forbidden fruit, God said to him: “By the sweat of your face you shall eat bread” (Genesis 3:19). Hard work has been the reality of humanity during known history, however things got worse recently: Everything we know, including our professional skills, is rapidly becoming obsolete. This means that it’s not enough to work. We must be constantly updating our knowledge and acquiring new skills.

A recent article in the New York Times, entitled “To Stay Relevant in a Career, Workers Train Nonstop”, discusses the problem of obsolete professional skills. According to them, “virtually everyone whose job is touched by computing are being forced to find new, more efficient ways to learn as retooling becomes increasingly important not just to change careers, but simply to stay competitive on their chosen path”.

This situation is particularly problematic for software developers. I have been working as a programmer for more than 20 years. I got my B.Sc. in Computer Sciences in 1992. Almost everything I learned then is now obsolete. And almost all technologies I’m using now did not exist then (one exception is UNIX).

Now the question is: How do I keep up-to-date? How do I learn new skills?

Below are some strategies that I have been applying to keep constantly learning:

Make Sure You Are Learning at Work

The best place to learn is at work, by putting your knowledge in practice. However, even in the most dynamic workplaces it is easy to get too accommodated by becoming an expert on some field while ignoring new developments. Thus, to be constantly learning at work, you should either join new projects from start or apply new technologies in existing projects.

In the worst case, if you feel you do not have the opportunity to learn anything relevant in your current job, you should consider seriously moving to another company. Then, you should investigate and select potential workplaces according to the technologies being used at these companies. Very often it is more interesting to apply to a job in which you will have the opportunity to learn new skills than looking for a position in which you will mostly use your current knowledge.

Develop Your Own Pet Projects

If there is some technology that you really want to learn and if you do not have the opportunity to apply this technology at work, then you should invent your own project to use it and develop this project during your free time. Luckily for you, for almost all technologies that you may be interested in, there should be Open-Source platforms providing it. Also, your personal computer at home certainly is strong enough to develop interesting projects.

Learn from Online Courses

Today there is a great diversity of free online courses. Sites such as CourseraUdacity and edX offer many interesting courses organized by known professors of some of the best Universities in the world. These courses are completely free, and besides material such as videos and slides they may include real home works and programming assignments. They are planned to extend during several weeks, and thus are able to cover the proposed subjects in relative depth.

Go to Technical Meetings

Programmers like to meet to discuss new technologies and share their experiences. If you live in a place with a big concentration of hi-tech companies, you certainly will be able to find groups of software developers organizing such professional meetings. Besides the interest in discussing technical issues, these meetings are a great opportunity for networking and allow you to learn what is being done in other companies. You can search for meetings in sites such as Meetup and Eventbrite.

Participate in Online Forums

Online Forums are a great way to communicate with other developers that may be located very far from you, but even so they share exactly the same interests. These forums are the ideal place to promote discussions, exchange opinions and ask for advice. For example, there is a great diversity of interest groups on LinkedIn. In the most active groups you can find new discussions every day, and even job announcements. Another great place for debate is Quora, in which discussions are organized as questions and answers.

Read Technical Blogs

You are already reading this blog, but: is reading technical blogs a habit? Ideally, you should reserve some time every day to read posts from your favorite blogs. Now you can ask: “Where can I find relevant blogs to read?” Of course you can always use a search engine, but it is a good idea to follow software development gurus on Twitter, as well as enthusiastic programmers that like to share their favorite posts.

See Presentation Slides

Good presentation slides are a very concise way to transmit information. If you want to get some initial idea about a technology or platform, and if you do not have much time to invest on it, then finding introductory slides is an easy and fast solution. Sites such as SlideShare have a huge quantity of such professional slides. After you get an introduction, you can decide if it’s interesting to look for more in-depth material.

Watch Videos

For the more popular subjects, it is easy to find videos on YouTube or Vimeo. These may be recorded lectures in Universities, presentations in conferences or talks in group meetings. Videos are very suitable to get a first taste of new subjects, sometimes giving you the opportunity to get out of your comfort zone. For example, TED talks are known for their ability to provide inspiration and make watchers think.

Use Question-and-Answer Communities

If you have a technical problem, then it’s very probable that someone before you already had the same problem. Thus, you should try Q&A Communities such as StackOverflow to search for a solution. If you cannot find an existing question that fits your needs, you can always ask a new question yourself. And sometimes, even if you do not have your own doubts, you can learn a lot by checking what other people have been asking recently.

In Summary

Today, thanks to the Web, it is very easy to find material about any subject you may want to learn, and it is also easy to contact other professionals that share your interests. There is absolutely no reason you should become obsolete: with dedication and discipline you can continuously acquire new skills by following the strategies above. Ah, and of course you can always read an old-fashioned book as well. Good luck!

Do you have other strategies for continuous learning? Please share your experience in the comments below.

About Hayim Makabee

Veteran software developer, enthusiastic programmer, author of a book on Object-Oriented Programming, co-founder and CEO at KashKlik, an innovative Influencer Marketing platform.
This entry was posted in Efficacy, Social Networks and tagged , . Bookmark the permalink.

18 Responses to Continuous Learning: Keeping up-to-date and acquiring new skills

  1. Great set of suggestions! One more: podcasts. These are especially great for making use of otherwise wasted time, like driving.

  2. Gail Steiger says:

    Another source for free online courses is Edx.org.

  3. Gail Steiger says:

    For people who still read books, safaribooksonline.com is amazing. It’s expensive though. Literally thousands of books from all the major publishers at your fingertips. Some videos too but the offering doesn’t match the book quality and selection.

    • I agree, Gail! I’ve Safari Books Online at work, and it’s a very valuable resource. I normally don’t use it to read books from cover to cover, but I do search for specific chapters on some topic. It’s also great to have complementary views on some subject, or to find several examples of the application of some technology.

  4. From my point of view there are two main forces governing the evolution of a software developer:

    1. Your commercial interest – that is the “sweat” that provides you the vital bread to quote the article.
    2. The magic, the sparkle, the voice, the calling, the soul, the emotion, the pleasure whatever you want to call it inside of YOU

    This is not only about evolution with various pieces of technology but also with concepts, processes, practices and so on.

    I think the force is really important not the means. If you find yourself under the government of a dominant force, the means by which you would satisfy your technical evolution into that direction is not really important. Not with the informational power that you have these days…Internet, books, training, experiments whatever suits you best.

    If you’re doing business in the consultancy model (either independent or employee of a consultancy company), most often the first force would pull you towards a horizontal evolution with concepts/practices and technology: need to know more and more concepts/practices and technologies aiming at satisfying more and more various needs.

    In a product development business model on the other hand (again independent or employee) the first force would pull you towards a vertical evolution: learn more and more in depth about a particular bounded set of technologies, concepts and practices and even the business model that apply to that particular context, always trying to improve your products or set of products in your domain of business.

    The catch is with the second force. Many developers don’t have it. Or at least it seems they don’t. Sometimes they have it just that they don’t know yet.

    When this force occurs interesting things happen. In the ideal case the two forces are pulling in the same direction and everything is great. Sometimes they are pulling individuals in different directions if not exactly opposite which is the worst case.

    What is your dominant force?

    I like to think that, at least for a while, I have found my rest by being able to make my two forces pull in the same direction. 🙂

  5. Márcia says:

    Hayin,
    Sempre estou aprendendo coisas novas com você! Obrigada pelo seu artigo!

  6. Matt Osbun says:

    “In the worst case, if you feel you do not have the opportunity to learn anything relevant in your current job, you should consider seriously moving to another company.”

    I’d actually take this a step farther. If you feel like the opportunity to learn at work is being blocked, it’s time to move on.

    Sadly, I’ve seen more than a few organizations that aren’t interested in extending past what they have. And whether you hear “Well, that’s not something we do/use” or “That’s not what we hired you to do”, a company that refuses to see the value in learning is a dead end.

    It’s also a black hole- the longer you take to get out, the farther behind your skills get, and the harder it is to get out.

    • Dave Aronson says:

      Amen. Been there, done that.

      One company I worked at reserved all the C++ work (the rest being plain old C, and their proprietary language) for people who had been there several years. After I had finished a project and told the boss, and he didn’t give me anything more to do, I started learning Java, since another part of the company was doing that, and I hoped to do *something* at least *somewhat* up to date. (This was in the late 90s.) He was very annoyed that I was doing something other than what I was hired to do. I quit shortly thereafter. Never managed to land serious Java work, but at least the next job let me do some more C++, so I could at least claim some more OO experience….

  7. Matt Osbun says:

    This really got me thinking, since it touches a lot of things that I’ve encountered throughout my career.

    I wrote a blog post about it http://www.mattosbun.com/2013/07/youre-contractor.html but it comes down to the idea that continuously learning doesn’t do you much good if you aren’t seen as someone who has the skills you are learning. And some ideas on how to showcase your new-found, or newly developing, skills.

  8. It’s actually very complex in this active life to listen news on Television,
    thus I just use web for that purpose, and get the hottest information.

  9. Wow that was odd. I just wrote an very long
    comment but after I clicked submit my comment didn’t show up.
    Grrrr… well I’m not writing all that over again.
    Regardless, just wanted to say superb blog!

  10. Pingback: Finding your purpose in life | Effective Software Design

  11. Pingback: Defining Your Focus: Control and Consequences | Effective Software Design

  12. Pingback: Passion vs. Focus | Effective Software Design

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s