People think programming is this pure kind of logical thinking when it’s mostly 99% banging your head against a wall until the wall gives. Jeff Atwood [Co-Founder of Stackoverflow]
A few articles ago, “Learn Code By Repetition,” I mentioned something I saw on a web developers forum:
“I remember going through a Developers forum and reading about a young new developer who claims that he learned Java Script by reading a popular Java Script book. He also said that after 30 days, he totally understood how to program Java Script.
Of course, there were lot’s of comments from many developers debunking his statement, because they themselves understood the hours of trial and error coding it took to become fairly proficient in writing Java Script.”
This post is about encouraging those who are learning to code and having a difficult time grasping the concepts of a particular language. If you’re like me, you have given up several times, but always restarted your quest to conquer the code.
Some have tried just about every online coding school or training source on the web. How about viewing the abundance of tutorials available on Youtube. In the end, you end up confused, frustrated and wonder if you are wasting your valuable time and money.
First, let’s pinpoint some of the obstacles
There are a number of outstanding tutorials taught by competent instructors on Youtube. On the other side of the fence, you will find some really bad stuff that can lead you astray. Here are the problems:
- Be careful, some videos are really out of date and teaching things that are no longer relevant today.
- I have noticed there is no organized structure in many teachings,
skipping some key basic fundamentals and bouncing to intermediate or even advance concepts.
- You may find an awesome video series, but it ends abruptly. You never finish the series.
Try typing in Java Script in the Youtube search box. Literally, hundreds of videos will pop up. So how do you find a teaching video that meets your needs?
- Weed out the lectures recorded from a meetup or conference.
- Research the author of a video. Click the About Tab. See if they provide any information on their experience and background.
- View the entire video series: check if it is complete and how organized the teaching titles are listed.
- Check the date of the videos, if it is really dated, you may be watching deprecated coding.
- Go through a few videos to see if you learn anything, is the instructor clear and concise in his/her teaching skills?
You’ll need to write the code along with the video.
It is very difficult to learn by strictly watching, it’s crucial to train your mind (muscle memory).
Can you learn playing the guitar by only watching a video and never picking up the instrument?
Try different examples of what you just learned.
You will begin to Bang Your Head Against the Wall, sometimes the code won’t work and frustration will set in.
Important! You’ll really learn code when you have to struggle. When things are easy, do you really learn anything?
There are so many schools that teach you code, how do you find a school that meets your needs? The challenge is finding one that’s right for you and your learning style. Many offer a free course or a free trial so you can get a hands on feel to see if it fits your style of learning.
Things to watch for:
- Many courses teach you simple parts of a language: objects, functions, loops, etc. But how do you put this all together? Do they teach you the whole language, not just bits and pieces?
- No Refresh: many courses speed you through the steps, with no review of previous lessons.
Can you remember what you learned a week ago? I think you’ll need to sometimes stop, go back and review what you learned on your own. With so much information assimilation, most likely you forgot what you already learned.
- If you breeze through the course and pass the test easily, I say you haven’t learned the meat of the language. You haven’t banged your head against the wall. Only when you’re puzzled, you analyze the code, search for other references, invest time on that one task till the light comes on.
- To truly learn a particular language, you will have to pay for a complete teaching curriculum, it will take you beyond the basics of a free course. Examples: Treehouse, Lynda, Frontendmasters.
In my opinion, to really learn how Java Script or any language functions, build an app or game or website. You will see the Big Picture, how the HTML, CSS, Java Script work together. You’ll learn how to use libraries, APIs, Frameworks, and UIs.
You will face obstacles causing you to rewrite your code over and over, research other examples on the internet, ask for help in various forums. You will definitely Bang Your Head on your first project.
- If there is a code camp in your area, join one, you will learn code fast and build something. Note: some are expensive.
- If there is a code meet up, join one, you will find others with the same interest, and at all levels helping each other out.
- Build websites for free: your own, friends, school, clubs, organizations, sports teams, etc. A basic hosting service is all you need. No better way to gain experience by building websites using various platforms.
- Build mobile apps: just do an internet search, you will find a number of resources for you to start building IOS or Android apps
It never ends
Finally, you feel comfortable with your coding skills and have a portfolio of various projects under your belt. You may have found employment with an agency or decided to try freelancing.
Everything looks great, what a feeling, finally!
Then on your first task, you open another developer’s Java Script code to find few or no comments, and the style of the code is far different from yours.
Perhaps your skills are in OOPs and the code in front of you is based on the Functional Programming method. Or maybe you learned Angular and the application you’re looking at was written with React.
You bang your head on the desk, yes it will never end.