How to really learn programming?

Good day! The problem is simple: I used to think that it is possible to learn how to program one of only books on languages. All of these "for beginners", "basic course" and "for programmers" almost do not give knowledge about writing programs, except for small examples. But even having the language, I understand that you can't write anything where there is a need to consider the architecture, patterns, classes, etc. Often understand that one problem can be solved in many ways, but in the process begin to "sink" in a poorly thought-out code.
July 9th 19 at 10:20
10 answers
July 9th 19 at 10:22
Come up with a project and implement it as best you can.
To read about design patterns.
Rewrite based on templates.
To understand that it wasn't great.
To rewrite again.
July 9th 19 at 10:24
You are confusing the concept of "learn to program" and "become a good specialist, senior level architect."

Do you really think that in order to become a top expert enough to read 5-10 books?
It takes years of practice, mistakes, and a desire to understand and to correct these errors.
I didn't become a Pro from reading several books) the fact that their programs can't often bring to mind. Ill-conceived architecture quickly pulls the project down. But I do not write great things, just applets, which could be useful not only me. - Effie71 commented on July 9th 19 at 10:27
: A high threshold of entry to programming - not just empty words. Hence come the eternal talk about the bad code, since to produce work product and to write a beautiful code - unrelated things )
Just need more effort... - Jeff28 commented on July 9th 19 at 10:30
July 9th 19 at 10:26
5-6 times I've rewritten the code your first app, a miracle pill not just write code
July 9th 19 at 10:28
40-70-e programmer is a research scientist
70-90-e programmer is the engineer
90-10-e programmer is an accountant, economist
now the programmer is a stupid 20 year old kid.

In fact, programmers, scientists, engineers, accountants did not share much, just not much and not as noticeable. At the same time, because of the low entry threshold in modern programming programmers call themselves very little intellectual person, most of the so-called "programmers" can't even read

To become a good programmer you need to understand one simple thing - a computer is nothing more than an advanced calculator. The computer can only perform arithmetic and nothing that he can not do. This implies that the main function of a programmer to describe the task in the form of numeric values and arithmetic operations on these numbers. In programming this is called "creating a mathematical model of the problem" and takes 50-60% time of work of the programmer, while direct coding is 3-5%
July 9th 19 at 10:30
In my opinion there are two choices. And ideally you want to combine:
  1. Work on your project, trial/error etc. you Can even put on github, to get tips/criticism.
  2. Work:) at work, tend to have more experienced colleagues, who will tell you there are PLENTY of examples of code on which to learn.
July 9th 19 at 10:32
take a real project and disassemble code. then write the same from scratch. then lay out for criticism. then overwrite. so a few iterations. parallel feeding all of this theory of smart books. if it is not in the team to get there. in General, no more than 20 percent can overcome this barrier on their own (data from the book Shatalova).
July 9th 19 at 10:34
can't write anything where there is a need to consider the architecture, patterns, classes, etc.

And do you want? And generally it is necessary to write? Pay the money?
Will need can.
July 9th 19 at 10:36
Just start is difficult, you need an idea(clean and jerk). Start simple. If the web with html+css+js(For understanding) Start after this bootstrap. The threshold of occurrence the minimum and most important result of the eyes, which is important for the novice programmer. Then go to the backend, if it's over that's interesting. Then I advise you to start to learn python to understand at all what is the programming(Just the book, sit down). No video will not give you the full amount of data. Of course the video for the beginning is good. But "super programmer" you will become thanks to well-written manualy. Then you can bind skills html+css+js(frontend razrabotaka) and programming skills(python). Highly recommend Framwork for python, such as Django, Flask or pyramid. But if you don't want python, then ruby lang(Ruby on reals framework).NET, PHP in a pinch.
Don't forget all the programmers are not born programmers. We were all green and now I myself think so. But the main experience is the RAKE. The more wrong and solve more problems there will be fertile results. And we need to really sit and code. Experience is most important. Good luck in your endeavors))
July 9th 19 at 10:38
Develop something that should work in humans - ie, the application which will be used by people. You'll have hours cut hotfix/update, and thus you many times for rewrite your code, adding something new, fixing something more reasonable.
July 9th 19 at 10:40
To work in a large team with shared code. Not alone. Not in filence.
What can you recommend? I think that GitHub is not Mature enough yet. - Effie71 commented on July 9th 19 at 10:43
: GitHub just easier.
I mean - on a commercial project. With strong colleagues, who have a lot to learn. - Jeff28 commented on July 9th 19 at 10:46

Find more questions by tags Programming