U
U
unlik2017-01-20 17:44:04
Programming
unlik, 2017-01-20 17:44:04

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

9 answer(s)
S
sim3x, 2017-01-20
@sim3x

English + google

R
RedHairOnMyHead, 2017-01-20
@ThePyzhov

realized that there is not enough knowledge in other areas

An area where knowledge is lacking. It's logical.

M
McBernar, 2017-01-20
@McBernar

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.

A
AtomKrieg, 2017-01-20
@AtomKrieg

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.

D
DVoropaev, 2017-01-20
@DVoropaev

register on CodeForces, open the archive of tasks, sort by the number of solved ones, and solve. Very useful practice

N
Neznayka xD, 2017-01-20
@Neznayka1979

"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:

D
Dmitry Alexandrov, 2017-01-20
@jamakasi666

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.

E
evgeniy_lm, 2017-01-20
@evgeniy_lm

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.

A
Andryukha, 2017-01-21
@syrov

start at natureofcode.com/book/introduction

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question