How to teach yourself programming - and Why!

How to teach youself programming - and Why?

Let’s start from the most important:

The most important is: Why? It is way more important than how because the boolean outcome and float result of your studying is based on this parameter. What does it mean in English? Well, that different goals lead to different outcomes.

I know you may be just curious about coding or you’ve heard from friends that there is good money in this. Whatever reason you have for starting you should definitely expend them.

Try writing down as many reasons as comes to you mind before moving forward.

You may be this lucky person that has a clear, well guessed vision, that fits your character, is and will be valid for the years to come. You may.. but probably you aren’t. There is many reasons for which people start coding, some of them include:

  • better working conditions
  • controlling hardware
  • making a website
  • hacking
  • easing life
  • automating monotonny
  • making an app
  • launching startup / bootstrapping
  • improving thinking
  • curiosity & understanding
  • writing thesis / paper
  • solving problems
  • improving work outcomes
  • trying out

One of the most common reasons I hear is not on the list - money. It’s not on this list because having it for a reason is very deceiving. A reason should be something that is embedded in coding itself, the process of coding should be rewarding thus affecting the reason behind it. Otherwise coding will become a displeasing, enforced activity that is just bothering instead of helping. If you set up money for a goal then you won’t be focusing on the process which usually is quite long (don’t believe in Coding for Dummies in 3 weeks).

The reason for writing down other motives that you can come up with was as follows:

If you didn’t find at least two not-money reasons to code, leave it. Close the tab and forget about it.

If you’re following reading then the chances that your reasons are on the list are high. Great! Let’s divide them to 3 groups of reasons:

Easy Long Term Super Hard
having fun having fun
easing life easing life
improving thinking improving thinking
making a website making a website
curiosity & understanding curiosity & understanding curiosity & understanding
solving problems solving problems solving problems
contributing to open source contributing to open source contributing to open source
controlling hardware controlling hardware controlling hardware
making an app making an app making an app
writing thesis / paper writing thesis / paper
changing work field changing work field
making beautiful app
launching startup
better working conditions

Disclosure: This grouping is natually subjective

Let’s understand this simple table

Easy is self explanatory. Long Term is in between the Easy and Hard but it doesn’t mean it’s difficult, it still can be easy but just requires more time in order to learn. Learning is never a quick process. Maybe for dummies that think about finishing studying in 30 days. Don’t be dummy. Know, that learning never ends and first you need to enjoy it at least a bit or sometimes. Otherwise it won’t work.

You may wonder why things that are super hard are also easy? That depends on the approach. Solving problems or contributing to open source are very general description. You can contribute by reading code and making a documentation and you can contribute by developing some features that are super hard to implement. You can solve an easy problem on hackerrank or you can solve some of quantum computing problems. You can make a simple app in a weekend or you can make an app that solves complicated problem.

I would start from the resons that are Easy and once you know how do you feel about programming I would move to one of the reason that is both easy and hard because it won’t bore you, there will always be a reason to become better.

How I started

I was a chemistry student and at the last year of my studies I bought a book about Python. It was somehow useful for the studies since (I forgot how tho) and that was the first spark when I got any idea about it. Then I got a job as Python developer but it laster short as I had to go to Spain. In Spain I started testing software manually and this was the moment when I got back to coding. I did it because I remembered that it was giving me a lot of pleasure and I wanted to do it professionally. It’s been giving me enough pleasure to develop my things after work. I started playing around with different languages and ideas. Ruby for web, PHP for templates, Go for servers but then I stayed with Python and JavaScript as world has been and is still moving towards web apps.

2 years ago I started with #oneyearcoding but I stopped after 3 months. My approach was wrong as I tried doing things from tutorials and books, replicating them which was cumbersome and made me feel like an idiot. I was also having difficult times in life so again, I stopped on being beginner in everything.

Around 1 year ago I got an idea for helping friend with a project and it triggered a need. This is easing life, solving a problem and bootstrapping in one project. That’s why I was saying that the more reasons you have the easier it gets because in order to learn coding you need to be persistent. Some ideas or knowledge breaking moments come to you like lighting, struck in the middle of developing something similar.

There’s nothing worse then developing another To-do list. It may be a good way to see how things work but not to replicate it. There is tons of ideas to implement. Doing so always pushes you to think on yourself and makes you using the pieces of knowledge you have as well as learning what you need. It’s crucial.

What did I get from coding for 1 year?

This time I was able to code 1 year straigt mostly because of the projects and the fun they bring. Helping a friend was 1 thing but after that I’ve tried developing some of my ideas. GitHub-Commits-History I need to firmly state that I was trying different languages, projects, doing it with different people. Sticking with 1 language or idea would bring me something completly different. What? I don’t know, that is my 2020 resolution. Do things once at a time. So far, I’ve learned tons of stuff about software:

  • programming languages: Dart, Python, TypeScript, Bash
  • improved the way I think,
  • improved at work - coding is now way easier and allows to be more confident as a tester.
  • the way I solve problems, I have clearer view on a problem that could be solved with software
  • the way I work with people - I’ve worked on OpenSource project, start ups, pair programming. I learned a lot about how other people code and think.
  • the way I organize my time (kanban/trello).

How you can start?

  1. Make list of 3 reasons you would like to code for.
  2. Make a list of 5 ideas that could be made real with software. It can be anything. If you have hard times you can use a list of ideas or ask people you know what could they automate in their daily life. You can also make a program to add ideas and show it to your friends!
  3. Pick up a language that will allow you doing so. You can search for articles on which language to choose.
  4. Buy well-rated book or online tutorial that has a similar example to your idea. Many tutorials show how to make apps, websites, etc as examples while focusing on teaching you coding.
  5. Make your idea a reality!

Making things is very rewarding.

Try it for yourself. Maybe you will find it useful to you!

Go and make something that people want!

Did you make any mistakes when learning PROGRAMING or you’ve seen one here? Tell me about your insights. Leave a comment with You are most welcome to see more posts of this type just go to home page

Oh, what is that? No newsletter?

Freeing you from mailing list is my first step of helping the world to be a better place.