DEV Community

Isabel Nyo
Isabel Nyo

Posted on

How should I learn new programming languages and develop my programming skills?

It's a question that I get asked often by many developers and aspiring developers.

There is a saying that if you fail to plan, you plan to fail and this applies to learning too. Sometimes, ambitious developers get impatient and plunge straight into active learning without any preparation. For example, a developer might say she wants to learn a Javascript framework, React, and started reading tutorials about that React without any outline on what areas she wants to focus on, or how to get to her end goal, being able to write React applications. The better way of learning, in this case, will be looking at the official documentation, going through the step-by-step approach from main concepts to advanced guides and API reference, creating a sample application in React, looking at and learning from other examples out there and setting SMART goals for each stage of your learning. S.M.A.R.T. goals are good goals because they’re specific, measurable, achievable, realistic, and time-bound.

Sometimes, developers get too greedy with wanting to know everything about a topic that they fail to narrow down and set a very broad learning objective. How board is too broad, I hear you ask. In my opinion, a topic is too broad if you can’t articulate your learning outcomes in a few words to another developer. Learning outcomes are statements about knowledge or skill a developer should acquire by the end of her learning journey on a specific topic. Sure, you can be learning about a particular topic forever, but there must be a point when you decide for yourself that it is enough, for now. Enough for you to feel confident in working toward and achieving your end goal. For example, some learning outcomes for learning React Javascript framework are:

Learning outcomes
By the end of my learning program, I should be:

  • Able to create a new React app from scratch that can
  • Consume JSON payload in a REST API
  • Refresh the content of the app every x mins
  • Navigate to different screens
  • Remember the last screen I visited before (if any)
  • Be Unit-tested

Note that the above learning outcomes are not too specific or detailed (like creating a component in JSX syntax, for example) because you don’t know about the ins-and-outs of the React framework yet. They are not too broad either; there is a clear outcome for each statement instead of just a broad, generic one, like “Create a React app”.

Good luck!

If you’re interested in understanding how to drive your career success as a developer, you may check out my book Career Guide for Software Developers.

Career Guide for Software Developers

Oldest comments (3)

Collapse
 
raddevus profile image
raddevus

That's a very good article and the following point you made is fantastic, "...a topic is too broad if you can’t articulate your learning outcomes in a few words to another developer."
Build a simple app is in the targeted technology is a good measurement. Thanks for writing this up.

Collapse
 
helencardona14 profile image
Helen cardona

hire MERN developers so that they see you again it is very important to have a very good quality in your applications and professional development so that the type of work that you are going to aspire you must take into account that your work will speak to you about how you do things or develop your future jobs and what better way to start with some good courses to take into account the beginning of your career.

Collapse
 
louissa profile image
Louis Sawyer

I prefer to cooperate on an outsourced basis, because it simplifies the process - you do not need to deal with the selection of personnel, but simply find a reliable company that will do it all for you. I have partnered with Computools and have never regretted my choice. - the guys are engaged in the automation of my business processes and software development.