The algorithmically (logical, engineering, mathematical, abstract) thinking is created from around 30% of the minimal skills that a programmer have to start the profession. Algorithmically thinking is the ability to crash any problems to logical sequence (algorithm), to find solution to every separate step and then assemble the steps to a working solution. That is the most important skill for any programmer.
How to build an algorithmically thinking?
- The algorithmically thinking develops by finding the solution to many programming (1000+) problems, as diverse as possible. That is the recipe: solving thousands practical problems, inventing algorithms and implementate the algorithm, also debugging errors on the way.
- Sciences like physics, maths and such as them helps a lot, but they are not required. People with engineering and technical inclinations usually very easy learn to think logical, because they already *have the problem solving skill even tho not algorithmically.
- The ability of solving programming problems (for which is used algorithmically thinking) is extremly important for a programmer. Many companies test only this skill on their jobs interview.
This book develops the beginner level of algorithmic thinking, but it's not enough to make you a good programmer. To become good at this profession you have to add logical thinking and problem solving skill, beyond the range of this book. For example work with:
data structures (arrays, lists, matrix, hash-tables, binary trees) and based algorithms (searching, sorting, balanced search trees, recoursion and others)
Algorithmic thinking skill can be seriously developed at the beginning courses for software engineers in SoftUni (curriculum) and in specialized algorithmic courses as well data structures и algorightms..
As you can guess the programming language doesn't matter for the development of the algorithmic thinking. To think logical is universal even if it's not related only to programming. Because of the good developed logical thinking it's considered that programmers are smart and that a stupid person can't become a programmer.