Hi It's Joel on another post,
Before start I'm making an Epic Quest inside this post, read all the entire post to find more hidden hints, I'll publish details here on a near future.
the title it's a bit click-bait isn't it?
You probably saw some posts and marketing articles across the internet about giving you the power of coding on few weeks/hours.
Online courses, code camps, specific posts and so. There's plenty of them.
I never wrote a post with that concept of "cheats/hacks to improve your skills on easy mode" so I felt myself on a need for doing this from a realistic point of view, and I need to tell you at this point that there's no cheat or hack that will lead you to become a badass berserker on "development" (or cooking, or mechanics, or whatever).
It's something romantic that we all desire for ourselves, to quickly and magically learn something, internalize this knowledge and being capable to use it practically.
That's the process (more or less) but the trick is in the word "magically".
How to learn
It's a silly question huh? We all start our lives learning things and keep at it till the last breath.
I'm taking some concepts extracted from scientific studies to add background to it and let you know what I learned and I'm trying to apply. This does not mean I'm a guru or that I'm right at absolutely all, if you want to know more you can do the research by your own and take your own conclusions. If you do please, add your part on comment section to increase the knowledge.
There are 4 steps on the learning circle:
The individual does not understand or know how to do something and does not necessarily recognize the deficit. They may deny the usefulness of the skill. The individual must recognize their own incompetence, and the value of the new skill, before moving on to the next stage. The length of time an individual spends in this stage depends on the strength of the stimulus to learn.
Though the individual does not understand or know how to do something, they recognize the deficit, as well as the value of a new skill in addressing the deficit. The making of mistakes can be integral to the learning process at this stage.
The individual understands or knows how to do something. However, demonstrating the skill or knowledge requires concentration. It may be broken down into steps, and there is heavy conscious involvement in executing the new skill.
The individual has had so much practice with a skill that it has become "second nature" and can be performed easily. As a result, the skill can be performed while executing another task. The individual may be able to teach it to others, depending upon how and when it was learned.
For adding context you can learn basic coding with javscript for a pair of days and you can understand what variables, constants and conditionals are and what are intended for.
Then you may want to store a bunch of related elements together and you fall into the step 2 (you were already on the step 1), where you are conscious that you need to add some other concept into the blend. You learn about Arrays and your problem is solved (step 3) and finally you focus into learning array sorting, array push and another tools or concepts for working with arrays, so you don't care about the original base concept of arrays, you already internalized it (step 4).
You need to pass through this steps even want it or not. It's a little bit different than with a video game skill tree and/or skill point usage, where you already can read the perks to decide a path to follow while growing up.
There's no way to pass through step 3 or 4 directly for obvious reasons.
What a good teacher does?
Assuming all we are on the step 1, a good teacher makes you conscious about your lack of knowledge about something (then you are at the step 2), then it brings you some knowledge and makes you use it (step 3). It's not possible for a teacher to bring you to the step 4, you need to practice that by your own.
That's why we are always telling people: don't do your homework only, get your hands into a project, try, practice... this will give you more knowledge, more questions to answer, and you'll be unconsciously on the step 4 on more concepts each day.
What a good pupil does?
According to the Kolb model, there are different ways of learning something (all of them run over this 4 steps we saw before):
Active style - the person engages and commits to the activity without prejudice. They take advantage of the enthusiasm that an area provokes to jump into it and they learn best when it is challenging.
Reflective style - The person with this style stops to observe events and reflects on the information from several different angles. They are collectors and analytics. They tend to learn best when they have the time and space to draw their own deductions.
Theoretical style - people with this style often integrate information into complex theories with a fairly strong underlying logic. They tend to organize thought sequentially, in steps. They learn best with objective models and systems, especially if they can do research on it.
Pragmatic style - used by those who put into practice the knowledge they acquire. They do not tend to bear very well the fact of debating theories and prefer to apply the knowledge to the active resolution of real problems. They learn best when they can apply knowledge to a specific case.
You usually will be using more than one style at a time and there's no correct order for everyone.
All you need to do for learning fast is trying to find your best way to learn and apply it.
By the way, you will be on a college for example and a teacher will teach you only on a theoretical way so you'll need to perform an extra effort to transform this into another way if you are not theoretical.
I usually use the 4 steps together, starting from an active way: I decide to learn something (usually because I was wasting my time clicking on videos that I know nothing about or on my google board news list) then I go to the "getting started" page (or the main source), I put my hands on (pragmatism), I try to link this new tool, language, framework or concept with what I already know, then I reflect about what I did and learn about some concepts I may not understood well (talking about the main concept or the reason for them to be) from a theoretical source.
I'm mainly pragmatic and reflective, I wish I could learn something fast theoretically but it's not the case i use theory as support for reflective conclusions and for answering questions I can have after the pragmatic phase.
You need to find your workaround and know what you are (not what you want to be, which could be counterproductive).
The problem number 2
Nowadays concentration ability from people (anyone) is melted down due to the high information count we are bombed with every day.
We, web developers are making websites and web apps that loads and permits user interactions faster because people don't want to wait 4 seconds till it loads. You could say 4 seconds is few time to loose and people should not care about.
Well, there's no assumption here, there's data, and this data told us that on a faster web site the income increases,the bounce rate is lower, and usually and contrary to what it may seem, the time spent per user is higher.
One of the reasons for that is that people, when searching online, are used to click on a Google result, perform a fast scan, then if there are some words they know are meant to be on the context they are searching, they stay. Else they click back button and navigate through the next result.
You want fastness, a blink load page that gives you the info you are searching for.
It's something like when people ask on yahoo "What's the name of the song that sounds like "lalalalalaaaa lala lalaaaaaaaaaaaa!!!"
And there's a starred upvoted comment like "it's Everyday Normal Guy 2 from Jonlajoye", with a reply from the OP like "Thanks a lot!"
and you think "Dafuq" happened here??? How? Why?
Well, a place where to search something poorly detailed and we can find all that we need at the first click could be a heaven but the truth is far from that. The big G did a good job dealing good quality related content TBH but it's not perfect, specially if you don't know how to search properly.
What does this have to do with learning something?
If you feel some kind of anger because I didn't told you all at this point there's a prove about what I'm trying to explain.
Be patient, I can put statements indiscriminately but I bet it's better with a little bit of context.
Learning is not an incremental curve from bottom to top, also it's not a straight line on the imaginary graph. It's more stairs shaped, sometimes you learn something fast, and sometimes you feel like you are not learning anymore so you feel frustrated and this could lead into abandon this study or field, or could lead you into a depressive state where you think you are an useless person.
Wow, it's hard, isn't it? Become depressive for thinking about yourself an useless person are hard words, it's not something to joke with.
To avoid this the first thing you need to know is that this will happen to you. It's not possible to learn progressively on a linear/exponential way on any matter, you will face this stairs.
When you are into the horizontal plain line of these stairs you will need to breathe, tell yourself this is a way that you need to walk step by step and try to find peripheral concepts about what you are studying so you can get the next step up faster; Again you need to find your way (but you know the concept and what you need to search for now).
If you can't handle this "I want it all quick, fast, no time to loose" mentality, you'll fall into this plain lines more often. Take it easy, step by step, be patient and constant.
The problem number 3
This applies only into IT world (at least the way i'm about to explain it).
There are tones of people that every year come into some part of the IT processes; you could come as a self learner, from a code camp, from an institute or college, from an academy and so.
There's tones of newcomers who every day publish posts about things and that's fine, I'm an active reader from that posts, I like to see how people face new concepts, and I like to read posts like "my first project with (whatever)" when I learn something new by my own.
The counterpart of this are the opinionated articles which usually makes the OP think they are on a cosmic truth and usually leads tones of learners on a wrong path.
Even when the article is 100% true no fake, always add the publish and update dates. Please.
The same way you can't learn properly how a modern engine works reading about the first combustion engine, you cannot learn about IT reading outdated posts.
Reading outdated content have another big problem apart from not learning properly, and it's that you will learn bad. You'll assume and internalize facts, concepts and ways to work that are deprecated so it will be more difficult to work properly.
Solving problem 3:
Information Technology is a Science.
You must always remember that we are on a science field, there's no "I think that", "it must be like" or another statements like this, there is data, and we play with that data to find new concepts (research), we define and mold that data (development), we define how the user interact with that data (UX), we code human-friendly interfaces (UI), we store and organize that data (databases and data warehousing), we take conclusions about that data, bringing knowledge from it (data science), we create structures for data to increase by itself on precision (machine learning, neuronal networks) and we emulate natural concepts using data (IA), for giving some poor, basic, yet incomplete examples.
If you are strict on that, and you treat development or any IT field as a science, you'll need to find and collect information, organize it and empirically find which part of the information is true and which part doesn't.
It's a hard job but as more you learn, more easy this steps will be.
- No need to do this with absolutely all concepts, only with that statements that tell you how to do something.
Specially those who tells you "USE this INSTEAD that", or "STOP USING something". You'll note that most of this posts don't add context into the statements.
Don't use React or Angular for a public web page, because SEO breaks up when using one of this frameworks.
This is true but decontextualized (so it's true sometimes, and depending on some facts).
If you don't know what SSR (Server Side Rendering) is, you can take this statement as true and blame this frameworks for being bad at SEO so they become useless.
Adding context I could say:
Don't use React or Angular for a public web page without SSR, because SEO breaks up as spider bots who inspect websites can't read dynamic content who does not exists on load and that they can't handle integrated or modified content through user interaction.
This is accurate, true and have context.
Be picky with the information you get, be critic with the concepts you read, assume always they are false and convince yourself with another information or own test that this is true.
Being a conformist usually makes you mediocre, average.
Being critical makes you dig deeper and add wrong things to the brain rubbish bin to free space for the next learning experience.
Don't do things without a reason, or what is the same, try to know the reason of each thing you do.
Note that I added small content at the top, which requires more cognitive load and effort for the user (you) to read, so you read it actively. Not all of you but most will follow the path i prepared with that simple paragraph on top.
It's only a prove about how our brain handles the cognitive load and the difference about active reading and passive reading (same happens on visual and other fields).
There's no epic quest apart from your own life -sounds deep, huh- ;)
I hope you have more questions about now than before reading this post and I hope you get the satisfaction on knowing yourself a little bit trying to find your best way to learn,