Learning a new programming language is easier than learning a new language. I know, I’ve been trying to learn Spanish for the last 3 years and I still can’t get through one page of Don Quixote without google translate. Learning a new programming language though, that’s easier. If you do it right of course.
I have made very many mistakes along the way so I’m confident enough to write this article on the do’s and dont’s of learning new programming language.
The point of learning is to be able to say you’re at least at a beginner to intermediate level of programming in that language. Knowing the foundations is enough to get you started on a simple project.
Don’t’s
These don’t’s are what I have done and have proven ineffective or a waste of time.
I mean, if you intend to build a calculator in Java, don’t google “How to build a calculator in Java”. Especially if you have never interacted with the language before. Googling will almost always bring a done solution, whether a fully done one or a partly done one. Using an already existing solution won’t bring the same results as creating your own solution from scratch. You learn so much more when you think about everything from beginning to end. Also, not all solutions explain the thought process that went behind it. Things like; why this logic instead of that. Googling won’t allow you to learn the foundations of a language. Like the syntax, the rules, what you’re able to do and not supposed to do.
Learn just the framework
This happens many times when switching jobs. I had to learn how to use Django before I knew enough of Python. Django is a Python framework. Because of that, I had a lot of gaps I had to fill. Gaps that would have otherwise not existed if I had learnt python first.
Learn without a project
For effectiveness, it’s good to work on a project as you learn. Putting into use the concept helps with understanding them better. Watching or reading without doing anything after isn’t really learning a programming language.
Do’s
Take time to read or watch lessons on the basics of the language
This way when you start your project or when you start your job, you know how the language works and you can write a simple program on your own after learning the foundations. It’s always recommended to do this before you begin coding. Read blog posts, watch youtube videos, use learning sites or books.
Find out what works for you best and do that.
I have tried everything and that’s how I have discovered that reading books works best for me. Currently working through The Object Oriented Thought Process and Head first C#
Work on a project
The best way to put into practice what you learn is to build a project alongside your learning. Doesn’t have to be something complicated; a calculator, a simple tic tac toe game, a banking application. Those are common projects that will require you to put into practice the basics of the language you’re learning. A tip here is to try and build as much as you can on your own without copy-pasting from something that exists online. Obviously it’s okay to research on bugs you encounter but let your work be as original as possible.
Make as many comments in your code because you’re learning and you’ll probably keep going to that particular project for reference. I know I do.
Finally, when you’re done with your project however simple, upload it on github. Github is a portfolio for software engineers and it’s always good to have all that you do there.
It’s nice to go back to your old work and see how far you’ve come. I find myself doing that a lot. Seeing what I’ve changed and or haven’t changed. Seeing mistakes I used to make and check against my current work whether I still make the same mistakes.
Practice
This is common knowledge. If you want to be good at something, keep practicing. It equally applies to programming.
Make mistakes, correct them, repeat.
Those are some very good tips for beginners. I could emphasize more the parts on learning the fundamentals, and also on working on projects as you learn. These really help you set up a good foundation.
Another bonus of working on projects early on is it helps you avoid tutorial-hell, where you’re stuck in a cycle of watching tutorials after tutorials about the same thing cause you feel like you need to learn just one more thing before you’re able to build a project.