[Edited]How to Learn Programming in ANY Language Ep54
===
[00:00:00]
Part 1
---
[00:00:00] ZubinVoice: if you've been stuck in a coding dead zone and you're feeling confused and paralyzed and like you're out of hope, and you're constantly having to choose between a bounce between new languages like Python or JavaScript or c plus plus or whatever, and you're feeling like after all that, you're still learning nothing, please listen carefully.
[00:00:13] I'm about to show you something that unlocked me. Okay? There's a, there's a pattern or a structure that makes. Any program, language or tool makes sense. It just makes it click. And by the end of this episode, you will have all the pieces. I'm gonna walk you through each of these pieces so that you will never need to be afraid again about learning a new programming language ever.
[00:00:30] Okay? Never need to be anxious about that, and you certainly won't be wasting your time worrying about which programming language is the best. It doesn't matter, right? Or which framework is the best. It's all irrelevant.
[00:00:39] In fact, it was because I understood this pattern that I was able to join Google Engineering, even though I didn't know all the languages that the job required.
[00:00:47] And even after that, when I joined Chainlink in the blockchain world, I had to learn languages on the job. And I still need to do that, right? But it takes away some of the anxiety when you understand what's actually the point of all this.
[00:00:57] So when you understand programming as a technique, you're not gonna focus so much on the programming languages because it's just a tool. And just like I said, you will be able to approach any programming task with patience and confidence, I promise.
INTRO
---
[00:01:09] Welcome to Easier Said Than Done with me, Zubin Pratap, where I share with you my journey from 37 year old lawyer to professional software engineer.
[00:01:16] ZubinVoice: So let's start at the top. There is a lie that all the marketing and all the education has had to tell us because, and I'll explain why shortly, right? But this lie says something like, you know, every programming language is really unique and special. Not really. Not really. They all thought so, but then not really. Then why are we still being taught this? Well, I'll get to that in due course right now. Let's talk about how you know you're going through this.
[00:01:40] Okay? For example, if any of you have ever switched languages and you said, oh my gosh, it felt like starting all over, or you felt overwhelmed at school or college, or, they're treating all these different languages and blogs, though they're different species and some are horrible and evil and some are great, like all that nonsense, right?
[00:01:56] Or you look at something in c plus plus and you look at something in Java and you're like. I don't recognize this. It looks totally different. I mean,
[00:02:02] it's not surprising. If you looked at Russian and you looked at English, you'd be like, I don't recognize this. I can't read it. Right? Doesn't mean that you don't understand how languages work, right?
[00:02:11] So. It's understandable and it sounds reasonable that you have to treat these different languages differently, but it's completely false and I genuinely like, I'm gonna get on a soapbox here, so I apologize in advance, but I genuinely believe that this is what is holding so many of you back, this ridiculous marketing led notion that it's all very different.
[00:02:27] It's. Okay. And job descriptions do this too, right? They make languages sound like entirely different careers or skills, or you're better if you don't know this or you're not a good engineer if you know this, or all this rubbish, right? And then they talk about react specialists and full stack and
[00:02:39] These differences, these. These separations they're trying to make, right? They, and you know, they try to convince you that the syntax, because it's foreign means it's a completely different beast. And they, even colleges, they treat languages like isolated subjects, so that every professor will have a job, I guess.
[00:02:54] The whole education system is also obsessed with making things seem different, in my opinion. That's how they differentiate their offer, right? Like I did an executive MBA and I genuinely thought executive MBA was something fancier. Yes, the kind of person I was doing it with was a little bit more senior in the career, but honestly, the subjects were the same as the MBA, right?
[00:03:11] So this is what is known as product differentiation, and I think people are doing it with languages to sell things. Okay. We'll talk about more about the why behind all this in a moment. But, you know, at the end of the day. You can write a great book in Russian. You can write a great book in Portuguese.
[00:03:25] You can write a great book in Icelandic. You can write a great book in English. It doesn't matter. In fact, all these cultures have great books in their native language, right? But everyone focuses on the language. Who cares? The language is just a tool for the same purpose, which is to communicate. It's about the book and the story and the novel that matters, not the language it's written in.
[00:03:43] And it's the same with programming. Programming is not about the language, it's about the program. So you've gotta ask yourself. Why do so many people keep focusing on the language and, and not the software that's actually built with it, right? Why? How is it the languages that aren't used that often? Now, Ruby still power much of the internet or PHP, which has completely fallen out of favor.
[00:04:02] I think more than 85% of websites on the internet are in PHP because it was built at the time when PHP is big. It works. It all works. I'll tell you why, why this happens. I'll tell you this very shortly, right? And, and you know, when I tell you guys, when I tell you what's actually happening, you're gonna slap yourself on the forehead and say, oh, oh my God.
[00:04:18] Of course, it was so obvious it was right in front of me all along. Why did I think of that? Right? But before we get into the why this happens. I want to get you to think about the negative impact that all this bs, all these wrong ideas that we are walking around with, I want you to evaluate and analyze the damage it's causing, okay?
[00:04:36] Because it's, it's time. We talked about the damage, especially if you are in my audience, chances you are a, you know, mid-career professional, you're not a fresh college grad, most likely.
[00:04:43] It's not like you're completely new to the workplace. You're probably, you know, three, five years at least in the workplace. And for you guys, it has a particularly bad damaging impact, right? Because what ends up happening is you get on this kind of endless tutorial treadmill right now, some people call it hell is because they feel stuck, but other people don't feel stuck.
[00:04:59] But they're like junkies for tutorials and they keep. Following the next tutorial and they think they're doing more and more and they build these pointless portfolios. And unfortunately every time they're starting over from Hello world, but with a new language or they're just retreading and rehashing all language and from a different instructor, like as if, if I teach you English or a textbook teaches you English, it's still the same damn words in grammar.
[00:05:18] The rules of the language don't change regardless of. Who teaches you, right? So that's why I think, yeah, a hundred percent you can learn to code for free and then on the internet and hey, that's what I do in the job every day. That's what all software engineers I know is they're learning more of their craft on the internet for free every day, of course.
[00:05:34] But doesn't mean you're gonna become a coder because there's a big jump required to learn something and to be professional grade at it, right? Now if you're gonna get stuck on the two total treadmill, the big downside for you is you're never going to be building momentum because you keep switching tracks.
[00:05:47] And I know a lot of you have told me about this, and it's particularly hard for busy professionals and especially if you've got parents sorry. Especially if you've got kids because you're really time poor. Right. You're really time per, so everybody else is able to, you know, code 20, 30 hours a week and you are trying to do it with six and you're doing the wrong stuff.
[00:06:03] No wonder you're stuck, right? No wonder you're on this endless treadmill because you're looking for the easiest resource. But everybody else is doing the harder thing 'cause they've got more time and. Obviously this is gonna have a massive impact on your confidence. Most of the students who come into the Inner Circle program and they work with me, the first thing we try and assess is, okay, what's your confidence level at?
[00:06:19] What are these beliefs that you've got that are holding you back? What's your experience been that's damaged your confidence? Right? And we have to fix, we have to repair those wounds first before we can actually help them do anything because that those experiences get in their way. Right? And most people will end up exhibiting with, you know, symptoms of what I call, you know, a loss of confidence like.
[00:06:37] You know, I can't even master one language. How will I learn others? Or I don't seem to have this programming brain, it doesn't stick in my brain. I can't remember the syntax, which is also the wrong thing to do.
[00:06:46] You should never have to memorize syntax.
[00:06:47] And I'll explain why in a moment. But, you know, it doesn't stick in my brain.
[00:06:50] I don't understand. This is really hard to know what's going on. You know, why is this intact this way, and I don't understand how this variable got this value here. Honestly, this is not the stuff that people care about, you know? Right. These days, guys, we, we type more than we write anyway, right? So it's, it's worrying about things like syntax is a little bit like worrying about handwriting.
[00:07:08] No one cares anymore, okay? Because we type more than we write these days. We have autocorrect, we have all these tools. Heck, people these days can't even spell very well. And it makes zero difference in their career because the tools take care of that. And it's exactly the same with syntax. Okay. I've met authors, professional authors, and columnists who have poor grammar and spelling.
[00:07:26] That's why they have editors and hey, what is VS code? What is Pie Char? What is cursor? What is windorf? Whatever they are, they're IDs. Integrated development environments. Okay? But they're code editors. There's a word editor right there. They're code editors. They're there to edit your code, so you shouldn't be worrying about stuff like syntax.
[00:07:43] Now the problem is when you don't know that and you keep worrying about it, and you jump from tutorial to tutorial, and you buy this course and finish on your half of it, and you're a busy professional, what's happening? Your. Absolutely bleeding time. You have bleeding time out of every orifice in your body.
[00:07:57] Sorry to put it that graphically, but that's what's happening, okay? Time that you do not have, you're probably a parent. You're probably a busy professional. You probably come home at the end of the day, pretty damn knackered. And you know, you've got family obligations on the weekends, so you do not have time.
[00:08:10] And what little time you have, you're spending on the stuff that's completely not essential. That's why you feel like you've made no progress. It's not that you don't have the ability, it's not that you don't have the skills. It's not that you don't have the brains, it's that you don't do with little time.
[00:08:24] What actually takes a lot of time and what little time you do have, you're not spending it on the right thing. So obviously you're not gonna make progress.
[00:08:30] Direction's more important than speed.
[00:08:32] So spending months and months and months learning some language specific obsession or some new tool you know, is not gonna help you because in those months your, your competition is overtaken you in the market.
[00:08:41] Or they've learned the skills that actually matter typically because they've been in a more formal structured environment, right? But they go deep in a few things. Now,
[00:08:48] adult responsibilities are real. I dunno how to tell you this, like, if you have less time, you are less likely to be successful. I wish.
[00:08:54] There was another way to handle it. There isn't, it's physics, right?
[00:08:57] If you drive slower, the other person who's driving faster is gonna get to the destination faster than you. That's it. And the problem with learning is you've gotta learn faster than the market changes. 'cause if the market changes faster than you're learning, what you're learning is outdated.
[00:09:10] So there is a problem. There is a double whammy. We spend a lot of time, I spend weeks with this and my students in the inner circle where we go through time management and time audits, and I surgically go into that. Every activity for weeks. I'm not exaggerating, for weeks and months, and you know, it's not uncommon for me to do this for months and we have to track it for the entire 12 months.
[00:09:28] We track time. We track time very carefully, right? Because time is the resource that leaks. It's not, you can, there's enough information on the internet. In fact, there's too much information on the internet, so that even takes away time because when there's too much information. You're not gonna know what to filter out and what to include.
[00:09:43] It's like too many applicants. You end up throwing out the good and the bad at the same time just to try and get to the top four. You're gonna do the same thing, but you're not gonna know who the top four are. Right? Same thing with with learning to programming, and by the way, I should add this, you're also getting older guys.
[00:09:57] You're also getting older. This is something that bothered me in my late thirties when I was learning to code. Right. I was like. I'm 37, 38. Everybody I'm competing with is 2223 fresh graduates. Five years of, you know, coding behind them because they've been doing it since high school. Next year I'll be 30 and eight or 39, and the year after that I'll be 40.
[00:10:13] Today I'm 44 years old. And the competition is still in their twenties. The competition doesn't get older. I get older every year. Right. And the older we get, the harder it is for someone who's a lot younger than us to think about them managing us. It's a fact. It's not ageist, it's just human. Okay. It is just How would you feel if you're managing somebody who's 15 years older than you?
[00:10:32] Right. Not everybody is comfortable doing something like that, especially if they have different skills. Like it's a hard thing. So I'm sympathetic to that. So you're gonna miss opportunities. Because you spend all your time optimizing on learning a language or mastery. There's no such thing as mastery anyway in this.
[00:10:45] It's never ending, right. I've never met a master who said I'm a master. No. They said, I've got so much more to learn. Everybody who's I've ever looked up to in engineering or any music or whatever. There's a lot more, more to go. So mastery is a ridiculous concept. I think I've covered this in another podcast about why the pursuit of mastery is one of the things that's holding people back.
[00:11:01] You just need to be good enough and to get good enough, you need to do the right things at the right time. Okay? So a lot of people are going, are struggling from the tutorial treadmill. They're hemorrhaging time. Time that they do not have as busy people. They miss opportunities. They get older, and then they feel frustrated and lost and hopeless.
[00:11:16] They blame themselves and they just feel like, oh, this whole thing was a hoax. I was told I could do this in two to three months. Well, with respect, you, you were a bit naive to believe that because nothing that pays well can be achieved easily. Okay. But it can be achieved with effort in the right way, at the right time for the right duration of time, right?
[00:11:33] It's like a recipe, guys. Now,
[00:11:35] reality check, just to make this point, again,
[00:11:37] you're not bad at learning. You're being taught bad things like focusing on just languages.
[00:11:43] Languages are just tools. Okay. And it makes me very sad and very angry when, you know, I have folks coming into the Inner Circle program after they've done bootcamps.
[00:11:52] Like they spent 15, $20,000, they spent three years of their life bootcamps trying, right? They've struggled for years, not months, years. Right. They come to me and they're like, I still haven't got anywhere. And
[00:12:02] I know exactly what the problems they've been taught. Literacy, they've not been taught any skills.
[00:12:06] Right? And in three to six months with me, we focus only on the things that matter. We start with mindset. We go into time management, we move in, move into habit forming. We go into doing with your limited amount of time. 'cause most of these people have kids. You got so little time. And so little energy manage that.
[00:12:19] And we have high leverage learning activities in those periods of time. And we track every damn thing. Okay? And clearly they get success. In six months, they completely transformed. They know it, they're doing interviews. They, they just don't recognize themselves. You can look at it in my tutorials page. You know, they talk about this quite openly, but guys,
[00:12:33] everything is easy when you know exactly what to do and more importantly, what to not do.
[00:12:38] You don't need to be guessing.
[00:12:39] If you're guessing, you have no plan. Figuring it out and reinventing the wheel is incredibly inefficient. Imagine if you try to figure out how to build a car, it makes no sense. It makes no sense. Okay. Now I did promise earlier to talk about why there is all this bullshit and also.
[00:12:53] In, in a moment, I'm gonna talk you through how to view any language or framework. There are just, I think, four principles that you just need to keep in mind about any software anywhere in the world, okay? So that's gonna be important for you because once that unlock happens you're gonna, you're gonna completely change the way you learn.
[00:13:08] I have to establish to you why we've all gone down this wrong path in the first place and why this advice about this language is better, that language is better exists. Okay? Number one, and Charlie Munger said this, for those of you who know Warren Buffet's, you know now late partner, he said this like 30, 40 years ago.
[00:13:22] If you wanna understand strange advice or behavior in the market, look at the incentives. And here's the thing. There is a strong incentive. There is a strong incentive to create false differentiation. Like a different, you know, like I talked about previously with education, more differentiation means more problems to solve, more courses to sell.
[00:13:39] If they convince you that you have three problems, but it's actually one, but they've convinced you, you have three problems, they can sell you three different things, right? This is why, you know, if they say, Hey, big in a Python and beginner JavaScript, and learn this language. When you actually only need one and you can pick the others up on the job and you can get paid to learn the others.
[00:13:56] Instead, they get you to pay to learn them, right? It makes no senses. Separate courses, creating false problems means many, many multiple revenue streams. Okay? Specialization also can kind of creates this artificial scarcity or this, I'm not good enough, I don't have the right skills mentality, which then drives.
[00:14:12] Premium pricing or other sort of fear-based responses from people where they feel I need to acquire more courses. So if you've ever found yourself in the situation, I need to do this, I need to do that, I need to do this, this is what's happening. You've been triggered by marketing to create a scarcity mindset in you to think that you're not good enough.
[00:14:25] The gap is huge. This is why at the, in the in the Inner Circle program, I do the opposite, and I've talked about this in my podcast publicly. We do what's known as the MED, the minimum effective dose, not maximum. We don't stack as much as we can. We remove as many things as we can from the stack and focus on the minimum required to get the job,
[00:14:40] not to learn to code.
[00:14:41] Your goal is not to learn to code. Your goal is to get hired as a coder. Okay?
[00:14:46] Whole different ball game now. Coders also contribute to this myth because everybody wants to feel that what they do is special. So, you know, if I'm a Python engineer, I'm gonna say, Hey, Python's the best.
[00:14:54] If I don't like JavaScript, 'cause I had to go the hard way and do c plus plus. I'm gonna say JavaScript. So, you know, for, for, for people who can't really program, because that was the view in the nineties and I haven't updated it since. This tribalism is rampant in code. Okay? I mean, heck, there are people who have arguments about whether tabs are better than spaces.
[00:15:09] Now, there are good reasons why at a technical level these things can cause complications in code. But the fact that we spent all this time arguing about whether semicolon is good, you know, linting or not is, is ridiculous. Okay. It's a tribal community. There are egos involved. Engineers have been brought up culturally to think that they're smarter than the average person.
[00:15:26] And I don't necessarily think that's true. I mean, I was in the law where also people thought they were smarter than the average person. To be honest, the curve of smart and not smart exists everywhere that I've been, right? So what do you know? Anyway, the point is people want to defend their choices.
[00:15:40] They want to defend their skills as being special, okay? Because that's how they justify their own life decisions, and that makes them force their point of view onto you. We don't do this in the Inner Circle program. I don't tell you you have to learn this. We say, let's look at your goals. We spend two months, eight weeks mapping out the goals, mapping, doing the market research.
[00:15:59] And I don't have to say very much. I just get the student then to say, well, based on all this data, what are your conclusions? And I coach them into the conclusion, right? And I show them how to analyze because, hey, what if I get hit by a bus? You guys need to be able to do this on your own. So it's not about, you should know what I know, you should learn what I'm teaching you.
[00:16:14] No. And there's all this rubbish about, oh, you know, this new stuff about AI engineering. Look. Yes, it's a new set of skills, but I promise you as a developer, you're learning new skills every two to three months. Anyway, the fact that this season, it's ai it and it's very powerful. I love ai by the way. I use it a lot.
[00:16:30] Doesn't mean it's any different. There was a time when, you know, react was the new thing, and then there was a time before that when, you know it was no SQL database. So whatever like the point is, there's always some new big paradigm shift that you need to learn. So don't worry about the buzzwords at the end of the day, whether you use.
[00:16:44] You know, a, a, a Shakespearean style of writing, or you write like some modern American author, doesn't matter. The book will sell. Whether you write like, JK Rowling wrote, did it, or you write like, you know, somebody in in the US would write something similar. It's, it's different. It doesn't matter.
[00:16:59] Books will sell if they're good books, software works when it's good. Software when it solves a problem, it doesn't matter nine times outta 10. It doesn't matter what languages written in. Yeah. For things like space programs and, you know, high speed gaming and stuff like that, or a high speed algorithmic trade link trading.
[00:17:13] Yeah, you want super performant languages. You don't need that for nine 99% of use cases. Okay, so why worry about that age case, you know? And you can pick it up on the job usually anyway. The other reason why this happens, why there's all this BS that happens is because job descriptions are also, unfortunately the blame because they've written quite lazily, but they're also not written necessarily to tell you what you'll be doing or what your skills are on the job.
[00:17:37] Most job descriptions, if you study them carefully, and this is not just in code in any profession. They're written as a way to filter out people, right? So they keep, they put the bar high, so they filter out all the other people because they assume people will exaggerate their skills a little bit. And then whoever's made the bar then gets interviewed.
[00:17:53] But the idea is to filter out people. 'cause it's so hard. I mean, I've been interviewing in multiple industries now, you know, in the last 20 years. Even before I was good, I was interviewing a lot 'cause I was a manager. And I interview now as an engineer, as an engineering manager as well. It's really hard, like it's, it takes so much time to process candidates.
[00:18:08] It's so time expensive and you can listen to any number of podcasts about this in any profession. Hiring is really hard and people have their day job to do, right? I've talked about this on the podcast as well. So they need a filter that's all these things are data structures and algorithms also filter, filter.
[00:18:22] But the problem is it makes these false distinctions again. Right. It's like almost like they're trying to say that, oh, this language is better than that. No, we use this language Makes sense. So we prefer people who use this language also.
[00:18:32] Makes sense. 'cause obviously you'll, you'll ramp up faster. When I went to Google, I had about three months to ramp up anyway, and I had to learn two new languages and I had to use existing Google frameworks that were written in Java. The APIs I had to work with were in Java. I had to learn how to read Java and I don't need done TypeScript before that.
[00:18:47] I had to learn Go Lang, I had to learn internal Google languages. Right? But at the end of the day, because I understood what I'm about to tell you, and I know, sorry, I've been carrying on for a while. But it's really important that you guys really, really understand how dangerous this, this worldview is that all languages are special and they're all different, right?
[00:19:02] It's like saying driving a Honda is different from driving a Toyota. It's not. They may be completely different cars. Do they have advantages and disadvantages? Yes. Okay. Is driving a small hatchback very different from driving an SUV? In some senses, but not really. It's driving right. I want you to really, really ga grab that idea when it comes to learning to go to learning new languages and learning frameworks.
[00:19:22] Right? Heck. Let's stretch the metaphor a bit. I got my motorcycle license renewed just recently after 20 years of not riding a bike. Okay? One of the questions is, do you have a car license? Now you could say, Hey, two wheels, four wheels, not having something to protect you. No metal around you. Being completely naked on the road kind of thing is, is a very different experience, and it is, and you have a specialized training.
[00:19:40] But the fact that you've driven a car means you know what roads can be like. You know what other drivers can be like, you've got this fundamental intuition around driving, operating a vehicle on, on, on streets, and you know what street signs are and you know how to use the tools. Fundamental stuff, right?
[00:19:54] So it's not even that different there. It helps that you've done something before. Similarly, if you've done one coding language, picking up the next one is just a question of, you know, understanding the difference that, okay, Spanish may have different letters and it may have a different grammatical structure, but hey, like I said, you have editors for that these days.
[00:20:09] But the purpose of these languages. Is one thing only to communicate. Right. And the more that these people convince you that lemons and oranges are massively different. Sure, of course they're different, but they're kind of more similar than, they're different. And Toyota and a Honda are most similar than, they're different.
[00:20:24] But the difference, the convincing you that there is a difference is how they can sell you more things. Right. And this is why. We spent so much time in the inner circle just focusing on the individual, on their circumstances, because I found that since all of these languages are kind of the same amount of effort, learn them anyway.
[00:20:40] It really depends on the goal and
[00:20:41] what really matters is the time management For busy people, that's the big unlock, not the language.
[00:20:46] Right? So now let's talk about the perspective that's going to change for you, y'all. But your big unlock that I've been promising for a while as a programmer. Now I want you to think about it this way, right?
[00:20:56] Your goal is to become a programmer, not just learn a programming language. Your goal is to become a coder, not just learn to code.
[00:21:02] I've mentioned this before. Okay? Now let's talk about shifting your worldview. 'cause this is what I want you to think about. I want you to fix this in your mind.
[00:21:09] What matters is the novel, the story, not the language.
[00:21:13] .Just get that idea into your head. Because there've been brilliant books written in all languages. Okay, now I'm gonna walk you through some of the fundamental principles of any software application, whether it's your phone, whether it's YouTube, whether it's something you're listening to this on your car navigation system, it doesn't matter.
[00:21:30] They all have the same pattern, okay? And I'm gonna talk about them in terms of pattern insight.
Part 2
---
[00:21:34] ZubinVoice: So core pattern insight number one that I want you to remember is that languages are how humans communicate with each other. The computer doesn't need c plus plus or Java or Python
[00:21:46] .. It needs zeros and ones, okay? That's how the computer processor works. The only reason we have languages is so that we can read each other's code.
[00:21:54] It is a way for us to codify and express our. Logic, what's known as business logic, the application's logic in a way that other humans can understand, and also in a way that we can write it down easily for us. 'cause writing it down in zeros and ones is a pain. I've never tried it, but I imagine it'll be horrible.
[00:22:07] Okay, now we need to put down the recipe, the business logic, and we need words to describe it. I want you to think about it like this. If you'll, you know, I don't know, learning to cook, right? Whatever the word for frying something is in your language. It doesn't matter what the word for frying is, it's always gonna be heating something in oil at very high temperatures.
[00:22:26] Okay? And getting that crispiness, it's always frying is the same principle, regardless of what word it, which language you use. That's how I want you to think about it. Even the coating languages, it's all the same damn principles just expressed with different words and different. Curly braces and all that.
[00:22:40] Okay? And its only job. The job of a coding language is to express the logic and control the logic. Now the program. What is a program? It's a set of instructions. Why do we need to give instructions to a computer to control its logic? Logic, gates, transistors. But we are getting too deep in the weeds here.
[00:22:56] The core job of a program is to control logic. How do you control logic with things like variables for loops, if conditions, stuff like that. And that's there in every language. Okay? And you need to organize. All that logic, that's what coding files are. That's all the instructions do, but it's hard and it's complex, so it can be overwhelming.
[00:23:14] Totally understandable. Never lose sight of the core pattern. All it is, is expressing logic to do a sequence of steps, instructions, and if you break it down enough. Even the way YouTube runs, or Spotify runs, or wherever you're listening to this, it's nothing but a sequence of instructions just moving incredibly fast, but it's just a series of steps.
[00:23:34] It has to be 1, 2, 3. There's a logic to it.
[00:23:37] That's all coding languages are meant to do. It doesn't matter which one you use, they all do the same thing
[00:23:41] and they all use,
[00:23:43] you know what
[00:23:43] I'm gonna show you for those who are watching this, I'm gonna show you what I mean. Okay? Here's my Claude. Okay. I'm just gonna do this for you.
[00:23:49] Live. Alright. I'm gonna say, show me a simple example of an if then else a code block in the following languages. Go line JavaScript. Okay. Let's use good old JavaScript. Python. Okay. And my goal here is to show you that they all share the fundamental anatomy. Okay? So that's my entire prompt to Claude.
[00:24:11] For those who aren't watching, I just said, show me a simple example. Okay? Now in goal, you'll see that, okay? It's given me a very simple example. I didn't tell it anything. It's just checking. If the age is 18 or more, you're an adult or not. How did I know that, right? Well, I can read it here. If age is greater than equals 18 print, you're an adult.
[00:24:26] If it's. If you're not greater than equal to 18, print your or minor. Okay, that's golang. Let's see how different that is in JavaScript. Oh, let me see. Right. There's no brackets, but the logic is the same, the printing is the same, and there's these qualy brackets, but no rounded brackets in Goalline. Okay?
[00:24:41] So again, if you're not, if you're only listening to this, is not gonna make a lot of sense. But the point is you will see very clearly if you go and watch this on the YouTube version, Python, JavaScript. And go lying. You can read exactly what's going on. Once you understand what if statements do. Once you understand why you'd use an if statement that there's a piece of logic, apparently cloud has decided, hey, for the, the example I'm gonna give is we're gonna test whether you're an adult or not, and there's only one rule to decide whether you're an adult or not.
[00:25:05] If you're 18 or over, you're an adult. If not, you're a minor. Okay? You're not an adult. And it looks the same in all three languages. Heck, let's just add c plus plus. Okay, now show me in c plus plus. 'cause everyone's so afraid of c plus plus right now, there are lots of language specific weirdnesses in c plus plus.
[00:25:21] There are lots of weirdnesses in JavaScript, and you learn those things along the way. But here you go again, the chief difference. If there is one, is the fact that JavaScript use, sorry c plus plus uses colon, colon format for their, you know, dotnet. Anyway, that's a whole different thing. But the fundamental logic is that you are printing stuff.
[00:25:38] Some of the words look different,
[00:25:39] just like the word for "fry" would be different between Spanish and English,
[00:25:42] no doubt, right?
[00:25:43] But the fundamental structure, the logic, the flow of the logic is the same. Okay? It's the same guys.
[00:25:49] I really want you to understand this. The core pattern here is that all language is controlling logic.
CTA
---
[00:25:54] 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.
[00:26:02] 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.
[00:26:10] Take a look at the
[00:26:10] description text below to learn more
[00:26:12] about the training I offer.
[00:26:13] Also, you may find my newsletter. Interesting. I've linked to it in the description. I only mail about two, maybe three times a week, usually around industry trends, things I've learned from other developers, the common habits and pitfalls that I see in my prevent them from actually succeeding, case studies and insights from that, so you'd probably find it quite useful. And hey if you don't, you can always unsubscribe later. No problems.
[00:26:32] But I do post content here regularly and by subscribing and liking and hitting that notification bell 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.
[00:26:44] 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.
[00:26:51] ZubinVoice: But the fundamental structure, the logic, the flow of the logic is the same. Okay? It's the same guys.
[00:26:57] I really want you to understand this. The core pattern here is that all language is controlling logic.
[00:27:02] That's all it is. Okay? Now,
[00:27:03] core insight number two, everything. Everything in an application is about data,
[00:27:09] specifically how you store the data, right? How you control the flow of the data, how you change the shape of the data, right? And at a deeper computer science level, how it gets used in memory. But I promise you, nine times outta 10, you'll never be thinking about the memory in modern programming, okay?
[00:27:24] You will only, unless you're doing c plus plus, which is meant to be very low level, close to the machine, right? But nine outta 10 times when you're doing languages. You're at an abstracted level 'cause that's all you need to know. That's all you need to know. You need to know how to use the calculator. You don't need to know how the transistor is working inside the the calculator.
[00:27:39] Okay? But all application is about data. Right now you're listening to this, you're listening to audio data, but also application data. Your name you know, your location. The, the title of this podcast, all of these things are pieces of data. That's it. Everything in a software is piece of data, and you're doing a bunch of things.
[00:27:54] You're either moving it from one place to the other, right? Or you are you're, you're changing the shape. Like, you know what, if you wanted to add my age to my name, yep. Okay, now you're changing the shape. Right, so then you're changing the shape you, that's called data transformation, or you need to store the data for use later. So you're storing it or you're retrieving it. That's pretty much it. You're always doing operations and data. Even in the example I showed in my screen, there's a piece of data, the age.
[00:28:17] 18 or not like it's assigned to a variable, you've stored that data met not in a database, not permanent persistence. What's known as persistent storage temporarily stored it in a variable so that you can run some checks in it. Are you more than 18 or below 18? Once you're done, you can get rid of that variable.
[00:28:32] Most pro modern programming languages will do that for you anywhere, and you move on. But what did you do? You did an operation against data. Everything in a software application is, is data. Once you start to look at your software, your tutorials, or whatever it is that you're learning from, you will see, hey, all we are doing is manipulating and handling data using logic.
[00:28:47] Okay? So that's core insight number two. Core insight , or
[00:28:50] the pattern that you wanna look for is that there's broadly two types of tooling. And this is where a lot of people get stuck. There are broadly two types of tooling, okay?
[00:28:59] There are what are call runtime tools. These are tools that are used when your software is being executed, when the code is actually running.
[00:29:06] That's runtime tools, okay?
[00:29:08] The easiest example would be when you import a library, heck even react as a library for those who react developers are you using importing some other library, maybe a date time library or a math library, whatever, importing it.
[00:29:19] Somebody else has written that code, right?
[00:29:21] And you are bringing it, and that code will be run at runtime by your application to do its logic
[00:29:26] or to run its operations on data, right? So you're importing that code. That's a runtime tool. It's a tool somebody else provided that you use used in your application. Anytime you connect to an API via an HTTP call, right over the internet, you make a network call that H TT PAPI endpoint.
[00:29:40] You are connecting with somebody else's tool, but you're doing it at runtime. Right. So it's also what I would call a runtime tool, but you need to know how to speak to that. API, if I call up someone in Bolivia and I don't speak Spanish, I'm gonna have a tough time speaking to them, right? But I can't call them.
[00:29:54] I'm just gonna have a tough time speaking to them. So I need to learn a bit about how to interact with them. Similarly, you need to learn about that API. You need to learn about how to use that library that you've brought into your runtime. To, to interact with it. In my experience,
[00:30:06] that's actually 90% of what software engineering has been, is learning how to use these APIs and libraries, these runtime tools.
[00:30:11] And once you understand the pattern, and they'll all give it to you in the documentation and all that, you know, or you can look at other people's code, then the syntax becomes copy and paste, which is why Stack Overflow was so successful for, you know, and it still is, is because you can't copy and paste once you understand what's going on.
[00:30:24] Copy and paste is safe. If you don't understand it, copy and paste is extremely unsafe, right? So. Again, it's just a pattern. I'm, I'm using a tool.
[00:30:31] Now, the other type of tool is what I would call the developer tool, right? This is the tool that the developer is using to write the code. Classic example that all of you, I'm sure if you've done any coding so far, would've heard about is Git and GitHub.
[00:30:43] Two different things. They're developer tools. Even testing is a developer tool because your code is not running your tests in the real world, right? It is running your tests before it gets to the real world so that it can test your code. So you could argue that all developer stuff is I beg your pardon.
[00:30:58] You could argue that all the testing tools are developer tools. They're not in the runtime off the actual program, and it's out in the world. It's just used as part of your development workflow to test your code.
[00:31:09] Now, here's a way to think about it, right? Here's a metaphor. Developer tools are the things you use to make the dish your knife, your chopping board.
[00:31:16] These are all developer tools. A fry pan developer tool, right? Your actual ingredients in the recipe, the things that have gone into the sauce, into the meat, into the veggies, whatever it is that are baked into the app, that's your runtime tool because it's part of the dish that you've cooked.
[00:31:28] Okay? That's a runtime tool. You developer tools are all the implements in the kitchen's tools that you used to make that that dish. Okay? That's the best way to think about it. That's honestly the best way to think about it.
[00:31:37] Now, what have we covered there? We've covered that. Basically you've got
[00:31:40] expressing logic and controlling code or controlling the logic. The second thing is it's all about the data.
[00:31:45] The tiny piece of data, huge amounts of data moving around, being stored, being retrieved, being transformed, okay? All of that. And finally, you have different types of tools, the tools that are used in the software while it's being run, and the tools used to build the software.
[00:31:57] Okay, and I'm gonna quickly show you my screen share again just for a second. Because I want to, I want you to see this image, right? This is, I think from, looks like from geek for Greek. I just, I just looked it up the, on the internet and I just said, you know, gimme a, a system design diagram for for Reddit.
[00:32:11] Just randomly. I just pulled it out. Okay? And now I want you to think about those three things I talked about, right? It's all just languages. Languages. All they do is control code logic. Second thing is all just moving data or working on data in somewhere. And the third thing is you use tools to achieve these things.
[00:32:24] E either at runtime or while you're developing. Once you understand these three principles, any language, any framework, anything will make sense to you. Okay? So to prove that, let's take a look at the Reddit diagram. For those of you listening, you can't see this, but I've got a very simplified you know, system architecture of how Reddit apparently, according to Geeks for Geeks, is built.
[00:32:41] I don't know, I haven't validated this, but the point is the client is the end user, right? You'll see there's, there's an arrow load balancer, API services, post services, database, feed services. That's all just data. Right. All of this is just data moving, but there's logic in each of these square boxes about how do you handle the load, how do you handle the API request, how do you handle the API response?
[00:32:58] And then when you're storing permanently to a database, you know, you send what's known as a post request. Okay? So that's a kind of logic. And you send it, and again, it's all data, right? And it comes back to the end user via something known as A CDN, which is a content delivery network. It's a way to. Store data closer.
[00:33:13] It's like for those of you who watch, you know, survivalist movies or zombie movies, they'll have a cache of weapons close by, right? CDNs are basically cases close to the end user so that it's faster to retrieving things that they need. What do they need? Data, right? They some sort of information that they need rather than getting it from the other end of the world,
[00:33:28] you can shave a few milliseconds by getting it close by. That's all it is. Right? And then authorization services. Am I logging with Google or GitHub or LinkedIn or whatever right? That's it. It's, but even that is data. That's all data and logic on that data. That's it. And all of this here, we'll need a bunch of developer tools.
[00:33:43] Right, and it'll also have tools internally. For example, if I'm using a Postgres database, then I will need a Postgres library to interact with the Postgres database. So the Postgres library is a tool, the database is a tool, and I have languages to write logic around the tool. But why am I doing all of those things so that I can put data in the database?
[00:34:04] There you go. So just to recap. Language is to control logic and to express the logic, right? Number two, you're going to be using data in all sorts of ways, and it's all about the data and the application.
[00:34:14] That's all applications are, is managing the, the current state of the data. That's it. And the third thing is that you're gonna use two types of tools, runtime tools, or actual developer tools in order to build a thing. Okay?
[00:34:25] Now why all this? Because there's a meta skill involved here, guys. The meta skill is pattern recognition,
[00:34:29] Once you see the structure in this pattern.
[00:34:32] Everything changes about the way you program it. It completely unlocked everything for me and anyone I've ever mentored. Once you see this, you could tackle any problem. Okay? This language is expressing some logic. Okay, but what data is that logic applying to and what system is it connecting to and what tools do we use to achieve this?
[00:34:46] That's it. Pattern recognition. Thinking in terms of where's the data going, where's the information flowing? Just always look at an app as where's the data going? What's happening to it while it's going? And what, why are we doing this? Okay. And then you get practice on the tools.
[00:34:58] It takes time to get good at GitHub it or to understand the GitHub ui.
[00:35:01] Fine. It takes time to use the Git
[00:35:03] versioning tool in your command line. Yes. The command line itself is a tool. It's a terminal, it's not a GUI interface. These are all tools. So tool fluency.
[00:35:11] Thinking in terms of data movement and recognizing the pattern of the logic. That's it. That's your universal learn to program technique. Okay? This is the most important part. There is a kind of structure, a pattern, so all you've gotta do to apply a universal programming learning method, as I want to call it now, I've decided that's what I'm calling it, is
[00:35:29] pick one language.
[00:35:31] Obviously you wanna pick a language that's not hard to learn. Pick the one that's, you know, in high demand right? So pick one language.
[00:35:37] Honestly, if you want an easy suggestion, Python, JavaScript, whatever, they're, they're more or less the same, right? But do one of those languages just begin with to learn the programming patterns, learn the patterns on an easy language, then you can easily jump to a more complex language.
[00:35:49] I did that accidentally, and it worked wonders. That's what saved my ass in Google, right? Okay.
[00:35:53] Then you master these basic concepts. All the control flows, the variables, the conditions, the loops, the functions, data structures. Don't be afraid by that of that word.
[00:36:01] Focus on what's being done to the data and what tools you need to use in that code base. And these are just Lego blocks. Once you see them as reusable Lego blocks you can start to see the pattern and you can build anytime you want.
[00:36:11] And then what I want you guys to do is to make this really easy for yourself is choose a simple project, the simplest, project you can think about in your chosen language, but then try and do it from scratch and trace the data from input to output.
[00:36:24] Okay? Anytime you fill a form, it's input to output. Okay? So identify the universal flow of data in your language.
[00:36:30] And it's honestly like learning to read sheet music. You read the sheet music and it doesn't matter whether you're playing the trumpet or the guitar.
[00:36:35] The musical notes are the same. It's exactly the same for software engineering.
[00:36:38] It doesn't matter which language you use. The notes are the same. You, you are composing the notes of the music in the same way. It's the same rules of music that different instruments have to follow.
[00:36:47] It's the same rules of programming and logic and data flow control that that all languages help you with.
[00:36:53] Okay? And
[00:36:53] the final step is once you start practicing, increase the level of difficulty for your next layer of your own little project. Okay? Start with a small project and then once you hit your ceiling, learn something new and apply it from scratch
[00:37:05] to that project. Don't go and switch to a new project. Just extend it right. And practice using the tools. Git, GitHub. If you wanna do some CICD, great. But it's a bit of an advanced topic. You don't need to worry about it. Okay?
[00:37:15] Testing. Great way to increase your skill to the next level on an existing project, right?
[00:37:19] You finished the project, now write test for it. Then for the next time, when you add another feature or extend your project, start with the test. Try test driven development and see how much it improves your quality of your thinking around your code. That's how you do it, guys. One layer. You build the cake, one layer at a time.
[00:37:35] Learn your tools really well. The IDE, the editor, very important. Mastering the basic git commands. There are only about six of them. Very easy. Free information on the internet, or don't worry about being a GI master. Just master six commands. You don't have to master the whole on thing. Most of us don't know the whole thing, okay?
[00:37:49] Learn to debug in different ways,
[00:37:51] and these are the skills that will make every
[00:37:53] language accessible for you. It'll unlock any language you want, will unlock any framework you want, because now you learn. I just have to learn the words that that language uses. Who cares?
[00:38:02] The basic job is not different.
[00:38:04] Control logic, move data around and manipulate that data. And use tools to do these things. Okay,
[00:38:09] now I really hope that helps.
[00:38:10] So. One last thing. If you do use ai this is my advice to for new beginners. Use AI to learn concepts. Get it to teach you concepts.
[00:38:19] Do not get it to write code for you at the beginning.
[00:38:21] You do not want AI to do things that you don't understand or you don't know how to evaluate.
[00:38:26] Teaching concepts, it's very good at, because the concepts don't change, right? But how you implement code. There are hundreds of ways to do the same thing, and that's where the mines are hidden.
[00:38:34] That's where the minefield is. Okay, so
[00:38:36] I would always recommend you start learning to read documentation. This is also a very important skill because documentation tends to suck, but you have to deal with it as a professional engineer.
[00:38:44] So start practicing how documentation tends to look. When you look at two or three documentation sites, you start to see the pattern, right?
[00:38:50] There's a kind of vague logic to it. It'll come with a little bit of exposure, right? But you just need to know how to look up some things.
[00:38:55] Try not learn to not go down rabbit holes. Find the answer. Answer you need. Now that you have ai, which we didn't have when we were learning, use it to, to get the concepts explained to you.
[00:39:04] If you don't understand something, copy and paste and say, I don't understand this. Explain it to me in simple terms, and I promise you that'll make a big difference. Okay?
[00:39:11] Use AI to explain concepts.
[00:39:12] Do not use AI to do your work. Do not, because you will not learn. I promise you, you will not learn. It's very tempting, and I know it's very tempting, but you will do yourself a massive disservice.
[00:39:21] Okay?
[00:39:22] And then just build your idea. One layer at a time. One little bite at a time. You is how you eat this elephant.
[00:39:27] Just layer your coding learning one layer at a time.
[00:39:30] Now, I've made a promise to you that once you see this pattern, learning a second language will take you weeks, not months. I promise you this is gonna be true for the rest of your career if you take this seriously.
[00:39:38] When I went for one of my recent interviews, in my last role,. I decided to do my interview in the language that, you know, they, they particularly favor.
[00:39:43] And it took me a week to get good enough to do the interview on it because the principles were the same.
[00:39:48] And I was relying on the editor to make tiny, you know, adjustments to my syntax. They could see that I knew what I was doing, that I, it didn't matter that I made a spelling mistake, if you know what I mean. You know, so it's really important for your career changes. You guys don't have enough time to go around learning everything and boiling the ocean.
[00:40:01] Just be very systematic, laser focused with your time. And just remember the three things I told you about what any software application is. Okay?
[00:40:08] So stop the language shopping. Commit to one. Build your pattern recognition by just seeing the patterns over and over again. Hands on keyboard is important.
[00:40:15] You know, do small little experiments in your Id just learn how. Tools work. How the IDE works. What shortcuts do you have? Do you use keyboard shortcuts? What does it mean to right click and click on, you know, re rename symbol? You know, these small little things will make a big difference. Learn to use your command line just for simple things like get in your installing packages, just understand what the command line is.
[00:40:33] This is what actual software engineering is all about, okay? It's not about the latest fanciest language or tool. It's really not about that.
[00:40:39] And of course, to guarantee your success, like, and subscribe to this channel, of course. What else?
[00:40:43] I'll also link to other useful videos for your, for busy people to learn to code and that the techniques they need to keep in mind at the end of this video as well.
[00:40:50] Okay? Hope you got some value out of that overnight.
OUTRO
---
[00:40:52] Just subscribe, you know you gotta do it.