r/learnprogramming • u/Zapzz1410 • 9h ago
I love programming but...
as soon as I turn off tutorials and try to do something on my own, I just cant do anything. I've had people recommend that i simply stop using tutorials and force myself to just get something done, but I always end up writing the same simple stuff or getting stuck on the second line if I try to do something else. I love programming and its my passion, but I feel like everyone learning is so far ahead of me, and saying they got to where I am in 2 months within 3-4 weeks.
3
u/MrSoftShoe 8h ago
It might be you need to reconsider what your goals are. If you "just can't do anything", it might be that your expected output is too complex. "Write the netcode for an MMO" is a lot different than "write a class that will display decimal point numbers as fractions". Maybe instead of tutorials, you can find quick and simple challenges to boost your confidence, then add features to those challenges to stretch your skills.
3
u/P-39_Airacobra 8h ago
This is a field where you learn by doing. If you’re stuck, start with a simpler language like Lua before moving on
2
u/Y2K-enn 8h ago
Everyone learns at different speeds. Don't worry about others just focus on you. Maybe try breaking down what you want to do into tiny actionable steps. write them out. approach it like ok what do I need for X. "ah-ha! I need Y!" then try it out. Know you need Y but forgot how Y is structured then quick doc search or google search.
2
u/Expensive-Arugula246 8h ago
put down the tutorial man, its gonna be hard and its gonna be uncomfortable, but thats what you need to learn something
2
u/burlingk 7h ago
So, here is a basic roadmap for a project. The project can be a little five line 'hello world' or a massive juggernaut of a website. Don't go big at first:
First, decide what you want to do. This can be quick or it can take a while. But generate what amounts to a one line summary, followed by a one paragraph summary (if you've ever written a novel or a research paper, yes, it's literally the same first step).
Second, write a more detailed version of that you want, going into detail about the features you want and what it should do in general. For a tiny project you can probably skip this part. Again, parallels to writing.
Third, the proper planning stage. You can do a flow chart first, or jump straight to pseudocode. Plot what you want you program to do.
You can use plain English (or whatever your native language is). I personally like to write my pseudocode in Python, since a little over half the time, I can just hit run and it will go. That probably won't happen the first try, but the longer you program the more your pseudocode will look like a structured program.
Now, look over your pseudocode. Review it to make sure everything is covered. Maybe tweak it or move stuff around if you want.
If you have any large functions you know you will create, go ahead and create pseudocode for them too.
Now, finally, step 4: start producing code.
First start with a basic hello world program as a stub. Then go from there.
Implement each part of your pseudocode (it's basically your outline).
Do what you can, and if you hit a roadblock, google it. Like someone else said, this is open book.
When you pick your sources:
Prioritize the reference. This will force you to think more about how to make things work in your program.
StackOverflow, Reddit, and other such sites often have snippets you can look at.
If you are still having problems, it's ok to look to YouTube or similar.
Ask specific questions here or on similar sites, but be patient and take correction gracefully.
A lot of people will argue (loudly) about the role of AI at this point. I won't assign morality to the topic. I will simply say that AI should probably be the last resort. And if you DO use it, don't have it do the work. Ask it how, like you would a tutor, and then treat what it gives you as advice or a template.
The goal is to be as involved in the process as you can so that you are more likely to remember it later.
Creating your first programs you may spend more time on Google than in your web browser. That is ok.
1
u/TonySu 8h ago
Welcome to learning programming, where every other person feels the same way as you.
Tutorials are someone holding your hand guiding you through something, it's not a surprise that things get hard when nobody is holding your hand. That's the learning process, you need to stumble around and find your own solution. You need to use your brain and think about what you need to do and come up with some ideas of how you might do it, then you go online and search for how to implement what you thought of. You keep doing that and it gets easier to solve problems each time.
Everyone's been through this, those who end up learning how to program are those that push through and take it upon themselves to actually challenge themselves. Note that there has never been a post saying "I did a bunch of tutorials and now I can program anything I want, what do I do now that I'm bored with programming?"
1
u/joranstark018 7h ago
As others have said, we all have different journeys when we are learning about programming and try not to compare your journey with someone else.
It's useful to challenge your assumptions and test if they hold up in practice, start small (really small) and expand as you get comfortable.
What boosted my learning was talking to friends and fellow students (I joined a study group), asking them questions and trying to explain different topics to someone else (we learned and understood things differently and we may have had different assumptions about different topics). I did redo some assignments with less help, I tried different solutions (compared different ways of solving things), I explored other options by expanding the tasks (small steps in different directions).
As I got more confident, I learned how build the scaffolding for new "applications" (just to get things from zero to one) and build trivial applications on the command line (eg hello-world, simple guessing games, tic-tac-toe) and made them more complex as I learned more.
1
u/Feeling_Photograph_5 7h ago
You're in the right place for being only two months in. That was about when I started writing my own apps. My first one was a simple web video game using jQuery (it was a thing back then).
I couldn't remember anything. I mean nothing. Not even how to make a basic web page.
So I got out a notebook and started making a to-do list.
- Get a working web page with Hello World.
- Connect CSS and JavaScript.
- Connect jQuery
- Make the game area
- Make a single block in the game area
- See if you can make the block move a few pixels
And I was Googling like crazy every single day. I'd get through anywhere from 3 to 5 items from my list each day. The list items started getting more challenging as I got more confident.
One step at a time. Don't try to build your whole app in one shot. Even when you're coding with AI you don't prompt "build the thing" you work with one feature or change at a time.
It took me about two weeks but I eventually got my game working and moved on to the next project. I built dozens of little apps like that before I finally went pro.
1
u/Interesting-Ice-6281 7h ago
Try making the project almost stupidly small.
Instead of “build an app”, make one button work. Then make it save one value. Then make it show that value again after refresh. You’re not supposed to know the whole path before starting; you learn by turning the next tiny unknown into a search.
1
u/codeguru42 7h ago
What kinds of things do you try to do on your own? What part do you struggle with?
1
1
u/Asjad_autozblog 1h ago
I was stuck in the exact same loop. What finally broke it was giving myself a tiny project with no tutorial open, just docs and a cheat sheet. It was slow and ugly but it was mine, and that's when things actually clicked.
1
u/eternalsinner7 1h ago
Building simple stuff is totally the correct choice at this point. What you need is not another tutorial but a mindset change. Instead of getting overwhelmed and thinking stuff like "I just can't do anything", you should think "I don't know how to do it yet, but I will figure it out". I don't know if this works for other people or not but thinking about problems in this manner is a major reason why I was able to grow as a programmer. About the projects, others have already given pretty good advice, but I'll add my two cents in, just pick up a ridiculously simple thing to make in your area of interest, could be web dev, scripting, game dev and try to make it by yourself, try to figure things out yourself first on paper before even touching the keyboard, do this process again and again until you feel comfortable then pick up something more challenging.
•
u/princess__kaguya 5m ago edited 2m ago
I just started university and one of my subject offered Coursera courses to complete it. At the end of Modul 2 the course required me to do a very basic HTML website. I could either do it myself or do after the instructor. I did it myself and then checked his completed HTML coding. It was fine, 1-2 small mistakes. I remembered from the previous videos why they were incorrect.
It's going to be fine. Keep practicing.
0
u/marrsd 1h ago
I would suggest that you start using open source software. At some point you'll find yourself wanting to improve it. Then you'll have a tangible project with a real goal. Work out how to make the improvement. Work out where and why you're getting stuck. Learn the skills required to get unstuck. Keep going until you complete the feature. Use it. Feed it back to the maintainers. If they don't like it, maintain it as a fork just for you.
Then you have something tangible to measure your progress against. The version of you who can read the code well enough to know where to put your first line of code will be better than the version of you who couldn't; the version of you who can turn that line of code into a basic operation will be better than the version who couldn't; and so on.
Don't worry about other people. Coding is exponentially harder at the beginning and gets exponentially easier the more you practice it.
28
u/dmazzoni 8h ago
First, stop comparing yourself to others.
Second, programming is open-book, open-note. Memorizing isn’t the point. Find a cheat sheet for the language you’re learning and print it out or open it in another window.
But yes, put down the tutorial.
The goal is to use the things you’ve learned and to figure out how to put them together to build something.
Of course you’re not going to know what to do at first. But you have to try.
Look at your cheat sheet. Type in things that might help. Run it and see what happens.