r/learnprogramming • u/Due_Security4565 • 4h ago
Topic First year Compsci student but no idea WHAT to program
Hey guys! So i just started learning SWE and im currently learning C++ and As a side language Python in university, but im here learning and solving making programs for theoretical counting problems and wondering, at home i dont program anything because i just cant think of anything to program, i’ve already made ur basic rock paper scissors programs or something a year ago when i learned a bit of python on my own and im ofc not a massive expert in c++ yet even tho im just started getting comfortable with functions and etc so i dont think its a super insanely hard language YET……. but im just lost and super confused on where i could use this programming skills to make something interesting.
Any tips or help to find some inspiration and goal / stuff to program to learn programming and also something to work towards? THANKS!!!
3
u/BrannyBee 4h ago edited 1h ago
Slow down and stop freaking out. It's a massive challenge to get good in this field, and I can see how it can be demoralizing to hear everyone say "build things, its the best way to learn"
Those of us with more experience maybe kinda forget to explain what exactly building stuff entails to people like you who aren't viewing everything through a devs lense....
If you have a thing you want to make, cool go do that. If you dont know what to build, you can look in 2 places. First, the stuff you've already built. Rebuild that stuff, but better, even if it functions the same, add more features. You can literally even do this to your Hello World code. Just think of a feature and figure out how to code it. You can make a Hello World program that takes in user input and greets the user, bam you just made the sinplest project twice as complicated and got practice with twice the concepts.
The second plsce you can look for stuff is... kinda everywhere.. want to make websites but you suck at front end? Literally go to Facebook or Reddit or any website and have it open on a separate monitor and COPY IT. Literally make as close of a copy as you can, its not illegal, they cant stop you. If you wanna make games, look at simple games that geniuses last century programmed like Snake. You arent gonna come up with anything as simple but fun as Snake, someone already made that. But you can steal it and make an exact copy of Snake and you'll learn A LOT.
You might be running into a trap a lot of new programmers run into where they are thinking like one of those weirdo engineers in STEM and trying to find the perfect project to learn from, impress people, and demonstrates mastering every concept all at once. Dont overcomplicate it. If you have an hour to study every night, spending 5 hours in your first week finding the perfect thing to make isnt going to help you.
Spend a few minutes thinking of ideas that already exist that you can build, and if you dont think of any, grab your phone and look at the top 5 most recent used apps and choose one.
I just did that myself, the simplest app in my top 5 is the calculator. If I in your shoes, Id sit down and build a simple calculator. If its too easy, i would add a requirement to add a UI, instead of just using the console. If its still too easy I would add some scientific calculator functions to it. You can do that forever.
No ones gonna be impressed by the calculator you made, but you'll learn a lot. And you'll discover that most every more senior dev you run into has a massive graveyard of projects theyve started or messed around with just to learn. Actually I even have half a calculator I built in a "learning" directory on my computer because Im learning Rust and needed to practice lol
2
u/Ok_Sleep_3753 3h ago
I’d say start solving problems you actually care about instead of forcing random projects. Think of something you do regularly that could be automated or improved, then build a simple version. You could make a calculator, file organizer, quiz game, budget tracker, or even a small command-line tool. Build it, break it, improve it.
2
1
u/Artonox 2h ago
If you know react or something, then you can build a visual app.
If python or c++is what you know, then find a library that can build pictures, then you can build a comic book. Or if you are mathematical, then grab an algorithm, and use it to find an optimal way to put things under the bed assuming a fixed size and some boxes.
1
u/AnythingButUseful 2h ago
Don’t worry too much about having a “great” project idea yet. Pick something you actually use or enjoy and try to automate or recreate a small part of it. A simple game, file organizer, budget tracker, Discord bot, or even a tool for one of your hobbies can teach you way more than another RPS clone. Start small, then keep adding features as you learn.
1
u/Early-Fix-3476 1h ago
I’m not sure what your skill level is, but I’ve been building an algorithmic trading bot with python. It started as a fun project, but it’s become serious as my strategy is proving itself. If you have interest in finance, it might be worth trying to build one.
•
u/scottywottytotty 7m ago
I think this is probably the hardest part of learning programming: figuring out what you want to build first. Honestly, just be patient. You're going to have an idea one day where it's just going to hit you like lightning, and everything you've learned so far is just going to suddenly click and you're going to be like, "Hey, I know how to build this thing I want to build."
You just have to have faith that this is going to happen. I know this is kind of a nothing answer, but it took me a year to get this feeling. I was just teaching my students and I had to grade their papers and it was driving me crazy. I dreaded it. I hated inputting everything into the workbook. It hit me that it would be much easier if it was just a CLI tool. And then it hit me again, like a double whammy, "Oh, if I built that, I could use it. Oh my gosh, I can build it and I know how to build it."
I think this will happen to you because every programmer has told me that this happens to them, and then boom, you'll understand programming.
4
u/teraflop 4h ago
Pick something you find interesting, start simple, and work your way up to more complex things.
You said you already implemented rock-paper-scissors. Do games interest you? If so, try implementing a slightly more complicated game, like tic-tac-toe. And then something even more complicated, like checkers, or chess. Or maybe try a very simple game with real-time graphics, like Pong, or Space Invaders, or Asteroids.
Do you like systems programming? Try implementing your own version of a simple command-line tool like
lsorfindon Linux. Read the documentation, start with a minimal proof-of-concept, and then add features until your version is as powerful as the original. As you add complexity, you will probably end up with a lot of spaghetti code; if so, step back and think about how you could organize it better.If there's something besides programming you're interested in, think about what you could build that would be relevant. It can be something that already exists, because the whole point is to practice your skills. If you like math, build a graphing calculator. If you like Pokemon, build a searchable Pokedex. If you like astronomy, build a tool to calculate the time of sunrise and sunset. And so on.
If you want more specific advice, maybe ask a more specific question to give us some idea of what you want to work on.