Your thoughts about learning programming the hard way?
Posted by Silver_Masterpiece82@reddit | learnprogramming | View on Reddit | 23 comments
So guys I'm new to this path I already started to learn programming with python and vscode like couple years ago and returned but this time I want to make changes on my learning curve.
Starting with lower level language like c/c++
No IDE/LSP allowed (until finished learning)
No LLMs help or video tutorials (until finished learning)
Relying almost on books and documentations
The path is like starting learning the basic concepts for both c and c++ and the applying this concepts on problem solving and system design concepts then exercising with leet code and some projects learning new tools/frameworks/languages when needed
Started with "c programming modern approach" book and reached to structs chapter
I need your experience if anything Is missing in this road map or you have a notes and I want to know if you are with this style of learning or not thank you.
jorjiarose@reddit
The no LLM thing makes sense to me, but banning yourself from IDEs feels like making the process harder just to prove something.
You learn way more once you start building little messy projects and debugging real problems. Books are great, but they never gave me momentum on their own.
Silver_Masterpiece82@reddit (OP)
It's my fault in the IDE thing it was just s bad advice I heard from someone and after reconsidering I saw what's wrong
Dilie@reddit
It doesn’t matter where you start with. You will learn along the way when you are making projects. We learn programming by practicing and making mistakes (and learning from them).
No learning how to use IDE’s or LLM’s will set you back compared to your peers. And with learning LLM’s I don’t mean just simple prompting claude.
Achereto@reddit
Good idea after you got the core programming paradigms (variables, types, value assignment, conditionals (if-else, switch-case), loops). Modern variants like Odin or zig are good as well.
Bad idea. IDE/LSP allow you to spot syntax errors without manual recompiling and they also allow you to look up documentation quickly. They are generally a good thing to use.
Good idea. You have to know what you're doing before you have any chance to understand what AI is doing. Build that competence first, stay away from LLM for at least 5 years.
Mediocre idea. There are some good books and you should read them, but the most important part is to just do stuff. Think of a pet project that starts small and can be extended over time. Work on that project over a period of at least a year, so you have to deal with all of your novice mistakes and learn how they impact your ability to maintain the code. Your experience with that project is what you can talk about during a hiring process to show how you reflect about you work.
There is a thing I would add, though: avoid frameworks and libraries at first. While making stuff easier for you to achieve some goals quickly, they also hide relevant stuff you should be aware of and should be learning.
Nealium420@reddit
When should you say, "okay, I should be using a library now"?
Achereto@reddit
For Expert-Level stuff like Datetime (leap years, time zones, dst) or Encryption.
You should have a basic understanding of how things like this work, but unless you want to become an expert in it, you shouldn't write that kind of stuff yourself.
In every case you should be hesitant about adding dependencies, because they all tend to change over time, have vulnerabilities, and may require you to update your own code in order to stay compatible with the newest version.
8Erigon@reddit
LLM can be used if no other source is understandable.
But then also don‘t ask it directly but try to abstract it to how far you understand it yourself at first.
Achereto@reddit
For explanation, yes, but not for code generation. But even then you're offloading thinking to the LLM when thinking is what you need to train.
darthirule@reddit
I would use an IDE. If you are trying to get a job then you are almost guaranteed to be using one for said job.
Learn how to work with them now instead of later.
Silver_Masterpiece82@reddit (OP)
Got it🫡
JGhostThing@reddit
I agree with no AI. AI stops learning.
On the other hand, I would suggest using an IDE. You'll have to use one when working, so learn now.
I would rethink c++. You might want to start in C.
Altruistic-Cattle761@reddit
I would generally say this is a terrible idea. Most real learning and achievement in this field -- certainly as a beginner -- is made through practice. Poring over textbooks without actually making a computer do things is a recipe for wasting your time imo.
Silver_Masterpiece82@reddit (OP)
So can you share any tips or starting points please?
ViolaBiflora@reddit
Yes. What do you want to build?
Damn, it's too difficult. So at least try to implement one functionality of 100 that you want to build.
Try, fail, read, watch a tutorial, try again.
Rinse and repeat
Silver_Masterpiece82@reddit (OP)
That's actually a good perspective of learning thanks for sharing it
ViolaBiflora@reddit
Thing is, you can be a senior dev with 30 years of experience and you will still come across problems on the way. You'll never be "prepared enough to do a task flawlessly".
BigBad0@reddit
Well said
monkeybuttsauce@reddit
Avoid LLMs. You don’t need to avoid IDE
Eight111@reddit
For me it sounds terrible and i'd quit after a day.
But part of being a good programmer is to know what works best for you, after experimenting with various methods.
So give it a try, even if you give it up it's ok, at least you know what's not working
Jwhodis@reddit
Just go on vscode and start making things, make a CLI calculator, then give it a GUI, then make other things.
DrShocker@reddit
What does "until finished learning" mean to you?
Silver_Masterpiece82@reddit (OP)
Mean that when I finish learning basics of a tool or language and made some small projects so I can finally jump into real big projects
Correct me if I'm wrong
Own_Age_1654@reddit
Sounds reasonable to me.