My learning method💡: what worked for me. ✍📖
Tags: codenewbie, career, beginners, learning
Published: 2020-07-13 09:30:36

**Hello, users! 👋**
<br>

How are you doing? I wish you, friends, family and close ones are healthy and well.
<br>

We've been through challenging times, but I'm pretty convinced we all will go on and keep encouraging each other. Sending you all my good vibes.
<br>

<img src="https://media.giphy.com/media/l46CgUEZgpaJblGwM/giphy.gif"/>
<br>

Now... **What topic will I be talking about today**?
<br>

It's been some months since I started being a mentor and instructor, and I'm frequently asked from students (or how I prefer to call them, *learners*), same issues.
<br>

One of the questions I'm more concerned about is: Desiré, **how can I learn 'easier'? What's the 'quickest' way to learn something?**
<br>

So I thought that **writing a post** about the **learning method** that works for me, would save me some time (so I don't have to explain this all over again) and also *maybe it can help someone else*.
<br>

⚠WARNING⚠, this is **not** the "fastest" nor "easiest" way to learn anything. The 'fast and easy' way **doesn't exist**. This is just a **learning method** that could make your learning experience better.
<br>

(Or at least... Give you some ideas).
<br>

So, here we go. 👇
<br>

<h1>🟣 When (time) should you study</h1>
<br>

I've been in 3 jobs at the same time, +studying, +writing, +building my projects, so I know how **hard** it could be to manage your schedule when it seems **impossible**.
<br>

Here is one statement that I wish I heard before, but that I've learned a bit late: **this is not a race; you'll get there when you can**.
<br>

So the first thing that may be **useful** for you is to build up a schedule that works for you.
<br>

That "works for you" means:
<br>

📌 Some hours seeing different **tutorials/reading articles/seeing free courses** while **taking notes**.

📌 Some hours actually **building up the architecture** of what your test-pet project will be and setting up your *goals*.

📌 Some hours finally **coding up** your project.
<br>

When I say "some hours", it can be translated to days, weeks, months, whatever that works for you.
<br>

When I started learning by myself I went with a schedule like:
**Week 1**: seeing this or that tutorial and taking notes; **Week 2**: drawing-writing the architecture of the project I want and actually start coding; **Weeks 3 to 5**: Keep building the project and finish it.
<br>

**IMPORTANT**: Set **deadlines** for you, as above I wrote: 'week 3 to 5, building the project and **finish it**'. One common mistake we as learners do, **is working in our pet projects forever** and sometimes we get stuck.
<br>

It is important to set at least some goals to consider your projects as "finished" at least at the beginning. Mark my words, <mark>else, you'll be working around the same project for months just because you don't like your css and will waste months learning anything</mark>.
<br>

Be **realistic** and don't worry if your schedule changes. For example, maybe just 1 week isn't enough for you to take notes and actually figure out the tech you're learning, so just take another week.
<br>

This is not a static/closed learning method. These are just some guidelines for you to adjust to your necessities.
<br>

<h1>🟣 Notes, notes, notes ✍</h1>
<br>

This is something I **insist** when mentoring someone.
<br>

<mark>Take notes</mark>, write your own guides to yourself, your own tutorials, document each problem or bug you walk into.
<br>

Even if you already learned something, **don't erase those notes**, you'll never know when they'll be useful again. I've been changing between techs the last 2 years and the human brain will just replace one knowledge for the other. So **don't.** **erase.** **your.** **notes.**
<br>

Take notes when seeing a tutorial, attending a conference, a course, when reading an article, test the code quickly to see if your notes are correct, whatever, **but take notes**.
<br>

As a side note, actually all my articles and guides are re-written from the guides and notes I take to myself. 
<br>

Some really good apps to write your notes:
<br>

📌 Your own project. Comment it, **everything**.

📌 I use <a href="https://www.notion.so/">Notion</a> for everything: my life, my studies, my courses, my ideas, etc.

📌 Also, <a href="https://evernote.com/intl/en">Evernote</a> may work for you.

If you're not interested in these ones, try googling it and search the app/platform that works for you.
<br>

<mark>EDIT</mark>: Someone asked in the comments "what kind of notes I write", so <a href="https://i.gyazo.com/fc8b62fd536913a4fd08267093f7295a.mp4">here</a> you can see a gif where I show, for example, my Vue starter notes. Hope it is helpful. 🙌

<h1>🟣 Testing your notes/code faster</h1>
<br>

There's **no need to set up a project locally** to start testing some projects/code.
<br>

Let me introduce you to my 2 new **best friends**, CodePen and CodeSandbox.
<br>

📌 <a href="https://codepen.io/">CodePen</a>: An online tool to test your code easy and quickly. One picture is worth a thousand words, so for example <a href="https://codepen.io/helleworld_/pen/pogbKpR">here</a> you'll find a test I did with CSS 3D Perspective. As you can see, you can store, test and share your code easy using this online tool. However, this will work for little and simple projects/testing **only**.

📌 <a href="https://codesandbox.io/">CodeSandbox</a>: This online tool is more powerful than the last one. This one lets you test and create your whole project with many different techs (for example creating a Vue project online, React, Angular...). However I suggest if you're building a huge project, **do it locally**. <a href="https://codesandbox.io/s/vue-router-6suht">Here</a> you can see a little project I did using this tool.

You should check how these both tools work, for me, they were a nice solution to test my notes and code faster without setting up my project locally.
<br>

<h1>🟣 Learning by myself, or learning with a course?</h1>
<br>

**Both**!
<br>

Let me explain.
<br>

I usually try to test new techs using the official documentation, and when I've been able to test it by myself and build something, then I go and search for a course.
<br>

Learning by yourself is good since you can walk your own path, however, eventually, you'll need some organization and a "study plan", which a course/lesson online can provide.
<br>

Lately, I've been searching online courses (*both free and paid*), **checking the study plan**, trying to do it by myself, and finally doing the course. 
<br>

Trying to follow by myself the study plan of a course makes me understand *where my weaknesses are* and choose a course that actually enlightens my doubts. (Since there are plenty of resources out there and it's hard to choose sometimes).
<br>

I'd always suggest to do some courses and invest in some online lessons to complement the study you're doing by yourself, even though, most of this path you'll be walking alone.
<br>

<h1>🟣 When can I say "OK, I know this tech"</h1>
<br>

I usually feel "*I've learned a new tech*" when:
<br>

📌 I feel very comfortable with my skills and working with that tech.

📌 I know how to set up a project correctly and how to **deploy** the project online.

📌 I've been working in the same tech for more than 4-5 months in a row (subjective, but that's for me).

📌 I've built different kinds of projects with the same tech.

📌 If **I can teach that tech to someone else**.


The most important part is the one where you feel comfortable building a new project with that tech and now exactly what to do. Identify your weaknesses and work to improve them. You don't have to be **brilliant**, you're only expected to know what to do and how to do it.
<br>

You won't be able to face 'all the matters' of one tech until you actually work professionally with it, so don't try perfection, try being able to build something that **works!**
<br>

<h1>🟣 Conclusion</h1>
<br>

So, to sum up:
<br>

📌 Create your (flexible) **schedule**. Be realistic. Don't pressure yourself.

📌 <mark>Take. Notes. Always.</mark>

📌 Build up some nice **projects**, either locally or with online tools.

📌 **Learn by yourself** and rely on some **tutorials/courses/online lessons** to follow an organized study plan.

📌 Identify your **weaknesses** and work on it.

📌 Evaluate yourself to check if you actually **know** the tech or you need to work deeper into it.


As a reference and to expand this article, you may find more tools and advice in my <a href="https://dev.to/helleworld_/how-to-become-a-frontend-dev-4de9">📙How to become a Frontend Dev<a/> (even if you're not trying to be a frontend) and my <a href="https://dev.to/helleworld_/where-and-how-to-become-a-self-taught-designer-developer-and-many-other-areas-114p">📙Where and how to become a self-taught designer/developer</a> (and many other areas).
<br>

Thank you for reading, every doubt/feedback is welcome. How do you study? 😉
<br>

Let's keep coding 💻!