Learning a programming language is a process of many failures, it’s normal that your code won’t work the first few times.
Learning to code is like visiting a new city, at first, it’s a strange place that is confusing, but with a little patience while exploring the streets and venues, you will come to know it well. The key to learning code, is to write code as soon as possible and often as possible.
… Even if the code you are writing, does not make sense to you.
9 programming languages since 1994:
Over the years (since 1994,) I’ve picked up 9 programming languages. That may sound impressive, but it isn’t really. Like learning to drive a car, once you understand one programming language, you pretty much understand 80-90% of all programming languages!
The anxiety when learning something new
I was recently reminded of the typical uncertainties and frustrations you get, when learning something new. Though I have been creating videos for many years, I almost always just used the automatic settings of my cameras, and that was more than good enough for my video needs.
A little while ago, I decided that I wanted to do more, and so ventured into more advanced functions like aperture-priority, shutter priority and manual mode. I wanted more control over the video I was shooting. At first, understanding these basic concepts was confusing, and you wonder what it will take, for it to all sink in?
… What special learning trick did I need to use?
In the end, as it is with learning to write code, I just had to use the camera in these different settings, refer back to the theory, and then repeat. It’s now starting to really sink in now.
It will for you with coding/programming as well.
So, what is the best way to learn to code?
It comes down to these steps:
Do a little theory.
Write code that was taught in the theory.
I’ve been in the web development business for over 20yrs now, and one consistent problem for many well meaning nerds, is the over engineering of web apps. This extends to all development as well, not just the web developers.
… The old KISS acronym “Keep it simple, stupid”, seems to be forgotten with every new generation of developers.
So today we have once again, new and overly complex frameworks and apps being thrust upon us. I vlogged about this recently in this video:
I am writing just to say how happy I am with the courses. Although, I am a member of Lynda and Udemi, your courses are way better. For me you are the HIDDEN GEM, the YODA of web design. Thank you for sharing your knowledge.
I’ve been building websites and building apps since the early 1990’s. In that time, I’ve learned many different languages, and explored many different strategies when it comes to writing good code.
This is going to be my first blog post on the business of coding. In this series, I will not be getting into the finer details of writing code (I cover that easily in my courses,) instead, I will talking about things that only 20+ years of development experience can teach you. But if you follow this series, you will learn these useful tips much more quickly!
Tip #1: Giving time for your mind to rest will pay dividends in your coding and business career.
I am not a big fan of them because there is so much work out there. You could be getting paid to code (and learn) rather that doing a hackathon.
In addition, the only way you get coding chops, is by building real apps for real clients. One thing a lot of developers miss, is that being able to manage a project has a lot to do with managing non-nerd clients … you only get that experience in the real world.
I used to see the same sort of thing in martial arts, where certain styles are really big into drills and exercises. The problem is, that they put much less (if any) time into actual fighting.
… Then they take a beating when they are unlucky enough to mix it up with someone who spent his time sparring, rather than running through drills.
That said, the more code you write the better, so codathons will improve your abilities no doubt … but nothing compares to the real thing. Pick your analogy! 🙂
Everyone knows that kids who learn to code, will have a big advantage in the workplace and in life. Besides the fact that coding is a valuable skillset with an amazing number of high paying jobs, the mental training that comes with learning to code cannot be underestimated.
Homeschooling your kids in code
If you don’t know web design and coding, you need a structured curriculum that will gently teach your kids. Courses have to be easy to understand, fun and practical. Yes, practical: nothing motivates kids to learn when they see that they are building real things.
… What’s more fun for a kid, to learn to drive a go-cart, or a real car?
Which coding languages should kids learn?
Teaching your kids to code in any language is great, but I would say the most important and effective languages to teach are the languages of the Web:
Besides being used to create all the world’s websites and web apps (ex: google, facebook, amazon), these coding languages are also a popular choice in creating games and mobile apps that work on iPhone, iPads, Android devices and even Windows mobile devices.
Another great thing about these languages is that they are visual: students see their code come to life in real-world projects. This touch of reality is far more engaging than writing code that moves a character around a screen in a simulator.
I’ve been coding since 1994, teaching code since 2003 and helping schools teach code over the last 6 years. That experience teaches you a lot about teaching. If you want to easily home school your kids in code, feel free to check out StudioWeb.com.
To get the best outcomes with students (and yourself!), here are my top 3 code teaching tips:
1- Write real code, not ‘lego’ code.
2- Use real coding tools, not code simulators.
3- Build real projects from start to finish.
1. Write real code, not ‘lego’ code
A funny thing happens when students write real code: they start to learn not only how to code, but they learn the concepts behind the code. What I’ve seen over the years is that trying to hide the code from students with block based code teaching tools slows the learning process.