zettelkasten 1 The fastest, most effective way to learn a new programming language any language “Systems are for people who care about winning repeatedly Goals are for people who care about winning on.
Trang 1The fastest, most effective way to learn
a new programming language - any language
“Systems are for people who care about winning repeatedly
Goals are for people who care about winning once”
James Clear
Trang 2Acquire Your Sources.
Create Your Plan
Section 4
Filter Your Sources
Build a Knowledge Chart
Develop Measurable Goals
Update Your Plan
Section 5
Gather Your Tools
Trang 3Section 6
Execute Your Plan
Build Your Master Mind Map
Trang 4Write this last.
You’re about to embark on an amazing, and sometimes frustrating journey
1 Hook the reader
2 Tell a story about the reader’s current pain
3 Tell them what they’ll learn
4 Describe the author’s background/origin
4.5 What this is and what it is not
5 Set up the book with a call to action
Trang 5Technology is accelerating the creation (and destruction) of careers Data
Science is the fastest growing technology field right now, but the professional title of Data Scientist has really only been around since 2008 (https://
en.wikipedia.org/wiki/Data_science) Think about it A high-paying career that touches nearly every industry is only 12 years old If you wanted to pursue a career in Data Science, four years of college may not be the answer Self-
education may be the best answer
A 2016 Stackoverflow.com poll reported that 69.1% of software developers appear to be self-taught.
Like most of the people that responded to that Stackoverflow.com poll, I’m a self-taught Web Developer I’ve learned by trial and error, practice, and a whole lot of reading, but no formal education Sure I went to college, but not for Web Development I’ve had a long career working for some of the most iconic
companies in the US - all because I was self-taught
Years ago, I started looking for a new role as a Web Developer, and kept getting passed over I had no problems in the interview process, but as a
Developer, you’re often asked to perform some sort of coding exercise to show your knowledge Despite my years of experience, I failed the coding exercise almost every time Something was wrong with my knowledge I had to figure out what I was missing
Being passed over for a role you felt you were perfect for is very humbling You start to question your skills Occasionally you’ll question your entire career
Trang 6wrong
Looking back on the roles offered to me in the past, I realized that in every interview that resulted in a job offer, I didn’t have to do a technical skills test, or white boarding exercise
I decided to look at what I knew and how well I knew it I realized there were
a lot of holes in my skillset I needed to rethink the way I learned to code
There’s a term to describe what I was experiencing It’s called “The Illusion of Competence” I had convinced myself that I was proficient in skills that I only read about I believed that if I memorized a few key terms, I could easily do the work After all, I’ve been doing this for over 15 years now Needless to say, I was wrong
I had to figure this out My career depended on it I needed to go back to the beginning
It’s a funny thing about learning I was never taught how to learn We're
taught in school reading, writing, arithmetic, science, computers, history, and a host of subjects, but rarely are we taught the best way to learn this information, let alone how to master it, or even retain it
How do you get the most out of a programming book? Clearly just reading it isn’t enough Memorization is good for vocabulary, but programming is much more involved than just reciting definitions of words You’re taught rote
memorization in school, and even the critical thinking essays involve mostly just recalling facts I realized that the skills needed to be a programmer go much deeper than just learning information It also requires abstract thinking - the ability to take multiple concepts and combine them to create something new I decided to start with learning how to learn
I spent years researching and experimenting with learning techniques I
Trang 7studied all the experts I mention throughout this program I read research
papers, blogs, and gathered information from the 300+ books I have in my
library This program is the result of that work, and I’m thrilled to share it with you
What Makes the Program Different
This program won’t teach you a new programming language This program is much more than just a tutorial I will teach you the fastest, most effective way
to learn a new programming language - any language Whether you’re
completely new to programming, or you’ve learned a language (or two), this program will teach you valuable skills in knowledge building The techniques mapped out in this program have helped me learn valuable coding skills that have landed me jobs that pay well over six figures
I truly believe that if I just taught you JavaScript or Python, I’d be doing you a disservice This is probably the one tool in your arsenal that won’t be obsolete in
a matter of months If you can learn new skills while excelling in your career, you’ll never be “obsolete”, and your skills will always be in demand
Inside the Master Learning Method, you’ll learn:
• Why your mindset determines whether you succeed or fail
• Where to find the best free learning materials
• The best methods for note taking
• Apps and online tools to use to capture your knowledge
• How to “deconstruct” a programming language so it’s easier to learn
• Why just using memorization to learn is a waste of time
• How teaching others what you’ve just learned is the best way to retain information
Trang 8The Master Learning Method is the foundation for learning a programming language in the fastest, most effective way When you complete the program you’ll be a Minimum Viable Expert (MVE) in your chosen programming language
An MVE has the “bare minimum” level of knowledge to be considered an expert
on that subject This is your target performance level
The path to become an MVE consists of 6 phases:
First we activate our mindset
Once we’re in the right frame of mind, we need to acquire our learning
resources
Once we’ve gathered our knowledge sources, we focus on creating a
schema for learning.
Now that we have a plan, we gather the tools we need to succeed
Now the magic happens in the execution phase
Finally, we review how effective our system is through a retrospective
A note about affiliate links
This program contains affiliate links It's a small attempt to modestly profit from
a free offer Every program or tool recommended in this system is one that I personally have used and found effective Feel free to type the web sites into your browser if you don't feel comfortable using the affiliate links I won't be
Trang 9offended.
Trang 10Section 1 - Master Your Mindset
“Begin with the end in mind”
Peter Senge
If you've ever taken a course or read a book on productivity or reaching your goals, you've probably heard that understanding your "why" is a powerful
motivator
Why do you want to learn a programming language? Will it get you that
promotion, or let you start that business? Will it let you finally be able to build that app you’ve thought about for years?
Your motivation for learning this new skill or subject is the drive that will keep you going It's the fuel for your fire
Your "why" is the anchor for the Master Learning Method - it's the cornerstone
of your Mindset
Why your Mindset is so important
You may have heard the phrase "Growth Mindset" Experts agree that it's the key to learning new concepts, but what is a Growth Mindset, and why is it important to gaining knowledge? A Growth Mindset is the belief that people are are always capable of learning new things Our minds aren't fixed Our minds are created so that throughout our lives, new experiences will continuously change us and we will grow from them Embracing this concept is essential in
Trang 11mastering new skills because you must first believe your can learn a new skill before you can learn that skill
Another concept of the Growth Mindset is that every situation is an opportunity
to grow Having a Growth Mindset means taking a failure and turning it into a learning experience Throughout your journey to master a programming
language, you’ll eventually fail at something It might be a coding exercise, or an online skills test, or when you’re actually trying to build an application Use that failure as a learning experience - try to figure out where the failure occurred Then, try to fix the failure You’ll learn a lot from the exercise
Thomas Edison once said, "I have not failed I've just found 10,000 ways that won't work." This is the essence of the Growth Mindset
Declaring Your Intention
Your Learning Intention Statement is a simple sentence that states what you plan to do and when you plan to do it by In this case, your Learning Intention Statement should be something like, “I will learn to program JavaScript by
date.”
I’m sure you’re confused about adding a deadline in your Intention Statement That date will likely change, but just the fact that you’ve determined a date will increase your chances of success
Take your learning intention and write it down Under that, write down your
"why" and put it somewhere you'll see daily Keep it in the forefront of your mind
as you go on your journey
Trang 12If you find yourself fading, or losing interest, think about your "why" and picture how you'll use this knowledge to reach your goal
Even before we get into the process of determining the best way to learn your new skill, set aside some time daily to work on it The schedule will likely need
to be adjusted as you progress, but having that time blocked out from the beginning will require less energy from you to stick to your plan as you go along
The good news is now that you've become part of the Master Learner family, you're invited to join our free Facebook Group where we help each other in our accountability and share tips and tricks with each other on how to achieve our goals
The information you need to join has been sent to you in the series of welcome emails If you're having trouble finding that information, please send an email
to help@masterlearningmethod.com
What have we learned?
• A Growth Mindset is key to learning a new subject
• Setting a deadline for your journey will increase your chance of success
• Having a method of accountability will keep you on schedule
Trang 13Section 2 - Acquisition
Section Overview
1 Gather information sources
2 Research the skill and any related topics
3 Look for patterns and “overlap”
4 Create your plan
The second step of the Master Learning Method is to acquire your resources Now that you’ve determined your why, and you’ve activated your growth mindset, it’s time to get to work gathering the study resources you need to begin your journey
There are practically unlimited resources on the Internet to learn any
programming language in existence The key is to know where to look to get the best information that works for you Another factor to consider is whether you’re willing to pay for some of your resources, or try to learn programming from
completely free sources
One thing to do is to look at a curriculum used in schools to teach that subject
It can be a syllabus from a class There are now free courses online offered from major institutions like MIT
There’s links in the bonus section to free online college and university
courses
When you’re looking for resources, make sure you understand what “level” the materials are at Basic programming books should contain all the basics you
Trang 14knowledge of the language
Keep these resources handy They’ll be used to develop your Learning
Roadmap in the future
Subscription learning sites such as LinkedIn’s Learning portal, or courses from Udemy are all options Before choosing to use online courses for your knowledge source, you need to be aware of the drawbacks Online courses are typically much more expensive than other sources You’re also tethered to the instructor’s teaching speed You may learn a programming language faster, or slower than the instructor is teaching you There are some major benefits to an online course though Often the instructor walks you through coding exercises where they give you insight into their thoughts about solving a problem You literally get to look over their shoulder while they work If you decide that online courses are for you, one tip is that you can often watch the videos at a faster speed than normal It’s a good way to get through some of the basic talking points so you can focus on the actual knowledge transfer Another tip - look for tutorials that have the transcript of the tutorial on the page Take a look at it and see what parts of it look to be important Be sure to look for courses that were created in the last year Technology moves fast and tutorials can become quickly outdated
The same goes for books If a book doesn’t offer information on the latest version of a programming language, you shouldn’t waste your time on it
Packtpub is a publisher of programming books They offer a subscription to their online catalog and you get access to publications that are still being written, with the latest information Apress has a similar option Both sources tend to force you to read the books online only
Some of the best resources I’ve found have been from great developers that have created courses on the programming language or framework I was wanting
to learn They usually have sample chapters, or videos for you to check out, and
I highly recommend it If the creator doesn’t sound like they know what they’re
Trang 15talking about, you should think twice about buying the course Sometimes a creator will offer “early bird” access to their courses This is a great way to save money, as long as you understand that the product may be incomplete at time
of purchase If you’re serious about your timeline, you should think twice about purchasing incomplete content
Create Your Plan
Now that you’ve gathered your materials and have an idea of the amount of resources you’ll be using, it’s time to create a plan
Creating a plan is as important as knowing your “Why” Life moves quickly and a lot happens to distract us during a single day Scheduling time to do the work of learning is essential to stay on track and reach your learning goal I recommend scheduling at least an hour a day to focus on your work If you can allocate more time, do so As you plan, remember that the brain is like any other muscle in your body - it has a finite amount of energy to use each day Don’t spend too much time each day focusing on your learning Take breaks regularly Taking a break can actually be beneficial in the long-term learning process It allows your mind to process what you’ve studied and it helps cement it in your memory You can help this happen if you just briefly mentally review what you’ve learned as you’re taking a break
What have we learned?
Having a plan is essential for success
Trang 16Section 3 - Schema
Section Overview
1 Build The Knowledge Chart
2 Look for patterns and overlap
A schema is a representation of a plan in the form of an outline or a model
(Oxford dictionary http://english.oxforddictionaries.com/schema)
This stage of the process involves creating the plan you need to learn your new
skill or subject
If you are a complete novice, your schema is going to be extensive
Deconstructing the programming language
Skills
Subskills
Most of the things we think of as skills are really a combination of smaller skills Often in programming, a limited number of smaller skills combine in multiple patterns to make up the larger skills
The first thing we’re going to do is create a Knowledge Chart In it, you’ll categorize the content you need to learn You’ll be constantly adding to this chart as you dive deeper into your resources and the programming language