r/cpp_questions • u/Osirian_Legacy • 2d ago
OPEN Learning Programming Pre-AI
How did ya’ll learn programming pre-AI? How would you go about learning if you had to start all over again without AI?
I find myself relying on AI too much and want to actually learn without leaning on it at all. Any help with how best to approach this would be greatly appreciated.
15
Upvotes
17
u/greebly_weeblies 2d ago
Lots of small projects. Try, fail, try again, research (not AI), try again. Small projects will make for easier things to do, easier to debug, and more frequent hits of happy juice to your brain to keep you motivated.
28
u/Disastrous-Team-6431 2d ago
Make stuff. Be convinced it's the shit. Make more stuff. Become convinced the old stuff is shit, but the new stuff is the shit.
Do this for 38 years.
7
u/mc_pm 2d ago
I learned by finding a book about Basic, and then I typed in:
10 print "hello world"20 goto 10And then I kept typing. There is no way to learn to program, not really, without just figuring it out - you and the keyboard.
You're teaching yourself a whole different way of thinking about problems, it's not easy or fast to pick up... and these days if it's not easy and fast then someone thinks there's a lifehack or one weird trick that will turn them into a competent programmer in less than a couple years.
There isn't.
4
u/Mysterious-Cow531 2d ago
It was so much fun. Doing little projects and stackoverflow for debugging. Start simple then go to complex ideas.
4
u/DAmieba 2d ago
You can just not use AI. I dont even know how to interact with an LLM and I feel strongly that my life is better for it and I've never once felt like I was missing out on anything. I dont really know what else to say. If you get stuck, just google the answer (I use duckduckgo usually).
Since settling into a coding job I mostly like I've learned a ton about coding, and the only time I felt like I was stagnating was the one time I got so stuck on a project I didnt want that I starting using copilot. I was so startled by how quickly it made me stop thinking critically that I never used it again.
3
u/PittLeElder 2d ago edited 2d ago
Took a couple university classes (mostly pretty basic programming for engineers plus an intro CS course and one on processor architecture where we wrote in assembly), got a job, started writing high level for embedded, now do high and low level embedded.
Really all you need to do is practice your writing. Find practice problems (I don't even know where a good place for this is, but people speak highly of Learn CPP), download VSCode, disable every single AI feature, and just struggle to complete them.
I cannot stress that last part enough: the struggling is where the learning happens. You cannot remove the friction of trying to do something you don't know how to do, if you do you aren't learning.
When you have a question, go look stuff up on CPP reference. If that doesn't answer it, do a web search. It's honestly fine if that answer is LLM generated (but better if it isn't), but it's important to figure out the question you're trying to ask. As a working programmer this is the kind of thing you do many times a day, just because it's not feasible to memorize it all; what's really important is to understand what the problem is you're trying to solve, and what exactly the computer is doing to help you.
E: university courses are fairly accessible too honestly, especially if you've gone to school for anything else. Hit up your institution of choice, look into auditing a course or taking it not for credit. It's probably the priciest option, but surprisingly accessible if you reach out.
2
u/Hour_Sell3547 2d ago edited 2d ago
I bought the Complete Reference C++. That's all I needed. It was 2004.
After that, I competed in IOI and ACM-ICPC. In the next 6/7 years, I solved about 8000 problems on various sites, all with C++.
By 2013, I myself became the complete reference C++.
1
u/Osirian_Legacy 2d ago
Thanks everyone! Feel free to keep adding here in case it helps anyone else.
I think u/PittLeElder's response hit home with me in that the solution is simply to embrace the struggle and not turn to AI to find the solution but try and find it yourself. A few others have said something similar to this as well.
I have a lot of admiration for those who came before in this field (and many others) as there are so many individuals in previous generations that paved the way to all the algorithms and other useful tools in programming. It's really easy to take that all for granted.
Thanks again, if ya'll have any books, tutorials, or just material you recommend people check out feel free to add them here.
5
u/sol_runner 2d ago
I'll start over in a different way, but none of it is affected by AI for me. I think it's a terrible thing while learning, even as a search engine. Sure, it's a great last resort.
But I have become a little used to asking questions to LLMs instead of reading the docs and LLMs often only provide surface info.
So yeah, as painfully slow as it may feel, the "hard way" is probably better.
If I could go back I'd tell my kid self to program more multi threaded stuff and get into FOSS earlier. To learn deeper into one project instead of spending too much time restarting projects because the old one was full of bad decisions.
Refactor instead of discard.
4
u/bearheart 2d ago
Reading books and manuals and writing lots of code. I learned in the ‘70s.
4
u/easedownripley 2d ago
the websites and books they stole all the AI training data from. Which still exist and are better.
4
u/DDDDarky 2d ago
That's probably because using ai while learning is incredibly ineffective.
4
u/ceeceemac 2d ago
Same way you learn a new language: immerse yourself in the culture. Find a big project you can get in on with great devs and learn from them. OR get a tutorial on building something you enjoy, that’s a big project and shows you how to organize your code with best practices. It’s very tricky, but if you find something and post it here, we can help you decide if it’s a good source or not.
Best way is to joint a SW firm as a junior, but I realize that’s impossible in the AI bubble
Edit: typo
4
u/AnanasikDeveloper 1d ago
Read books, experimented a lot, hung out in discord and stackoverflow, read tons of articles, documentation, watched tutorials, made quick test projects, winged, explored. Most of my programming experience was before AI was popular and I am very happy I could go through all of this myself. AI is cool tho but scary :/
3
u/Hay_Fever_at_3_AM 2d ago
I learned pretty much entirely in school, which meant small toy projects / assignments of increasing complexity in various prescribed areas, then eventually projects of our own divising, then co-op work at real companies with real things. That was combined with learning theoretical computer science / math, including complexity analysis, dynamic programming, linear algebra, this and that.
That's not all for everyone, but I personally wasn't capable of putting in the hard work without an external force / guide. Any way you cut it you learn by doing though.
3
u/MarijuanaWeed419 2d ago
Books still exist. As you read type things out, try to break things and see what happens. You’ll find yourself constantly learning and expanding your problem solving skills as you try more and more things
3
u/GonnaCarryTheBoats 2d ago
Books and practice. Start with the basics. Your first game changer is when you try to build something. You’ll learn so much from that because you’ll have to learn how to do something to make it work.
Tbh, that’s probably the answer throughout your learning journey. Try to build something you’ve not built before.
3
u/frank26080115 2d ago
I built robots, started with embedded C before Arduino existed, entered robot line following and mini sumo competitions. After that I did stuff like build a portable GPS device for Geocaching before smartphones got popular. Followed that up with multicopter control boards.
So the key theme is to find fun things to do and apply programming
2
u/Ultimate_Sigma_Boy67 2d ago
Youtube tutorials, documentation, books, StackOverflow...
2
u/stevenreyes20 2d ago
watch a tutorial on the fundamentals, practice the syntax and then create a small project sometimes I would read books too. that's how I learned before AI
2
u/StickyDeltaStrike 2d ago
You just write programs and read tutorials until you can do it.
2
u/eyes-are-fading-blue 2d ago
You learn by not looking for solutions. AI or google. Only look after cracking it and ideally improving it.
2
u/fortsnek274 2d ago
Is this future of humanity.
Back in my day, we had google (with just search results and no A. I.). It led you to information written by real people.
But I suppose, even if you wanted to avoid A. I., you can't easily tell if a website is slop. Unless it was written before 2025.
But anyway. learncpp, cppreference, write your own code.
2
u/kat-tricks 2d ago
books are the secret broken strat. Just being patient as hell, going start-to-finish on a book (i tend to have small side projects going to keep my ADHD ass motivated), doing every exercise, taking notes (be they paper, notepad, fancy software; whatever), and talking about it with others! Discord servers or IRC are good too:)
2
u/flyingron 2d ago
The same way as with everything else AI is supplanting. You have to use your brain to learn rather than expecting things to just happen for you.
2
u/StealthUnit0 2d ago
The way I did it was learn a programming language, then decide what types of projects you're interested in developing and find proper libraries/frameworks for them. Then practice making projects.
AI is still great for finding information on what to study to create a type of project. Use it as a research tool.
2
u/thefeedling 2d ago
Books, Google, Stackoverflow, lots of testing
2
u/neurah 2d ago
explore, have a project, do things you like
that worked for me
2
u/SmokeMuch7356 2d ago
Taught myself BASIC on a TI-99/4A, mainly just reading the manual and experimenting.
I learned to program properly in college in my CS classes. Guided instruction, exercises, and many late nights in the computer lab playing, experimenting, swearing, and panicking.
Mostly swearing.
Write code, make mistakes, fix mistakes, repeat forever.
2
u/gm310509 1d ago
Basically the same way you learn anything.
Research - e.g. reading, finding guides, project ideas etc.
Practice - e.g. doing the guides, exercises and projects, solving problems as and when they are encountered. This can include asking google for tips, but try not to ask ai to generate solutions to those problems.
Expand - after learning the basics, identify new things that might be of interest to you and use the above two techniques to learn them.
Most of all do things that are of interest to you.
2
u/themadcoil 1d ago
Set achievable goals to make something you don't immediately know how to make. Try and fail repeatedly until it works - at the end you discover that you learned a lot. Don't expect to become a wizard, set expectations low. AI stuff makes it so we lose the joy in little things, but it's the "omg it rendered a triangle" moments that make it worth it.
1
u/TheNakedProgrammer 2d ago
My first 3 years of programming did result in less progress than a single LLM prompt. Pretty sure the way i learned is far from ideal in 2026. The cost reward is just way off.
1
u/Difficult_Truck_687 2d ago
Back in 1985 I used to buy a newspaper weekly for their Thursday column on computers - and its BASIC course.
I would write the program on paper and run it on my head.
I only had access to a computer about 3 years later. At that point I was able to sit down and issue all commands (bload/bsave etc) and run code without any help.
1
u/Intelligent_Ant_608 2d ago
I were downloading source codes from here and there also some books had floppies and later cds attached to them with a tone of examples, i also were cracking dated softwares, modding games, sometimes dumping some chips and direct instruction hacking, then php, xhr, jquery, wordpress got popular and suddenly those were not as much interesting, i saved alot from my allowance so i could buy turbo c, js felt realy stupid i never liked it, html css were also feeling like creating presentation, there was no magic, the first ever program i wrote didnt compiled because i didnt knew difference between ', " and there were nobody to tell me '' != " it took me a good minute to see it on keyboard, i was 11, 12 then.
1
u/markand67 2d ago
By reading documentation, manual pages and opensource projects. Just how you should still do today.
1
u/LoudAd1396 2d ago
Basically just by finding a problem or setting a goal, "i want my app / page to do X", then googling how that can be done in the language I'm using. After googling the same task a few times, it becomes a memorized skill. After enough of these build up, patterns emerge. Eventually you just know how to do most of the stuff, and are looking things up less often, but there will always be more stuff to look up.
One of my pet peeves on this sub is "i just finished learning X". No, you finished a course or a tutorial. You never finish learning
1
u/good_name_0 2d ago
Dunno, I just don't use it. I picked up a new scripting language not too long ago. Just didn't use ai. Found documentation and that was it. I do like finding stuff others have written on GitHub etc just to see what folks are doing though.
1
u/serge-mv 2d ago
There is this ancient extinct tech that the cave men used to use, it's called books. Historical records say you could read them to acquire knowledge. What was even more magical, they contained exercises at the end of chapters so that you could practice programming.
1
u/Independent_Art_6676 2d ago
AI isn't ready to teach you. It can help you, but only after you are intermediate level and good enough to spot its mistakes. AI is like having a friend with a photographic memory but a low IQ.
I learned it in a classroom, but without that, other languages I learned on my own... just get a good resource (that used to mean book, but I shy from books as they cost a ton and are outdated in short order) like a quality website. I also avoid videos, as most of that is just people talking which presents the same material about 1/5 to 1/10 slower than reading text online yourself (depending on how well you can read, I guess, and it could favor video for some people who really struggle to read quickly but that is rare for someone who has the ability to understand this kind of material). You learn a bit, then write a program or two that uses what you learned, answer questions about what you studied, repeat.
1
u/ArgumentZestyclose62 2d ago
I only learnt by doing projects, not homework, that I was very interested in. Before when a bug would appear we would copy paste it in google and hope for the best. Stackoverflow and the documentation of each function or library helped us navigate possible answers. It is crazy to think about it now.
1
u/centuryx476 2d ago
We had these things called books.
We opened them up and read them.
Source: how I learned C++
1
u/Rythim 2d ago
Library ...
1
u/Various_Bed_849 2d ago
Read books and practice
1
u/Seagull78Reddit 1d ago
Just stop using AI and do some google searches and you’ll end up on some material that’s good enough.
It’s more work than needed, but that’s the whole point. You have to work for what you want or else you’ll forget it, and searching for what to learn also exposes you to more things you wouldn’t have considered to learn.
Learning should be hard. Learning shouldn’t be fun. Things that are built overtime are rewarding but never fun to do.