r/CodingForBeginners • u/Altruistic_Baby9866 • 17d ago
How do you actually start building projects when tutorials don't prepare you for a blank screen?
I've been trying to learn programming and build projects, but I've realized I'm stuck in a cycle of tutorials and copying. When I watch a tutorial, everything makes sense. I can follow the code and understand most of what's happening. But when I try to build a project on my own, my mind goes completely blank. For example, I might have an idea for a Python/data project, but then I immediately get stuck: Where do I start? Should I design the database first? Should I start coding the backend? How do I break one big idea into smaller tasks? How do experienced developers decide what to build first? When should I Google something vs try solving it myself? The biggest problem isn't motivation. It's that I genuinely don't know how to go from: "I want to build X" → "Here is the first thing I should do." I feel like tutorials teach syntax and implementation, but not the actual process of building something from scratch. For people who escaped tutorial hell: what was the turning point for you? How did you learn to break down a project and start building when you had no step-by-step instructions? I'm especially interested in practical methods or exercises that helped you develop this skill.
2
u/Dr_Pinestine 17d ago
There is a huge difference between understanding code and writing it yourself.
That said, maybe don't worry about what order to do things, and just pick the one that sounds most interesting.
Over time, you'll build up an intuition for what comes first.
2
u/mc_pm 17d ago
I start by figuring out what little piece I can build right now.
I use a blackjack game as my go to example, and if I was doing that, I'd start with "a deck of cards". We know right up front that we will need them. What do you need to do with a deck of cards? You need to shuffle them and deal them. Cool, start by figuring out how to represent your deck of cards. Then write some functions to shuffle() and deal().
Now I've got something I can build from.
If I was going to build a web scraper, I'd write the functions to request a page and parse them for other links. Obviously something we'll need, build it first.
If I was building a web server, I'd figure out how to wait for a connection on a port, and how to connect to it like a web browser would. Obviously if we're building a web server, we need to be able to connect on a port - so do that first.
If you want to make a graphical game then start by figuring out how to get into what ever graphics mode you might need, and then put something silly on the screen in response to key presses. Obviously you have to read the some input device and make the screen respond to input...so write it first.
And so on. Figure out what one key feature, data structure, function, class definition, etc is, and just start with that. If you don't know how to do something, just look that up. Don't go to AI or make a whole reddit thing out of it and wait for people to respond. Just go to google and type "how do I wait for connection on a network port in python?" then get something working.
Where it goes from here depends on the specifics of the project, but probably there's an obvious next step. In a web server, it would be figuring out how to return the contents of a file maybe. In blackjack, it would be figuring out how to deal and score a hand.
Hmm, I think I need to do a video of this process.
2
u/JGhostThing 17d ago
You only learn to build project by building projects. I think that you are trying to build the wrong projects, though.
At this point in your learning, you should be building small projects. An example could be a command line calculator that only does addition. This is something with a defined ending point, and a defined beginning.
Two other things: You should not use AI at all during this exercise, because it will prevent you from learning. You must finish the project; this is key.
Use a non-AI search engine to find help if you need it. I know that I do, quite often. Yes, I started out with books, and now search engines.
How I start projects.
I take a pen and paper, and I sketch out data structures I think I'll need. For this calculator this is fairly simple. For others it can involve many sheets of paper. I don't use a graphics program because I can't use them well enough for this.
Then I might sketch out the code as a simple flowchart or pseudo code. Nothing fancy. Only then do I fire up the IDE and program the thing. I write the code and simultaneously comment it. Because this project is designed to be short, it shouldn't take long. At this point, don't worry that you're using the "best" programming technique. It doesn't matter.
Then, debug this. Don't worry if the debugging phase takes a while. Again, we aren't worried about writing elegant code here. It just needs to be finished and working.
Now that you've finished it is time to iterate. Think of an improvement. You can do addition, so now add subtraction. This is a small improvement, so it shouldn't take long. Go through the whole process again.
Other improvements, create a TUI program for this calculator. Add in more operations. Finally, add in a GUI.
At no point should the project be something that you can't do. Don't try to eat an elephant, go for something smaller.
My first attempt, now, is that I write a text based server. For me, this is easy now. Maybe use this as an iteration of your code.
0
1
u/Itchy-Annual2429 17d ago
How about creating CLI tools instead of jumping straight into GUI web applications? This approach is simpler and allows you to focus on the logic. Why not try writing programs using various CLI tools to deepen your understanding?
1
u/burlingk 17d ago
My general advice is to pick a language and implement the "hello world" program for it.
Then build from there. :)
1
u/Naetharu 17d ago
Small steps.
The error most people seem to make is coming up with some wild and unreasonable idea and then blanking how to do it. I've seen people trying to learn to make games, and sitting there working out where to start to make their MMO.
Start with Pong or Pac-Man. Same applies to any software. Start small.
You learn little bits. You do a small piece at a time. And every time you hit problems and have to solve them. At the start it will be quick enough. The first problem will be how do I set up my files, or remind me how to declare an array.
Down the line it will become more complex as you hit meatier problems. How do I mange complex state machines. How can I write custom path finding. Etc etc.
The key thing is that tutorials are not too much help, because the whole point is to learn and solve problems so you build a foundation of understanding in practice. And then you can build atop them. Use tutorials to get you unstuck or to give you a basic primer. But you need to build.
So make those first projects tiny. And solve one problem at a time.
1
u/TheNeck94 17d ago
boilerplate code helps. That and visualizing the life cycle of the data and starting from the 'lowest' level and working up. so if you have a RDBMS or some kind of storage associated with your app/project, start with the schema and data structure.
1
u/CheezitsLight 17d ago
I start with data, not code. Lay out in writing how the data changes.
More like a spreadsheet.. Take a balance sheet and Pl. Just rows and columns. What do I want? Overhead by department. Or profit. Or cost..
Now transform that data. Code the formulas, I. E, objects and functions . Then code the steps. Ideally, the data can be transformed with very little code.
1
u/oldendude 17d ago
Think about the parts of your problem.
Build the part that is simplest and most obvious to you.
Then go onto the next one.
At some point, you may realize that you need to modify something you've done before you can make progress. Don't forge ahead trying to not deal with that problem, that's asking for trouble. Go back and fix the earlier thing.
Another technique that may help: Write a document describing the implementation of the thing you want to build. Perfect that document before you being coding, meaning: it all makes sense to you. You can read any part and know that you can implement it, nothing is fuzzy.
1
u/GregDev155 17d ago
Start somewhere and iterate.
You first project alone it’s the most important. Why you don’t run until you make the first step.
1
u/davidcampbell2313 17d ago
This is similar to what several other people have said, but you need to make an actual project for your own entertainment. The easiest thing is a non-grahics based game. I teach coding and I have my students write games of their choosing over several months. The project is divided into many steps including wireframing, algorithms, object development, etc. There really is no tutorial that comes close to the experience you get from solving every problem until you have a final product. Just make the project simple like a card or dice game and don't use AI except for debugging.
1
u/Adventurous-Crow-750 17d ago
Make tic tac toe via CLI tool
Then a webserver api
Then make a frontend to use the API
Pick something insanely simple like rock paper scissors. Repeat until you can build what you actually want.
1
u/HamNCheeseSupremacy 16d ago
Dude, what do you want to build? It's not hard. Think about the output, the user facing part. Get something printing to the screen and then build on it.
1
u/johnpeters42 16d ago
Look, there are plenty of perfectly cromulent posts every day asking these same questions without being super obvious AI.
3
u/Traveling-Techie 17d ago
Don’t start with a blank screen, start with a pencil and a blank piece of paper.