Someone asked me, if I had to pick the most important things you can do to improve your programming, what would it be?
Have a consistent self describing naming convention. This saves you yuuge time because you will make less mistakes and be able to code more quickly.
Keep your code fine-grained. This means you write functions and methods that do only 1 thing … Not five. This will keep your code easy to understand, to debug and expand.
The first thing to do when starting a new project, is to see what others have done. Perhaps there will be libraries to leverage, perhaps even entire open-source software you can use as a starting point. This is yuuge!
When learning a programming language, you are going to make many mistakes – it’s normal that your code won’t work the first few times. That said, the key to learning code, is to write code as soon as possible, and as often as possible.
… Even if the code you are writing, does not make sense to you at the time.
The anxiety when learning something new
I was recently reminded of the anxiety most people experience when learning something new. Case in point, though I’ve been creating videos for many years, I always just used the camera’s automatic settings. I didn’t really know much about my equipment.
A little while ago, I decided that I wanted to do more, and so I ventured into more advanced functions like:
… I wanted more control over the video I was shooting.
At first, understanding these basic concepts was confusing, and I was wondering when it would all sink in … therein lies the anxiety. The not knowing if you will ever get it.
In the end, as it is with learning to write code, I just had to use the camera … you have to jump into it and start practicing.
What is the best way to learn to code?
Over the years (since 1994,) I’ve learned 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 the basics of all programming languages!
So having done this many times, I can tell you that if you want to learn to code, you have to dive in and write code.
It comes down to these steps:
Do a little theory.
Write code that was taught in the theory.
… It’s about bite-size morsels of delicious little code bits! You have to write lots of code, make mistakes and write more code. Repetition goes a long way.
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 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.