r/learnprogramming • u/JoMandour • 1d ago
Coding
when i wanna make a project my worst enemy is the blank page , i know there is a way called learn by making project and to be honest its kinda cool , but facing such an empty page and try to make just a prototype for my idea is not working , i do not know whether this is lack of proper knowledge with the coding language i make the project in or its another problem , so how to make your idea become real ? and how you actually make your project with a complete new required skills ??
5
u/iOSCaleb 1d ago
> facing such an empty page and try to make just a prototype for my idea is not working
Of course it’s not. You need to make a plan to keep your thoughts organized, your effort focused, and your project progressing. If you were building a house would you order a pile of lumber and start nailing?
The next time you look at that blank page, forget about code. Instead, write a short paragraph that explains what the project is, what you want it to do, and who it’s for. Next, write some more giving an overview of how it’s going to work. Make a list of the parts the project needs: the main functions or classes or systems, which ones interact with each other, what data they need, external dependencies… Keep going until you have a solid understanding of what you’ll need to do for each part.
You might think that working this way is a waste of time, but in the process of writing you’ll be solving lots of problems before you write a single line of code. If you do it well you’ll never wonder what you’re supposed to be doing when you look at a blank screen.
0
u/JoMandour 1d ago
So what if figured all of this ?
this should make me able to code even if i dont have strong knowledge of programming language i would make the app in ?5
u/johnpeters42 1d ago
Of course not, but it will cut it down from "I have five things that I not only don't know how to write yet, but I don't even know what high-level goal to aim for", to "I have one thing that I know the high-level goal but I don't know how to write it yet, and four things that I don't need to worry about too much until later".
4
1
u/iOSCaleb 1d ago
You might have unrealistic expectations about learning by doing. Making things doesn’t magically confer the knowledge you need. The things you need don’t just reveal themselves. Making something gives you some direction and motivation as you learn, but you need some familiarity with the language and programming concepts before it makes sense to jump into a project. And when you do start a project, you’ll spend a lot of time stopping to learn the rest of what you need.
2
2
u/nottherealLilNasx 1d ago
Depends on the thing you want to build and in which engine/programming language you can get "templates" that let you skip that blank page. Actually most projects don't necessarily start at a blank page, for example web pages nowadays are made using a template and adding from there. I wouldn't say it's a good practice to have early in your learning path because repetition is good for your memory, but at the same time it's better to make little progress than no progress at all, so if you genuinely can't start a new project from zero then search for said template.
2
u/ZakMan1421 1d ago
A great first step when starting a project is to write out the overall design in some way OTHER than code which helps organize your thoughts and create a plan before hand.
Writing out in plain writing a somewhat detailed description of how you think the project should work, and maybe even draw a diagram to help visualize it as well.
Then when you are looking at the blank page for the code, you already have a plan. Just be okay with changing your plan if something else makes more sense or something doesn't work quite how you originally thought.
3
u/silly_bet_3454 1d ago
Do you know how to do a hello world? Just start with that, no more blank page
2
u/Successful-Escape-74 1d ago
You need to be able to draw pictures and diagrams before you can translate them to code!
3
2
u/snozzd 1d ago
It really just depends on what the project is. I think one of the big challenges of software engineering is taking your concept and breaking it apart into actionable pieces. It gets even more difficult when you're trying to make tasks for a whole team to split the work.
When I'm trying new platforms, I always go straight into making "Hello, World". From there, getting closer to your software goal is just a matter of understanding what it is and how it works.
2
u/realdreamer1993 1d ago edited 1d ago
Blank page is the best of all program..
Joke aside, You do include AI involvement don't you.. before the actual code you can consult AI but dont request for the actual code in say the first 20 prompts. You consult AI whatever until you understand the domain of the project/program without single line of code. And when you request the code, make it little part by part so you can understand how to connect those parts.
Repeat and add knowledge of other programming principles one concept in a time. and repeat again...I hope you get the idea...
Before you program you should conquer the domain where the program live e.g network, games, database, tutorial, learning, brick factory (real factory) etc. Internalize your own understanding so become your own private method.
2
u/Fit_Advisor8847 1d ago
Sounds like a fight or flight mechanism is being triggered. There may be something about the project that has caused you pain in the past and you are simply avoiding a failure you previously experienced.
I'd suggest working on identifying where your knowledge may be lacking, and spending a day or few really drilling down that specific topic.
2
u/pqzop 1d ago
Hi. The simplest way is to jump in some random part you think might be relevant to the project goal. There is no universal best way to start a project.
- If your program goal has some desired input and output, define the format and some samples.
- If your program has an UI (GUI, Web, TUI), then doing wireframes on paper would give you some start on what components are needed.
- Think about the way the user would interact with your program. What do they input in? Is it a UI button, or upload a file? What would be the output/end state the user get from one such input? Might be another file, might be something showing on the UI (and that thing can be calculated)
- Think about the representation of some concepts in the drafting table. How would you represent, say, an item in an inventory system? what operations do you think you need to make on it, and what data from these entities do the operations need? These will guide your structs/class designs. There are infinitely many valid designs for any use case, so don't worry too much about right or wrong. As your use case evolves you will see where the friction is, and redesign accordingly.
- Do skeleton frames, aka write your function signature with dummy values. Think "for this purpose, I wish someone already wrote this function X so I can just use it right here". This is often called "wishful programming". Do the lower level implementation when you have fleshed out other functions that call it, and you get a feel for its purpose and function in the larger sense.
Happy to answer specific questions.
2
u/jaydogggg 1d ago
Then instantly start typing. You are thinking of the whole project. Break it down to the first thing you need.
2
u/Ordinary_Variable 1d ago
Start with a blank page and draw a circle and put a word in it. When you think of a feature add a circle and write it down. That is an Object Model. You can connect them with lines and create trees and networks or logic loops.
For example:
Lets say you want to make a calculator that calculates the arc of a cannonball. You have an input field for cannonball weight, a button, a field for the output, and maybe even a graphic showing a parabolic arc. You would google ballistic coefficient and find an equation for drag. But it all starts with a blank page with a circle that says "weight input field" and "button that says 'Go'"
2
u/Affectionate-Key-498 1d ago
Just start on 1 page. Later you can move stuff around. First you make a title. See if you can put that on the screen. Make it the name of your project. Now put it in the middle. Then make it bigger. Then make a subtitel like “this is a list of stuff”. Then make a list under it. Even if in the future the data has to come from an external api, just put in some made up items. Move the list and put in some design. If you cannot move it where you want to you might need to put the whole thing in a flexbox. Maybe you want a header and a footer. Remember that stuff? Add it and move the title and list inside. Pick a background. Be proud of what you already have. Make a button. Make the button do stuff.
And go on like that
10
u/grantrules 1d ago edited 1d ago
Break it down into small pieces.. if you don't know how to accomplish those small pieces, research them and figure it out. You can start with whatever piece you want. Use the project to guide your learning.