I have to admit that it took me several attempts to finally start learning programing. Even though the motivation was somewhat there, the fact that I didn’t know how and where to start usually led to a lack of focus and drop of interest after a day or two of trying to start learning this stuff.
I now feel that like with most skills in life which are new to us and somewhat foreign- the initial resistance from continuing to keep on learning is often strong enough to make us stop. Click to Tweet
For instance: I read 10 pages of a book called “Programming for Dummies”, enjoyed it but forgot to keep reading after a while, because I had so many other things to do which kept me occupied.
Then I tried again using a book called the “Seven Languages in Seven Weeks,” and after one chapter I felt it was too advanced, and I couldn’t follow. I put it down too.
Every time several weeks or months had to pass until I would try again using another source of learning, like free eBooks or YouTube videos. Or I would try to finish that “Programming for Dummies” book, which I had to read from the start all over again each time, since I totally forgot what I had already learned.
The fact that I put the books down was not that the books were teaching the wrong material or they were badly written. Far from it.
The reason I stopped and couldn’t move on was because it wasn’t the right stuff I needed at that time to gain a general understanding of what programming is all about.
This missing fundamental understanding kept me from moving forward with more specific techniques or advanced materials.
I believe that this is sometimes difficult to prevent. Especially if we are busy and learning programming does not have the highest priority in our life. I believe that this is perfectly acceptable. Initially I beat myself up over the lack of focus and my “laziness” – but in the end I realized it’s not all that bad.
The only one thing that is important is your mindset- to stop thinking that you must start learning from start to finish right away and if you’re not getting it right away, thinking of yourself as a failure and concluding that programming is not for you.
The important thing here is that you want to learn it. If you want it, it is for you. Even when you have a setback. As long as you want to learn it one day, you have everything you need.
The rest will somehow fall in place. The pure fascination with the subject, the mysteriousness and the imagination of pride, accomplishment and bragging rights that would come with possibly knowing this stuff and being able to use it – if that is still there, everything is good.
The reason we often give up is the fact that we usually don’t have a measurement of how difficult the material we are choosing to learn is. It’s like going to school as a first grader, and freely choosing to go into the wrong classroom- the classroom for the seventh graders instead, since the pictures on the wall look the coolest.
The fact that the material taught is way too advanced and will most likely discourage us and make us feel like we are somewhat not smart enough isn’t a factor in the initial choice. We (as first graders) won’t know this because we have nobody who is telling us what we need as building blocks.
So you have to find that teacher that breaks it down for you- the first grade teacher- if we continue this analogy.
I don’t mean to say you need to learn a specific language or concept first- I just mean that you need to find the teacher that is delivering the material to you in the correct way- whether it is for Ruby on Rails or for C++. That is if you are an absolute beginner of course.
Based on my experience, I broke through that initial resistance through an online course- but you can also attend a real life class, with a teacher explaining the core concepts as a beginner.
This is especially helpful if you feel that whatever you tried till now wasn’t really working all too well. There are many different programing languages, with just as many different usages – so instead of diving in and learning a language right away it could be better for a total beginner to learn core concepts and the basics first.
Yes, once you’ve got a fundamental understanding, it is best to learn a language by applying it to actually building something- but for an absolute beginner, you need some core concepts there first.
From “where to write the code in” to “how to write it” and “how not to.” The understanding of syntax that is similar to most languages like variables, functions, memory, if else statements – is essential in the beginning.
If you understand the fundamentals you can apply them to whatever language you learn later and it will be much easier for you to pick up anything that comes next.
The class that really did it for me was “Foundations of Programming: Fundamentals” with Simon Allardice on Lynda (not an affiliate link) I needed to see this class first in order to really grasp those concepts and have my first “aha” moments. I even paid money for it, even though it is pennies compared to traditional educational paths.
Online tutorials are a very good starting point for beginners since the teachers go into great detail about every single aspect that you need to know in order to understand and read code and to write your own.
There are enough entirely free resources available so paying is not really necessary. The vast amount of highly varying quality material can be very time consuming to go through and find the tutorials that are right for you.But it’s worth the time and effort, as these courses are usually better than books for beginner engagement.
All the books I bought together were much more expensive than what I paid for the online classes, without getting the job done- I have to add.
In the beginning it can pay off to invest into some online classes here and there- especially since you need a highly trained and competent teacher. A teacher, who is willing to reveal tricks and special methods that are often left out in books.
I found that one of the reasons I wasn’t able to grasp that initial spark that kept me going was that I sorely relied on free online available tutorials and books I bought in the book store. The issue here was-for me personally – it might be of course different from person to person – that most tutorials online are already focusing on a particular language even if it’s the total basics for beginners.
I felt it was kind of like trying to speak English before I learned to breathe correctly in order to formulate the sounds that are necessary to even execute the act of speaking.
I feel that often the people, who create very helpful and often high quality learning videos to publish on youtube sometimes can’t possibly imagine how little knowledge someone who is trying to learn programming has.
So the viewer ends up watching these tutorials which in itself seem to make sense and all but – nothing happens inside the viewer – it doesn’t make a click. The brain absorbed the lecture but the spark was not ignited – instead of an “aha” moment the viewer has a “oh ok” moment which basically means he will have forgotten most of what he saw shortly.
The key is to find a teacher who goes through every step no matter how small and insignificant and is able to communicate in a smart and visual way what programming is and what it is about.
Watching the online courses for instance gave me so much confidence that I now was able to read through the books I already owned for a long time. I finally started understanding and enjoying them. Also many free online tutorials made much more sense with a foundation of basic knowledge.
Everybody starts differently. And it’s not the same for everybody which learning material, book, video, or lecture leads to that first initial excitement, that gets us hooked and makes us keep going.
Don’t forget, keep looking for those sparks- those a-ha moments. This is key.
As long as you stay motivated and you keep looking for the right learning material that suits you the best you’re alright. It’s important to stay excited about the idea of mastering the skill one day and you will have epiphanies that enable you to keep going and give you the necessary sense of accomplishment that keeps you motivated and excited.
Latest posts by Martin Labud (see all)
- What Riding A Bike Has To Do With Learning Programming - November 1, 2013
- Motivation is Overrated- How to Get Things Done Without It - October 15, 2013
- Learning Programming: How I Overcame Initial Resistance - September 18, 2013
- Launch Your Start Up: Build the Minimum Viable Product - September 4, 2013