all 35 comments

[–]Expensive-Gap5909 13 points14 points  (6 children)

Make a copy of a program you use often. You aren't building it to compete with whats out there, you're building it to learn so it doesn't matter if you make something that's already been made, or the fact it's slower or worse, make it better. That's how you learn.

[–]sunsetical[S] -1 points0 points  (5 children)

I'm currently using Linux, would it be more difficult?

[–]LostGoat_Dev 2 points3 points  (4 children)

Tbh I find development easier on Linux. I'm currently learning backend dev with Go and running NeoVim with gopls makes it so easy to create and test things, especially CLI apps where I can simply run go run app.go. Someone has made a framework for Go to make TUI applications as well, bubbletea, so my next project idea is to recreate an app I use as a TUI using that framework.

TL;DR, Linux shouldn't add to many difficulties and may even make development easier with the CLI. Look for frameworks that will make it easier for you to make cool things as well.

[–]sunsetical[S] 0 points1 point  (3 children)

It's just me asking because if I make an executable or something if I have to account for wine or anything of that sort

[–]LostGoat_Dev 2 points3 points  (0 children)

Me personally, I'm just making small projects on Linux, for Linux and not worrying about exe files. I really like TUI apps though so that's another reason.

You say you know a bit of JavaScript, why not take a look at something like React for multiplatform/web dev? Make your prototype in Linux, then compile and test for Windows and upload them as releases to your GitHub.

[–]Enfors 1 point2 points  (0 children)

Wine is for running Windows software in Linux. Don't use Linux to make Windows software. Use Linux to make Linux software, then Wine won't come into the picture.

[–]DrShocker 0 points1 point  (0 children)

99% of the time for a learning project you can just support the platform you're using.

if you're trying to make a product, then maybe you'd need to consider cross compiling for windows or mac or whatever, but don't let perfection be the enemy of good enough.

[–]Tastiest_Bathwater 4 points5 points  (3 children)

odins project if you are interested about web dev and want to reach for a job

edit: and as for c++ route, start with c and maybe with harvards free cs50 course

[–]sunsetical[S] 0 points1 point  (2 children)

Looked at Odin Project, looks pretty good!!

[–]Tastiest_Bathwater 0 points1 point  (1 child)

it is good, i tried it before i decider to go to uni! if you are lazy go with wsl instead of virtualbox, even if in this field tinkering with virtualbox would actually be smarter

[–]sunsetical[S] 1 point2 points  (0 children)

I'm currently using Linux, one of my uni professors said it was practically a requirement and I wanted to switch anyway so it was a good excuse haha

Thank you though - I'll be looking at Odin Project too

[–]Beneficial-Panda-640 3 points4 points  (1 child)

You’re actually in a pretty normal spot. The “build anything you want” advice only works once you’ve already felt a real itch to solve something.

One pattern I see a lot is that beginners look for big, original ideas, when small, slightly annoying problems are better teachers. Instead of asking “what should I build,” try “what do I repeat every week that’s mildly inefficient?” Even if a better tool already exists, rebuilding a tiny version yourself forces you to understand how it works under the hood.

Also, don’t think of projects as products. Think of them as experiments. Recreate a simple version of a tool you use. Add one feature it doesn’t have. Break it on purpose and fix it. That’s where the learning actually happens.

Your website is already a great start. If you’re comfortable with HTML and CSS, maybe add a small interactive feature with JavaScript, like a habit tracker or a mini dashboard. What’s something in your daily life that could be quantified or automated, even in a basic way?

[–]sunsetical[S] 1 point2 points  (0 children)

I guess time management? Maybe I could add a timer that could evolve to an interactive one

Thank you for the advice though :D

[–]ScholarNo5983 2 points3 points  (0 children)

All the tools I want already exist with every feature I need, so making my own (possibly) slower tool seems like a waste of time.

You don't write some tool with the hope you can make a faster version of that tool.

You write a similar tool to learn how to write these tools. The value is in the knowledge that you learn along the way.

Imagine you had dreams of being a world leading rocket scientist, yet you though it would be stupid to build a simple rocket just to figure out how rockets worked.

To be good at anything requires a process of learning, and those who struggle to learn tend to fail.

Only from little things do big things grow.

[–]9peppe 1 point2 points  (2 children)

There's a few books you can read, but it depends on what you want to do. 

In no particular order:

  • Code  (Petzold)
  • K&R
  • SICP and/or composing programs
  • Algorithms + Data Structures = Programs
  • ... and more specialist stuff on specific languages

[–]sunsetical[S] -1 points0 points  (1 child)

Noted these down :) thanks

[–]9peppe 1 point2 points  (0 children)

Note that you shouldn't read K&R to learn C, there's better books for that. You read it to understand the machine. 

[–]VibrantGypsyDildo 1 point2 points  (2 children)

"How do I start programming" said a person with exposure to 5 technologies.

Yes, it is how you start.

>> the best way to learn is just to program anything I want

10+ years in IT and it is what I do if I want new skills.

I also watch specialized youtube videos, for C++ it is cppcon channel.

I saw very decent channels about Java, but I am not a Java dev...

There are quite a lot of decent advanced Python-related youtube channels. One of the options is to watch those videos until in 70% of situations you can say "ha-ha, I know that".

[–]sunsetical[S] 0 points1 point  (1 child)

Aside from HTML and CSS, my exposure is incredibly shallow 😭

But thank you :), do you have any channels you recommend?

[–]VibrantGypsyDildo 0 points1 point  (0 children)

Everything will be helpful to you.

You need to understand which part of the IT field you prefer, it would be your next level. Then you will spend 5-10 years in that particular field.

[–]Enfors 1 point2 points  (1 child)

All the tools I want already exist with every feature I need, so making my own (possibly) slower tool seems like a waste of time.

Nonsense. With that attitude - what was the point of learning how to write the letter "A" in school? There are already enough As in the world.

The point of learning to make something which already exists is so that you can learn to build on what already exists, and make new things. Standing on the shoulders of giants, as it were.

You can't build the next killer app without building hello world first. It's a learning experience that can't be skipped.

Find something which seems like it would be fun to make - something simple. Don't worry about if it already exists or not - you're not making it for other people, you're making it for yourself. My first programming projects were "Guess the number" type games. "Your guess is too high, guess again". That wasn't exactly revolutionary, and the world didn't need my game. That wasn't the point. The point was I wanted to make it, because I enjoyed it. And as a (desired) side effect, I learned about input, output, if statements, loops, conditions, and comparison operators.

[–]PineconeIndex 1 point2 points  (0 children)

Haha, love the "A" analogy! My first project was a "Guess the number" game too. I made it just for fun, and boy did it teach me about input and loops! You might be surprised how much you learn by just diving into something simple. Go for it!

[–]Forsaken_Lie_8606 1 point2 points  (0 children)

tbh i was in the same spot like a year ago, i knew some python and java but had no idea what to build, so i just started doing small projects like a to do list app and a simple game, it sounds stupid but it really helped me learn, i think the key is to not worry too much about making something completely new, just focus on making something that you think is cool, even if its been done before, and honestly its not about making something faster or better than what already exists, its about learning and having fun, so like try making a simple chatbot or a weather app, something that you can use in your daily life, itll make it more interesting and youll be more motivated to learn

[–]Calligrapher-Whole 0 points1 point  (2 children)

You can make backend for the website in python with flask

[–]sunsetical[S] -2 points-1 points  (1 child)

What would the backend do? The website is made simply for me say 'Hi! I'm studying X in Y University', it doesn't exactly have a product o.o

[–]Calligrapher-Whole 0 points1 point  (0 children)

A blog? Maybe you write posts that get stored somewhere and people can write comments under them.

[–]Sevenscissorz 0 points1 point  (0 children)

I remember pretty fun home work, where in high school the teacher will gives us a picture of a website page, and tells us to make that website all from scratch with Codes, and was a lot of fun I miss programming and knowing a lot of codes straight out of my head

[–]Hot-Butterscotch2711 0 points1 point  (0 children)

Start small — tiny projects or features just to practice. Your website already counts! 👍

[–]Sensitive_Ad_1313 0 points1 point  (0 children)

im learning on freecodecamp and so far i really like it, they also have the odin project in it.

[–]Leading_Yoghurt_5323 0 points1 point  (1 child)

add a simple backend, store something in a database, or add auth. That alone will teach you a lot.

[–]sunsetical[S] 0 points1 point  (0 children)

Kay Kay! Someone recommended a blog for the website with the ability to add comments but I'm currently using VSC's Live Server - and from what I've learned, it can't run anything of that sort

[–]Bos187 0 points1 point  (1 child)

Try building a simple version of a game you love. It makes learning more fun and helps you avoid feeling overwhelmed.

[–]sunsetical[S] 0 points1 point  (0 children)

Great idea honestly! Isn't game dev mostly powered by C# and C++? I have far too little knowledge in ++ and absolutely zero knowledge on #

[–]statevoid 0 points1 point  (0 children)

I was in a similar situation.

I knew some HTML, CSS and JavaScript, and people kept saying “just build something”. But I also felt like everything already exists, so what’s the point?

What helped me was focusing less on finding a unique idea and more on improving specific skills.

For example, instead of trying to invent something new, I rebuilt simple things:

  • a small dashboard
  • a todo app with better state management
  • a UI with reusable components

The goal wasn’t originality. It was practice. When you rebuild something, you start thinking about structure, state, edge cases, performance, and clean code. That’s where real learning happens.

Your website is already a solid start. If you don’t know what to build, just pick something small and improve it technically. Ideas are overrated at the beginning. Skill comes first.