
Fastest Way to Learn ANY Programming Language
Fastest Way to Learn ANY Programming Language
- Top programming Languages.
2. How to learn coding?
3. How to learn Python, Javascript or Java?
3. How to become a Software Engineer?
I will answer all these questions in this video.
► For more content like this, subscribe to our channel: / powercouple26
► Follow us on Linkedin:
https://www.linkedin.com/in/gabag26
https://www.linkedin.com/in/sarrabounouh
► Let’s be FRIENDS! https://www.instagram.com/power_coupl…
► For business inquiries, reach us on: [email protected]
#coding #programming #softwareengineer
DISCLAIMER: All opinions shared on this channel are our own and don’t express views or opinions of our employers. We only use our experiences and public knowledge to make our content. NO CONFIDENTIAL INFORMATION of our employers is used or shared on this channel. This is not a Professional Coaching channel, it only highlights the public resources that have worked for our careers.
Content
0.14 -> This is how I learned to code in Python, Javascript
and C++ by spending only a few weeks on each
5.48 -> of them.
6.48 -> But, learning a new language was not always
as easy as this.
10.23 -> When I learnt my first programming language
which was Java, I spent months watching online
14.65 -> tutorials and following along.
16.309 -> But when I joined Amazon, I delivered a project
in Python within the first 2 weeks.
20.61 -> I had never written a single line of code
in Python before working on this project.
24.439 -> Later when I joined Google, I used the same
approach to quickly pick up C++ and be useful
28.52 -> to my team.
29.52 -> And I have done this over and over again to
learn other languages like JavaScript, Go
33.23 -> and Dart.
34.23 -> But, how am I able to do all this?
35.66 -> Did I take some magic pill that made me a
Python wiz overnight?
38.489 -> Truth be told, it’s actually very simple.
41.82 -> For thousands of years, great civilizations
and powerful leaders have tried to uncover
46.1 -> the secrets of learning a new programming
language.
52.559 -> To find the answer, we have to go all the
way back to 1945.
60.86 -> World War 2 has just ended and after winning
the war, the British want to spread English
65.199 -> throughout the world.
66.52 -> As you might already know, English is not
exactly a very easy language to learn as a
70.52 -> non-native speaker.
71.52 -> So, they created this simplified version of
English called Basic English.
75.65 -> Basic English had only 850 words.
77.93 -> For comparison, there are around 170,000 total
words in English.
82.11 -> In addition to fewer words, Basic English
also had simplified grammar rules, with a
86.47 -> focus on basic sentence structures.
88.46 -> To popularize the language, the British used
state owned radio called British Broadcasting
92.97 -> Corporation or BBC to create a show named
“English by Radio ''. This show taught Basic
98.36 -> English vocabulary and pronunciation to non-native
speakers and was a huge success.
103.24 -> But how could just 850 words and a few basic
grammar constructs help people learn English?
108.39 -> And can we use the same principles to learn
a new programming language?
111.619 -> To answer that, we need to know a few things
about how the languages exactly work.
116.7 -> Imagine a circle that contains the top 10%
most popular words among the 170,000 total
121.841 -> words in English.
123.01 -> This circle would contain words like I, me,
you, eat, drink etc.
128.19 -> Then we have another circle around it that
contains the next 20% most popular words.
132.83 -> This would contain words like overpaid and
programmer which makes sense.
136.38 -> And we can keep making these circles until
we cover all 170,000 words.
141.83 -> In case you are curious, the outermost circle
contains words like nincompoop and teetotaler.
147.34 -> For simplicity, let’s combine the innermost
two circles together and the rest of the circles
151.78 -> together.
152.78 -> Now imagine that you start reading one of
the best novels of our times called “Fifty
156 -> Shades of Grey” which has a total of 150,000
words.
159.58 -> What you’ll find is that roughly 80% of
these 150,000 words in the book lie in the
164.08 -> inner circle and the rest of the 20% words
come from the outer circle.
168.48 -> For those who don’t know, this is also known
as Pareto principle.
171.56 -> Pareto principle states that 20% of your effort
results in 80% of your outcomes.
176.5 -> And this powerful principle is the main idea
behind the BASIC English as well as the secret
182.36 -> to learning a new programming language really
fast.
184.68 -> I applied the same principle to learn French
and now, “Je peux parler en français mais
189.43 -> mon accent est marrant”.
190.67 -> “Learning a new spoken language is one thing
but learning a language that a computer understands
195.64 -> is totally different”, you might say.
197.2 -> Well, let’s try to test this hypothesis.
198.94 -> Let’s build the same circles for the vocabulary
of programming languages.
203 -> What would be the top 10% most popular concepts
here?
205.89 -> I believe it would include different data
types like int, float, strings or Array etc.
210.92 -> Maybe “if else” blocks and for loops would
also be part of this circle.
214.739 -> Maybe writing functions and classes would
also be here.
217.33 -> If you move outside to the next circle, you
might have concepts like polymorphism and
221.5 -> inheritance etc.
222.62 -> And you can keep drawing these circles until
you reach the outermost circle that might
226.86 -> have I don’t know, maybe iterators or generators.
228.83 -> Now if you pick all the Github repos in the
language of your choice, you will find that
233.25 -> 80% of the code would be coming from the inner
20% circle.
236.909 -> And following what we learnt from the BASIC
English example, we will focus on this 20%
241.35 -> circle first.
242.35 -> But as we do this, we need to be careful about
2 things.
245.53 -> Number one, this 20% circle though fairly
similar might vary a little bit across different
250.01 -> languages.
251.01 -> For example, in Java, you might have an Arraylist
and you will call it just List in Python.
254.41 -> Or in Javascript, you might have async/await
which might be very different in other languages.
259.959 -> The point is, this top 20% circle might change
depending on the language you pick.
263.19 -> So, you would want to do your own research
on the top concepts for the language of your
266.8 -> choice.
267.8 -> Number two, when you are trying to learn these
concepts, you need to change your method of
271 -> learning.
272 -> If you were trying to learn a new spoken language,
let’s French for example.
275.54 -> No matter how many movies or TV series you
watch in French, you will not be able to speak
279.759 -> French unless you actually try to talk in
French.
282.37 -> In the same way, no matter how many lectures
or video tutorials you watch in Javascript,
286.82 -> you will not be able to code in Javascript
unless you actually try to code in Javascript.
290.58 -> In a video tutorial, you will usually get
the code that already works and if you copy
294.639 -> it, sure enough, it will work for you as well.
297.06 -> But, programming is the art of breaking and
fixing things.
299.84 -> That’s why I recommend interactive learning
instead of casual learning.
303.59 -> For example, if you want to learn Python,
you can go to learnpython.org and do exercises,
308.53 -> break things and fix them as you learn new
concepts.
312.05 -> Similarly, for Javascript, you can use W3
schools.
315.09 -> I am sure you can find this kind of platform
in other languages as well.
319.08 -> Now that you know what to learn and how to
learn it, there are 2 problems left for us
323.09 -> to solve.
324.09 -> How to remember what we are learning and How
to learn the rest of 80% concepts in the circle.
328.85 -> To solve the first problem, we need to first
understand the Ebbinghaus Forgetting curve.
333.24 -> Herman Ebbinghaus was a German psychologist
who is well known for his work on memory and
337.53 -> learning.
338.53 -> He conducted experiments where he would give
himself some nonsense words to remember and
342.08 -> then test himself at various intervals to
see how many of these words he could remember.
346.72 -> What he found became the backbone of how we
teach kids in the modern school system.
350.68 -> What you are seeing is the famous Ebbinghaus
Forgetting curve.
353.6 -> This graph is a classical exponential decay
graph.
356.46 -> What this means is that right after we learn
something new, we start forgetting it very
360.3 -> quickly.
361.3 -> But this rate of forgetting slows down over
time and in the end, we only retain a small
364.89 -> fraction of what we learnt.
366.1 -> But what if I tell you that there is a way
to retain more of what we learnt.
369.79 -> Ebbinghaus also studied the impact of revision
on our retention.
373.25 -> What he found was that if you review the concepts
again, you can increase the number of words
377.18 -> you remember in the end.
378.18 -> And if you repeat this multiple times, your
retention can keep increasing.
382.31 -> And this is called Spaced Repetition, which
many of you might have already heard about.
386.49 -> This is the reason why if you try to learn
a new language using an app like Duolingo,
390.289 -> they keep repeating the same words again and
again in the exercises.
393.12 -> But how do we apply the spaced repetition
to learning a new programming language?
397.27 -> The answer to this question is also the answer
to the second problem that we still need to
401.169 -> solve.
402.169 -> So, let’s quickly cover the second problem
and then we will talk about the solution.
405.46 -> The other pending problem we have is that
we have still not figured out how to learn
409.389 -> the remaining 80% of concepts.
411.4 -> For this, we need to take a breadth first
approach to our learning.
414.789 -> What this means is that instead of taking
some random long deep path from the inner
418.259 -> circle to the outside boundary, we just keep
enlarging our inner circle.
422.44 -> In other words, we slowly keep increasing
the breadth of our knowledge.
425.79 -> The biggest advantage of doing this is that
we are only learning new things that are close
429.86 -> to what we already know and this makes learning
them very easy.
433.26 -> But how exactly do we do this?
435.039 -> To remember more of what we have learnt so
far and to learn the remaining 80% concepts,
439.569 -> all we need to do is build projects.
442.319 -> But not just any projects, we need projects
with increasing difficulty.
445.58 -> I will tell you which exact projects to build
in a moment.
448.49 -> But, building projects helps you in 2 ways.
451.279 -> Number one, as you build projects, you will
encounter the top 20% concepts again and again.
456.139 -> And this will help you achieve spaced repetition.
458.72 -> Number two, as you build projects, you will
need to learn some new concepts on the go.
462.97 -> If you choose your projects carefully and
slowly increase the difficulty, you can constantly
467.2 -> expand your inner circle to become the same
size as the outer circle.
471.19 -> One thing that you should be aware of though
is that you will never be able to learn 100%
475.03 -> of what there is to learn.
476.35 -> But look at you.
477.35 -> You don’t know everything about the language
that you speak and you are doing just fine.
480.97 -> So, don’t obsess over learning everything.
483.36 -> As I mentioned, choosing the right projects
is extremely important.
486.909 -> Doing this will not only help you learn faster,
it will provide you with a portfolio of projects
491.02 -> that you can write on your resume to impress
the hiring managers.
494.07 -> If you want to know about the 5 projects that
I recommend to all beginners, you can watch
497.75 -> this video.
499.039 -> My name is Sahil and I will see you in the
next one.
Source: https://www.youtube.com/watch?v=14BL_FwQCpM