How do you plan your learning and experimenting schedule?

planning

#1

Hello everyone,

Like for many of you (I guess), the number of things I’d like to learn, read and test is far bigger than what I actually can “process”. On the top of this my planning is maybe not the best.

What is the way you plan your learning (and experimenting) schedule?


#2

I make a list and organize it by priority. Then each day I try to save 1 hour to read and practice on the topic I have chosen.

Once I finish, I move on.

Having deadlines also helps and projects to practice really test you, but I find that if I do a project I usually take indefinitely longer, so I just try to do the examples of the books I am reading.


#3

Well, for me… life was too hard on me @my work. So I quit the boring job, and I decided to dedicate full time learning to Elixir & Phoenix for intensive 24 hour a day learning. Of course, this wasn’t a clear choice since the beginning, I made online research for the best for around 2 weeks and came to this conclusion afterwards.

The other thing I will learn besides Elixir/Phoenix is Flutter for native mobile development. Write once, deploy on Android & iOS, the easy way.


#4

Yeah I agree. I think I spend half (or maybe more) of my time experimenting, and this is what crashes my plans every time. Experimenting/practicing is what at the end I can’t plan because I don’t know how much time it takes.

I find always quite difficult to bind in a just 1/2h slot something like “try the new broadway library”.

I usually put a everything interesting I see in a list, books, articles, videos etc. The issue I have is that this list is getting bigger every day… maybe I should also maintain it removing low priority things

I’m split between fully focusing on just one book and fully dig into it and then move to the next one, OR read multiple books at a time progressing on different topics. I’m usually much better dedicating all my self on just one topic/book …

What’s your opinion about that?

Do you plan your day in some way or you just dig into the phoenix book (for example) and then you move on with the next book?

Thank you guys for your contribution to this topic!


#5

Multitaskting is a myth:

There is a plethora of compelling research that proves that we, humans, are way better when we do 1 thing at a time and we focus our attention on that 1 thing.

Learning is no differing. Pick a book and immerse yourself in it. Read it. Do the exercises. Criticize the code of the book and ask why the author did what he did. And do it again until you read the whole book. If the book is worth it, you will re-read in few months again and I guarantee you will still learn new things.

Don’t try to learn 5 things at the same time. That is literally the worst thing you can do. Context switching has a price. Don’t believe me? Try driving and talking at a cellphone at the same time - see what your friendly authorities have to say on that :stuck_out_tongue:


#6

Thanks for the link! :smiley:

Yes, I always felt to also learn more once focusing on just one thing at a time. Since there are books and topics of different sizes, how do you plan and prioritize?
For example, when there are three really cool books you want to read: one is 100pages, the other one 600 and another one 400pages. Doing them “serially” means that the third one could be opened after different months…


#7

This part here is more personal. Different people work, well…, differently (surprising right? :stuck_out_tongue: ).

There is some research in the area of micro-successes. This area states that when given big number of tasks, we should pick the easiest one first and complete it successfully. In theory, doing a bunch of small tasks successfully will motivate you enough to try the big tasks.

By applying this ideology to reading books, then you should start by the smallest (100 pages). Once you complete that book you now are happy because you advanced and now you are motivated to take on another bigger challenge (400 pages) and so on until you reach 600. If 600 is too much, try reading a small blog or article about the topics the book covers. After 2 or 3 hits of success, you are now more motivated to take on the titan.

While I understand the reasoning and the psychology behind this method, I must say that I personally don’t need it. I don’t need the feeling of success right away to take on a book. I am OK with waiting.

But this is also because I do not see success as the number of books I read per month, but I quantify it on the number of things I learn each day. It may be small - I learned a new use for with. I learned something weird about GenServer. So if the chapter has 100 pages, I don’t care because at the end of each day I always make a mental list of all the things I learned - and that is my motivation.

In personally suggest you focus on a single book. Pick a book you think you will like a lot. Doesn’t matter the size. If its small, great, if its big then divide it into smaller parts. Divide it with sections and subsections. During my life I had to read books with 1000 pages - in those days I divided the books by sub sub chapters and each time I finished one I made a pause, took a nice sip of tea/coofee or just spent some time looking at my fireplace (so relaxing and reassuring to look at a fireplace in the middle of the cold winter nights).

Do something you like each time you finish a challenge, a task.

And yes it may take months. That’s fine. Things take time. Good things take even longer. A baby takes around 9 months to make, no matter what - learning is just like a baby - you are pouring new life into your intellect, so it will take time. You need to accept it and don’t stress about it.


#8

Thank you, super valuable! :purple_heart:


#9

Good question and it’s very tricky to give an absolute answer, because we are all different (at least one of 16 types |> MBTI ).

So learning shell scripting in the past I adopted the single book procedural method of learning and it failed. Here is what worked for me to the surprise of many:

  1. Skimming books learning the basics, have a broad idea of how things work.
  2. Giving special attention to the parts of the content that our mind actively seeks answers for and try not to spend a lot of time on the info that bores our brains. Historically procedural learning has always bored my brain and turned me off. My personal belief/theory that our brains can process much more information than the pace we were taught to learn at school. So by all means, give your brain the knowledge it seeks, at the pace that it is capable of, and try to have fun in the process. Finland has one of the best educational foundations. What are they teaching kids at school? Mainly to play.
  3. Code yourself and try your own stuff. Start with extremely simple applications and advance more as you get better.
  4. Mark on the things you don’t understand, but don’t get stuck on them. You will get it later, or you can ask about them if you really can’t find answers in documentation.
  5. The super learning method for me, is to seek info I need during coding. So every time I need something I search and find it, then apply it. For one thing you cannot learn all libraries, obviously.

I will give just an example. Programming in Elixir by Dave Thomas, started out very nicely. But then suddenly the programming concepts were so advanced and too details for my current need. Sometimes authors will just give you too much info, just to avoid the response (why didn’t you tell me that there is a shorter syntax?). So in this case, I believe it wasn’t fair to know about all the syntax abbreviations when I am still not able to differentiate between a list ,tuple and a map. When I remove the curly braces, as a beginner it becomes hard to know what it was in the first place a tuple or a map.

That said, I am not blaming any authors, they are all doing their best to transfer the knowledge. But you have to choose your own pace of learning and your style and in my personal opinion, procedural learning sucks. I am not saying to ditch books after skimming. What I do is mark what kind of content I grasped from the material and which one I left for later.

In Programming to Elixir, I left the projects part (after page 250) for a later time. I wanted to grasp the basics of Elixir from other sources as well. At the same time, I went a bit to Phoenix webframework learning in parallel to keep myself excited and learning all the time.

The most important thing is to learn in a way that does not bore your brain and have fun. If you can achieve that you will learn very fast. To most people it will seem like a random chaotic way of learning, but remember our brain is not binary, it’s a quantum computer. It likes parallel processing and does not like slow pace. In some Udemy courses I l notice that I learn much faster when I speed up the play speed to 1.25x (or even 1.5x). I believe Udemy guides authors to speak so slow, which is great if my grandma was learning programming. But that really gets me bored many times. If you have the videos offline on your computer, you can try the Pot Player to speed up tutorial videos without sounding funny.

In my opinion, read a book with a purpose then it doesnt matter how many sources you get to in parallel. For example, you start book1 to get the basics, once you get the basics from it you can start other books for basics. Then after you finish all the basics go into more advanced sections in all books. Then start building apps. If it helps you, you can organize your learning with a few methods as follows:

  1. Bookmark all source of info in a Top Priority folder on your browser. Do the same on your operating system put a folder named Elixir/Phoenix and put all material inside it.
  2. Then organize your bookmarks/files according to what you finished reading and what is not.
  3. You can use trello.com or kanbanflow.com to make a grand plan and some deadlines on when you intend to finish.
  4. Have fun, and have breaks. In your breaks you can learn complimentary material like PostgreSQL or how to setup ubuntu server etc.

So long as youre having fun, you will learn more and have more patience. That’s what matters.


#10

The way I learn is with dependency resolution, namely I am interested in A but then I discover I have to learn B and C, but B depends on X and Y, and C depends on Z… so I learn X, Y, Z, then B, then C, then finally A.

This both preserves focusing on one thing at a time and preserves the sense of purpose and not just trying to tick boxes in a bucket list – which I always found very annoying.

I was for the longest time a Phoenix noob. One day I had two projects to do with Phoenix and I just got good in a few weeks by reading tutorials. But I couldn’t for the life of me force myself to learn Phoenix just because. Had to do it when I actually needed it.

My 2 cents, everybody has different values of course.


#11

Yeah… I tend to do similarly. The risk is to indefinitely go on and on with the dependencies, not because with need them to understand A, but just driven by curiosity. For example: I could start to see how single leader-replication works, then I see about conflicts in a multi-leader (or leaderless) replication, then I find my self building a CRDTs in elixir :joy::joy:


#12

It can’t go on forever! Be curious, that’s what gonna make you a hardcore pro. :wink:

Education in your free time isn’t a business project on a deadline. I am for the more liberal and slightly chaotic approach. It worked wonders for me. I am taking the long road and it always pays off for me.


#13

100% agree! Curiosity is what fuels me everytime!


#14

I’m reading whenever I can (mostly airports and trains), have routine for checking the news (feeds, newsletters) and processing few books at a time - couple programming ones and at least one less technical. I also try to make time for learning during the working hours, though it doesn’t always work this way.

I quite agree about multitasking, but one can concentrate on one specific book for each “reading session” and I often have to do exercises for one book while being away from computer, so I switch to another one.

As for a more general approach, there is an interesting book on the topic: https://pragprog.com/book/ahptl/pragmatic-thinking-and-learning - it’s about learning to learn more efficiently for technical people, exactly because there is just so much stuff and so little time :slight_smile: