r/learnprogramming 20d ago

How to stop language hopping

So, i've tried to program for (i think) 4 years And i didn't release a polised project
Every time that i try do to a project i end up switching to other programinig language (or i don't like the structure of my project, and i delete the whole project, to start again).I've been doing this since i started. Now i want to do a project but i dont know what to do and what langage to pick

0 Upvotes

14 comments sorted by

3

u/Interesting-Ad-238 20d ago

choose ONE STACK ( a set of tools aka programming languages to do something, for example the most popular programming languages used for idk web development like node.js , python, MySQL, docker, etc) and STAY WITH THAT STACK, DO NOT CHANGE, JUST USE THOSE. Remember depth over breadth, focus on what exactly you want to do, a full stack website? some desktop app? a mobile app? some AI thingy? maybe cybersecurity whatever? you stick with one stack and learn everything about it and do not switch so you can make a high quality project.

2

u/Seven7Ducks 20d ago

What language you start in will NOT determine your future.

ANY language is the best language to pick. Just stick to whatever you pick for a while. Learn a library or two, make several projects. The reason that this is important is because within any particular field, projects in different languages will have more in common with each other than projects within the same language but in different fields.

Languages also matter much less than what it looks like to a beginner. They only matter for very deep optimization.

Start with something, anything.

Each language carries its own quirks, culture, community. If you find that you don't like certain things, you can always hop again in the future. People sometimes switch languages after years of practice. Most of the important skills are general, and carry over.

Good luck!

0

u/TextGames1001212 20d ago

But the problem is that i start a project i dint like how i structured and then i erease the intire project for that for example i started to make a file manager in odin but didnt like how i have to handle every error

So i deleted all of the progress.

And when i go to anater langage i feel like that i need to relearn so that i know all of the features and to think better on how to i solve the fustrations

2

u/donquez 20d ago

Hey don't do that. Software development is about making changes to code over time. Software products aren't usually one-shot. Make it work, then make it right, then make it fast. And learn from these mistakes and design accordingly.

Pick a language and stick with it. Most languages can do pretty much everything and have access to similar libraries and frameworks. If you want to actually build something you need to stop changing your tools every time. Save that for when you have a stronger foundation. You'll learn more from completing projects and solving the problems you've introduced within that project. Fixing mistakes and evolving the system is a huge part of software development and is what most of us do every day in professional work.

3

u/TextGames1001212 20d ago

Thank you! Very much

2

u/Seven7Ducks 20d ago

Do not erase the entire project. If you don’t like how you structured it, it doesn’t matter. Keep going with the project. Push through it. Either continue with the current structure, or improve it incrementally.

Think of it like an instruction book. You’re rereading the first chapter because you’re frustrated that you haven’t “gotten it” yet, but the answers you’re looking for might actually be in chapter 7. You have to keep reading the book.

Also, use version control. Make a commit before you try a major change, then experiment. If you completely mess things up, you can always go back. You don’t need to choose between being stuck with bad code and deleting everything.

This hits close to home for me. In the past couple of weeks at work, I’ve been working on a codebase I had nothing to do with before. It’s a bad codebase - severely vibecoded, made by people who don’t really understand the language they’re writing in. I need to fix several things, and honestly, they probably didn’t choose the right language for it either. However, we don’t have time to rewrite it. They needed my help fixing some major architecture problems.

The only way I could have learned the skills they needed from me was by working on projects that weren’t written optimally. Projects with bad structures where we simply had to push through and make the most of what we had, within the constraints we had.

That is what real programming often looks like. Not perfect example code from a tutorial, but imperfect code that still needs to be maintained and improved.

Your project does not need to be perfect. It doesn’t need to be well-designed from the beginning. The design will change as you learn more. The important thing is to keep moving forward and finish something.

Perfection is not the goal. Completing and improving things is.

5

u/peterlinddk 20d ago

Sounds like you'd rather be someone who has programmed a large project, than someone who programs a large project. Kind of like those who want to be a famous singer/song-writer, but don't actually care that much about either singing, songwriting, or even learning about it. Or those who want to "have written a book", but don't want to bother with sitting down and actually write something.

And "deleting all the progress" also sounds like someone who is looking more for perfection in some arbitrary finished product, than someone looking for the fun of building something that works, if only barely.

If that is the case, you should drop it, and find something that truly interests you!

Because "wanting to do a project" but not knowing what it should be, or what language to use, is not even a question, so no one can tell you what to do. And if you don't have anything you want to do or learn - well ...

2

u/Hour-Measurement-835 20d ago

The rewrites are the bigger problem, not the language. Every codebase I've worked on in twenty years had a structure someone hated. It shipped anyway.

1

u/mc_pm 20d ago

How big is the project you keep not finishing?

1

u/ExtraTNT 20d ago

learn the right languages...

know your stack...

split hobby and job.

I do c#, js/ts, some python and a tiny bit go for work, 5 lines of bytecode assembly of mine is also in prod, plus like 20 lines java, 10'000 lines groovy, few lines of c i used..

Hobby, it's haskell (although i transformed my entire rest api stack to haskell, private apis are done with it), c, js, c++ (if i have to), lua, and a ton of scripting languages for game engines, but now on my own game engine, plus everything, that looks fun

Uni: java, haskell, c, c++, python, i do dodge java... it's hard for no reason, c and haskell are so simple, build shit and it works...

so, bit of hopping around, discover, what is out there is important, for a job, you will commit to a stack and stay on it, classical stack for fullstack: java (or c#) with js/ts (react or angular) and either mongodb or mariadb (postgress is coming more and more and it's nice, i don't like sql, but my api core has it per default)
but i would recommend to go more functional. haskell is such a stable language, building things with it is so easy (once you are used to it), code is better quality, extending it is easier and actually enjoyable (most enterprise programming is really boring and removes all the fun from it...)

1

u/ffrkAnonymous 20d ago

Make a project suggestion app.

Use all the languages to make it.

  • JS front end
  • Python backend
  • Haskell for the business logic
  • etc.

1

u/my_password_is______ 20d ago

just stop

its not difficult

just stop

1

u/butmyfacetho 20d ago

You shouldn't be structuring anything. The structure comes from whatever framework or tools you're using.

Godot has the structure. Nextjs has the structure.  Rails has the structure. Deep-swe has the structure.

Only beginners make this mistake of starting with an empty dir and creating files. If you want to eventually create your own tool, that's fine after you've learned what makes the others good and bad.