Skip to main content

r/learnprogramming


Third-year uni cs degree - no experience/knowledge - what to do?
Third-year uni cs degree - no experience/knowledge - what to do?

Hey everyone,

I just finished my third year of computer science at my university (I live/study in Canada). And I am unsure where to go from here.

I practically did nothing outside of the schoolwork, so external projects are non-existent. No internships/co-ops done. No relative job experience in the field.

I slacked off the last two years so my knowledge base is weak to begin with, and my grades are in the gutter.

I am wondering where to go from here to get co-op/internships from here. I don't even know what I want to do or if I even want to stay in the field. I don't even know where to start.

What should I learn/study? What kind of projects should I do?

Thanks.


Possibilities start with knowing your options. Talk to a 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?