What is the fastest way to learn a programming language for beginners?

What is the fastest way to learn a programming language for beginners?

So of course learning is a huge topic and also in the end everyone will have to find his own ways of learning but here at least I want to share my thoughts of what good learning is meaning to me and what is the fastest way to learn programming.

Overview

1. Learning is motivating
2. Good learning is based on small doable steps
3. Learn with a mentor & Connect
4. Conscious Learning
5. Resources for beginners

1. Learning is motivating:

I think since we are young every one of us has this natural curiousness that unfortunately to often decreases as we grow older.

This can have many reasons: Maybe we know we already know enough and there is nothing interesting left to learn anymore. Or maybe we think we are too old to learn new things (from my experience especially in Europe we think that way).

guitar
When I was younger I had a guitar teacher who told me about older men 60+ who still learnt to play beautifully the guitar and he encouraged everyone who wants to learn that it is possible regardless of the age.

I got inspired by stories like this and therefore think it's really important to keep learning fun. There are people who think learning has to be hard (like in the school when learning math) but I am convinced that even math and certainly programming can be taught in a fun way and that right from the start.

pizza
I remember that we learnt fractions with cake and pizza :D

Why dont we use this philosophy more often? For learning programming that could mean: Build applications together with your friends. Build something that really motivates you and that you consider as a cool application.

For example you build a spotify clone or your own personal website. Something that brings value to you even.

2. Good learning is based on small doable steps:

This is one lesson that I learned when starting the violin. There it's almost impossible to learn all steps that need to be done at the same time all at once. Therefor you often separate each task and practice this one isolated until it feels more natural.

I think we should also do this for learning programming. When we want to learn a new framework it can be very overwhelming learning all at once.

Why not just learn it step per step?

For example when learning Angular you could start just doing one big component that contains the whole html. And when it grows too big then you will divide it into smaller components.

So that you first can concentrate purely on the html and later learn the splitting. The data don't have to come from a service right from the start.

It's enough when they come from an array which mocks your data. Just ask yourself do I really need this solution right now?

Here you should follow the 80/20 principle. Do 80 percent of your work just in 20 percent of the time.

monkey
A good analogy for building software that way would be building a sculpture. Here you also first build the shape really roughly before adding the details one after another later on.

Another approach could be that you check out an existing project and you play around with it and customize it. You could also create a new feature that's similar to an existing one. For me good and motivating learning is 70% copying and 30% transfer/own ideas.

One more idea is that when you follow a tutorial, don't just copy and paste what they tell you. Instead be creative and again do transfer here. When they are for example programming a website about displaying and rating movies.

Ask yourself: What I am else interested in? And do for example a website about books or sports.
Learning the same thing with a lot of variations is the most efficient way of learning!

lightbulb
Of course with this approach its not always possible to stick to best practices right from the start but at least you will better experience why you need those kind of concepts.

Remember learning is about experiencing something yourself and not only listening to someone that tells you how to do things right.

When you ask what would be an approach to split your steps into small enough steps I would say a good small step is a step that has like 40-60% difficulty to you. Of course this will vary from one person to another.

3. Learn with a mentor & Connect:

I think the best way of learning things is by a mentor who supports you and encourages you to grow. We are social creatures and learning should be no exception to that.

rafting
It's proven that we learn better when we feel that we are in an open environment where we can ask questions and don't get judged for it.

Also often its just more efficient and motivating to ask another person for a solution or at least a hint so that you won't have to search for a solution a whole day alone.

Of course it can also have benefits to learn things on your own as you are forced to reflect on certain things.

My rule of thumb would be try to learn a thing for 30min-2h hours alone. If it's just not possible for the moment then you should definitely ask!

devconnect
One cool organization that I started with my friend is based on the mentoring principle. It's called DevConnect and it's an organization to help people getting into programming.

It would be really cool if you would participate in that.

Just contact us under:
devconnect.hh@gmail.com
https://t1p.de/ky1p

We are searching for every kind of experience from absolute beginner to absolute expert.

Of course there are also a lot of cool meetups and conferences that you could go to. It is always a good idea to connect to other people who already know things that you also want to learn and to get inspiration from.

To find meetups in your location just download the App Meetup and search for topics that could be interesting for you.

4. Conscious learning

This is maybe the most important point in my opinion for good learning. I am doing this experience myself since years of watching animes in japanese now and only learned a few expressions out of context so far. Spanish I learned almost in 1 year with help of just music.

What was the difference here?
The level of consciousness.

When I am watching an anime I just focus on the content but I don't take the time to really go into detail and learn all the words. (of course japanese is a bit more difficult than spanish but you get the point :D)

headphones
When I learned spanish I took the time to translate songs and then sing along with them and was making progress quite quick.

So applied to learning programming that means that you should ask yourself:
Why am I doing this now? What is the benefit of doing x? Could I achieve y in another more simple way?

So this is all that I could spontaneously think of how to learn program the fastest way.

And feeling stuck and how to get over this is also part of the learning process (for learning programming there is even a term for it. It is called the desert of despair).

desert
So whenever you are in the desert of despair talk to your mentor, get inspiration and you will be out in no time :)

5. Resources for beginners

Here I want to show you some resource that I found quite helpful when starting programming:

1. https://stackoverflow.com --> still the number one resource even for experienced programmers

2. https://www.w3schools.com --> from learning sql to python and making your own website (comes together with a try out editor)

3. https://stackblitz.com --> code your applications directly in the browser without doing the whole painful setup that is often worse for beginners.

4. https://codepen.io --> live editor for html, css and javascript: especially good when you want to increase your frontend skills. Here you can also get a lot of inspiration from other members and their works

5. https://onemonth.com --> cool site to learn about a lot of languages/frameworks by doing projects yourself in about one month (not for free)

6. https://cssclass.es --> organization that does workshops for people who want to learn CSS

Did you like it? Why don't you try also...

Top 3 Motivational ways of learning a language

Top 3 Motivational ways of learning a language

In this blog post I want to share my top 3 ways of learning a language in a motivating way.

Technique to learn playing from a note sheet

Technique to learn playing from a note sheet

In this post I want to describe a technique that I use to get better at playing songs from a note sheet.

What is an ultrasonic toothbrush and how do they work?

What is an ultrasonic toothbrush and how do they work?

A friend of mine got an ultrasonic toothbrush for her birthday. As I have never heard of that before I was interested in how they work.