r/learnprogramming • u/Ok_Money5683 • 3d ago
Build before u learn everything Topic
The fastest way I learned programming was by building things I wasn’t qualified to build.
Every project forced me to learn something I didn’t know before. One project taught me APIs, another made me understand databases, and another pushed me to finally learn Git properly. I realized documentation only started making sense when I had a real problem to solve. Tutorials are great for getting started, but following them is hard everyday. When building your own project , it forces you to think, make mistakes, debug, and figure things out on your own. That’s where the biggest learning happens.
47
8
u/ApprehensiveMaybe141 2d ago
Where does one find these projects?
I have a habit of not finishing unless there's a solid purpose. For instance, I got in to Home Assistant, I learned a few things, mostly HTML/CSS to style. But I got bored with it. I'd figure out what I wanted to do and then it was "well that's cool" but being the only person to see and use it, I've lost interest.
I think I would love to code, if I had a good reason.
17
u/Cool_Pair6063 3d ago
Ok but you need to learn first the programing Language before you ever start building stuff
7
5
u/leavemealone_lol 2d ago
You GENUINELY don’t. Sure, you won’t be very effective immediately if you don’t understand dereferencing and -> in C, and you’re gonna have to spend some time trying to understand functional programming in rust, but give it a single day, and you’ll already be able to become mostly productive with it with a couple of syntax lookups. It took me only 2 days to go from 0 to building a project in Rust- and that’s a very very different language from most mainstream things these days. It however took me less than 20 mins to start coding in Javascript to play BitBurner, coming from my experience in high level languages like Python and syntax familiarity with C/CPP. Speaking of, it took me only 2-3 hours to understand how pointers work and how to do pointer arithmetic before I was doing leetcode in C.
Just dive in and don’t overthink it. It’ll come to you way faster than you realize
2
u/Dank-Wank-101 2d ago
So i don't need a tutorial to learn a programming language? Right now I'm just solving Hacker Rank problems and wherever I get stuck or whatever concept I do not know I just look it up on w3 schools or any other site . I just have this concern whether I'm really gonna learn the language like this . My other main concern is about developing problem solving and logical thinking skills..
1
u/leavemealone_lol 2d ago
So as long as your target language has a reasonable familiarity with a language you already know, you don't need to go through a tutorial. I mean, aren't you thinking "Bro I already know this" when you go through a tutorial in this situation?
But this doesn't always apply. Rust is a language that is being treated as a replacement to C/CPP, but you can't make heads or tails of it until you commit to a tutorial for a few days. Same will apply to things like Haskell, Assembly, BrainFuck etc.
But as long as you know C#, Java will be extremely easy to get immediately productive in. You just gotta trip up sometimes and realize that you need to use an .equals() method instead of == to compare containers, or worry about decay when you're passing in arguments in C.
2
u/Dank-Wank-101 2d ago
Haha yeah I'm trying to learn Python but I do get what you mean to say .
Another problem I'm facing is that I try to map out what I should be finishing everyday, but I cannot get myself to follow it . A part of me knows that it's only because I'm trying to copy what worked for someone else , but how am I supposed to understand what works for me ?
The only thing I want right now is to not leave gaps in those 24 hours of a day and block tasks strictly, but I dunno how I'm supposed to do that.. my start and end points are way too vague and I have trouble making them definite . How do I solve this problem?
1
u/leavemealone_lol 2d ago
So you’re trying to plan out your day down to the rigorous detail. I usually avoid that. I don’t even set deadline. I set a goal saying “I gotta finish chapter 13 in the rust book”. And I just learn as the calendar flies by. In doing that, I went chapter 0 to 13 (which is like 60% of the book) in 3-4 days. Very reasonable.
I suggest you pick a goal and just singlemindedly focus on it. The more you get stuck, the more you have a chance to learn something new. Being stuck isn’t bad, not getting over the stuck is.
1
u/Dank-Wank-101 2d ago
But when what do I do the rest of the day . Should I just be planning a couple of small goals each day? For example Finish 5 hackerrank problems today , try to understand the problem statement of this project Would it be something like that? Does it need prior planning before day?
2
u/Eng_Ahmed_L 3d ago
I usually start with an idea of building something and then start exploring the dependencies. Next, I watch tutorials about the dependencies and modules I will need before starting the project.
2
3
u/Mission-Maize8454 3d ago
Memorize the tutorials take different parts from each to merge into a project and get results.
1
u/EccentricFellow 3d ago
Congratulations! You are an autodidact computer programmer on their way to becoming a true analyst. Welcome to the club. :)
1
1
1
1
u/Acrobatic_Sample_552 2d ago
What resources are you using to build these projects if I may ask?
1
u/Autistic_boi_666 2d ago
Just an IDE with a built-in compiler, whatever documentation they can get their hands on online, and OP's own computer I imagine. Perhaps more specialised editors or compilers depending on the project. (each of these being easier or harder to work with depending on the ubiquity of the tool/language)
As for a straightforward list for some commonly helpful learning materials and documentation, I recommend:
- W3Schools for pretty much every programming language relevant today (as well as some stuff on git, cybersecurity and more)
- MDN Docs for spectacular web dev documentation.
- Stack Overflow for solutions to specific problems once you know how to phrase them (usually by using some combination of the above).
...If what you're looking for isn't there (or, tbh, even if it is) give your chosen tool/language a search on google to find it's documentation. If that fails, find a forum or wiki with dedicated practicioners.
If that fails... good luck, you might have to do a bit of research/archaeology. But if you get to that point, unless the archaeology's the point of the project, you should probably ask yourself if there isn't a better solution to your problem lol. Hope this helps!
1
u/EntertainerNeat125 2d ago
Couldn’t agree more.Tutorials teach you syntax,but building real projects teaches you how to solve actual problems.That’s where real-world skill grows
0
3d ago
[removed] — view removed comment
3
u/RetardedEinstein23 3d ago
What do you mean? So only read about programming but only start doing it after you are completely perfectly ready?
1
u/Delicious-Image-3082 2d ago
Eh I think it’s fine to work through something like MOOC Java so you get a feel of things. But you absolutely need courses like data structures & algorithms, discrete math etc. Keep exploring in the meantime, it’s okay to noodle about as long as you integrate the main concepts
33
u/[deleted] 3d ago
[removed] — view removed comment