What is the best way to learn Programming and how long it takes?

Friday 24 March 2017
How long does it take you to master a programming language? This depends on various factors. There is no general time. Clear - anyway, each person learns differently fast. Prerequisites also play a role. The first language is much heavier than a second or third. In addition, each programming language is differently complex. So it's supposed to be easier to master PHP than to understand how drivers are written for operating systems. The article still gives you answers.

When do you say "I can program"?

I can program - when do you say that? Or: How do you define this state? I may associate with the statement something else than you. I do not find it important to memorize all aspects, functions, methods, or classes of a programming language by heart. The knowledge you can memorize by heart. And that is not the point of programming.

In practice, you do not have much of factual knowledge. To apply this is much more difficult in practice than in theory. Read an entire book and then start with an empty editor. You already understand how that is meant. In addition, there is no reason for any programming language references. In which you can check. You need to know where to look.

I recommend to focus on the following levels:

1. Syntax

The first step is to familiarize yourself with the syntax of a language. It is important to "get warm" with the language through a lot of practice. Small test programs, the function of which is rather in the background, are the optimal start. At first it is not necessarily easy and pleasant. You will always look up things. This is why exercise is important. The foundations go "in flesh and blood". Knowledge moves into implicit memory. The same happens when binding the shoes, switching in the car or writing with the hand - you do not think about every step. You act easy. And so you do not think any more about where now e.g. A bracket must be set. You just know it.

2. The Basics

The second step is to learn the basics of language. These are mainly things that occur in any programming language. How do you write strings, arrays and so on? What control structures exist? How do you write loops? How do you write your own functions, classes, and methods? How do you create objects? Are there special data structures (such as tuples or dictionaries at Swift)? And so on. This is important in order not to have to ask documentation for constantly required functions. The more knowledge is available, the faster this step.

3. Getting to know features

Only in the third step you take a trip through the library. What features are included? A good overview of the standard library is important. So you know what the language itself, where external libraries are necessary and where solutions are required. The best thing is - who would have thought it - in which you simply write software. Use the features, experiment with it. In many libraries, for example, there are solutions for database access, input / output on file extensions and the like. This step is usually much more fun, as there is already a feeling for the language.

4. Software Architecture, Best Practices & Co

In the fourth step you familiarize yourself with best practices and design patterns. Good programming and clean code is created mainly because a good architecture is present. This is the actual cracking point separating the chaff from the wheat.

When one can speak precisely of mastering a programming language, every developer will probably answer differently. Personally, I find that at least one can claim to be able to deal with a programming language when it feels safe when working with it. I would speak of mastering, if you just have to read references and work with the given information independently (without sample code).

Programming - the felt duration

You want to learn programming. When do you start as a programmer? After other developers do that! If other programmers call you like that, you did it. This unfortunately only slightly changes your feeling. For your travel this is almost completely irrelevant. The key question is: When do you feel safe when programming? Because then you come into the so-called flow. Learning is to play. You are no longer practicing but playing. From my point of view, this starts at level 3.

Programming in 30 days?

You can learn how to use the product xyz in 30 days. These providers like to teach the abbreviation - read this book and save you many years of learning. That will not do. You're just going through a lot of practice an experienced programmer.

But what really works: You can reach the state of Flow with the appropriate program in 30 days. And as soon as that happens, the feeling does not change much. No matter if you develop a complete app or website.

Think about programming

There are of course some factors that influence your learning process. Here are some logical ideas that you can only partially influence:
What previous knowledge do you have?

The existing knowledge has a very decisive influence on the duration and learning sequence. If you are already familiar with other programming languages, you will learn a new language much faster. You can connect a lot with experiences and "get to know" more quickly with the knowledge. Especially the syntax and basics are no longer a challenge. You can then focus much more on the language features, the library, and things like architecture and design patterns. You learn not only faster. With time and more knowledge, you will automatically write better source code.
How much time do you invest?

Clearly, the main factor is the time spent invested. If you can invest 4 hours per day, this is always better than an hour. But also, whoever learns an hour or half an hour every day comes forward! This is very important. Just beginners often wait for the perfect circumstances. A cozy evening in bad weather. Read the book relaxing on the sofa. Sure great, but focused half an hour of learning is equally effective. More importantly, learn regularly!

How quickly do you understand individual aspects?

The success of the learner is also dependent on your abilities. Everything else would be a lie. Some people learn new things faster. Some slow down. This is not a question of intelligence. Not every brain works equally. Younger people need e.g. Usually less repetitions to store the same knowledge in long-term memory.
Your Mathematical / Logical Thinking

Whoever has never dealt with abstract thinking, mathematics or logic, unconsciously also builds up something in programming. This is positive! However, this also slows down the learning success somewhat.

Sure there are other factors. Someone who finds only evening time, since he is working during the day, needs more time than someone who can use the high-performance phases of the brain during the day. But, to pursue all possible factors so deeply explores the framework. A tip in any case:

Do not lose too much in the details. It is not so important to pick up all the lines and keywords that are written. You will not create that directly anyway. And: it comes automatically with time. It is much easier and more fun when you go relaxed. Everything else comes by itself.

No comments:

Post a Comment