DEV Community

Samuel L. Moreira
Samuel L. Moreira

Posted on

How to switch from learning one stuff to another while being as flexible as you can?

A new year is approaching, shortlists are coming!

Let's imagine the following scenario: using the Warren Buffett 25/5 rule you came across with a mixed list of 5 things you need/want to learn next year. Technology (i.e. - JavaScript), tool (i.e. - Power Bi) or tech topic (i.e - Agile), whatever... all mixed.

1st Question: How would you switch from one topic to another and how much time would you dedicate on each learning on average? Some not-so-random options:

a) One topic each day?
b) One topic every two-four weeks (Sprint style)?
c) The First 20 Hours method?
d) Other way, your way...?

2nd Question (extra): In terms of learning a language, would you consider converting programs from one language to another as a good approach? Like, following a tutorial of a To-Do List project in C# and coding in Java and/or vice-versa.

Top comments (2)

Collapse
 
bradtaniguchi profile image
Brad

For those not familiar Warren Buffet's 5/25 rule is defined as the following:

  1. Write down your top 25 goals
  2. Circle your top 5 goals
  3. Focus only on your top 5 goals

So onto how to go about learning these 5 things. I keep a few things in mind when "learning".

  • Not all "time spent learning" is equal. You could spend 3 weeks learning less than 1 day if you learn "ineffectively".
  • Some things only take time, grit and internet connection to learn.
    • Example: Programming language, new framework
    • Examples where you need more than the three: Cooking, Sports
  • There is no "easy" path, experience is experience and there is no substitute for it.
  • You wont know exactly what you need to know until you need it. Its better to be very flexible when it comes to learning than it is to try to be very prepared.
  • Knowing what you don't know is just as important as knowing what you do, challenge yourself to expand your horizons just to know whats out there to learn.

Following all of these tips will lead you to a situation where you spend most of your time trying to do what you want to learn. For example, if your goal is to learn React, then you should be going out and trying to use React. If you have weak JS skills, then you will find learning React to be hard, if not impossible. This will bring you to learning JS fundamentals as a new more important goal.

You could spend a month taking some course and learn less than if you spent a month grinding away yourself running into problems every 5 seconds and finding ways out of them (thanks Google).

Experience is experience, failure is (excellent) experience. Go out and fail over yourself 2 times over and you will learn 2 times more stuff.

In terms of learning a language, would you consider converting programs from one language to another as a good approach? Like, following a tutorial of a To-Do List project in C# and coding in Java and/or vice-versa.

I don't like the term "converting", I'd rather like to think of it as "re-building". Use the language how it is recommended to meet the same requirements. This approach will have you learning the best practices, rather than how to convert X to Y, and potentially forcing stuff that doesn't make sense.

Also, Java and C# are very similar so learning the differences would probably be where you end up focusing rather than learning anything vastly "new".

Collapse
 
samureira profile image
Samuel L. Moreira

Thanks @Brad, that's a very educational opinion and for sure useful! Just a side-note:

  • The C# and Java thing was just an example. It could be also Python or Ruby, I don't know! I recently read this somewhere:

"Coding gurus advise learners to try converting programs from one language into another. Transferring the codebase of the existing project to a new language can be a time-consuming, yet helpful, process. With it, you can explore various coding challenges and solve them by experimenting with the new concepts and paradigms."