r/learnprogramming • • 3d ago

how to learn "software engineering"

Hi guys, I'm a senior in high school, and I'm really confused on where to go

for the record I do know a decent amount of C++ / python (for comp coding and classes) but since then I've started to move to personal projects....

The purpose of these projects is to improve my knowledge tenfold and learn how real software is made. But online, EVERYONE says "coding is dead, and to learn architecture".

But how do you learn that?

Do I delegate sections to AI and then have it explain? Do I create what goes where and then tell the Ai to make it? Or Do I just code it all myself with AI to debug (taking an absurd time).

I feel like only the third one will have me actually learning completely, but at the same time, it'll take 20x the time, and with 20 projects I could probably reach the same level (or more) of learning by having it make + I explain? AHHH i'm just not sure how to make myself super smart and knowledgeable for swe

thanks in advance :)

16 Upvotes

18 comments sorted by

4

u/HalfRiceNCracker 3d ago

Have you built projects yourself without tutorials?

6

u/stunningpersona4 3d ago

Yeah no, your instincts are right about the third option. That's how it actually sticks. You need to personally wrestle with the ugly parts, not just watch something stitch them together and nod along.

Start small enough that you can hold all the pieces in your head at once, maybe a CLI tool that saves you a few clicks each day. The architecture concepts people keep name-dropping will start to click once you've built two or three things and feel the pain of your own bad designs, can't really shortcut that part.

→ More replies (5)

2

u/IntelligentSeries270 3d ago

It’s the third one

1

u/jacobdevhq 3d ago

architecture mostly shows up when a project gets big enough to hurt. also try picking a small open source repo, read how its split into files, then change something in it. u learn way more than from diagrams

1

u/Certain_Blueberry554 3d ago

Start slowly by designing yourself,watching tutorials ,learning to debug with time and use trusted books/guides before delegating it to AI..Ensure you understand the fundamentals first.

1

u/Wise-Arrival8566 3d ago

Third one like everyone said.


But i would like to add on the part with "coding is dead learn architecture". It has only a small amount of truth.. as a developer you need to be able to evaluate every piece of code generated by AI, every small detail but also high lever architecture. Thats why its so valuable to do everything yourself and learn and get better. This will allow you to go faster with AI in the future without creating a dumpster fire of a code base

1

u/boblibam 3d ago

You speak of the time it takes to create code. But as a learner you gotta get that out of your head. Your goal isn’t to be fast. Your goal is to learn. And you learn by repetition, taking time and struggling.

Think of working out. If the workout is easy it basically means you didn’t build any muscle. It’s the same for your brain. If you have AI do it and then read the result you have an illusion of learning but won’t be able to do anything yourself.

Try to struggle through building things yourself asking AI to be a tutor, never giving you the answer but only guiding you to help practice.

And as others said: you learn architecture by building large enough projects. That means, don’t go “ok that’s good enough”. Go the extra mile and polish it. Those last 20% of polish are usually where 80% of learning is at.

1

u/AeiEyeSpry 2d ago

You learn by "grinding", as the kids put it nowadays :) Keep programming, hacking and building things. That is the only way to improve as an engineer. AI has killed programming in the traditional sense. I think because of this, people will have to change the way they learn computer science. This is slightly off-topic, but I wouldn't advise my children or anyone young to learn programming. If you want to be employable in the future, become a great engineer and use programming as a tool to achieve your goals. The best programmers I know wouldn't consider themselves to be great programmers.

1

u/SigridFischer42 2d ago

For example, try building a simple web app from scratch without frameworks, then refactor it to use a framework like Flask or Django, this will force you to handle architecture decisions like routing, modularity, and dependency management directly.

1

u/Different_Pain5781 1d ago

AI is a tool not a replacement for understanding what you are doing. If you let it handle every beginner project you are basically skipping the part where you learn why code works or breaks. Start from scratch and struggle a bit. Codecademy helps with syntax but Boot dev gets you writing actual backend logic and understanding how everything connects.

-2

u/Nolanvex 3d ago

Middle path — design it yourself first, then let AI do the boring parts. If AI designs it, debugging later is hell. Small projects are fine, just go bigger each time.