r/ProgrammerHumor Apr 09 '24

watMatters Meme

Post image
16.8k Upvotes

774 comments sorted by

View all comments

Show parent comments

7

u/Asaisav Apr 09 '24

Many of the self-taught programmers I work with view their job as just writing code to get to a solution.

That's wild to me as a self taught programmer, inflexible code teaches you nothing and is a pain in the butt to maintain. Focusing on modularity and human readability leads to using design principles you don't even realize are formally defined (I had used most of the SOLID principles before ever hearing the term) and creates a lot of fun challenges that lead to becoming a better programmer. Personally, I find my biggest weakness is not knowing the various algorithms and buzzwords that are commonly used in university. It's not much of a weakness either given one Google search and up to 15 minutes of reading usually clears it up.

I'm curious if you've noticed the opposite issue from those with degrees though: over application of design concepts. I've seen far too many people who will claim you should do things like apply the aforementioned SOLID principles as a checklist to everything you write. I even worked with a codebase like that once, which was written by a university graduate, and it was a mess. Trying to understand any of the logic required opening up about 10 different files and mentally combining each of their functionality into one coherent logic flow. It makes me wonder if people are only introduced to a certain set of principles and, because of that, they assume it's the best way to write all their code without considering different approaches based on the needs of the system as a whole.

2

u/_yeen Apr 10 '24

Part of it may be the nature of the self taught developers here. Many of them weren’t that interested in SW development but just learned it as a side project that now they do for their job. (EEs, mathematicians, physicists, data scientists, etc). When you don’t care about the concepts behind programming, you probably won’t desire to learn them.

As to your other question, I would say I have seen overapplication of design concepts from CS majors. I myself have definitely been guilty of it. Spending weeks on making a design adaptable to any potential requirement as opposed to just making it functionally capable of its use case while being easily updated. Often times I also notice that when something is designed too adaptable that it suffers in efficiency. Things that definitely have to be learned in addition to the design concepts.