Which programming language should you learn first?

The Cherno · Beginner ·7y ago

Key Takeaways

The Cherno discusses the importance of learning programming fundamentals over choosing a specific programming language, highlighting the versatility of languages such as JavaScript, PHP, and C++ in software engineering and game development

Full Transcript

[Music] hey what's up guys my name is Jenna I am in Germany right now and is extremely bright out here and also very hot but welcome back to another vlog today I thought we'd talk about what programming language you should learn first it's a question that I tend to get pretty often from people who are trying to get into programming and are not sure what they should do in the very beginning I did make a vlog about a year ago about just in general how to actually learn programming definitely check that out up in the top right corner if you haven't already but this is just going to be more about like what I think should be your first language because it's all great to talk about how to actually like the concepts behind learning programming what I think is the best thing to do in terms of how to learn programming but what is step one like which language should you pick and which language should you start with what should you actually do so first of all I just want to mention that this is gonna be a complete like as all as pretty much all my videos this is just my opinion it's just a complete opinion piece if you will it's not any kind of fact it's not backed by anything kind of my experience I'm just talking about my thoughts really so don't like don't don't think that this is definitely the right choice for you and that this is like some kind of like objective fact it's just what I think and really I think that it doesn't matter so I know that a lot of you probably annoyed because I'm not giving a straight answer but it's kind of I guess that is the answer doesn't really matter what programming language you start with because programming languages are not in the big picture of things it's not really what your goal is to learn like when I set out to learn programming I don't really set out to learn a programming language because the programming language is just the tool that you use to program a computer right computers are these complex things that do many many different things and a programming language is just something you can use to actually tell the computer what to do now there are a lot of programming languages out there and the one that is kind of I guess fit for you or fit for the job that you're working on fifth bit for the project that you're working on it's going to depend on that project and also on you and just the scale of it and just a lot of your a lot of different things so I can't just say learn you know C++ or learn Java that's the best language to start with because that doesn't make any sense you can't just you can't just pick one language and go with it that's not how it works picture picture there's kind of like building a house if you're a builder building a house would you really be hung up on which like brand of power tools you want to use to build a house that doesn't really matter does it you what you actually need to know is how to build the house and then the power tools that you use I just a tool that you use to actually construct that house and furthermore I guess to extend that analogy if you were building a house you wouldn't want a screwdriver would you you would want like power tools and if you were on the flip side if you were building something small you wouldn't necessarily want massive power tools cuz I could just wreck the whole thing I mean it might work but it might wreck the whole thing and it definitely wouldn't be as easy and as good as if you just used a little kind of tiny screwdriver and you'd be fine so that kind of is the same as what programming is like and what software engineering is like you want to pick the best tool for the job and it's way more important that you actually realize how computers work and how to build the thing that you are building how to build a software that you're building and how that architecture kind of all works then actually to pick a programming language and say that's it I'm gonna just learn C++ and that's gonna be it I'm gonna use C++ for absolutely everything that's not how it works I mean theoretically you probably could use C++ for pretty much everything so we're bright out here seriously and it's funny I didn't bring any sunglasses with me for this like little vlog here because I was like oh it's cloudy ass outside it's gonna be fine it's gonna be like it was raining all morning I'll be right anyway the point is you can't you can't get hung up on programming languages because in your life you won't be you won't just be programming in C++ you won't just be programming in say shop or Java probably you could pick an extremely narrow specialty I guess and just kind of lowly be that person who only knows hit bust lost but knows it really well but that's both boring and also in the real world I don't think I've ever met a software engineer who just knew one language or even maybe well prefer to just programming in what in one language and that's it and said in order to absolutely everything else that doesn't exist because as a programmer as a software engineer you build software and building software requires various languages not just one language so if we kind of get back to I guess the point of what it is you should learn first I think that it depends on what you want to immediately do right now so what is your goal right now why are you learning programming I do you just want to be able to tell computers what to do and build software and build like GUI tools to process data or whatever are you trying to make it game are you trying to build web applications or websites what is it right now that you wanted to straight away the first thing you want to do if the answer is a game that's I guess mildly complicated because you could build a game in literally any language because the game is whatever you define a game to be I mean a game is just an interactive application with maybe some kind of goal right that's what a game really is so you can really just build that I mean you don't even need a computer to build at all right you could build a game just with like a board game or something like that a game is really really you know loosely defined so it's so I mean if you want to build a game you could really use any language but suppose you wanted to like build a website or something well maybe you should learn JavaScript right if you want to build I Oh s app specifically maybe learn Swift if you want to build Android applications specifically maybe learn Java if you know build if you want to get into a triple a game studio and build game engines then well maybe learn C++ right it doesn't really matter what language you pick first because you definitely won't be stuck with that language for life unless you choose to I'm not sure you wouldn't you won't be a successful software engineer if you only know one language it doesn't exist so get that idea out of your head if you if that's in your head but the the the moral of the story is that don't get hung up on this pick a language that is kind of I guess something that you want to do now so again if you're kind of if you want to eventually get into Triple A games or whatever whatever it is that you want to do but right now you just want to build a website quickly or you think that maybe it'll be easy to build a website then learn JavaScript I'll learn like I don't know PHP what if one of the kids using these days to build websites probably like nodejs or something so javascript again like just learn one of those things because really the idea is is actually programming actually building things using actually building software and that you can kind of do in any language so pick something stick with it and then slowly as time goes on you'll naturally start to add other languages I need to leave right now because I'm melting out here hope you guys enjoyed this video let me know what your thoughts are in the comment section below regards to kind of what you think a good good advice would be for a beginner who's asking what programming language to learn I mean this that's just my advice it doesn't really matter I learned Java first because I wanted to kind of build really small kind of applications or games that were like kind of pixel based and just people were using Java at the time for that kind of thing and there was a lot of resources available but then as soon as I kind of got into game engines which is very quickly actually I immediately switched to C++ and picked that up it was really hard at the beginning but I still kind of switched to it and picked that up because I knew that that would be the future right for me because I knew that if I wanted to build game engines I need to use whatever everyone in the world is using to build game engines which is say plus plus and of course now I work at EA on core technology in the Frostbite division building game engines in C++ right so there you go that being said yeah leave your comments in the comment section below I forgot this video homey an Instagram is around Ocampo slash the channel I'll be kind of documenting all my travels and stuff I'm in Germany for about four weeks I'll be traveling around Europe in general so definitely check out my Instagram because there'll be tons of sweet content there and you can stay up to date that way let me know let me know other thoughts for vlogs and questions that you want to answer it because since I am on the road I'm probably not gonna sit down and make any formal like C++ series videos or up until very videos like that because it's gonna be hard for me to actually sit down with a laptop and record stuff but kind of just quick vlogs here and they are really fun and also are kind of part of my travels anyway so drop some comments below us what you want to see and I'll see you guys next time goodbye [Music]

Original Description

Follow me on Instagram! ► https://instagram.com/thecherno Patreon ► https://patreon.com/thecherno Twitter ► https://twitter.com/thecherno Discord ► https://thecherno.com/discord Gear I use: ----------------- BEST laptop for programming! ► http://geni.us/pakTES My FAVOURITE keyboard for programming! ► http://geni.us/zNhB FAVOURITE monitors for programming! ► http://geni.us/Ig6KBq MAIN Camera ► http://geni.us/t6xyDRO MAIN Lens ► http://geni.us/xGoDWT Second Camera ► http://geni.us/CYUQ Microphone ► http://geni.us/wqO6g7K
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from The Cherno · The Cherno · 0 of 60

← Previous Next →
1 3D Game Programming - Episode 1 - Window
3D Game Programming - Episode 1 - Window
The Cherno
2 3D Game Programming - Episode 2 - Game Loop
3D Game Programming - Episode 2 - Game Loop
The Cherno
3 3D Game Programming - Episode 3 - Arrays
3D Game Programming - Episode 3 - Arrays
The Cherno
4 3D Game Programming - Episode 4 - Drawing Pixels!
3D Game Programming - Episode 4 - Drawing Pixels!
The Cherno
5 3D Game Programming - Episode 4.5 - How Rendering Works
3D Game Programming - Episode 4.5 - How Rendering Works
The Cherno
6 3D Game Programming - Episode 5 - Playing with Pixels!
3D Game Programming - Episode 5 - Playing with Pixels!
The Cherno
7 3D Game Programming - Episode 6 - Performance Boosting
3D Game Programming - Episode 6 - Performance Boosting
The Cherno
8 3D Game Programming - Episode 7 - FPS Counter
3D Game Programming - Episode 7 - FPS Counter
The Cherno
9 3D Game Programming - Episode 8 - Alpha Support and More
3D Game Programming - Episode 8 - Alpha Support and More
The Cherno
10 3D Game Programming - Episode 9 - Beginning 3D
3D Game Programming - Episode 9 - Beginning 3D
The Cherno
11 3D Game Programming - Episode 10 - Floors and Animation
3D Game Programming - Episode 10 - Floors and Animation
The Cherno
12 3D Game Programming - Episode 11 - Rotation
3D Game Programming - Episode 11 - Rotation
The Cherno
13 3D Game Programming - Episode 12 - User Input
3D Game Programming - Episode 12 - User Input
The Cherno
14 3D Game Programming - Episode 13 - Render Distance Limiter!
3D Game Programming - Episode 13 - Render Distance Limiter!
The Cherno
15 3D Game Programming - Episode 14 - Basic Mouse Movement
3D Game Programming - Episode 14 - Basic Mouse Movement
The Cherno
16 3D Game Programming - Episode 15 - Textures + More!
3D Game Programming - Episode 15 - Textures + More!
The Cherno
17 3D Game Programming - Episode 16 - Walking, Crouching, Sprinting + More
3D Game Programming - Episode 16 - Walking, Crouching, Sprinting + More
The Cherno
18 3D Game Programming - Episode 16.5 - Exporting Runnable Jars
3D Game Programming - Episode 16.5 - Exporting Runnable Jars
The Cherno
19 3D Game Programming - Episode 17 - Small Adjustments + Birthday!
3D Game Programming - Episode 17 - Small Adjustments + Birthday!
The Cherno
20 3D Game Programming - Episode 17.5 - Creating an Applet
3D Game Programming - Episode 17.5 - Creating an Applet
The Cherno
21 3D Game Programming - Episode 18 - The Beginning of Walls
3D Game Programming - Episode 18 - The Beginning of Walls
The Cherno
22 3D Game Programming - Episode 18.1 - A Few More Things
3D Game Programming - Episode 18.1 - A Few More Things
The Cherno
23 Episode 18.5 - Creating an EXE File in Java
Episode 18.5 - Creating an EXE File in Java
The Cherno
24 3D Game Programming - Episode 19 - Rendering Walls
3D Game Programming - Episode 19 - Rendering Walls
The Cherno
25 3D Game Programming - Episode 20 - Continuing Walls, Fixing Bugs, and Managing Crashes
3D Game Programming - Episode 20 - Continuing Walls, Fixing Bugs, and Managing Crashes
The Cherno
26 3D Game Programming - Episode 21 - Texturing Walls, Fixing Clipping, and Fixing the Mouse
3D Game Programming - Episode 21 - Texturing Walls, Fixing Clipping, and Fixing the Mouse
The Cherno
27 3D Game Programming - Episode 22 - Random Level Generator + Properly Fixing Clipping
3D Game Programming - Episode 22 - Random Level Generator + Properly Fixing Clipping
The Cherno
28 3D Game Programming - Episode 23 - Graphical User Interface (GUI) Launcher
3D Game Programming - Episode 23 - Graphical User Interface (GUI) Launcher
The Cherno
29 3D Game Programming - Episode 24 - Making Our Launcher Work
3D Game Programming - Episode 24 - Making Our Launcher Work
The Cherno
30 3D Game Programming - Episode 25 - Writing and Reading Files
3D Game Programming - Episode 25 - Writing and Reading Files
The Cherno
31 3D Game Programming - Episode 26 - Custom Resolutions
3D Game Programming - Episode 26 - Custom Resolutions
The Cherno
32 3D Game Programming - Episode 27 - Decorating the Launcher
3D Game Programming - Episode 27 - Decorating the Launcher
The Cherno
33 3D Game Programming - Episode 28 - Continuing our Custom Launcher!
3D Game Programming - Episode 28 - Continuing our Custom Launcher!
The Cherno
34 3D Game Programming - Episode 29 - Launching The Game
3D Game Programming - Episode 29 - Launching The Game
The Cherno
35 3D Game Programming - Episode 30 - Colour Processing In-Depth
3D Game Programming - Episode 30 - Colour Processing In-Depth
The Cherno
36 3D Game Programming - Episode 31 - Sprites!
3D Game Programming - Episode 31 - Sprites!
The Cherno
37 3D Game Programming - Episode 32 - Sprite Mapping
3D Game Programming - Episode 32 - Sprite Mapping
The Cherno
38 3D Game Programming - Episode 33 - High Resolution Rendering
3D Game Programming - Episode 33 - High Resolution Rendering
The Cherno
39 3D Game Programming - Episode 34 - Entities
3D Game Programming - Episode 34 - Entities
The Cherno
40 Genesis - My Game for Ludum Dare 24
Genesis - My Game for Ludum Dare 24
The Cherno
41 Vlog + Ludum Dare Results
Vlog + Ludum Dare Results
The Cherno
42 Game Programming - Episode 1 - Resolution
Game Programming - Episode 1 - Resolution
The Cherno
43 Game Programming - Episode 2 - Threads
Game Programming - Episode 2 - Threads
The Cherno
44 Game Programming - Episode 3 - Game Loop
Game Programming - Episode 3 - Game Loop
The Cherno
45 Game Programming - Episode 4 - Window
Game Programming - Episode 4 - Window
The Cherno
46 Episode 5 - Buffer Strategy
Episode 5 - Buffer Strategy
The Cherno
47 Game Programming - Episode 6 - Graphics Initialized
Game Programming - Episode 6 - Graphics Initialized
The Cherno
48 Game Programming - Episode 7 - Buffered Image and Rasters
Game Programming - Episode 7 - Buffered Image and Rasters
The Cherno
49 Game Programming - Episode 8 - The Screen Class
Game Programming - Episode 8 - The Screen Class
The Cherno
50 Game Programming - Episode 9 - Rendering Pixels
Game Programming - Episode 9 - Rendering Pixels
The Cherno
51 Game Programming - Episode 10 - Clearing the Screen
Game Programming - Episode 10 - Clearing the Screen
The Cherno
52 Game Programming - Episode 11 - "Out of Bounds, Baby!"
Game Programming - Episode 11 - "Out of Bounds, Baby!"
The Cherno
53 Game Programming - Episode 12 - Negative Bounds
Game Programming - Episode 12 - Negative Bounds
The Cherno
54 Game Programming - Episode 13 - Timer
Game Programming - Episode 13 - Timer
The Cherno
55 Game Programming - Episode 14 - FPS Counter
Game Programming - Episode 14 - FPS Counter
The Cherno
56 Episode 15 - Tiles
Episode 15 - Tiles
The Cherno
57 Game Programming - Episode 16 - The Map
Game Programming - Episode 16 - The Map
The Cherno
58 The Walls 2 - Minecraft PvP Survival Map
The Walls 2 - Minecraft PvP Survival Map
The Cherno
59 Game Programming - Episode 17 - Key Input
Game Programming - Episode 17 - Key Input
The Cherno
60 Game Programming - Episode 18 - Controlling The Map
Game Programming - Episode 18 - Controlling The Map
The Cherno

The Cherno emphasizes the importance of learning programming fundamentals and building software over choosing a specific programming language, showcasing the versatility of languages such as JavaScript, PHP, and C++ in software engineering and game development

Key Takeaways
  1. Learn programming fundamentals
  2. Choose a programming language based on your immediate goal
  3. Build software using your chosen language
  4. Add other languages to your skillset over time
  5. Switch to other languages as needed for specific projects or industries
💡 The best programming language to learn first depends on the project and the individual, and learning how to build software is more important than choosing a programming language
Up next
George Hotz | Programming | tinygrad, starting on CLOUD=1 | Part 2
george hotz archive
Watch →