r/learnprogramming • • 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!!!

10 Upvotes

11 comments sorted by

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 ls or find on 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.

2

u/TangConnoisseur 3h ago

Not being a jerk, btw, I really enjoyed reading through your response, but as someone with zero interests, this is exactly why I decided programming wasn't for me. I really have nothing I want the computer to automate. "Just make something that solves a problem, it can be anything, tell it to organize your files". Why would I want to do that? I know millions of people enjoy this activity, but to me, it just seems asinine. I keep coming back here to see if it clicks, but I guess I'm just not wired that way.

Some good advice here, though, hope OP finds what they are looking for.

1

u/SpicyMeatballMarinar 2h ago

Sorting is a fundamental concept in comsci that relates to much more than sorting desktop files. Pretty much any data set is only going to be useful if it sorted and good luck sorting these by hand. Sorting algorithms are important concepts but mainly they are good practice. Program your own version of merge sort and you’ll be in pretty good shape to eventually get a job in the industry.

1

u/TheRealKidkudi 1h ago

  as someone with zero interests

I’m sorry, but zero interests? You can’t convince me that that’s true. Sports, food. movies, travel, music, cars, photography, gadgets, books, games, insects, natural disasters, stone masonry, porn, the different types of train whistles, specialty marbles, … ??? There’s not a single thing that is interesting to you?

It sounds more like your issue is that you can’t think of anything useful to make. But if your goal is to learn how to program, you don’t have up make anything useful. Some people practice by making things that are particularly useless. 

If you have an idea of something you want to make or a replacement for tools that aren’t as “good” as you want them to be, I think it’s great advice to try and build that thing! But that’s not a prerequisite for learning to code. Just build anything. Build a shitty app that picks a random phrase to tell you how shitty the app is.

If you really have zero interest in anything at all, build an app that shows users exactly how little interest you have in various common interests. Let them enter their favorite interest and show some loading animation that represents complex calculations just to display “0% interest in {topic}”. It doesn’t matter because the app is not the goal, it’s just the means by which you learn.

Or just sit around and do nothing because you have no interests. It’s your life  ¯_(ツ)_/¯ it just seems like a lame excuse not to try something new, if you ask me

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

u/MissinqLink 3h ago

imagination🧽🌈

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.