⬆️ ⬇️

500 experiments that separate you from a successful project.

All this is not so because I'm so smart. This is all due to the fact that I have not given up for a long time in solving the problem.

Albert Einstein


Suppose there is a profession creator . What does the creator do? Creator creates things! Dinner. Birdhouse. Pants. Shopping centers. Lenses for photo cameras. Jet engines. Hydroelectric. Piano Mars rovers.



Being a creator is hard work. This is such a vast area that even if you made hundreds of flower pots, this will not help in creating a catalytic converter for the 1995 Ford truck.



Now think about the profession called “programmer”. What does the programmer do? The programmer is programming things! Autonomous vehicles. Flight simulators. Engine management systems. Firmware for hard drives. Compilers Video games. Flight planners. Digital cameras.

')

If you focus in one direction, you can notice its fractal structure. Video games? It covers everything from chess to 3D enchanting worlds, from text quests to retro platformers ... Retro platformers have a wide range of styles and performance techniques. Even if you choose one narrowly specialized technique, then a small change in the design can fundamentally change the task of a simple brain-breaking one.



The result is that most often software developers work without having a complete and unshakable concept of the whole task. When creating, we constantly fill in the gaps in theory. Everything we build is largely a research project.



How do we begin to understand something that we don’t have enough experience in? We carry out experiments. Many small one-time pieces of code and experiments with interfaces that will give answers and streamline thoughts.



For example, writing a PNG decoder is a set of many smaller tasks with which you can mess around separately from the main code. Any significant application contains elements of interaction with users for which prototypes are needed, it is necessary to study incomprehensible and contradictory design solutions, many logical pitfalls and previously unused API functions and hundreds of other things. Maybe five hundred. And as long as you do not make these experiments, you will not have a clear and firm understanding of what you are doing.

Source: https://habr.com/ru/post/174031/



All Articles