Why does everyone recommend learning Python first but then use JavaScript for everything?
Posted by 1vim@reddit | learnprogramming | View on Reddit | 74 comments
Genuinely confused. Learned Python, now job listings want React everywhere.
InVultusSolis@reddit
I don't know who "everyone" is but they have a shitty take.
I wouldn't recommend learning Python first, but I'm not really in a majority with that opinion.
alliejim98@reddit
What would you recommend learning first?
InVultusSolis@reddit
C with a little bit of assembly sprinkled in. Either ARM or x86, it doesn't matter which.
My personal recommendations in no particular order would be:
I understand that this is a fairly slow path to "building something useful", but this is an investment of time. When you do end up picking up something like Python or JavaScript, you will already have developed a very acute sense of what the computer is actually doing, how to structure your code, how to understand the problem you're trying to solve.
Affectionate-Tart558@reddit
I started with C. I don’t know if it would have been better to start with python but I think having garbage collection means you’ll be missing some important memory related details that will be relevant when you start to focus on improving performance in your applications
alliejim98@reddit
That's a really good point! I started with Python. Memory and performance were concepts I struggled to understand for a long time until I did some work with C.
intinstitute@reddit
Python and Java are both important languages simply:
Top-Conflict7949@reddit
Python is a good language to learn to program in. JavaScript is heavily used in web development, and is a core competency for any web developer. However, it has some weird quirks that are counterproductive to learning programming in my opinion.
WittySophisticate@reddit
I learned and forgot python. pretty much TS and Java now
Express-Channel-1686@reddit
python is easier to think in for beginners. js is what most jobs actually pay for. order doesn't matter much, you end up needing both eventually if you want to do anything web.
ZelphirKalt@reddit
"Everyone" here is probably by nature of things mostly mainstream language users in bog standard dev jobs creating CRUD.
After having learned many languages and being into computer programming for something like 15+ years, I would not make that recommendation, unless you are in a hurry to get a mainstream dev job. If you have time to learn more from first principles up, I would recommend things like SICP and the Scheme version at that, for a much deeper understanding of computer programming, which will transfer in big parts to any other language or ecosystem you learn.
bird_feeder_bird@reddit
I started with python because I heard it was easy to learn for beginners. The I learned Javascript so it would be easier to share games with my friends :p
pa_dvg@reddit
Python is used in academia / sciences because it’s easy to learn, which is the same reason people recommend starting with it as a programmer.
If your company does stuff with data at all, it will likely use plenty of Python. It’s a great skill to have
CoffeeAndWoods@reddit
Python is badass.
josluivivgar@reddit
because python is the language that's less in your face about it, it's syntax is clear for most, it's still widely used and great for learning and for practical use.
JavaScript is a language that's used a lot for frontend because it's what people use for browser code, it's also a very quirky language, and thus the reason people don't recommend it for learning.
see you can always learn another language, but what you want are fundamentals, and in my opinion you have two options for fundamentals.
either learn a language that gets out of your way to learn those fundamentals like Python, or a language that forces you to learn them or face the consequences like C/C++
it doesn't matter which you choose imo, but once you learn the fundamentals, learning another language is irrelevant.
Destination_Centauri@reddit
Your comment is good, and I voted it up.
But the ending part... Well, I would never say that learning another language is "irrelevant" in terms of effort which seems to be what you're implying.
To learn a new language to be proficient and productive at it is rarely as easy as it seems.
Otherwise, all programmers would just simply learn all programming languages, if it's so "irrelevant" and easy to learn! But they don't.
josluivivgar@reddit
well it does take effort, but the idea is that you can learn the language as you need to.
my current job's stack is ruby on rails with react.
I had never used ruby on rails before I joined that company, and I just learnt on the job. sure for the first 6 months I was definitely worse at rails than every other person in the job, but you know what.
even if I had learnt the language beforehand, I'd still be worse at rails (in the context of the application I'm working) for at least 5 months possibly about the same 6 months.
why? because when doing a job context is very important, and by the time I learnt the context of the application, I had already learnt the language, and after that knowing the ins and outs of the language is useful, but I'm not working alone, my teammates pass on that knowledge in code reviews and suddenly I'm way better at understanding how the language works at a deeper level.
so yeah it's not like it doesn't take any effort, and maybe "irrelevant" is too dismissive of a word, but my point is that you can learn the languages as you need
Ed_Blue@reddit
You blinked when 50 new JS frameworks went live.
makonde@reddit
Python is seen as "easy" in the education/academic community especially when teaching kids and I think this has spread to other places because of the way its written and no {} etc. I personally loath indentation having meaning.
Destination_Centauri@reddit
Yes thank you.
That's pretty much the only stumbling block for me (for years and years now!) embracing Python more: indentation having meaning.
:(
But creator is extremely stubborn on that point, so... Anyways, I still hold out hope someone will just fork Python and ditch that indentation thing for {} instead. At which point I'd probably really love the language!
huuaaang@reddit
Don't even learn JavaScript. Go right to Typescript.
Dazzling_Music_2411@reddit
Python is an acceptable general-purpose language with a myriad of diverse applications, JS and its frameworks are heavily oriented towards Web client-side.
Two quite different use cases.
Stedlieye@reddit
Seconding this. Python comes up all over the place, like data analysis. You can wrangle a lot of data with Python.
They also use Python for Eve Online (massively multiplayer online space trading/piracy/combat game) for almost everything but the graphics.
Destination_Centauri@reddit
Which language do they use for the graphics?
Stedlieye@reddit
I believe that is in C++
xenomachina@reddit
Python is also a much cleaner language that was designed to be readable and easy to learn. JavaScript was originally designed as a quick hack, and has loads of warts and gotchas. It is much easier to do things "the wrong way" in JavaScript than in Python, making learning which parts to avoid unnecessary overhead for beginners.
Solid_Wishbone1505@reddit
Server-side as well
Monster-Frisbee@reddit
Yeah, if you’re focusing on language, you’re worried about the wrong thing. It’s an indicator that you’re probably not ready for the jobs you’re looking at in the first place.
djhaskin987@reddit
Python is great if you don't know which subsection of the programming world in which you will end up.
Data science - Python is king Backend Development - Many languages are used here, but Python is a strong contender Research - Python excels here
Pretty much the only place where there is no other answer but JavaScript is frontend (making user interfaces). Coincidentally lots of devs focus here.
DrShocker@reddit
I'm not sure I'd say desktop UIs most often use C++. Certainly you can and sometimes you need the performance, but I would bet it's more common these days to use electron with JS or C# with whatever windows makes easy. Maybe in some cases game engines too.
Overall though I agree about Python being able to br used in all these spaces, but JS is so bug and all consuming lol
Gugalcrom123@reddit
Electron is not a desktop GUI, regardless of the marketing around it.
DrShocker@reddit
I mean, I agree I'd rather live in a world where people make choices that respect my time and hardware, but unfortunately I'm I'm this world.
Destination_Centauri@reddit
You shouldn't agree on the basis of "electron not being a desktop GUI" because it absolutely is.
Not sure why user Gugalcrom123 is saying it's not.
But just for the record: I personally hate electron programs! But still it is most certainly a valid GUI platform for the desktop. That's what it was literally invented to be.
DrShocker@reddit
I was trying to agree with the sentiment of not liking electron because I seek agreement rather than arguments where I can. 🤷
But yeah, that's valid to point out.
Destination_Centauri@reddit
It actually most certainly is a desktop GUI.
Is it my favorite? Nope! Quite the opposite. Do I hate it? Yes! Yes I do.
But it is increasingly used as a desktop GUI. You're not aware of that?
Gugalcrom123@reddit
Who is doing GTK for their job? At least other than the Inkscape part-time offers they had to help them improve the GUI. I am saying this because I love GTK, but I don't think it's seeing much use in the industry, though there are very many GNU/Linux apps made with it, mostly libre.
Solid_Wishbone1505@reddit
Javascript is used for way more than just UI frontends. I haven't touched frontend in a year or so and use javascript / typescript everyday for server-side backend work
Jahonay@reddit
If you're in web development, just assume that you'll need to know JavaScript no matter what, or at least that you should.
Python is still a great language to learn, and I've seen plenty of jobs that require it.
Learn both.
backfire10z@reddit
As an addendum here: languages are tools. Tools have different purposes and are used in different ways. If your fundamentals are solid, learning a language to the point where you’re capable enough to build stuff becomes much easier.
Learning how to build with Python will mean you pick up JS much quicker.
Jahonay@reddit
Totally agree
Adventurous-Hour9827@reddit
porque python es fácil de aprender y sirve para enseñar a pensar en código, pero el mercado laboral es otra cosa. la mayoría de los puestos de frontend y fullstack piden javascript/react porque es lo que corre en el navegador y no hay alternativa real.
lo bueno es que si ya sabes python, javascript no es tan difícil. la lógica ya la tienes, solo cambias la sintaxis y te acostumbras a lo asíncrono que es donde la gente se pierde al principio
s-e-b-a@reddit
You must have listened to "everyone" except for web developers. And now are trying to get a job as a web developer instead of a job where Python is used.
androgynyjoe@reddit
Learning a language is meaningless unless you can actually do stuff with it and Python is a great balance of approachability and ability to do lots of stuff. Python has a bit of a jack-of-all-trades thing going on. It isn't really the best at much of anything, but it can do an enormous amount of things.
So, imagine you're teaching a class or running a code camp or something. There are going to be a bunch of people who have different end goals and it's best to start with a language that gives everyone a path forward. If you teach everyone Javascript then the people who are interested in data analysis are going to have to learn something else to achieve their goals. But if you teach everyone python, then the web devs will at least have Django.
AlSweigart@reddit
Python's syntax is (fairly) consistent and easy to learn. It's based on a language called ABC which was specifically designed to help beginners learn programming syntax and concepts.
JS is infamously a bit of a mess, syntax-wise. But because everyone use browsers, JS became hugely popular. It also became popular on the backend with NodeJS because tech companies didn't want to have to hire people with different language skills to do front end and backend.
You should learn multiple languages anyway and Python and JavaScript make up much of the market.
vikmaychib@reddit
I don’t know man. I contribute to a project with full stack developers and what I saw those guys did was to put much of the load on python and very little on JS. The even used python to generate automatically some JS modules.
coderssh@reddit
Every language has its place. A lot of devs lean on JavaScript when they want to move fast across both frontend and backend. Python, on the other hand, really dominates the data science side of things.
Dull_Report3236@reddit
Python is the best first language for teaching programming concepts — clean syntax, readable, nothing gets in the way of actually learning logic. That's why it gets recommended. But the job market doesn't care about your learning journey, it cares about what runs in a browser, and that's JavaScript.
The honest answer nobody says upfront: Python and JavaScript are tools for different jobs. Python dominates data, scripting, backend APIs, automation. JavaScript is unavoidable the moment you touch anything frontend, and React became the default hiring filter whether that's fair or not.
The real confusion is that "learn to code" content and "get hired as a dev" content are two different industries with two different incentives, and they rarely tell you that clearly.
Python was never wasted — the fundamentals transfer directly. You're not starting over, you're just adding the tool the market actually asks for.
Kwith@reddit
I started with Python because, for me anyway, it was an easier way to get back into things. Overall its a less difficult language to learn while still getting back into the programming mindset. YMMV
Gugalcrom123@reddit
Because Python is a language that makes much more sense than JavaScript and it is easier to do things besides WWW front-ends with it. For WWW front-ends, though, JS is mandatory.
ParadiZe@reddit
Javascript is just as often recommended to beginner. Futhermore, people who learn javascript and like javascript tend to only use javascript from my experience.
automai@reddit
It depends on what jobs you're looking for...
You're not going to find Python is frontend job listings...
Python is primarily a backend language...
Frontend roles are dominated by JavaScript and related tools (like React, Vue.js, etc.)...
Zuldwyn@reddit
Python is an interpreted language is the issue. It is very slow because that code is not actually turned into machine language (010011) instead, its live interpreted WHILE your program is running.
So jobs will ask for other languages, because while python is great and easy for prototyping its very inefficient and slow if you need that
nekokattt@reddit
technically the reference implementation it is compiled to bytecode and interpreted at the same time, alongside JIT on newer versions (forget if that is still opt in or not though.
Zuldwyn@reddit
I deleted my comment if it's wrong but can you elaborate or direct me on where to learn more about that so I can understand better?
nekokattt@reddit
it is compiled to bytecode that is read by an interpreter in Python, but for CPython it will cache that bytecode after the first run (which is what the
__pycache__directories you see dotted about are for).Zuldwyn@reddit
So why is it so difficult to package a python project into an exe and requiring you to package the interpreter with it? If it caches the compiled bytecode, why dont they run the code and then use that for a .exe?
nekokattt@reddit
it isnt that difficult, the exe is just cpython and then the runtime and your sources embedded in the binary.
It is just a messy solution as Python isnt designed to be used that way.
Damodara_trilok_9@reddit
Python is like the friendly teacher that will helps you in understanding programming. JavaScript is the coworker that suddenly shows up everywhere whether you invited it or not
PopulationLevel@reddit
Python is a good programming language, as programming languages go. Good syntax, good libraries, widely useful.
Javascript was hacked together into a web browser in like 10 days. As a programming language, it is weird and contains several bad decisions. We’ve been trying to replace it since it gained popularity. “JavaScript: the good parts” was a very thin book.
Because javascript is the native language of web development, it is incredibly useful, because the web is so useful. Otherwise, nobody would have ever used it.
Like sure, you’ll probably need to learn it. But please, don’t think all development has to be like this.
prof_dr_mr_obvious@reddit
How dare you suggest I use JavaScript?! The horror!
Dahir_16@reddit
Easy for me.
NCKBLZ@reddit
Depends on what you are after, doesn't make much sense. Python is probably simpler to learn that's why they recommend but it really depends on what you are trying to do
Money_Story8685@reddit
Comment:
honestly, the real issue is people mix up “first language” with “job language”
Python gets recommended because it’s easier to learn fundamentals without fighting syntax, so you actually understand how programming works first.
But job demand (especially web) is heavily JavaScript/React, so it feels like everyone switches later—even though they’re just moving into a specific field.
what worked for me was starting with Python to get logic down, then picking a direction (web → JS, data → Python deeper). I used tools like VS Code + small projects, and sometimes Runable just for quick first-pass structure when building stuff
the thing people miss is languages don’t matter as much as building something useful—once you get that, switching is way easier
HasFiveVowels@reddit
It’s a long lived echo chamber from back when JS was first introduced
AntNo9062@reddit
The premise of this question is fundamentally wrong. Everyone is not using JavaScript. Web developers and especially front end web developers who specialize in creating front ends using JavaScript and React are the ones who mainly use JavaScript. Why would people recommending a first language recommend one that is only relevant to web development when not everyone does web development.
You are right that web development jobs are extremely common but I think you’re wrong when stating that everyone uses JavaScript for everything.
kawaidesuwuu@reddit
typescript always typescript only typescript.
M_Me_Meteo@reddit
Optics.
More?
Python is cooler than JS. It also has the perception that it's the "data science" language of choice.
All of the new cool software from the last 15 years has been on the web. We went from dot-com to social media to "cloud" to AI. It's all on the web.
So you start by saying "I'm going to use what the real wizards use: Python" but then you learn that Python was invented for people who wanted to abstract away the powerful programming part of programming and only focus on using it for configuration and linking existing tools together.
So when you want to build your startup and get it up I the cloud and scalable and ready for the web, you use JS because of the promise that JS can be used for a full stack app.
The whole processes of learning to be a developer is the process of learning about new technologies that will make your life easy or reduce the number of developers required, which are great right up until they aren't anymore.
schoolmonky@reddit
Learning a language is not going to get you a job, building something (with any language) will.
AngryFace4@reddit
I’ve been saying exactly the same thing for 10 years in this sub.
RajjSinghh@reddit
Python is usually the language you learn in school because it's versatile and relatively simple compared to some other languages. It's very easy to get something up and running well enough in Python, which is perfect for the classroom.
Javascript is mainly used for web development, or desktop apps that start as websites, like Spotify, Discord, or Slack. If you're going to work in web, you will need Javascript. A lot of junior jobs are web jobs, so lots of people need Javascript.
Generally you're going to switch between languages a lot, so starting in Python and moving to Javascript when you need to write a website isn't uncommon. But if you know you're going to be making websites, you absolutely can start in Javascript. If you're going to work on something else in the future, don't be surprised if you need to learn a new language again.
mist14rium@reddit
python has an easier syntax that you’ll remember faster, when you’re used to it and actually understand the logic behind the code then you can have a better understanding of javascript
both are useful languages with easy syntax tho, python is just easier
Deep-Alternative8085@reddit
Learning python first makes you learn JavaScript faster than the other way around
Top_Bell_7053@reddit
Python has slightly less foot guns than js and it has more general use cases. Javascript is still mainly used for web development, now backend as well as front-end.
At the end of the day they're both similar - interpreted languages with dynamic typing so if you can learn the syntax you won't struggle too much. Generally in your development career you'll learn how to learn new languages, but that's separate from learning programming and good development practices
Beregolas@reddit
There are many different languages, all for different purposes. Python is often recommended for beginners, but it's not the only recommendation. I see JavaScript, Java, C and C++ also mentioned a lot.
All of these have different usecases:
Python is backend, Datascience, Automation and ML
JS/TS is Webstuff
C/C++ is low level and/or embedded
and so on.
If you want a job in a specific field, you need to learn one of the relevant languages for that field. There really is no job as a "programmer full stop". You are a backend programmer, a fullstack programmer, an embedded programmer, a game developer, a webdeveloper, etc.
The good news is: languages are not magic. If you know how to program, just learn the language you need.
JohnBrownsErection@reddit
That'd be news to me. I do practically everything with python and I actually only recall ever writing Javascript exactly one time, when I took web development.
I could probably still figure it out these days if I needed to but in general I don't touch it. Haven't needed to.