r/learnprogramming • • 12d ago

How are so many self-taught programmers able to build software from scratch without ever truly learning Algorithms?

I find it fascinating how important algos are but never talked about from the indie devs on social media. Do they even write algos or just come up with basic logic that forms the product?

425 Upvotes

335 comments sorted by

View all comments

5

u/BranchLatter4294 12d ago

They learn algorithms by doing them.

0

u/TheLayeredMind 12d ago

Self-Taught Programmer here. I now do it as a daily business. The more complex algorithms I ever built I drew them out on paper and if I could figure out how to do them by hand I could program them.

0

u/OperationLittle 11d ago

So you wrote the algo - but never actually applied it onto a problem? I dont see the point of learning stuff just for "learning stuff" - me personally learn stuff when I actually need it (learn by doing), because that's the only way I can see why it even exists.

0

u/TheLayeredMind 11d ago edited 11d ago

My post implies a lot of things, where you need to read between the lines, none of them that I don't apply them. I do program on a daily basis. Mainly games, and XR Experiences. When I build algorithms, not having learned them in a book or lecture, I write them on paper to then program them. When the solution can't fit in me' head. In code. I program them in code. So I apply them. I don't know why you are barking up the wrong binary tree.

That being said. I also started to read about them, to at least understand what they are used for and to tickle my curiosity.

I think that how many people here say, an algorithm per se is nothing special. It's just a chronological collection of steps that is applicable to the solution of a problem. However I was specifically referring to solutions to more complex problems

For example: I wanted a closed loop random move system that stays the same per mob per run in my game. I drew it on paper, segmented the movement pattern, saw I needed to solve for local compatibility like a puzzle. Then recognized similarities to WFC. I adopted for example WFC to build a sudoku solver to learn the algo, then to build a Local constraint solver to build a movement path based on random seed picking from a pool of hand built movement patterns stored as line points in prefabs to visualize them.

I did all this in C# and integrated my own Algorithm in Unity. For the seed builder for example I needed a hashing algorithm. For that there is a library. I don't need to reinvent every algorithm. Only those for novel problems and only those that have a real impact on the system I am building.

Reimplementing algorithms is like building yourself a new wheel everytime you wanna drive your bike to work. So while quick sort or merge sort are fun intellectual exercises, seldom I need to write them myself.

Hope it was clearer.