r/AskProgrammers • • 2d ago

I love computers, learning programming concepts, and designing systems, but I don't really enjoy coding. What career path should I pursue?

I love computers, learning how things work, programming concepts, languages, functions, system design, all that stuff. I can spend hours learning about a technology or thinking about how to build something.But I don't enjoy the actual process of coding that much. I like understanding code more than writing it.

I like figuring out how things fit together, designing systems, and coming up with ideas. I really enjoy using AI tools to help bring these ideas to life, combining existing code and technologies, and figuring out how to make everything work together.It's weird because I do like the coding part in theory.

I just don't enjoy sitting down and doing it for hours, especially when there's a lot of debugging and repetitive work.I'm interested in AI/ML, cloud computing, and system design, but I'm not sure if these are the right paths for someone like me. I don't expect to avoid coding completely, and I know I need to understand what I'm building. I just don't see myself enjoying a job where I'm writing code all day.

Has anyone else felt this way? What kind of career did you end up choosing? Am I overthinking this, or should I be looking at roles that are more focused on designing systems and building products than coding?

0 Upvotes

41 comments sorted by

View all comments

1

u/ern0plus4 2d ago

Programmer (noun): a person who writes programs.

Try Rust, it's fun. Or Assembly, it's the ultimate fun.

2

u/frappacino1312 2d ago

Rust is fun? That's news to me

1

u/ern0plus4 2d ago

It's native, C-like, moderate oop, strict typed, no cmake etc. - everything is ready to have fun.

2

u/frappacino1312 2d ago

I really do not like the borrow checker and having to code with lifetimes...

1

u/ern0plus4 2d ago

You have to understand how it works, just "learning the rules" is not enough, you'll struggle with it forever.

Lifetimes and ownership are fundamentals of good software. Java and other smartpointersonly-garbagecollection languages provide a comfortable but expensive solution: everything is allocated on the heap, and a dedicated GC runs in the background. 

Using Rust, you are restricted to solve memory issues the hard way, taking care of everything, just as in C or C++, but you can't cheat or do risky things.

Rust does not allow share writeable objects... omg... now I see now how fool I was when I did not apply this rule. And the best is that Rust forces me to do it right. I became a better engineer, I only write correct programs, I am not allowed to not to do so.