Ep#26 Which Coding Language Is Best
===
[00:00:00] All right. Welcome guys. Welcome to another episode of easier said than done and how to do it.
Today what I'm going to talk to you about is this very important question of which coding language is the best and I want to end this debate for you once and for all But before we dive too much into that I accidentally pasted the heading into google And of course, there's a ton of material here, right?
Like this is from Level up the blog, choose Python if you want ease of learning and rapid development. Go for Python if you work in such and such industries. For the other ones here, for example, I think it talks about choose Java if you want, high performance, robustness, and scalability.
And then there's Quora
INTRO
---
Welcome to Easier Said Than Done with me, Zubin Pratap, where I share with you the tens of thousands of dollars worth of self development that I did on my journey from 37 year old lawyer to professional software engineer. The goal of this podcast is to show you how to actually do those things that are easier said than
And then there's Quora
answers and there's Reddit threads. There's Stack Overflow, there's blogs, et cetera. There's no [00:01:00] shortage of information out there. And I'm going to try and really approach this in a way that actually makes sense. Now, I completely disregarded this question when I was learning to code, right?
And even when I went to Google and I'll talk about that in a moment, I completely disregarded all this stuff guys, because frankly it's a BS question. It's a bullshit question. It's rubbish.
It's a stupid question. And that is really the heart of it. It's. not going to help you make a decision because all that's happening is you're taking opinions based on limited perspectives that other people have seen based on their very narrow domain knowledge or past history.
And you're applying that question to yourself and assuming that what they're saying is going to work for you. I'm going to share my screen for
this one. It's so meaningless guys, that it's it's such a meaningless question. Okay. It cannot be answered in a meaningful way.
It's saying, what's the best fruit. What's the best car? What's the best color? What's the best make of guitar? It's pointless. It's a useless question and it's the wrong thing to say i'm not going to learn to play the guitar until I figure out what the best guitar is Or i'm going to keep [00:02:00] changing what guitar I play based on what the best guitar is or the best style of guitar to start learning with honestly That is absolutely the
wrong way to go about this whole thing.
Okay, because at the heart of it, it is a symptom of misunderstanding the problem. It is a symptom of misunderstanding the problem. The problem is not what's the best. The problem is what should you learn full stop? That's the problem. What should you learn?
It is completely dependent on you and your goals And
so
at the heart of it, there is a misunderstanding of what being a programmer is Okay, it's not about oh i'm a java programmer or a python programmer.
I'm a golang programmer, right? It is More like can you drive a car or not? Does it matter what make and model it is?
Can you drive a car or not? Does it matter what make and model it is? Or can you make some music regardless of the instrument you're given? Do you understand the principles of what a tune is, music is, and so on, right?
Another way of thinking about it is that to be a [00:03:00] doctor, you've got to, whether you're a brain surgeon or an eye specialist, you've got to learn the fundamentals of medicine either way. Okay. And that's what being a programmer is understanding the fundamentals of programming, understanding the more advanced non fundamental levels of programming and what programming complex systems is at every increasing scale.
That's what programming is. It's not about the language.
In fact, I'm so certain of this point of view that when I applied to Google, I knew none of the languages I was probably going to write. In fact, the team I ended up joining in Google cloud was largely in Golang and I knew exactly that much Golang.
Zilch nada. Actually that's not entirely true. I had done a couple of Golang tutorials and stuff for that, based on, I don't know, I can't remember some online tutorial, which is frankly rubbish. It was It's a bit like learning ABCD and thinking that you know how to write a novel just because you've learned the alphabet, right?
I didn't actually know any of the languages that I ended up having to write at Google. And the funny thing about Google is, this is pretty unique to a lot of the big tech and FANG places is, that they have a lot of [00:04:00] internal tools because they're so big. Their code base is so big, their build process is so huge that a lot of the commercial public systems Aren't actually going to work for them.
They're so big and they're so bespoke as they call it that things like git Version control is not really the right thing for google's mono repo because it's the largest mono repo in the world It literally wouldn't fit in the average laptop and actually building your code given it's the world's largest mono repo Actually building that code is going to be really hard in a tiny little machine, right?
CTA
---
Hi, if you want a no BS insight into how to change your career, whether to code or something else and how to actually get job opportunities in tech, then please subscribe and like.
It's no BS because I have zero incentive to mislead you. I just want to help you and give you tons of value so that you will consider working with me to get to your next career.
Take a look at the
description text below to learn more about the training I offer. But I do post content here regularly and by subscribing and liking and hitting that notification bell [00:05:00] you will get to know when I post new industry insights for you. You'll also know within about three seconds if you want to learn more, but at least you won't miss out.
Oh, and please follow me on LinkedIn too. I pretty much post there every single day. Just look for my name, Zubin Pratap. All right. So please like, and subscribe to this channel and let's get back to the episode.
It literally wouldn't fit in the average laptop and actually building your code given it's the world's largest mono repo Actually building that code is going to be really hard in a tiny little machine, right? So a lot of it's done in the cloud. So for all these reasons, it's really important to understand that the answers to what code language is right for you to learn is entirely context dependent.
Now, just because I didn't need to know how to write GoLang to get into Google, into a team that was writing GoLang, doesn't mean that's universally the case.
And that's another point I want you guys to understand what's true of one situation may not be true of another situation. So any advice you get from a blog only is a snapshot of that person's perspective based on that person's information at that moment in time. There is no universal [00:06:00] formula to this, which is why
when I work with my students in the Inner Circle Coaching Program, It is always entirely dependent on them, their circumstances, their goals, and what they already know and what they're trying to achieve in this transition into coder, right?
I do not give the same plan to two people because they don't need it. The same plan will not work for A as it will work for Z. It just doesn't work that way. Okay. Because life is a bit too complex for that. So just because in Google, they didn't care what language I knew. In fact, I did
my Google coding interviews, my technical interviews, I did them all in JavaScript. Because there was a strategic reason for that, which is, Python and JavaScript are the faster languages to use in coding interviews. I was more familiar with JavaScript because I'd come from a web dev background.
I'd done one year of web dev professionally before that . And so I just knew this is the fastest way to get the maximum results out of an interview is to use the language that takes the least amount of time, right for me and in terms of actual keystrokes, but that's a whole different tactic that I had to use in interviews to work out how to optimize for my interview success, whole different thing, right?
[00:07:00] Lots of other companies are different, right? And I've been in interviews where the background I had, the language I knew, the stack I knew, the tools I used was actually quite important for that team. Why is that the case? Because different team sizes have different resourcing needs and they're hiring to achieve different purposes.
A lot of smaller teams need you to hit the ground running now. Google gives you one quarter, three months, sometimes even up to six months, depending on the team, depending on the complexity, they give you three to six months to ramp up. Smaller places don't have that luxury. Startups and scale ups definitely don't have that luxury, right? Different contexts, different places have different rules for what they look for in interviews. And you have to know these rules as part of your plan when you're preparing yourself.
Okay. So what is the answer to the question? What's the best coding language to learn? Perhaps this is the ex lawyer in me, the answer is it depends. Because it's a stupid question. The real question is, what stage are you at? And what is your goal?
For example, are you trying to learn coding for the first time? If so, then you need to [00:08:00] learn the fundamentals of programming. In other words, you need to learn the language and its constructs in the context of programming generally, not to master a particular language, but to understand the basic principles of programming.
And here's the example I'll give you to help you understand. You can write a novel That is a wonderful bestseller in any language.
In fact, most cultures have their own version of a bestseller, right?
You have them written in Greek. You have them written in Arabic. You have them written in Sanskrit and in English, in Spanish. Every language has phenomenal stories , right? Every language. What's important. Is it the language? Or is it the ability to tell the story, right? Is it the ability to compose prose or poetry or stanzas?
That is the true art form. And it's the same thing in programming. The language is secondary. It's a tool to communicate something else, to build something else, right?
So if your goal is you're starting out and you want to know how to program, then it really doesn't matter [00:09:00] what language you pick.
But and this is what I do with my students in the Inner Circle Program, regardless of what their end goal is, I will start them off on the basics, the foundational principles of what is programming. Then you go into learning about specific languages that is going to take you to your eventual goal.
Then you learn about the tools and frameworks surrounding that language. Then you learn about the higher order tools and frameworks covering the typical workflows in which that language is used. And so you stack it and stack it. I guess if you were to compare it to driving, it doesn't matter what car you drive, right?
Because if you're just trying to get from A to B, pretty much most cars will get you there. However,
if you wanted to drive a manual and you never driven one, and all you've learned is an automatic, you're going to have that shift that's going to be a very hard for you to make manual to automatic. No problems. Automatic manual, very hard. Why? Because automatic drivers don't have some of the fundamentals on how to use gears.
They don't need it. That's fine. Totally. Okay. But if they ever did, they wouldn't know how to use it. So ultimately as a programmer, you need to learn the right foundational [00:10:00] fundamentals for your specific goals, right? I did not do most of the computer science stuff that other programmers did because I was self taught and I yes It took me a ridiculously long time to teach myself and I did terrible mistakes And now people who join me in a circle program do in 12 months or less what took me over five years And that's because I can teach them what I know But we don't need computer science deep in ads of computer science, right?
You don't need to learn about bit and byte manipulation and stuff for that to do effective programming work. It's useful and you'll pick them up on the job as I've had to do, but you don't actually need that a lot of the time. So why spend time on that? Same thing with data structures and algorithms.
It's a giant waste of time for people learning to program. It's really useful in certain contexts where you're trying to actually get into the job and certain types of jobs require it. In fact, check out my other episode, I think 24, 25, with John Cricket, very senior practitioner, CTO level guy from the UK.
One of the biggest influences in UK tech and online. And he talks about it. He says, most people learn DSA [00:11:00] when it's not required for what they're actually trying to do. And the purpose of DSA is to act as a filter, not as a way to tell whether you can program well, that's a misunderstanding people have.
So the correct answer to what programming language to learn is it depends on what stage you're at, what goal you're in. Okay. Now, if you're a learner and you're starting, then you want to choose a simple language. So that you're not cognitively overloaded and you're learning the principles and the patterns of programming.
And then you can keep stacking on the more complex stuff, right? Like when you're learning to ride a bike, you first start with the training wheels. You don't worry about the gears. You don't have a bike with gears. It's just a fixed gear. And over time you take the training wheels off. Then you get the bikes with the gears.
Then you get the fancier bikes and the bigger bikes and the biggest wheel and, and so on and so forth. So you have to go layer by layer.
Now, if you're a professional, it's a totally different thing. And unfortunately, guys, a lot of the learning material out there is targeted at people who already know how to program and they're trying to pick up a second, third, fourth language , right?
So a lot of programming material out there is, Python for beginners. Beginner what? Beginner programming? [00:12:00] Or beginners to python Big difference, right? Golang for programmers is clearly a title that says, if you're a programmer and you want to learn how to use Golang, this is the course for you.
But most titles aren't done that way. And they're not done that way for a reason. They rely on a lot of people buying it who will never use it. That's their business model. Okay. So when I work with students in my Inner Circle Program, I will tell them, you do not need to learn this language until you know the fundamentals of programming.
Start there. Okay. Now, where do you start? This depends on your background, your experience, your prior knowledge, what convinced, what conceptual strength you already have in some of the fundamental principles. If you're a complete newbie, never coded anything before, there is so much for you to learn before you start to understand how this line of program is even working.
So you have to take all that information into account, into consideration when you decide the starting point. Again, this is what I have to do with my students in the Future Coders program. Everybody who comes in, whether they come in from a bootcamp or not, I do a [00:13:00] baselining test, right?
And the baselining test is different for different people. Obviously, the people from bootcamps have a harder baselining test than people who've never written a line of code before in their life. Obviously, right? And from that baselining test, I work out, okay, roughly where is their starting position? And then I give the material from that starting position onwards.
And then we also map the goal because direction is more important than speed We need to know what kind of role they want what interests them what they're going to be good at And what kind of career they want to build because it's not just about the first job I frankly don't care about the first job.
I take that for granted What's important to me is in 20 years where you're going to be . So it's really important to take into account the starting point just like any map Just like any map or when you order an uber it needs to know where to pick you up from Because that's your starting point I need to know where you are in order to teach you all the things you need to know.
I need to know where you are. I need to come to where you are and start you off there. It's not me telling you, Oh, you don't know this? It doesn't matter. Just start here anyway. It's not going to work, right? This is why most people quit, get overwhelmed, especially at boot camps. They get very overwhelmed [00:14:00] or most boot camps actually have an entrance test.
If you don't know this level of code, you can't survive the program. And they keep it low and then they rush you through everything else, right? Because once you're in again, I don't think that's the right attitude because you don't actually learn that way under stress. So your background matters Okay, what else matters in terms of deciding what your language is?
What's your target market, right? What and then what kind of target role in that market do you want? So for example, if you're in a non hub center There's probably not a ton of programming roles and what tends to happen And I've seen this being on the hiring side is that teams, when they're deciding what tech stack to use in the product, we'll look at the local marketing says if I'm going to do something like rust or some other language Julia, for example are there going to be a lot of these developers available?
So the decision as to what kind of tool you're going to use is often, not always, but often influenced by the depth of the local talent market. i've seen this directly I witnessed a hiring manager's or an engineering manager's decision on a new product [00:15:00] when they were migrating their codebase and building new things They were like, do we want to go kotlin or do we want to go to typescript? Like it was literally that different because it wasn't one of those apps that required the java level of performance You and the big deciding factor for them was if we had to hire people, how easy is it going to be to find people who can write in this language, who understand using this language professionally.
So if their decision on what language to choose is decided what's available in the local market. Your decision on what to learn also needs to depend on what's being sought or demanded in that local market Which is why your target market and your target role in that really matters Now if you're going to banking and finance chances are you're going to be Touching java and Scala because it's very popular for the banking and financial industry If you're going into the AI and ML world, you'll almost inevitably be touching python not necessarily but almost inevitably, right?
And so your target role matters. For the same reason that you want to learn how to be a general medical doctor before you become a brain surgeon [00:16:00] I think it's a good way to start if you start with web development. It creates solid foundations You can get immediate feedback You can actually build little toy project apps, which you can't really do if you're doing pure back end stuff If you're doing, enterprise grade applications, you're not going to first of all build an enterprise grade application But if you're only doing stuff like that, it's hard to demonstrate what you're doing So I think there are certain advantages if you're a beginning learner to start focusing on certain web development stacks But if you're a slightly more seasoned learner and you want to get into a different kind of programming Maybe you want to do embedded systems like some of my students have done. Maybe in five years.
You want to go to the AIML stack and start being an AI engineer then you probably need to learn some python Maybe even C++ depending on where or which company or what your local market looks like again It's so context specific and you have to know how to research Where the ball is right now and where it's going to be in five years You need to skate to where the puck's going, not where it was five years ago, okay?
And that's the problem historical blogs is they give you a snapshot in time They don't necessarily tell you where [00:17:00] things are going and the ones that are headlines like oh, you know The five languages you must learn that's clickbait. That's not education. There's a big difference That's designed to make you stop and click and grab your attention for a moment.
That's not education They cannot educate you if they don't know you Okay, it's not possible to educate you meaningfully without knowing you. Yes, you can talk in vague generalities But your career is not going to be built on vague generalities It needs to be built on who you are what your goals are what your current level of skill is and Where you live (geography) is super important.
Okay, so all of this goes into the question of what language or languages should you learn now one of the big things that I see people getting wrong is their expectations. Okay. Why does this matter? Because the wrong expectations will drive the wrong decisions. The wrong decisions will get you terrible results and terrible results will drive worse decisions.
Okay. How does this matter in the context of programming languages? Well, I think a lot of people don't have the right expectations on what a programming language is in some cases. In fact, I'd say that's the most common one.
Most people seem to think HTML and CSS and SQL, are [00:18:00] programming languages. They're not. HTML literally stands for hypertext markup language. It's a markup language. CSS is not even a language. It's cascading style sheets. It's a styling script. And SQL is structured query language. It's a query language.
It's not a programming language. Programming languages are things like Java, JavaScript and so on. Yes, you need to use programming languages in conjunction with HTML and CSS in order to build a web application. Okay. You need to know all three. You need to know a programming language, plus you need to know some HTML and CSS.
And if you're handling data in the backend, you need to know some SQL or something similar to that. Okay. So you need to learn these multiple skills in order to get it all together. So thinking that HTML and CSS and a little bit of JavaScript is enough for you to be competitive in a professional market is the wrong expectation.
The next most important misconception or wrong expectations the number is number two Which is that there's an easy language and there are hard languages now brought that's correct. Yes There are easier languages and there are harder languages But none of them are easy Okay, [00:19:00] when you're starting out programming They're definitely not easy If you already know a fair amount of programming then picking up a second or third language is much easier And even then some languages are hard even for experienced programmers For example, some people consider rust to be quite hard and it is C++ again can be considered quite hard By some people who aren't that familiar with programming because it's much more what's known as low level and we won't go into that Now but things like python javascript not considered very hard even golang has a lot of the performance of a lower level language with some of the ease of a Higher level language and somewhere in between in my personal opinion.
Okay, but whether it's easy or hard if you're absolutely new to programming, assume it's hard because it's not easy. No one gets paid a lot of money for doing easy things. It just doesn't happen.
And the third most common one is that you can jump to the top of the mountain with one or two steps in other words that you can learn a pretty advanced programming language and just leap straight to something like AI engineering [00:20:00] or machine learning algorithm engineering, right?
You can't go into this advanced brain surgery level or heart surgery levels without first being a medical doctor. Especially these days, because all of you are getting sucked into the hype around AI, I get it. Most of you want to be AI engineers don't realize that To do that, first, you need to be a software engineer of some sort.
First, you need the market to accept you and treat you as a software engineer, and you then build into those skills over a few years. Okay, you can't go straight to the penthouse by skipping all the other floors in between, and you can't go straight to being a heart surgeon without first being a licensed medical doctor.
Okay This one guys, the third one is in my opinion, the most dangerous false expectation, because it causes people to try to skip steps. And as Jeff Bezos says, you just can't skip steps, but it causes people to try and do it. And then they fail and then they wonder why they don't succeed.
And then their confidence gets damaged or they think the world is unfair. And now to get them when all that's happened is that you try to jump up the mountain in one to two steps instead of taking the few hundred steps it's going to take.
So the first thing is, [00:21:00] if you're wondering which language to learn, ask yourself, am I a complete beginner or have I learned to program before?
If you're a complete beginner, then probably go for a Python or JavaScript. I personally favor JavaScript because you can do a few more things with it. But again, that's my opinion. Okay. But more importantly, it doesn't matter whether you choose Python or JavaScript. You don't want to go for something more advanced like Rust for sure, but choose one of these and then stick to it and focus on learning programming fundamentals.
Which is getting, writing programs that do the things you want it to do. Start small. Maybe a simple calculator application. Maybe a simple 10 question quiz application. And then keep building features on it, right? And if you want to have a front end something that runs on your browser Then you need to learn some html and css and learn how to render apps in the browser And then you stack it up bit by bit.
Okay, do not skip steps And yes, it's going to take you more time than you really want to okay But if anyone told you that you're going to be good at programming or you're going to learn how to program Advanced [00:22:00] machines like computers. If you really think that's going to happen with a few weeks of effort, then the problem is not that things are hard or that the world is unfair.
The problem is that your expectations have no connection with reality. Okay. There is no way that you're going to learn to be a programmer faster than you're going to learn to be a driver because driving is a much simpler skill. Much simpler skill and most people take several months before they become somewhat competent in driving Assume it's going to take twice as that at least and much more time on behind the wheel so to speak behind the keyboard For you to get really good at programming and if you're going to spend that kind of time Then you want to make sure that every minute of what you're doing is spent on the right thing at the right time in the right direction Because anytime you're guessing, you're probably going in the wrong direction, statistically speaking, your odds of being in the right direction by guessing are almost nil, and that's going to cost you enormous amounts of time.
More than that, it's going to affect your patience and your confidence, and you're likely to quit. And more people fail to become programmers, not because they're not smart, but most of them fail because they quit. They just don't know how long [00:23:00] and how to prepare for this journey. Okay, so please don't fall into that mistake.
Don't worry about which coding language is the right one. There's no such thing. If you're a complete beginner, start with one of the so called simpler ones and then move into the harder ones if required for your professional goals. Otherwise, don't do it. Stick with the one thing you know and stick with it for the rest of your life.
You can make a great career out of it. Don't waste your time learning more and more things. One of the things I do with my students at the inner circle is figure out the minimum effective dose. In other words, the idea is not to learn as much as we can. The idea is exactly the opposite to learn the least amount we can to get hired in the market.
And then get paid to learn the rest. That's my entire philosophy around it. It's worked for me. It works for all my students. It'll work for you, but you need to have the right guidance and structure around it and the right disciplines. A lot of it depends on your discipline, your ability to construct time in your day.
Okay. Again, all things I work with in my Inner Circle Program with my students, but I hope that helps. Please stop wondering whether this language is right. And that language is wrong. If you're a newbie and you're finding coding languages hard, it doesn't matter whether you jump to another one, you'll find that [00:24:00] one hard too. Why.
All coding languages are hard, full stop, for a newbie, full stop. If you have some experience with programming languages before that, and you've actually built software applications before that, even if not a professional grade, you've just written applications that work in your computer, you're probably going to find the second language much easier.
And frankly, you'll see the patterns, you'll detect the patterns straight away. So stop worrying about that stuff, guys, just get in there, be consistent with one thing over a long period of time. There's no way you can't succeed. Okay. And if you need help, I'm here for you. Let me know. All right. Take care.
Bye.
OUTRO
---
Just subscribe, you know you gotta do it.