When I was preparing for my bootcamp a year and half ago I was trying to figure out the best way to learn. (still figuring...). What I learnt finally over the last year, is not what is the best way to learn Javascript, but rather what doesn't work for me.
So instead of recommending you what to do, I'm going to focus on what failed for me.
- Resources overload
- Not knowing how to learn
- Too many topics at the same time (following my first job as a dev I had to learn Redux, c#, SQL, RxJs. Mixing all those together was a bad idea)
- Not Planning and Chunking
- Too much screen time
- Comparing to other too much
- Not being indulgent with yourself
Resources overload
What should I learn and what are the best resources to learn out there ? Those were the first questions I asked. And Google served me well there, with a lot of good resources and opinionated learning roadmap.
I was literally trying to read too much. Anytime I was seeing a good article, or a link recommended by someone it was ending on a todo list somewhere.
If you've been there, you might recognize you in the situation below :
- List of paid course on Udemy that you haven't even started (I'm talking about those 2yrs old course which are now outdated)
- Trello backlog full of articles links that never shortens.
- Medium bookmark section that is not even scrollable anymore.
Bookmarking good content in itself is not a bad habit, but I felt like I would never catch up on my plan, which is kind of depressing. I'm still kind of there, but I decided to not bookmark medium articles neither buying udemy course anymore, unless I'm doing them right away.
Not knowing how to learn
Before switching career, I did some Coursera/PMP certifications, but there were short bursts, and the main objective was to get the certification - I was not paying attention on how I achieved this goal. When I entered the more technical field of web dev, it felt like a new world to me, where I would need to learn differently.
At first my learning practice consisted mainly in reading article on a topic (according my never ending trello backlog), and then try to apply the learning in a side project. This was at first intuitive to me, but while I was learning Redux, it was dissatisfying.
- First because, there were always some more resources or links to go through. I kinda felt depressed to find Mark Erikson awesome list or resources. as I felt like I should go through it .
- Secondly because, I was trying to learn everything upfront at the same time. (redux, redux thunk, redux-connect, rxJs)
- Finally, because after a while I thought I was forgetting my previous learning.
After I took a step back - I decided to make some corrections in my approach :
- Focus my learning on specific platforms/authors.
- Chunking and Planning
- Learning by repetition
I have a few authors who are my go-to mentors because I like the way they teach. When I can't find what I'm looking through them, then I go in the wild - not before.
Chunking and planning is discussed just below.
As regards for repetition, I remember when I was at school preparing for some exams, I created those flashCard - they were a pain to make, but by the process of making them and having them around allowed me to get the best marks I ever got and still remember them. Fast-forward 15 years later, I thought I could use some of this wisdom, by creating Cards on different learning topics. This works pretty well at least for high-lvl concepts, for example when you approach a new topic.
Not Planning and Chunking
My main objective for 2018 was to learn Redux, GraphQL and Advanced React Internals while working on a side project. I haven't touched GraphQL, very few of React internals, and my side project has seen a few commits but way less than I would have expected.
The culprit ? The preceding points for sure, but also the way I was planning my learning journey. Learning Redux is a big bold statement, but it didn't serve me well as I didn't feel I was making progress towards the overall goal.
I should have before chunked Redux in some smaller part would have been preferable and more digest to learn.
For 2019, I have some similar main goals (JS fundamentals - again..., GraphQL, Node) but in a way more specific manner. I try to chunk those big topic in weekly learning chunks, that I can apply in my side project.
Too much screen Time
I try to pay attention to my screen time - coming from project management world where meetings were the norm (for bad or for good), switching to dev was a huge increase into my computer hours. I feel it painful sometimes to go back at home to practice/learn to code in front of my computer.
That's where I like flashcards and books. Not all resources are equals, and some books are more helpful to sleep than to learn. Adjust accordingly to your energy level.
Comparing to other too much
We're getting personal here, but during the bootcamp and through my first job year, I realized that I compared myself to my co-workers. A lot. Doing so prevented me to learn from my environment as much as I could as I felt diminished when I wasn't performing enough.
It takes a lot of energy to manage this kind of emotion. This is a net loss that you cannot put in good use to learn from your coworkers or peers.
I don't have the answer yet to this, but paying attention to this emotion and pattern allow me to avoid getting caught in too much. Knowing that my interest lies in welcoming learning opportunities rather than feeling diminished by them helps.
Not being indulgent/empathic with yourself
This is kind of linked to the previous point. I have moment in my journey where I mostly focus on what I'm lacking or not doing well enough.
When this happens I try to take a step back.
Learning to Code is hard.
Switching Career is hard.
It's a long journey, and I should already be proud of where I am. So should you.