Answer the question
In order to leave comments, you need to log in
Knowledge for programming?
Hello. I started studying programming and realized that I lacked knowledge in other areas. Those. writing code is not that hard. But to understand how to solve a particular problem and compose an algorithm is already more difficult.
What would you recommend to study? Algorithms? Logic? Mathematics?
Perhaps with examples of books and courses.
Thanks in advance for your replies.
Answer the question
In order to leave comments, you need to log in
realized that there is not enough knowledge in other areas
Cormen's Algorithms is said to be the best book out there.
There is Codewars, where you can solve similar puzzles and see the best solutions of other participants. That is, just fill your hand in this matter. Not as difficult as it seems.
At learn.javascript.ru, after each lesson, there are excellent tasks.
There are many books on mathematics that are not crammed with 90% formulas, but explain mathematics in simple language.
But for starters, it's better to sit down and write code.
And you can study endlessly, without starting to do real things. Don't forget about it.
First of all, it is worth studying data structures: arrays, lists, dictionaries, sets and a few trees. Stacks, queues, etc. are used much less frequently. Modern application programs use a narrow set of standard algorithms (mostly transformations between data structures) and it is not required to know bubble sort by heart. Therefore, take a look at the algorithms with one eye - for general development. When you get comfortable (for example, build a file system tree without any problems), it's time to open books on OOP, and then on design patterns.
register on CodeForces, open the archive of tasks, sort by the number of solved ones, and solve. Very useful practice
"Program = algorithms + data structures" is an expression by Niklaus Wirth.
In other words, the key immediate tasks of programming are the creation and use of Algorithms and Data Structures.
From the above, it becomes clear that you should master Logic , Algorithms and Data Structures !
1. Logic:
And I will advise you to solve real problems from your personal practice. If you work, then try to optimize some manual process with your software. Or try to write a clone of your children's game (not 3D of course), another option, try to remember or comprehend what you missed so much (or still lack) and write software for that.
Writing code for something that is really interesting and unknown is much more entertaining than reading some task and trying to complete it.
To begin with, a programmer needs basic knowledge that a secondary school gives, then you can quickly find more detailed information on tasks of interest (you know what to look for and where to look).
A programmer with no options needs math. A computer is just a cool calculator, it can only add, subtract, multiply and divide. The task of the programmer is to describe the required problem in the form of a sequence of mathematical formulas (a mathematical model is called))
You need to have an idea about the basic standard algorithms, the books of Wirth and Knuth will help with this. For those who are not able to master them, there is nothing to do in programming and you should not listen to amateurs that these books are supposedly outdated, it's like saying that Euclidean geometry or Newton's laws are outdated. These books are the basis, the primary source, all the rest are nothing more than a simplified interpretation for dummies.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question