3d code

Learning Programming: How I Overcame Initial Resistance

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.

The following two tabs change content below.

Martin Labud

All around nice guy from Germany who is learning how to code, and raising two cats while traveling the globe. He is Co-founder of Tipabl, a social giving platform. Previously he worked as an Animator and Game Designer.

7 thoughts on “Learning Programming: How I Overcame Initial Resistance

  1. Andrei

    Really enjoyed reading this article! It’s very motivating. Especially because it is based on author’s personal experience. Really recommend it for people planning to learn programming from zero or for those who already started to learn it, but are frustrated because it appeared to be more complicated than they thought it would be!

    Reply
    1. Martin Labud Post author

      Hey Andrei! Thanks for stopping by and checking out this article. Yeah, I wanted to share my personal experience so others won’t feel so discouraged. I know the feeling well. You said it man, it did appear to be more difficult than I had originally imagined… but after getting a good teacher to break things down for me, it’s been much easier!

      Reply
  2. Sandy Sidhu

    Hey Martin!
    I *still* remember learning programming my first semester in uni and thinking- what the ?? Our Prof was way too advanced and not teaching it from a core concepts point of view as you mention.
    Eventually, I caught on and remember the feeling of my first “Hello World!” it’s quite amazing once you start experimenting bit by bit. I agree getting a good foundation helps and then you can apply it other languages. Java was a la mode when I started learning but I eventually picked up C++ as well.

    Reply
  3. Julie Gohring

    Hi Martin!! I am impressed because although knowing programming would be invaluable to me in so many ways for online biz I have no desire to learn. Even the bare minimum knowledge tends to overwhelm me. But I think you’re right, you need to find the right teacher that can teach you depending on where you are. Sometimes picking up a book has just too much info or is to advanced. It’s insightful to hear even motivated can feel discouraged and it;s not just me:). HA!

    Reply
  4. Mary Beth Leisen

    Ooooh, Martin – so much of what you said resonated with me! I’ve often found myself in the 7th-grade classroom when what I need is a really nice 1st-grade teacher. You’re so right about the spark, the ‘aha’ as well. As a lifelong learner who embraces what I call Tapas Living, I like to try lots of different things. While it can be rewarding to explore like that, I often get frustrated at not finding the right resources and feeling overwhelmed at the outset. I’ve learned to ask lots of questions to find out if a program or resource might be right for me. Rosetta Stone works for a lot of people, for example, but not for me. Instead, I liked Fluenz to advance my Spanish because I appreciate the explanations as well. Clicking with that was enough to keep me motivated to get through some lessons – and a trip through South America! 🙂

    Reply
  5. Tom

    Good stuff Martin.

    Reminds me of a quote from CS Lewis…something along the lines of: never start a new book until you’ve revised an old one.

    So much learning and growth comes from revisiting old concepts after we’ve grown (or, like you put it, from receiving the information from a new, clearer source).

    Keep up the great writing!

    – Tom

    Reply
  6. Michaela Cristallo

    Great post Martin! So many people struggle with programming and give up because they’re not looking at it the right way. I’m not a programmer myself but I am in the creative field and I know how hard it can be learning something new, starting from scratch.

    I love what you say about needing to find the right teacher that breaks it down for you. That can be the difference between sticking it out and giving up!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *