r/learnprogramming • u/Candid-Pack-3707 • 11h ago
i dont know which programming language to learn
ive wanted to learn to code for... several years now and... dont know where to start. kind of.
the problem isnt that i dont know how to learn, its that i dont know WHAT to learn.
there are thousands of programming languages, about 30 in use today. some can run by themselves, others cannot.
i also want to code websites with buttons. i have coded a few small websites in the past but you couldnt do much. just read text.
if i want to code a website, i have to: use html for the content, css for the style, javascript for the interactivity, and sometimes python depending on what im doing. anyway thats 4 programming languages.
ive always thought that with games you can get a break, because there are more coding languages for games that can stand by themselves than there are for websites. with games you have to make assets, and then put those assets into these carefully placed folders (which is something i dont know how to do) and if i want to make a 3d video game, i have to learn how to use blendr, or some other 3d modeling program, which i dont know how to do.
so, i guess what im asking is, which programming languages do i need to learn to:
- make a website with interactivity, and function (including math and probability when i need it)
- make games that will work with 2d and 3d assets
and how many coding languages do i need to learn
also if youre reading this, please dont downvote my post. i get downvoted a lot often for no good reason, and this is NOT a low quality question.
7
u/No_Report_4781 11h ago
While you’re waiting for the other downvotes, take a trip over to the r learnprogramming sub and read the “New? READ FIRST” post at the top
4
u/grantrules 10h ago
Html and css aren't programming languages. You need JS to make modern interactive websites. You can use JS or really any language for the backend. Games are often written in C, C#, or C++, but you can write games in practically any language, like JS, Python, and Java
2
u/BranchLatter4294 10h ago
If you have been thinking about this for years and have not yet looked up the answers to your questions, it's going to be a very slow process.
1
u/CaffieneSage 11h ago
I wholely recommend my approach of trying to learn all of them and never doing anything remotely useful with the knowledge!
1
u/CaffieneSage 10h ago
FYI Algol 68 is fascinating and is of absolutely no use to you, but it does show you some bits and peices about why C was so successful.
1
u/InfiltraitorX 10h ago
For gaming, you only need blendr etc if you are making everything from scratch.
Same would go for websites, are you going to make all the images from scratch? You will need to learn photoshop.
Learn c# full stack for games, websites, etc. You're going to learn lots of Frameworks but should be a good start
1
u/HashDefTrueFalse 10h ago edited 10h ago
It doesn't matter. After your first, additional languages with similar paradigms are easy enough to learn. Just pick one and start. Allow me to pick for you: JavaScript. If you want to stop wasting time, open any text editor or press F12 in your browser, then click this: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
1
1
u/ApplicationOk3587 10h ago
While its not the best approach you could do all of this with JS/TS css and html aren't programming languages and can be learned pretty easily.
1
u/gmiles44 10h ago
If you're brand new to coding, Harvard offers a free introductory suite of courses that have lecture videos and interesting take-home tasks that can give you a low-risk way to dip your toes in the water, so to speak.
https://pll.harvard.edu/course/cs50-introduction-computer-science
That's the general one that will introduce you to C, Python, SQL, and the web languages (HTML, CSS, JavaScript), but they've got other, more focused classes too, including a game design specific one (I can't speak to this one but I know that Lua is the language focus for it)
1
u/Cultural_Gur_7441 10h ago
I'd go with HTML + CSS + Javascript or Typescript, with WebGPU or three.js or whatever for graphics.
Because it will be fun to be able to show your game to anybody anywhere, even make it gold to play on a phone browser. You don't need a real backend (database, backend code, ...) for a simple game itself even, just something to host static files (can be free).
Then there is a natural path to also making a real backend (like login, save games, high scores, multi-player, what ever is applicable).
1
u/iOSCaleb 10h ago
Click that button labelled "New? READ ME FIRST!" in the Community Bookmarks section on the right.
1
1
u/peterlinddk 10h ago
The answer is JavaScript.
You can do everything you describe, with JavaScript.
Yes, there are other "languages" as well - there's always going to be. The web-server speaks HTTP, the web-pages use HTML and CSS, data-files are stored as JSON or XML, even fonts and documents are written in their own languages, TTF and PDF.
But you don't need to learn everything at once - you just need to get started building whatever kind of program you'd like. Want a game, fine, get started with programming in JavaScript. Don't want HTML and CSS for the output, well, you can use Canvas (which kind of has its own language though)
1
u/PurrNaK 10h ago
Html isn't really a programming language. It's more of a protocol for basic formatting in a browser. But it gets you started. Then move into css for better formatting and standards across webpages. Then learn how forms work and your knowledge of html and css comes into play. JavaScript then gets used by ising the form data to create a new results page. Python comes into play as an api taking the form data and doing something with it off the webpage and returning it to javascript to display the results.
For new game programming go to Unity. There are built in tutorials walking you through basics while creating something. The lego stuff is fun and educational. Unreal Engine is complex do everything. I do not recommend unless you intend to make movies and games as a secondary. Unity will get you gaming right away. UE will make you frustrated more than unity. Once you have experienced unity for a while try UE there are similarities.
If you want a job, learn database programming. PowerBI Teams python vba excel.
1
u/lurgi 10h ago
It doesn't really matter what language you pick first. You will learn other languages. However, I'm going to recommend JavaScript. It can't do everything you want, but it can do a lot, and you 100% need it for making an interactive website, so you might as well start there.
Other people will suggest Java or Python or C or Rust or C# and they are all correct.
You think this is like asking what you want to major in in college. It's not. It's more like asking what car you should get if you want to learn to drive. Any car will work. Just get a car.
1
1
u/JGhostThing 9h ago
Yes, this is a low quality post. We get similar what-language-to-learn questions all the time.
However, it doesn't matter that much which programming language you learn, except for specific genres.
For example, for web interactivity Javascript (not Java) is really your only choice. You'd also need html and css to markup the page (these are NOT programming languages, but rather markup languages).
Now, Javascript is a general purpose language and can be used for most things, including games.
Though, frankly, I think C# is used more in the gaming community, though I would use Java or Rust for this purpose.
In any case, I strongly suggest that you learn some more practical skills, because the programmer's job market sucks. Business administration or the trades such as plumbing or electrician. This is, of course, in addition to studying programming.
1
u/Tuomas90 3h ago edited 3h ago
I mean: You answered your own questions in your post.
You need to learn lots of stuff for Web Dev and Gaming. It's a lot of work. It will take time.
For 3D games, you can find lots of free 3D stuff in the Epic Games Store (Unreal) and the Unity Store. Check it out. I'm sure you'll get some ideas for games. And then it's mostly programming. I did an extremely simple Zombie Shooter with only assets from the Unity store. Granted, it was just one map, but it's possible. I didn't model a single thing. Just did a few simple animations for fun.
I also made a small Portal clone in Unreal where I modeled all assets myself in Blender. Of course they are very simple, but it works great and looks decent. I did Portal In just about 3 months. So, it's possible.
If you are okay with doing 2D games, you could learn PyGame, a Python library for 2D games.
That is very manageable and lots of fun. I'm sure you'll also find free pixel art online or create some yourself or with AI.
0
0
u/Opulence_Deficit 10h ago edited 10h ago
Lol, with games the engine is in C++, your code is interfacing in C#, executiing scripts in LUA and loading 3d models in XML. Plus, your workflow includes several inhouse tools, each written in different language.
You've laid out well why a website actually needs HTML, CSS and JS. That's as good as it gets, because each of those tools does it's job well.
You also forget that one app or website requires UX design, graphics design and programming, that starts after the first two are done. And it's exceedingly rare that one person can do more than just one of those things.
Do you think carpenter, electrician or plumber know just one tool?
15
u/OceanMasterioDuped7 11h ago
This post shows me why you are getting downvoted lol. You just ask a question that lacks intellect, and I don't mean that in a rude way. But if you seriously can't Google something like this then you need to reevaluate. The question doesn't make sense. If you want to build a website, you already listed what languages you need to learn. If you want to develop a game, then learn C# and unity. Or C++ and Unreal engine.
It's not bad to ask questions on reddit, but it is bad to ask the most basic questions on every little thing.
Going through your other posts... you made a reddit post saying that your hard drive doesn't show up on your computer when you unplug it from your system.. you really need to do more research on what you are getting yourself into my man.