Skip to main content

r/learnprogramming



All eyes on Wegovy® pill. Talk to your prescriber today.

See the following links for: Medication Guide & Safety Information

media poster


Feeling confused in my learning journey
Feeling confused in my learning journey

I've been a software developer for the last 3 years, and during that time I've learned a lot from working in production codebases that are 15+ years old. One of the biggest lessons has been how much your mental model changes when you're working on software that is maintained and used by many people, compared to projects that are only used by yourself.

In my free time, I've spent a lot of time reading books about software architecture and design. What fascinates me most is how people build systems that can be modified and extended by multiple developers over long periods of time while still integrating cleanly into an existing codebase.

This is also where I struggle in my own development. When I build systems, I often look back 3-6 months later and wish I had designed something differently. A particular part of the code might be difficult to change because of how I designed the API, and making improvements now could introduce breaking changes for other developers or tools that depend on it.

What confuses me is that many of the books I've read seem to contradict each other. For example, A Philosophy of Software Design advocates for deep modules and interfaces, while Clean Code emphasizes keeping methods and classes as small as possible. Both books are highly respected, yet they often appear to push developers toward very different design decisions.

I brought this up with a senior developer on my team, and his answer was essentially, "It depends on the situation." When I pushed further, he said that knowing which trade-offs to make is something that largely comes with experience. That's the part I struggle with. I'm the kind of person who likes having concrete principles or patterns to apply when design problems arise. I find it difficult to accept that two experienced developers can look at the same problem, choose different solutions, and both be right because of factors that only become obvious with time and experience.

I think this is also why I'm drawn to frameworks like Rails and Phoenix more than Next.js and much of the modern JavaScript ecosystem. Rails and Phoenix tend to provide strong conventions and well-defined patterns for solving common problems, whereas something like Next.js often presents several officially supported approaches for tasks such as data fetching. While that flexibility is valuable, I sometimes find myself wanting clearer guidance on which approach is preferable and under what circumstances.

Has anyone else gone through this stage in their career? How did you become more comfortable making design decisions when so much of the advice seems contradictory?


OpenGL summer project
OpenGL summer project
Resource

I want to update an app that uses openGL among other things like MATLAB.

for context my last degree was a CS degree, I took courses on comp architecture, programming methods, Linux, networking and advanced networking, etc. I’m really hoping for good outcome. one of my last project was a rendering project and I have nothing strong math and physics background with my previous degrees but will still need resources. I

im finding lots of resources and I’m aware of Vulcan But I still think this would be a great project to use my CS and other degree skills.