Programming involves encountering numerous bugs and errors, and solving them is a core part of the process. Struggling through these challenges builds persistence and resilience, which are crucial for becoming a proficient programmer.
Tim leveraged his YouTube channel, Tech with Tim, to connect with Microsoft. They reached out for a content collaboration, and he used that opportunity to express his interest in an internship. After a phone interview and a successful in-person interview in Redmond, he was offered the position.
Tim earned $7,350 per month during his internship, which was equivalent to approximately $10,000 to $11,000 Canadian dollars at the time.
Python's syntax is simple and close to English, making it less overwhelming for beginners. It allows them to quickly write basic programs and see immediate results, which is motivating and helps build confidence.
Tim realized the importance of building the minimum viable product (MVP) first to validate the idea quickly. He also learned to detach his ego from the complexity of the project and focus on simplicity to avoid over-engineering.
Tim starts by identifying a specific goal or project he wants to achieve with the new technology. He then breaks it down into smaller tasks, learns the necessary concepts incrementally, and applies them immediately to his project to ensure practical understanding.
Tim emphasizes the importance of struggling through bugs and errors, as this builds persistence and problem-solving skills. He advises beginners to focus on the process of overcoming challenges rather than expecting perfect code right away.
Tim's interest in Minecraft's redstone mechanics introduced him to basic logic gates and computer architecture concepts. He also ran Minecraft servers, which sparked his entrepreneurial curiosity and taught him about server management and coding.
Tim practices solving coding problems on platforms like LeetCode and AlgoExpert. He emulates the interview environment by using a whiteboard and speaking out loud to explain his thought process. He focuses on breaking down problems into smaller parts and solving them step by step.
Tim believes in simplifying complex problems and breaking them into smaller, manageable parts. He emphasizes the importance of incremental progress and tracking one's own improvement to stay motivated.
The most important thing is actually like to learn how to struggle and to be okay with failing and solving problems.
programming really is just running into a ton of different bugs and errors and like things not working how they should and figuring out how to fix them. Very rarely are you ever going to see a program who just sits down and writes perfect code and doesn't have mistakes. So as a beginner, especially like focus on the process, focus on the struggle. Like if you're sitting there and you've been working on a bug for one hour and you can't figure it out, trust me, we all know that's super, super frustrating, but that's the really important thing to overcome to build up that persistence.
and to be okay with that feeling.
Welcome back to the Free Code Camp Podcast. I'm Quincy Larson, teacher and founder of FreeCodeCamp.org. Each week we'll bring you insight from developers, founders, and ambitious people in tech. This week we're talking with Tim Rusica. He's a software engineer and prolific programmer who is also the teacher behind the Tech With Tim YouTube channel. And he's developed some courses on Free Code Camp as well. Tim, welcome to the show.
Yeah, thanks very much for having me. Excited to talk with you. It's been a few years now, I think. Yeah, well, we have known each other for many years and we've corresponded through email and stuff, but it has been a few years since you and I have talked synchronously. For sure. Where are you joining us from, man?
I am in Dubai currently. I've kind of been traveling all over the world actually the past few months, but finally getting back into a routine now and settled in Dubai for hopefully the next few months at least. Awesome. What is the allure of Dubai? Because I have lots of other developer nomad, digital nomad friends that are working as remote developers, and a lot of them like to go to Dubai. Yeah.
Yeah. So, you know, not getting into too much detail because we can make an entire podcast just on this, but I would say first zero taxes. I mean, if you come from a place like Canada, for example, I mean, I don't think I need to tell anyone what the taxes are there, but also just kind of the convenience, the ease, like business here is very easy to set up. I was able to become a resident in like 30 days, everything's super convenient. So if you just want to go somewhere like really fast and you don't want to go through the whole citizenship process, Dubai is just like the easiest place to get to that's
like a modern mega city that is really well connected, English speaking, kind of all those points. Awesome. Yeah. Well, that makes a lot of sense. So you're out there and you have been working on a number of different projects, like balancing the concurrently jobs, entrepreneurial projects, and of course your Tech with Tim YouTube channel, which is fantastic. And I encourage people to check out if they haven't, but maybe you could talk a little bit about what you've been up to just recently. Yeah.
Yeah, sure. So recently I had a tech startup that I was running and over the past few months we kind of winded that down, which I think we can get into later. Obviously, I'm doing the YouTube channel. That's kind of been a consistent thing that I've been doing now for at least the past about five years full time. And now that I kind of wound down that tech startup, I'm going a little more all in on that, doing some more content, posting on some other platforms as well.
And then I'm always just looking for other side stuff to do. You know, it's kind of a bit mononymous, sorry, doing videos every single day, all day. So trying to get off the camera a little bit, do some coaching, run courses, different programs. I might be doing a school community again. Just, yeah, kind of figuring it out right now. I'm in a bit of limbo while I pick the next big project to tackle.
Right on. Yeah. And for those of you who are just like listening to the audio, you may not realize that Tim is pretty young. How old are you right now? I am 24. 24. So I think you're like maybe the second youngest person, maybe the youngest person I've had on the podcast. And I've done like more than 100, like almost 150 episodes. So we're usually talking to like people that are older that have a lot more life experience and a lot more like industry experience and things like that.
But you are both very young and you're also extremely knowledgeable and accomplished because you started programming at like a super young age. If I, if I recall, like I remember like you were doing like data structures and algorithms when you were like 12, something you mentioned at some point.
Yeah, I don't know about data structures and algorithms at 12, but I definitely was coding by the time I was 12, at least maybe even as early as 11. Hard to even remember everything back then. Getting more serious about it when I was probably like 15, 16, kind of in the middle of high school. And then by the time I was in university, I was already quite good at it because I'd just been doing it for so long. And then we can kind of get into that story if you want. But when I was in university, I started this YouTube channel. It started before that, but I started really taking it seriously. And then I started doing it for a while.
And then because of that, I needed to learn all these new things so I could teach them online. I was doing a computer science degree at the same time. And yeah, I just picked up a ton of programming concepts really quickly. But I kind of got drawn to programming super young because it was super interesting. It was super fun. I love doing it. So I wasn't making like a massive amount of progress, like trying to be, you know, a 14 year old software engineer, but I was just building so much stuff. And naturally when you do that, you get good at it pretty quickly. Right.
Yeah, absolutely. Like when people do something a lot, they generally get better at it. And what drives people to do it a lot? They like it. Exactly. Yeah. Yeah. So you had like an early passion. Maybe you could talk about like your family growing up because you grew up in Ontario, like, you know,
probably the most populous part of Canada, not too far from Toronto. What were the conditions in which a young Tim was enriched by his environment and his surroundings? And what pushed you to not just do what a lot of kids do, which is goof off or be distracted with all the typical teenage stuff, but rather to be drawn to programming and technology? Yeah.
Sure. So I think there's a lot of factors and it's hard to pinpoint just one, but I was really fortunate to have an amazing family, both parents growing up, I had a younger brother as well, always gave me opportunities to do pretty much anything that I wanted to, whether it was athletics, whether I wanted a laptop for school or even to play video games or anything like that.
There was never something that I wanted or needed that I didn't have access to. So first of all, that just kind of immediately sets the tone. I grew up just outside of Toronto and I was always doing stuff like I was always interested in math and science and let's say more of the critical thinking, less creative, artistic type fields.
And I was into doing like robotics, building Lego. I'd do all that stuff even when I was like seven or eight years old. My dad is a civil engineer. He has a master's or sorry, master's in civil engineering, undergrad in mechanical engineering. So he kind of, you know, taught me a few things and gave me a bit of inspiration. And I can remember that when I first started getting into tech,
Um, it was actually when I was playing Minecraft, some people might relate to this, but I was like 10 years old, loved Minecraft, played it like all day. And I really loved like the redstone in Minecraft and building stuff. And even just like that kind of engineering process, even though I didn't know what to call it that back then. Um,
And I started building like Minecraft plugins. I was running Minecraft servers when I was really young. Wow. And that eventually led me to pick up like, you know, little tad bits of coding stuff, like modifying a configuration file or like trying to figure out the command to sign in to like a Linux server to run, you know, the Minecraft server and stuff like that.
And somehow eventually that led me to like HTML, CSS, that kind of, you know, very traditional start here path through the early like OG YouTubers, like the new Boston Sendex. Those guys were like big inspirations for me. And as soon as I found that I was just like hooked.
immediately. It was the first thing I was like, this is super, super interesting. It's the first thing bluntly that was like really challenging for me. That was actually difficult because in school, um, just bluntly for me, it was pretty easy. I never really had to study or do homework or anything like that. Um, so when I found this, it was like, I could really go all in on it and be
because it was so hard, I was like so obsessed with learning more and more about it. And that feeling of like going on the keyboard and building even something as simple as a website, which is so addictive that I got into it really quickly and then kind of climbed up and started learning all the more advanced stuff after that.
Yeah. So the redstone. So I wasn't part of the Minecraft generation. I was part of the Doom generation. But is that like the electrical stone or something? I've seen people build like Turing complete calculators and stuff like that in Minecraft. And it's because there's some electrical pathway property or something like that. Yeah.
Yeah, you can... It's, like, essentially, like, basic, like, logic gates and stuff. Like, you could build, like, an AND gate or an OR gate or an NOR gate and, like, all that stuff in Minecraft using Redstone. Obviously, it's, like, super basic, but if you do, like, a computer architecture class, like, the first chapter of that, like, I pretty much knew that from, like, doing stuff in Minecraft, which is kind of crazy. You can build all kinds of insane stuff. I was never, like, you know, a pro that was building, you know, 16-bit computers and stuff like that in Minecraft or, like, fully functioning video games, but I liked...
using that and kind of figuring out, you know, what path went where. And like, that's what I was more interested in rather than like building a house or a castle or something. Right. Yeah. That makes a lot of sense. I love that that game has been the one that's caught on with so many young people. I'm not, I'm not super young anymore, but they're like, like, I definitely think that that's like,
that it's structured around like building things and exploration and sharing maps and stuff like that. I think that's so cool. Um, and, uh, kind of like the creativity involved. Like my kids, uh,
love playing Mario Maker and they love building levels and things like that. And you can create like musical pieces. You can create all kinds of different things within Mario Maker. I think it's probably a lot more constrained than what you could do with Minecraft. And I'm excited about my kids eventually getting into Minecraft, hopefully. But yeah, that seems like a great, I mean, what an endorsement of Minecraft. You already knew a lot about computer architecture just from playing a video game.
Yeah, yeah. I don't know if I would say a lot, but also, like, I was so into Minecraft that, like, I made my own Minecraft server. Like, I was, like, selling, like, donation rolls and stuff. You know, you get into, like, a community or, like, hiring moderators and admins and stuff. So I was doing that when I was, like, super young. And that's kind of, I guess, what sparked the entrepreneurial curiosity because it was kind of meshed with the, like, engineering component, building stuff out, installing the different plugins, setting up the configurations. And that's, like...
I was doing that while I was kind of learning to code on the side. And yeah, it was just super interesting and a good outlet to explore all that stuff in. Yeah, that's really cool that you were running these servers. What are some early lessons, community building lessons that you learned from the field? Were there any emergencies or nightmare scenarios or anything like that that came about when you were running your server that were like early war stories from a childhood...
Yeah, there's two that I can think of off the top of my head, which is like, I guess, some PTSD scars. But the first one is that we had some admin on the server. And admin, just for anyone listening, I'm sure you probably know what that means, but he had full access to all the controls. I kind of had a partner with me who I trusted, who I knew in real life. And then this other admin, we had become really close friends with over for maybe six months.
And at some point in time, he just like, I don't know, betrayed us, um, you know, kind of like blew up the server, started ruining all the commands, doing all this kind of stuff. So I guess kind of trust and like security and limiting permissions is like one thing I learned. And then we had someone else, uh, slightly different than this who joined the server and he was actually running an experiment for one of his classes, which was very interesting where he was trying to prove how like power could be corrupted with like money. Um, it
Kind of a crazy thing to be doing at like 15, 16 years old. Kids Minecraft server. Yeah, I know. It was really weird. We didn't know this when he joined the server, but he started donating good amounts of money. So maybe he donated like 200 bucks or 250 bucks or something like that. And slowly by slowly, he was kind of climbing his way up the ranks by feeding us the server owner's money and getting access to...
extra money or extra commands or controls or like, you know, climbing up like the power hierarchy of the server, which just exists. Anyone that plays in these worlds knows like you kind of have those different roles. And then after like a few months of doing this, he like let us know the whole time he was like trying to play us and like doing this as an experiment. And anyways, it wasn't a negative thing. It was just like interesting. And we had no idea he was doing that the entire time. So.
I'm not sure if that story is coherent because I can't really remember all of it being 13 years old. That's wild because that's something you experience in real life. That's how the world works. People are trying to buy seats on city council and stuff so they can get permits to dump radioactive waste. Exactly. Like Mr. Burns type stuff, right? Yeah. So you got to experience that firsthand. What an amazing experience. First of all, having somebody who went rogue...
because that happens all the time when you're trying to run an entrepreneurial project. I mean, the most common thing if you're trying to run an entrepreneurial project is you start with the wrong people and you find out that those people are essentially dead weight. For sure. I don't know how you feel about this, but I'm very anti-co-founder. I'm like, just do it yourself and don't bring other people in because they're never going to be as passionate about it as you are. But yeah, like...
So you go through high school, you're just sailing through passing with flying colors because you've been so interested in this stuff. And, and it sounds like you've just got good life habits. I mean, the kids that are like always working on Minecraft and stuff and keeping their head, you know, playing Minecraft and programming, keeping their heads down. Like you're not like, uh, you know, probably like selling drugs or stealing cars or anything. Uh, like, like some of the people that I've interviewed recently, uh, who've become developers had like pretty rough lives.
and did get tangled up in some really nasty stuff. And it sounds like you avoided that. What did you say? Yeah, yeah, I would say so. I mean, look, like any kid, I got into trouble. I did stuff I wasn't supposed to do. I snuck out of the house, you know, things I won't say on this podcast. But generally speaking, like everything was rooted in, you
you know, I had goals. I had stuff that I like to keep busy. Um, I was interested in like self-improvement from an early age. Again, I was really fortunate to have an amazing family, both parents that like instilled really good habits and also gave me a lot of freedom to kind of explore and figure out what I like. They weren't very restrictive. Um, and they let me do a lot of different stuff. So yeah, I, you know, I kind of got lucky with that, but then obviously took advantage of that luck and, um,
Yeah. Turned out how I am today, I guess, which is pretty decent, I think. Well, I mean, having an engineer, a civil engineering father, that sounds like really, I mean, that's like the hardcore engineering, like...
You screw up when you're a civil engineer and a bridge collapses and people die. You screw up when you're a software engineer. I mean, yeah, there's some extreme cases like with like a Boeing, you know, fiasco. But for the most part, like somebody who's like a server goes down or something like that, right? It's usually not like life or death. But it is when you have that kind of – so like maybe you can talk a little bit more about your dad. Tell me about your dad. What's your dad like?
Yeah, sure. I mean, look, my dad is fantastic. Very much like a family man, always a provider, everything like that. But also very smart and very engineering focused as well. Same thing, he went to university, studied engineering. His dad was always working construction, building stuff.
My dad in any house we've ever lived in has built like half the house or like a renovated half the house completely by himself. He's built like massive decks outside. He's done like even more like technical type stuff. Like he worked for a home automation company where he's working in 40,000 square foot homes, installing like advanced security systems and biometrics and AV systems for 50 TVs.
And he always exposed me to that. And even when I was 14, 15 years old, I was tagging along as his little assistant to these job sites, wiring up ethernet cables in the rack, doing all that kind of stuff. So I leaned a lot more into the software kind of side where he was much more like physical hands-on, like actually building stuff with a hammer and a drill and a saw and the billions of tools that he has in his tool shed. But yeah, I got that exposure at
exposure story at a really young age and even yeah simple things like lego like now i know as an adult how freaking expensive stuff like lego and like robotic stuff is and uh you know he would have bought me all that sit with me build things like that help me on those kind of projects and always like took interest into what i was doing as well uh when i got into programming um some of his colleagues are like programmers like for the things that they're working on so he would introduce me to them they'd recommend you know programming languages or next steps to
to learn about. So yeah, just super supportive in like every way possibly could have. And definitely a role model when I was growing up, like wanted to be just like dad, but in kind of like a different avenue. Right. Yeah. Yeah. And your brother is also, um,
Noah, I think is his name? Yes, Noah, yeah. Yeah, he's also similarly, I guess, precocious and interested in science and things like that. For sure. You can talk about your relationship with your brother, too. I promise, by the way, if you're listening, I'd just like to establish a background of the person before. We're going to dive into tons of programming questions. I've got like 20 questions ready to pepper Tim with, but I just want to get a little bit more insight into his background first.
Yeah, yeah, no worries. I can talk about programming all day. These are some more unique questions I probably haven't been asked on many podcasts. So anyways, my brother Noah, yeah, very smart as well, very intelligent. Same thing, you know, looked up to my dad, but moved more into the kind of sciences rather than...
let's call it engineering. He's like super passionate about chemistry and biology. He's doing like a biochemistry degree right now at his school is going to be doing like a master's. He's 21, I believe at the time of filming this. And, um, yeah, he's just about to graduate his undergrad and then we'll see what he ends up doing for a master's or, um, whatever kind of next comes, but he's super focused. He like works in a lab, you know, sits at the front of the class, talks to all his professors and,
And, yeah, was very smart as well. I mean, me and him would build projects. He would help out with the Minecraft server. When we were younger, he took, like, computer science classes and stuff in school and was also pretty good at that considering I wasn't even really helping him that much and he was doing most of it on his own. So, yeah, great guy. Unfortunately, I haven't seen him too much because I'm in Dubai and he's all the way back in Canada. Last time I saw him would have been...
a few months ago when I was just visiting. So, um, yeah, but, but, but that's, that's Noah. Well, I want to talk about college because you had a unique college experience. First of all, um, you didn't finish college, you dropped out. Uh, so I'll go ahead and say that like, and I'll caveat this with like, we always encourage people to don't be a fool, stay in school. But, uh, there are sometimes extenuating circumstances where it is justifiable to drop out of school. But, um, you, um,
were one of the, I guess, extremely unlucky few who entered college during the pandemic, right? So I didn't enter college during the pandemic, but I was in college when the pandemic happened.
So I, my first year of university was 2018, 2019. I was born in 2000. So yeah, when I was like 18 turning 19, I guess, or I must've just turned 19 when I was in university. Anyways, I got to have very fortunately, like my first year, you know, universe, we call it university in Canada, not college. College is like a slightly different thing. Right.
I got to have my first year university experience, you know, living in a dorm with like a random person doing all the, you know, party stuff and university stuff. And I'm sure many of you guys remember watching this. So I was really fortunate about that. I had a full year after that where I lived in a house with five other guys just off campus, but, you know, really close. We could walk.
And I got like in-person schooling for like a good amount of time, even though I didn't go to too many classes, which we can talk about later. Then what happened is COVID happened kind of like, I guess, right about when I was finishing my second year. And then when I entered my third year, that was like completely online.
So I ended up doing one semester in my third year and then dropping out. And that was when I was like living at home. I had moved away from, moved back home from university because it was far away. And yeah, I can talk more about like dropping out in that decision, but that's at least
what happened with college. Like I got some good years under my belt, actually got to meet people, have social interactions. So I'm really grateful for that compared to the people that were going in and, you know, first year they're doing it from their home or their basement or something. Right. Yeah. Well, I'm glad you got some of that experience. And again, my heart goes out to anybody who's like paying full ticket prices for college and they're sitting at home doing like zoom classes. That sounds like a nightmare, but, uh, it sounds like, I mean, you said you didn't even go to that many classes. Like, like what was your college experience like?
Yeah, I think, I mean, different, all degrees are different, right? But at least for me, like in computer science, I'm not going to say I knew like a lot of the stuff that was in the degree. There was some classes, like especially the really heavy programming classes where, yeah, like the lecture is just not going to help me. Like I already, I do know that content.
But I just found that the teaching style, like, you know, a 75 minute block, a lecture going through PowerPoint slides, especially when we're talking about something as like technical and hands-on as coding just wasn't an effective way to learn. So I still did really well in all my classes. You know, I passed all the midterms with good grades. I've had honors, all that kind of stuff. But I just found that I could learn better from home on my own. Like I'd rather watch the lecture in two times speed if it's recorded, for example,
or I'd rather just look through the PowerPoint slide and kind of pick out the important information or call with one of my friends and kind of bounce ideas around and figure out how to solve this problem. Like most of the time, I actually want to be like studying on my own. And I found a lot of times when I would go to lectures, I either just like wouldn't pay attention because it wasn't engaging and it was boring or I just couldn't understand the instructor.
And yeah, I don't want to sound like I'm just like crapping on college here, but, um, bluntly, like a lot of the professors, I didn't even feel like they were qualified, um, to teach. And that's another thing that I brought to a lot of my YouTube videos. And one of the number one comments I get is like, you taught this concept in 20 minutes better than my professor taught an entire semester.
To me, I wish that wasn't the case, but that's why I've had success online because I know how to break stuff down in a way that makes sense. And I found college didn't do that very effectively for me, at least in person lectures. I definitely remember when I was in school, lots of professors who I was like, why are they even teaching this? They must be really good at research because I can barely understand what they're saying. They just have such limited command of English and they just exhibited no desire to get better at English. Yeah.
It was just like no, no desire to get better at teaching. They just walk in and like talking to the chalkboard and stuff. Uh, have you ever seen the movie real genius?
1980s movie, Val Kilmer. Amazing movie. Everybody listening to this, go see Real Genius. It's about a PhD program. I think it's at Carnegie Mellon or MIT or something. The whole theme is really smart people that are really eccentric and stuff, and the 1980s is fun. But there's this kind of musical montage where they're doing school stuff. At first, you see the classroom and the
The students are sitting there kind of yawning and the professor's doing exactly what I said, like talking to the whiteboard and not really that engaging and stuff. And then they go back to that same classroom scene and somebody's set up a tape recorder and the other students are still sitting there, sitting bored. And then you go back and the final scene is just...
Yeah.
Right. Uh, versus the actual, like everybody's probably actually going and working on, you know, programs and stuff like manually instead of just sitting there. And sure, they're going to probably listen to this lecture at like double speed while they're going for a jog or something. But like the actual act of sitting there, it had better be damn engaging. Like if you watch David Malin,
The Harvard CS50 professor. He is incredibly engaging, and he has adapted all of his teaching methodology to 21st century attention spans. Exactly. And you can watch that entire university course. You can watch every year we publish kind of like a new version of that course, like the up-to-date version. But it is by far the most engaging university course I've ever seen.
And I've had the luxury, the privilege of interviewing him on the podcast. But, you know, like a lot of college is not just profound, like insight and revelation and sitting in a seminar with two or three other people and having a very intimate conversation with an extremely learned person. A lot of it sitting in a lecture hall with like 500 people and, you know,
everybody's like distracted and they've got like their, their laptop open and doing other stuff and nobody's really paying attention, but they feel like they have to be there or the professor has made it a point that they have to be there and that attendance is factored into grades and stuff like that. But it sounds like you were able to dodge a lot of that. And I mean, did it impact your grades at all that you said you'd find on the midterms and a lot of this stuff you already knew because you've been programming for years, things like that. But like, uh, I mean, do you have any regrets about missing lectures?
No, to be honest with you, I wish I started skipping class earlier in university. Um,
like maybe that's a crazy thing to say, but it just is such like a profound waste of time, at least for the way that I learn. And I realized that probably within probably about the second semester, like the first semester, I went to pretty much every single class. And you also have to remember, like I'm in, like it was in the engineering faculty. Like it's not the hardest program you can take, but it's not an easy program. It's not a light course load. So you have like 30 hours of, you know, in person lectures or tutorials or labs or whatever you need to be there for.
And that's quite a bit of time per week to just be sitting in a classroom when you then also have four or five different assignments. I'm working on my YouTube channel. I'm trying to make money and do all this stuff on the side. You want to hang out with your friends. You want to have some kind of balance. Like if you go to every single lecture, you very quickly just run out of time in the day to actually do any of the work that's going to help you learn stuff.
So, uh, for me, when the more that I skipped class, the better grades I got, because rather than just slacking off in that time, I was actually learning. I can just learn more in that amount of time than I can sitting in front of, you know, a screen with 500 different people, um, and just being like talk to essentially. And then, you know, trying to write as fast as I possibly can to copy down all of the notes when they're just gonna be posted online afterwards. Right. So it's just,
A really a waste of time in most of the classes. There was a few classes with really good professors. I did a business minor. So in most of those classes I went because those are a lot more engaging and a lot of the stuff's not like posted online. Like they just are talking about it. So you kind of need to be there to get it.
And I was smart enough to kind of build a network of people that were in every single class. So they would tell me important information that might not have been online. Like, okay, you have a surprise test coming tomorrow or something. You should come to class. So I was kind of hacking the system in that way. And honestly, I just couldn't afford to go to class if I wanted to do all the other stuff on the side. So I decided not to. And yeah, I missed some attendance marks, but that was what I made up for it. That's such a profound...
It's like that, like actually like your grades got better when you stopped going to lectures. A hundred percent. And not for everyone, but for me, like I know how I learn and I know like I had already learned how to learn at that point. So as long as I know roughly what the curriculum is, most of the time I would just watch YouTube videos on how to do it. Like I would might even go back and watch my own YouTube video to remember a concept. Yeah. It's just more effective. Right.
That's something I do. Like I, uh, watch a lot of my podcast and listen to him cause it's like, I learned a lot from these conversations and yeah, and that's great. Let's talk about YouTube because you were not only learning all this stuff, you turned around and started teaching it to other people to the extent that you were able to quickly become one of the most popular, like widely viewed, uh,
like hardcore programming, you know, not like lifestyle program, but actually like, let's build this. Here's how to build this. Here's how this concept works. Like, like I guess like the hard programmer YouTubers. Um, and you did this when you were super duper young. Like the first time you and I talked, I think you were like, Hey, 19 or something like that. Like, yeah, it's, it's wild. But, uh, you very quickly kind of like started, uh, making a name for yourself as a teacher. Yeah. So that's, that's interesting. Um,
When I was about 15 years old, I worked at a summer camp. Don't worry, I'll get into YouTube because this is kind of the start of it. And I was working there as a program coordinator for like the STEM section of the summer camp. I'd already been working there for a few years before that, like quite young, like as young as 14, I think. And by the time I'd worked there two years, the director knew that I was into coding and he wanted to kind of build up the STEM side because we were a sports camp mostly and offer like a programming specialty and like robotics and all those kind of things. So I was working there for a few years before that, like quite young, like as young as 14, I think.
So I kind of took that on and I started building out what a really good like one week kind of half day long coding specialty would look like to teach kids how to code. It's a cute cat there. At this point, I was pretty decent at coding. I also knew like how much of an impact that I had on my life and how much I really enjoyed it and I wanted to expose kids to it. So I spent like a really long amount of time building out this coding specialty.
During that kind of planning phase, I ended up creating about 20 YouTube videos, which is one of my first YouTube tutorial series on like the basics of Python, like, you know, Python up to object-oriented programming pretty much.
And, uh, I posted those videos and kind of added them to like the, let's call it school website that I had for the kids. And some random people started finding those videos and they started commenting on the teaching style and the way that I was presenting things and saying, you know, this is really good. We want more videos from you. But at the same time, I was also teaching the kids in the summer camp. So,
I got just a really intense amount of joy from sitting around with these kids who knew nothing about coding. And by the end of one week, they're building out choose-your-own-adventure games or quiz games. They're super passionate about it. I have to drag them away from the computer to go home. I know that a lot of those kids now have gone on to go into computer science degrees or get into this field. And that's what really started the knack and spark for teaching. I won't say I was amazing at it back then, but I think I had some kind of natural drive
the talent in it at least i really enjoyed doing it and then with these youtube videos i started getting a lot of positive feedback and i was like you know what i'm just going to post some random videos so while i was still in high school 16 17 years old i was posting these youtube videos just randomly not making any money from them but you know getting some views um kind of building that experience with my crappy mic sitting in my bedroom at the time um and then just to quickly transition by the time i got into university i'd built up a following of maybe two or three thousand people
And I don't really know why, but I kind of just had this feeling that I could be doing more than playing Fortnite, skipping all my classes and not doing anything. And I just thought, you know what? I'm going to just try to go all in on this YouTube channel. And I kind of did that in first year of university and really quickly grew it up. And that's when I met you guys, started posting some stuff on FreeCodeCamp. You guys gave me a ton of exposure back then. A bunch of people came over to my channel. I can remember days where I'd go from like 60 subscribers a day to like 1,000 subscribers because FreeCodeCamp just posted my video. Yeah.
And yeah, it just kind of took off from there. So that's kind of how the teaching started. Yeah, and just to give people perspective, I think you've got more than 2 million subscribers now, which I know that subscribers is kind of like a vanity metric in my humble opinion. It doesn't mean that 2 million people are like, oh, I wonder what Tim's up to today. Let's tune into Tim. FreeCooking has 10 million subscribers, and we still get maybe like...
40k views on a video the first day we publish it or if it's like really popular maybe it'll get like you know 500,000 views in the first month or something like that but it's not like so I just want to be quick to temper people's expectations it's not like people like I don't know about you like walking down the street like people recognize you can I get a selfie with you that doesn't generally happen with me it might happen with Bo because he's in the intro of every video but it's less common
Yeah, yeah. So just to correct, I have about 1.6 million subscribers on my main YouTube channel. And I've had maybe 15, 20 occurrences in my life of people recognizing me in real life. Like last week at Dubai Mall, some random guy was like, yo, are you Tech with Tim? So it does happen, but I'm not a celebrity by any means, especially considering the type of audience that watches this content. Yeah, I mean, if you're doing something in...
music or art or if you're in like films and stuff, you're going to get recognized all the time. Like the actual audience for people, people that listen to like this podcast that are like serious about expanding their skills and becoming a developer. It's, it's a very, very, very tiny fraction of the people that are into like Taylor Swift, for example. Yeah, of course, of course. So, but still like that is substantial. So, and I also like to emphasize that like,
It's not about the quantity of people. It's like the amount of impact you're having with somebody. If somebody sits down and watches one of your comprehensive Python project courses, which you publish these full-length courses, they're really comprehensive, they're really well taught, really well planned. I mean, if somebody sits down and does that, they're spending a great deal of time with you. They're thinking a whole lot about what you're sharing. It's this whole different level of, I guess, intimacy and impact that you're having. And they may be able to take that
I need to stop my cat from potentially disconnecting the call. It's all good. I've had those issues before. Yeah. So they're probably like – they're just thinking in a totally different way about you and the role you're playing in their learning. And they're looking at you as this person who's been there. And so obviously you were at school. You were –
still getting great grades, even though you kind of didn't see as much value in like at least a lecture aspect of it. And, you know, from teaching other people from teaching yourself, it sounds like you kind of had this intuition that maybe I don't even need college, right? Like maybe this is like this thousand year old institution that has somewhat outlived its usefulness, at least for people like me. Did that thought cross your mind?
Yeah. So I'll walk you through the thought process. And by the way, this wasn't as easy as like, okay, I'm just going to drop out. I hate college. And I tell people today, go to college. I don't not recommend college, even though some of my videos maybe see some clickbait titles and stuff. Generally speaking, there's always nuance to this. I think if you're someone who's a go-getter, you know you're really motivated, you know you're going to work, and the time you would spend...
going to college, like you're actually going to spend that time on your own, not playing video games and not just like sitting around doing nothing, then you can probably learn the stuff you need to learn more effectively on your own than you can in college. That's what I found out as I was going through college. And also what had happened is,
We're in this kind of extenuating circumstances where I'd finished two and a half years. So everything that's logical, my parents, everyone else is telling me like, just finish it. Like it's, you know, another realistically one year of your life. Cause I have a summer semester. So you do have to go to three more semesters. You're done. You get the degree. Uh, it's over. And that's the logical part of this time, you know, just get it over with. But at that point I was now making a lot of money bluntly from my YouTube channel, uh,
I'd already landed an internship at Microsoft and all of the things that college was supposed to give me, I pretty much already had, I'd already accomplished them. And at this point, college was starting to get a bit more difficult when it came to some of the courses where not like I necessarily need to go to the classes, but I got to put in more effort than I would before. So every bit of every ounce of effort I'm putting towards college is
is taking away from this other thing I have, which is my YouTube channel and my courses and all the stuff I was doing at that time where, you know, I'm now working 12, 14 hour days, like just exhausted. Like I just, I can't keep up. I don't have balance. I'm sitting in my basement during COVID, you know, everyone's dealing with the depression and all that kind of stuff.
And I just asked myself, like, is this opportunity cost really worth it? Should I pay, you know, $15,000, whatever, of my own money to finish this degree where I know every single second I'm doing it, I'm going to make less money. It's going to take away from the progress I can make. And I ultimately just made the decision. I really don't think I need this. And if I do ever actually need it, I can always just go back and finish it.
Maybe I have to start over. Maybe my credits don't carry. But if that happens, whatever, I'll go and I'll do it. I know I could always complete the degree if I wanted to. So that was kind of the rationale and the thought process. I made some videos on it. Definitely was not an easy decision. And everyone in my life was pretty much telling me not to do this and to do the other thing. But now, obviously, they're all happy that I did and they trust my judgment. So, yeah. Yeah. And...
Let's talk about Microsoft because getting a job... One does not simply get an internship at Microsoft when they're 19 years old. That's pretty, I guess... I mean, first of all...
I would think that that would be like maybe you'd have several internships and you build up toward that. And maybe you're like senior year. You're like, okay, finally, I got the Microsoft. And I'm sure for every person who applies for a Microsoft internship, there are probably dozens who get rejected. It's a pretty covered internship. Maybe you can talk about that internship, how you landed it, what it was like. And this was during COVID, right? Yeah.
Yeah. So I'll walk you through the whole process. I think this is interesting for a lot of the audience too. So just to put it bluntly, I was in a co-op program in university, which pretty much means in the summer, like, you know, you have assistants from the university and you're supposed to go work some kind of tech related job. You know, they have like
hundreds of like university approved job postings that have the portal and stuff. You go in there and you apply to them. And even with like all the credentials I already had at that point, like programming, YouTuber worked with free code camp did, you know, X, Y, Z, all these extra things that like none of the other students really had.
I still only got one interview out of the like 87 jobs that I applied to in university. So people right now that are like applying to a ton of jobs and saying, Oh, this is so hard. Like, trust me, I had that same thing happen to me when I was just starting out as well, even with what a lot would consider like is insane credentials. Yeah. Now I was very fortunate because I had like a network outside of just university. Like I knew people, I had a brand deals companies I worked with because of YouTube. At this point, my YouTube channel was like about a hundred thousand subscribers. I think, um,
And Microsoft actually reached out to me to do like a YouTube related piece of content. Like, you know, they want to pay me to make some like, you know, advertisement for some Microsoft tech stack or something.
And through that, at this point I was looking for internships. So the stars just kind of aligned and I messaged the Microsoft person and said, Hey, look, I'm happy to do this thing with you, but can you connect me with like any recruiter? Like I'm looking for an internship. Um, you know, what does that look like? So they connected me with someone like completely different from the company who was like a recruiter who connected me to someone else. And then next thing you know, I'm on like a 20 minute, like a phone interview, like Google, um, meet interview type thing, which is kind of ironic considering it's
Microsoft did the interview on Google Meet? They did it with something that was not Teams, I'm pretty sure. That's what I remember. Maybe nowadays I imagine they probably do it with Teams because they built up that infrastructure. Yeah, I'm pretty sure it's on Teams, but I don't know. You know what? Ignore that because maybe I'm like slick. Just tell them that they didn't do it with Skype because they did spend billions of dollars to acquire Skype.
Point is they did it on some platform and I don't think it was teams. Maybe it was Google. I don't know, but I got on some video type call, which wasn't as common back then as it is now. And I did some like very simple, like live coding question. They like put me in this like online code editor and they're like, Hey, you know, like answer this question where essentially needs to use a dictionary and like count some values just to make sure you're like qualified enough for us to like consider you further.
They didn't even ask for my resume, nothing like that. Like I think my YouTube channel was enough for them to like spend the time doing that. And then after I did that, it was kind of clear to me on the interview that I like passed and they emailed me and said, hey, we want to bring you to Redmond's, which is where Microsoft's HQ is. And we want to bring you for like an in-person interview.
Now at this point in time, I did not yet know about this whole like leak code world and this, like what a coding interview was like, even this phone screen, I went into like no preparation. Like I'd have no idea of what I was getting into here.
Um, so as soon as I heard that they like scheduled it for maybe like two months out, um, in like January of 2020, right before the pandemic. And I just like got to work doing leak code stuff. I started looking up, you know, all these resources going on Reddit, finding all these people that have done these interviews. And I started realizing like, okay, I gotta like do this prep and like prepare for like technical coding interviews, which like two months ago, I didn't even know was a thing. Um,
So that's also kind of how my collaboration with algo experts started. Um, because I started using algo expert to prepare and then Lee code and then eventually I was hired by them and made some courses. The point is I like grinded really hard preparing for all this stuff. And then they flew me over to Redmond. And at the time I was in Ottawa, which is the capital of Canada, like a few hours North of Toronto. Um, so I flew like 11 hours or something with the layover, got put in a hotel in Redmond tin, like one of my first times traveling alone. Um,
show up, you know, rent a car at like 18 years old and eventually drive to the Redmond office. And what you were saying with, you know, the people that actually get a Microsoft interview, how many gets hired? What was funny is that I was there as just like kind of a random person being interviewed for this team. It wasn't like a
round of hiring. It wasn't part of these like programs. They take like the top students and hire them. Like Microsoft has all these different hiring avenues. Right. And when I was sitting in the lobby of the Microsoft office, I saw about 40 people similar in age to me, you know, university level, like applying for internships and
And what the recruiter person told me is that of those 40 people that are all sitting here that are about to go do rounds of interviews, only one of them will get hired for whatever the role is that they're applying for. So anyways, that was kind of a unique situation where... So side door. Yeah, go ahead. What I'm hearing when you say this is side door. Yeah. Yeah.
Oh, yeah. This is like, I didn't, again, I don't know any of this going in. Like, I'm completely blind. I'm not like, I didn't spend weeks, like, researching stuff online. Like, I'm at Microsoft right now. I know I have an interview. I'm expecting it to be technical interviews, but I haven't done, like, a coding interview before. Like, I haven't had a real dev job other than, like, random freelance stuff that I've done.
So this is me walking in like almost as blind as you can be with the exception that I knew I needed to like pass some technical test, but I didn't know like what level that was going to be. So I did all this prep and then I had three technical interviews. The first was a relatively like easy medium style LeetCook question. The second was more of like a design style problem that didn't really involve like heavy algorithms. And the last one was actually with like the lead of the org, which was a very like
I would classify it a hard leak code problem that I don't think was designed to be like completely solved in the time. Okay. Anyways, let me give some quick context before we move on just for people. So first of all, leak code is a site that people go to do like, you know, algorithm and data structure, coding interview questions. You can also do these on free code and we've got a ton of them.
And then AlgoExpert is a site that is specifically designed to help you prepare for this process. It's run by this guy named Clement, who's pretty cool. He's got some good videos on YouTube as well. I'm hoping to have him on the show at some point. And you worked for him. So you didn't work... Just because of your phrasing, I just want to make it clear. You worked over at AlgoExpert, not at LeetCode. Yes, yes. And then the other thing I was going to observe is it's very important to note that at this point...
your reputation kind of preceded you. You already had done all the work to build up your reputation and your network and your skills. And those are the three legs of the stool that I tell people to work on. When you don't have a reputation, when you don't have a network, and you're just applying blindly into web forms and stuff like that, even if you're going through some...
You know, university sponsored, like, Hey, we're going to have a job fair. We're going to fly you out. This will be fun and all this stuff. And like 40 people work very hard. What are the odds that you're going to be the one person that gets the opportunity? Well, I mean, mathematically very low, like for sure. Yeah. But yeah,
What are the odds that you're going to be able to get this job if they didn't even know that, like, you essentially have no competition and it's just you and they're just trying to decide, is this a yes or a no? Right. They're not trying to decide, is this the best person out of the 40 people here? Exactly. They're just saying, is this person good enough? You know, so I would imagine you were heavily favored and advantaged over those 40 people.
A hundred percent. And those 40 people, I don't even think we're applying for the same team or anything along those lines. Like what happened? And again, like I'm acknowledging this is very, very like lucky. The stars kind of aligned, but also I had set myself up to be able to be in that position so that that could happen.
Um, is like, they pretty much made a role for me on that team. Like I went in, I interviewed, they weren't even like, they didn't have an official job posting for like what I was interviewing for. I had no idea what the comp was going to be, what I even was going to be doing, what team I was going to be on. And it ended up being actually the, uh, data science extension or the Python extension for VS code on the data science team. That's, that's what I ended up working for, by the way. But anyways, um, yeah, they pretty much brought me in and said like, look, if he's good, we're going to hire him because, um,
He's tech with him. It could be a valuable asset, whatever reasons they had for bringing me in there. If he's bad, then we'll just send him home or whatever. We wasted some money on flying him here for the interview. That's what happened. And because I performed well in the interview, like you said, I didn't have competition. They just said he passes the bar. We will hire him. And that's what happened pretty much. Yeah. We'll talk about – I mean that's got to be crazy. Your parents have probably got to be thrilled. Your professors –
to the extent that they know who you are because you're not showing up to class, I've got to be thrilled. Like, oh yeah, I knew he could do it. I did a great job of teaching him. Probably a bunch of people tried to claim credit. But like you're 19, you just passed the Microsoft interview. The largest tech company in the world, maybe like dependent, like I know between Google and Microsoft, but, and now Nvidia, but like,
Let's talk about what was that like? Was it just like, cool. I mean, you, you had nothing to compare this with like no priors. You're 19 years old, right? Like, was this your first big job? Like I imagine maybe did you have like summer jobs and things like that? Obviously you were teaching at summer camp and stuff like that, but maybe you can explain what it was like to kind of like receive that, that offer and what was going through your mind at that time. Cause you're in Ottawa, you're in school, right?
The pandemic's about to start. Was there any rattling of the pandemic starting at this point? I have to give credit to my mom because she actually called me a day or two before I was flying out to Washington or to Seattle, whatever you want to call. And she said, look, just like when you're on the plane, just wear a mask and wipe the seats. There's this thing. We don't really know what it is, but just be cautious. I was like, okay, mom, whatever. I'll be fine. And then literally two weeks after I got home from the...
the interview, that's when the pandemic started. So it wasn't in Seattle. That was like the first place in the U S exactly. It's quite possible. There were people on that plane with you who already had COVID-19. That's like, I
A day or two before I went there is when there was that initial first thing that people didn't really know what it was, but there was some talk of it. Something was happening in China. But again, we really didn't know anything. And then pretty much two weeks after that is when that massive wave hit, and then everyone kind of knew what this was and was freaking out, and the world's ending. So if I had even had the interview two weeks later, I would not have had a job at Microsoft because they would have just canceled it, and then I wouldn't have been able to work there. Yeah.
Okay, so you're back in Ottawa. Did they tell you right there? Did they hold up their hand and say, you got the job or we'll let you know? So what happened and again, looking back at this, I know it sounds crazy to the audience. But after I passed the final interview, which was with the lead guy, the final boss, so and so. He actually took me for an interview of the entire Microsoft office that we were in.
almost in a way as if he's like trying to convince me to like work there. So I pretty much knew at that point that I had got the job offer, but I didn't have like an official, like this is the pay and this is when you start and this is what's going to happen. I, once I landed back in Ottawa about like, uh, it was pretty fast. It was probably two days later. Um, they sent me the official email saying, you know, congratulations. And then go through the massive amount of people in Microsoft's HR departments, like go through all these forms and stuff. Um,
So when I first got that email, I can remember it was maybe like 8 p.m. at night. And I just like came out of my room and just told all my roommates. Everyone was super happy. We were celebrating. And yeah, it was a pretty unreal feeling because you kind of know when you get one of those level of positions. Like you're kind of set for life at that point because you now have that like stamp on your resume of like, I'm good enough. I've proven myself here. So yeah, it's just an overwhelming feeling of like all of this like is paying off.
Um, you know, like all of this hard work is like finally coming to fruition, even though it already was kind of with the YouTube channel. It's like also that a little bit mark of authority. Like I do know what I'm talking about. I am actually good at coding. Like, because up until that point, especially when you're teaching coding at 16, 17 years old, like there's an intense amount of imposter syndrome. Um, you know, when you go out and you put yourself out there and like, maybe you make a mistake or something's wrong. And, uh, I'll just say it was like a lot of validation pretty much that that's how I could summarize it. It sounds like it.
So, so what do you do? Like, obviously the pandemic is breaking out. So this is a unique situation and hopefully nobody will experience this because hopefully there won't be a pandemic like the one that we just had for another hundred years. And hopefully next time we're way more prepared and everything like that. And it's not a complete disaster. But let's talk about like, how much do they offer you? I'm sure a lot of people are curious, like how much money is this 19 year old kid going to get?
Yeah, that was crazy. The salary was $7,350 per month. And also, I'm Canadian, so keep in mind, that's like $10,000 something. At that time, I think it was almost $11,000 Canadian dollars, which is crazy. I mean, I'm making more than my parents at that point or a bunch of other people that I know.
It was only three months, the internship, so it's not like I have immediately lined up for life salary for that. They offered me, I think, something like a $5,000 relocation stipend. Plus, I was going to be working in Seattle or in Redmond, and they were going to pay for the housing. They were going to pay for rental car. They were going to pay for gym, gymnasium.
Like everything. In addition. Yeah. Yeah. For sure. If you add the entire compensation package up, it's like for three months, it would have been like $40,000 Canadian. So maybe like 30, 30 K us just still crazy. Especially that. I mean, that's back in 2020, but what happened is because the pandemic happened, they didn't like revoke my offer, but they just said like, Hey, we're, it's going to happen like online now.
So it ended up just being like a fully remote internship. So I didn't get that full experience. And Microsoft interns have like a unique culture too. So I kind of missed out on all that stuff. But the team did a really good job at trying to like give me a real like decent experience working for Microsoft. And to be honest with you, it worked out well because then I had enough time since it was remote to like work on my YouTube channel still and do other stuff and balance those things like as I see fit rather than having to be in the office for like, you know, eight hours a day, right? Yeah.
Awesome. And so where do you go from there? You finished the internship and you're still technically in school at this point? Like was this before you quit? Yeah, yeah. So I finished the internship and then I do one more semester of school. And at this point, I pretty much already know I'm going to drop out, but I'm like, I got to at least finish the semester that I'm currently in before I make that decision. And then I dropped out of school. And then now that I did this, I kind of had that validation. I started working for AlgoExpert making like the...
algorithm style questions. I eventually went on to build a programming expert course with them as well as a blockchain course with them. I did a bunch of other entrepreneurial things and yeah, that's kind of what happened at that point.
Yeah. So, uh, so that kind of like wraps up like your career arc, which again, it's short cause you're young and you've got like most of your life ahead of you. Right. I'm stoked to hear about the things, but as I promised earlier in the interview, this is not just going to be an autobiographical interview. We're going to dive deep into a lot of programming. Let's do it. Yeah. So, um,
I think one of the things I want to start off with, because this does feed into...
your ambition and the things that you've accomplished. And I never want to be like one of those negative people that are like, Oh, kids these days, what a bunch of dummies, you know, like, like this intergenerational warfare that people wage like, Oh, he's a boomer or, Oh, they're a zoomer or something like that. Right. Like, I think it's ridiculous. And like, people are pretty much the same based on their circumstances. Right. But one thing that you have observed is,
Being a young person is looking around. You've seen that. I think you said something like young people try not to think any more than they have to. Something to that extent. And I'm not sure if... Like that, I think, could also describe a lot of people in my parents' generation. If you want to group things by generation and be generationist, Star Trek is, right? Star Trek has the next generation. And I'm a huge Star Trek fan, so maybe it's not that bad. But basically...
Do you think that this is still the case? You said it several years ago, and you've obviously grown and developed, but do you think that there is some intrinsic property of a lot of people? We're going to be very generalist here, that they just try to avoid thinking. And what are your thoughts on how not thinking sets people back? Yeah. I think I would probably add some nuance to it now and maybe describe it differently, but
What I noticed when I worked at the summer camp, which is what this comment stemmed for that I think you're referring to from a few years ago, is like when I would bring kids into this coding specialty, it was almost like the first two or three days was just rewiring their brain on how to think through like the most basic things. Like the immediate go-to, especially now when we have like AI and all these tools, is like, I don't know something. Okay, immediately ask for help or immediately complain or immediately give up. Like there's no struggle. There's no like pressure.
You know, deep critical thinking, which as programmers, we all know, like being a programmer is really just struggling until you find the solution to a problem. Right. So I realized that when I started teaching all these kids is like, I got to explain to them, like how to think like, okay, you have a problem. Let's first figure out what is the problem?
Okay. This is the problem. Where is the problem? Is it in this file? Is it in this file? Like just breaking down like that super basic, like how do we kind of, you know, narrow down where something is and like eventually attempt to try to find a solution. And I think a lot of people today, like,
They're just, they're not really like trained on how to use their brain. Like I said, even when we go through school, you know, it's like, it's right or wrong. Maybe in math class and stuff. Yes. There's some critical thinking and you know, you got to figure those things out. But in a lot of cases, it's like, just do this to get the answer. Just do this, follow this step-by-step procedure. It's like, I, we're in like the brain rock culture now where, you know, even myself, I noticed my attention span slipping because all these short form videos and like, I can't even watch a movie anymore because it's too long and stuff like that. So yeah,
I don't know how to put this concisely. I just know that
Me as a kid, I really liked thinking. I liked using my brain. I liked struggling and being stimulated, and that's what brought me into programming. And when I introduced these kids to programming, it's like the first thing that they ever actually have to think how to do. And it's immediately very apparent how they're really lacking in that skill, if that makes sense. Let's talk about critical thinking skills. Sure. I think people get... The term critical thinking and problem solving, those terms get thrown around, but...
It's like a very broad spectrum of different skills. And maybe you can talk about like, how would you subdivide critical thinking? And like, maybe you can give some examples of ways that your critical thinking skills that you've developed have progressed and like how you might've approached the problem back in the day versus how you approach it now with all your experience. Yeah.
Yeah, sure. So I think the biggest thing and the number one tip I give to most people is just simplifying and breaking down. So if we want to bring it... The first...
The first way that you can be able to think about something is to break it down into things that are easier to think about, right? Like if I want to try to solve, like build a Twitter clone or something like that, even right now, neither of us can just do that instantly. Like the first thing we're going to have to do is start breaking down all of the smaller things that are going to go into doing that and then continue that process recursively. It'd be like many, many, many times for all of those steps until we get down to something that's easy enough that we can think through a solution to that.
So that's the first thing I noticed with like a lot of these kids, right. It's like, okay, I want you to make a Python program where you ask for the user's name and then you print out, you know, hello, whatever their name is. The steps are already in that sentence, but they just don't think of it like that. Right. They think of the whole thing at once and it's overwhelming and they don't know how to do it. And why would they know how to do it? Because they've never done it before, but the first thing should be, okay, I want to do this. What do I already know how to do? Okay. How can I break this down into a smaller step? So I know it's not quite answering your question, but that's like,
just the first critical skill that I think everyone needs to develop is how do I take this really complex thing and just try to break it into the fewest possible or the most things that I can possibly understand that are like the smallest in size, right? That's what they kind of teach you how to do in math. You know, you're simplifying expressions, you're expanding things out.
Yeah, I don't know how to say that more clearly. It's a difficult thing to define what is critical thinking, but yeah, that's what I've got for you right now at least. Yeah, I mean, it makes perfect sense. I can give a very broad, not programming-related idea, just something like, for example, each week I record an audio cover with keyboards, bass, drums, and guitar, and we use that as kind of our intro music because it's a different pop song each week.
And a lot of times I'm like, well, I'm not going to have vocals, so where would I put the vocal melody? Should I put that on the right hand of the piano or the guitar? Can I learn that part? Can I figure out what that chord is? Will that chord...
timbre work without like, you know, like some licensed sample or something like that. Like, like just breaking things down into, okay, like what is the simplest, most basic? And usually it's just me pulling like a MIDI transcription of the song and like trying to learn it on piano and then figuring out how to transpose that or arrange that. But, um, you know, like,
When I first started doing this, I was completely daunted. Like, oh, how could I ever, you know, capture that? And it's just one of those things that the more I think critically about, like, what can be done and which instruments are going to, like, you know, sound and which synth tones and stuff like that. Like, breaking it down into different steps and almost like creating, like, a checklist. Like, okay, first I've got to figure out, like, you know, what BPM is this song in? What key is this song in? You know, what...
Are the drum sounds like acoustic or are they electric? You know, like, like is the baseline played on a guitar or is it played on a, you know, a keyboard or is it sequenced like arpeggios or something like, like trying to understand and like,
That's how I kind of like reverse engineer a song, so to speak. And I know that's not program related, but like this is just the first thing that came to my mind that I was going to talk about. And initially it was incredibly daunting and I thought it was impossible. I'll never be able to do this. And then once you break it down into these small steps, you can realize, oh, actually I can do this tiny little step. This is not a problem. And that's like what the big thing is really just a whole bunch of small things. You know, as you said, like atomic bits, right?
Breaking things down. If you can further subdivide things, do so until you have something that is an incredibly non-intimidating task that won't get you like... Because I think the problem that a lot of people run into is they feel daunted. And it's easy to feel daunted when you get some algorithm challenge and you have no mental framework for how to deal with that and everything like that. So one of my follow-up questions is,
You've practiced a lot and everybody will tell you like, like, I don't know everybody, but like most people that I talked to and certainly I will tell you the way to get better at something is to practice a lot deliberate practice. But what can you do beyond deliberate practicing? And like, how do you practice something? Cause merely going through the motions is very different from, um,
Like the kind of deliberate practice that you do when you're learning a new skill. Yeah, yeah, yeah. 100%. I think the first thing before you start practicing anything is you have to have some kind of practical goal in mind, right? A lot of people tell me, you want to learn programming. The first question I ask back is why? What do you want to do with programming, right? This is a very, very general thing. Just learn programming.
but you have to know why do you wanna actually do this thing? 'Cause if you don't know why and what the end result should be, you have no way to measure if you're actually making it in that direction. And this is actually, I started on a bit of side tangent, but this is a mistake I made early on when I was learning programming.
I didn't have a goal. I was just doing it. Cause it was fun. Like, I guess you could say the goal was like entertainment, which may sound crazy to people or enjoyment. But what ended up happening is I just went between all these different things and like, yes, I was learning some stuff, but not super effectively considering the amount of time I put into it. Cause I didn't know where I was going. So the first thing is okay. Like what, where do you want to end up? Like, why are you learning this? The reason I was able to actually study all this leet code stuff for Microsoft
cause I knew the goal was past these technical interviews at Microsoft. So every single day, when I sat down to practice Liko questions or a practice, whatever, all these problem solving challenges, I asked myself, okay, I need to practice this in a way where it's going to be applicable to this end goal. So what I would actually do for every single question, which now sounds crazy, but it was good to do is I would literally take a whiteboard out like a physical whiteboard. I would look at the question online and I would
rehearse like in my room, like a crazy person speaking out loud, my thought process and writing out the solution on the whiteboard. The reason I knew to do that is because I knew that's what I was going to have to do in my interview. So I said, okay, how can I emulate that environment as much as possible? So that it's just second nature. And I did that, you know, like 75 to a hundred times, you'll hear people online say, you know, I got to, I do 7,000 Liko questions or whatever, right? Like insane, insane volume. You
You can mitigate that level of volume if you're doing it correctly. So you just have to have like a plan and a strategy for how you're going to learn. And you can adjust that along the way. Like I started realizing really early, like I can't just go right into these medium and hard lead code questions because I have no idea like how to solve these.
So that's why I started with algo expert. And I said, okay, let me watch Clement solve these things. Let me pause the video. Let me challenge myself, try to guess what he's going to do next, but let him kind of guide me on these first like 15, 20 questions. And then I'll try them on my own. So just like that kind of incremental iterative process where it doesn't need to be perfect at first.
And you kind of will develop that strategy and what works for you. But I would say the number one thing is, yeah, just having a goal and also measuring your progress. Like that's why things like LeetCode are really good because you can see, okay, like I did seven easies this week. Now I did five mediums, right? Like you can track that you're making that progress. And when you see the progress, just like going to the gym, for example,
You keep doing it because you know you're actually getting better. Whereas if you don't have any way to track your progress and you don't know that you're improving, it's very difficult to just keep doing the same thing over and over, right? Yeah, absolutely. And I'll say this commonly hits programmers. Obviously, there's imposter syndrome, but there's also kind of like this perception of your own skills plateauing.
For sure. And what I always tell people is like, you didn't actually plateau. It just feels like you plateaued. You're still making incremental gains. It's just that for whatever reason, like you're going through a period where the gains are not as evident. Like when you're first learning the code, like writing your first line of code, you've already like increased by 100% the amount of code you've written. Exactly. Or infinity percent technically. The amount of code you've written in your life, right? And then the second line only increases it by 100%. And then it just further subdivides.
And so you can get to this point where you feel like you're not really making a lot of progress and you can feel like you're in quote unquote tutorial hell, which is probably the most overused and misunderstood term out there that new, new people in tech, but you're familiar with the term. I hear you laughing. Like how would you describe tutorial hell?
Yeah, I would say tutorial hell is more like, at least the way that I think of it, is when you're watching a video, like you feel like you can follow along with the video, like you understand what the person is doing. But if you were to try to emulate that on your own or when you try to emulate that on your own, you're completely lost.
It's funny. My girlfriend right now, she's across the room. She's taking my programming course and she's kind of getting like the first glimpse of that where she's watching me, which is kind of hilarious. And she's like, okay, this makes perfect sense. I understand everything. She passes all the little quizzes. And then as soon as she goes onto the code editor, it's like blank. Like, what do I do? I don't know what to do. I don't know what to do. So I kind of gave her a method for how to get over that, which like, you can't just watch the video. Like the video is there as a guide, but you should be following along. You should be pausing, challenging yourself. Like,
It should be an interactive thing. It's not meant to be a lecture, right? Which is all the things that I skipped when I was in university. So I'm not sure if that makes sense. That's where you watch it. It makes sense. But then when you try to do it on your own, you really are like stuck. You have no idea where to even start, even though it feels like you should know that because you just watched and understood someone do it.
Yeah, and I'll say that the way the Freeco game combats this tendency of people to delude themselves into thinking they're good at programming just because they watch somebody who's really good at it. I always joke that people love watching Twitch because it feels like you're insanely good at CSGO or something. And in fact, you have to remind yourself, no, I'm not winning.
I'm watching somebody win. It's not me, but it feels in your brain. It almost feels like you're like, wow, I can't believe I made this shot. Oh, I'm watching Ninja or somebody. They made that shot. But that's like the way the brain works, and it's kind of a quirk. The reality is just like you need to get people –
hands on the keyboard, get them, you know, punch in the face as quickly as possible so that they feel like, Oh wow. Well, I need to keep improving. Like I'm not there yet. Like you need to kind of like humble them to an extent, but you need to do so in a very careful way. So the way free code camp does that is we, we have these kinds of like more handholdy, uh, projects where you're like stepping through and like, okay, now write this line of code and there's all these tests to make sure you don't fall to off the rails. And as soon as you finish that like guided project, uh,
Boom. We put just a test suite and the blank canvas. The blank canvas problem, oh no, what do I do? What do I do? And then you can start looking at the test and start thinking, okay, this is testing that there is this element on the DOM or something like that. So I better create that. And then next thing you know, just by following the test, you can kind of figure out. But that's a very different process from just watching somebody guide you through every step.
So I think it's really cool that you're like, first of all, that your girlfriend is learning the code from you. That's amazing. And it's great that she can also have access to Tim directly to get feedback on her performance and her growth as a developer. So super chill of you to help her do that. Yeah, she's my most expensive student by far. We're one on one learning. Yeah.
Yeah, certainly in terms of the amount of time and energy you're putting into helping her, I would imagine. So...
One of the questions that I have is, like, let's say, hypothetically, you are approaching one of these. We'll just use the term leak code problems because leak code is this website that has lots of these. I think a lot of them are actually taken from, like, Google question asked on this date. Like, people memorize the question, then they come back and they report them on this. So you can actually do kind of somewhat similar to those programs. But, I mean, a lot of those programs are just classical computer science programs.
data structure algorithm problems anyway that you'll probably get exposed to, but there might be some unique quirk or it might be helpful to see what the increased likelihood of a certain question being asked at a certain company is. It could be that Amazon cares more about a certain type of question whereas Google cares more about another type of
Uh, but let's say hypothetically you got, uh, you had to do like a coding interview and you walk in and you've got the whiteboard and you've got nothing on you. You don't have access to stack overflow. Uh, and, and basically they're like, all right, here's the problem.
What is your process? Let's say like ROT 13, like rotate the 13, like the Caesar cipher thing. That's a very common, like very elementary program. But how would you start thinking about that now that you have a lot of experience programming and that you've already gone through the battery and gotten a job at Microsoft and stuff like that?
Yeah, yeah. It's been a while since I've had to do those type of problems. And to be honest with you, if you threw me in a coding interview right now, I probably would perform worse than I did when I was 19 because I had so much immense preparation before that. It is one of those things where you got to be fresh to do it well. So if you are doing a coding interview, I'd say like,
to the point where when you go in, like, you know that you're as prepared as you possibly can be. And that's going to remove like all of that anxiety and stress, which I talked about before on the channel. And now just if I can just interrupt real quick, this is one of the, you know, we thought we talk about like systemic bias.
Like, interviewers are very much biased toward fresh college grads because those are the people who have time to do the stuff and who just went through all of this stuff in computer science. So a fresh computer science grad might perform way better at a coding interview than, like, even a senior programmer. Just kidding.
because they're so far removed from that and because they haven't recently been practicing it and because they're busy doing a job and they don't necessarily have time to grind leak code all day. It's a different like skillset for that specific thing, but generally solving problems. Like if you just take two random people, you know, you take a programmer, you take a non-programmer and you say like solve this general problem, but not code it, just like figure it out. You'll see immediately like the difference in thought process. Yeah. Um, to answer your original question again, like,
The first thing I want to do is I want to understand the problem as deeply as I possibly can. For me to solve something out at this point as an experienced programmer, the more difficult thing is understanding the problem and coming up with the theoretical solution than it is to write that in code. You're probably similar. Probably. I mean, other people that do coding all the time, like the translation to code is the easy part. Figuring out what code to write is the hard part. So that's like the first assumption I want to start with.
with or at least note fact whatever so I want to start by just really understanding the problem even if it's something super super simple I'm gonna ask stupid questions I'm gonna make sure that I understand the type of input that's coming in the expected result I'm gonna take an edge case or a case that they gave me and I'm gonna make sure I know how to get to that answer and then I'm gonna come up with my own cases and make sure I come to the answer they're expecting me to come to I wanna make sure there's a mutual understanding on like what the goal actually
actually is similar to what I talked about learning programming. Like you need to know what you're trying to do before you can do that.
The next thing I'm going to start doing is trying to solve the smallest parts of the problem I possibly can and eliminate any edge cases. So in a lot of these types of problems, you're going to have like an empty list, for example, that might mess up your solution. Are you going to have something where like maybe two elements doesn't work or like you just have these weird cases where maybe you're getting a negative number or an empty string. So I'm just going to try to take care of those right away so that when I get into my solution, I don't need to worry about all these like weird cases that can make the solution overly complex.
Then I'm gonna start breaking it down as much as I possibly can I'm gonna spend more than half my time on the whiteboard Walking through my thought process explaining exactly what I'm trying to do and how I'm trying to come to this solution this is where it's gonna become ambiguous our vague to the viewer because
This depends on the problem. You can watch me do this on YouTube. I have mock coding interviews that I've done with Clement and all kinds of videos specifically doing this, but I'm going to just walk through my thought process as much as I possibly can. The biggest mistake a lot of people make in these types of situations is they're afraid to say something wrong or that they're afraid the first thing they think of isn't correct. It's almost never going to be correct and
And you need to go through like seven or eight like failed versions of a solution or ideas before you probably get to the right thing. So I'm going to start like thinking of the simplest thing I can that's probably not going to work and then immediately eliminate that. So, okay, that doesn't work. Then I'm going to go to the next one and the next one, next one. And I'm going to say all of this out loud so the other person knows what I'm doing, which is critically thinking, which is, by the way, the reason they ask you this question so they can dig into your thought process. Right.
And then once I've come up with something and I'm drawing this out and I've parted the solution into the smallest parts I possibly can,
Then I'm going to start solving it. Right. So let's say, you know, I've come up with, this is my algorithm step one, two, three, four, five, whatever. Cause I've broken it down as much as I can. Then I'm just going to have like some pseudocode or some weird, uh, you know, cryptic drawings. And I'm going to start just writing the code to solve the problem. And the coding part is the fastest, um, because I'm just translating all of this stuff. I just thought about, right. Like that, that detailed plan I came up with now. Okay. I just got to turn it into code, which as an experienced programmers is the easiest part by far. It's like writing English at that point. Yeah.
Yeah. So once you understand the problem and everything involved and you've kind of eliminated a lot of the edge cases and you've talked through things and you've reasoned through it and importantly, your interviewer has watched you do this and they have insight into your thought process because you've been talking out loud the entire time. Pro tip. Pro tip.
Talk out loud the entire time. Don't just look at the whiteboard and like, oh, no, no, no. You need to be talking through everything. And then writing the code becomes the easy part, right? Because it's just implementation details. And you have a tremendous amount of experience writing code, of course, because you've been doing it for years and you're passionate about it and you enjoy it.
Uh, one question I, I really wanted to ask is you advocate for starting with Python, which is the same thing that like Dr. Chuck, David Malin, uh, lots of, uh, programming instructors, free code camp. We use Python extensively. And basically aside from doing like basic, we start with like web, uh, where you're doing CSS, HTML and JavaScript. But as soon as we get into the real programming, quote unquote, real programming of like actually implementing things like, uh,
Most of that is taught using Python. Yeah. What are your current thoughts on Python? Do you still think in 2024 that this is the place to start? Like if somebody was just like, I want to learn to program, would you recommend they start with Python? Yeah. So first, again, like...
I would love to just say yes or no to that, but it really is more nuanced because you've got to first understand, like, why are you learning to code? Like, if it's simply a hobby and, like, you just want to, like, kind of know about coding, Python for sure because you can do the most amount with it very, very quickly. Maybe in comparison to something like JavaScript, it's similar in terms of building websites and whatnot. If you want to do, like, little hobby tasks or automation projects or you want just, like, a massive amount of resources online, like, the amount of Python resources is so extensive, it's just a really good place to start. Yeah. Now...
The reason I typically recommend people start with Python is because the syntax is just easier to understand. A lot more experienced programmers don't appreciate typing skills, navigating the editor, moving your cursor around and using braces and stuff. In even beginner programming tutorials, people don't appreciate it. You've got to explain what a pipe is or a back tick or...
A tilde, like people don't know what these things are. Like go ask your friends right now if they know what a tilde is on the keyboard. Most of them probably don't know what that is unless they program, right? So I like recommending Python because it's the simplest to write and it's the closest to English. So for a complete beginner, it's the least overwhelming thing when it comes to writing in a real programming language. That's not, you know, something like Scratch, for example.
So you can immediately get your hands dirty. And one day you can write like a really basic program and see real output in your terminal. And it's like motivating to do that. So that's why I recommend Python. Now, if you're just like super smart and, you know, maybe you've coded a little bit before and like your goal is to get a job, Python is not always going to be the best thing to start with. Like,
There's other languages that are in more demand or that are going to be less competitive to get roles for, like C++, Java, PHP. There's all kinds of other fantastic languages that are probably going to set you up better to land your first role than purely knowing Python. So that's why I like to add the nuance to it. I think it's fantastic to start with, but appreciate that just because you started with it doesn't mean that's what you're going to use in your career and that's the only language you need to know.
Sure. And one of the most common questions I get is what programming language should I learn first? And my instinct is like, well, I'll say Python and I'll say that's the wrong question because I feel like the, the programming language is merely an implementation detail. And like once you've learned one high level scripting language, it's the other one and the others, they all basically, the important thing is to understand what's actually happening under the hood, why it's structured the way it is. And then fundamental aspects of like, you know, how computers work, things like that. But like,
Like, what would you say are the most important conceptual skills that people should focus on rather than just saying, oh, I'm not sure about this Python language because people have a tendency to switch or they'll try to get geek out on like having these bespoke tool chains when they don't know what they're doing and stuff. They're like, I'm learning Vim. And I'm very guilty of this sort of stuff myself. I learned Vim. I learned Emacs.
I even switched keyboards to like the programmer Dvorak keyboard. Yes, it is pronounced Dvorak. Dvorak is the composer. Dvorak is the corrupted American version of the European name. But sorry, I always have to say that because people always think I'm mispronouncing it. But I learned all these different kind of like in the weeds things that don't really matter. What really matters is what? What would you say really matters when you're starting to learn to code?
Yeah, look, I mean, the first thing when you're learning how to code is like write some code, right? Like I'm not...
especially when I'm teaching beginners, like I'm not focused completely on like theory and like, let's understand a pointer and a reference immutable types. And like, yes, those things come up, but before any of that's going to make any sense, or you're even going to want to know those things, like you got to write a little bit of code. So that's why it is like an easy thing to say, start with Python. I going back to the previous point, because that gets you into that really quickly. Now, beyond that, the most important thing is actually like to learn how to struggle and to be okay with failing and solving problems.
programming really is just running into a ton of different bugs and errors and like things not working how they should and figuring out how to fix them very rarely are you ever going to see a program who just sits down and writes perfect code and doesn't have mistakes so as a beginner especially like focus on the process focus on the struggle like if you're sitting there and you've been working on a bug for one hour and you can't figure it out trust me we all know that's super super frustrating but that's the really important thing to overcome to build up that persistence
and to be okay with that feeling. Like when you're struggling like that, that's when you're really making the most amount of progress. So focus on putting in that effort and being okay with, like being, being okay with being frustrated pretty much. Like I can tell you the number of times I'm not like a rageful person that I've wanted to like punch my monitor or take my keyboard and throw it across the room. Like, yeah, like the, the, the common meme, right? Like it's,
That is programming, especially when you're starting out and you just don't know what you don't know. And there's so many things that go wrong and the YouTube video didn't work out. So like focus on that struggle and that effort. And like I made a Instagram video that's doing really well recently. There's like to code is to struggle, to learn is to struggle. Like, so just focus.
just remember that and focus on that process and don't immediately give up. Like you got to build that perseverance. And that's something that carries to many other areas in life, not just programming. Like all programs are people who can sit down, deal with a bunch of different bugs and figure something out. Like you're just a pro at figuring stuff out. So yeah, that's the main, like main concept. If you get that, everything else you can learn, but you got to build that kind of personality trait of like being the guy who will figure something out or girl or whoever.
Right. Awesome. Yeah, well said. To code is to struggle. I love that. And at the end of the day, like I always say, any sufficiently motivated person can learn to code. Sufficient motivation is the hard part, right? Exactly. It's not being smart enough or good enough at math or anything. Like if you're resourceful and you're patient, you'll figure it out, right? But like you could –
You could probably just drop somebody in a library in the 1970s with nothing but crappy, you know, whatever books were available. There were actually some really good books available back then, like the C book by Dennis Ritchie and Brian Kernighan, which you can hear Dr. Chuck read on the Free Coke Camp YouTube channel. He goes through and he reads the entire thing with commentary. But like for the most part, like the resources were extremely limited, but a sufficiently motivated person could.
Could do that. Steve Wozniak did that. Yeah, obviously he's like an outlier genius, but there are probably plenty of other people who in the 1960s, 1970s, 1980s, like as soon as even basic machines were available, were able to kind of figure out how to start using them for whatever was possible at the time. And it's always been about struggle. And I argue that that's one of the reasons why
are so good at programming because they don't necessarily realize how frustrating it is and they don't necessarily have a whole lot of other things pulling them away. They're not thinking, like, I could be going out and working and making money or I could be spending time with my kids and instead I'm here with this infernal machine, you know, like...
So I, and another thing I'll say is like, and I would love to hear your take on whether you think this is accurate, but like, I think one of the reasons why people have this, uh, this perception of like kid geniuses and stuff like, like you're probably the poster boy for if anybody is like an early achiever who, um, you know, like was just a whiz kid or whatever. Like if anybody still says that word, I know I sound like an old person saying that, but like that is probably just because you were passionate about it and interested in it and you were able to be,
That overwhelmed any frustration or ambiguity or anything that you felt that just your passion kept pushing you forward and you just put in the time, right? Do you think it's because you had some genetic like predisposition to being able to code really well or do you think it was just the amount of time spent?
No, I mean, look, I will say that, especially in like programming software engineering, it's like STEM heavy fields, like high IQ is going to help you. And like, there are some people that just bluntly, like probably are not going to make really good software engineers. Like, I'm not going to sit here and lie to you and tell you every single person is going to become the next software engineer and land like a high tech job. Like it is not for everyone. And I was, I'm fortunate enough to, you know, be predisposed to be able to learn this thing, but that's not why I was good at it.
The reason why I got good at it, and by the way, it probably took me a lot longer than most of you watching this to get good at it. Cause I started when I was 12. I don't even know like basic math stuff, um, is cause I put in that amount of time. And cause I really, really enjoyed that struggle and that problem solving. Like there'd be nights where like my dad would come in and be like, dude, go to bed. It's two in the morning. I'd be like, no, there's a bug in my code. Like I need to fix this. Right. Like it's just that like stubbornness almost, which I think a lot of kids have. Uh, and then for some reason it goes away when they get older. Like,
If you give kids a problem, a lot of times like they will work on it until they solve it. Like they, they really want to get it done. And for me, I loved that feeling. And as much as it was super frustrating, like the overwhelming relief you get when you finally find that fix, that might've been the simplest thing in the world. And then you never forget that going forward. Like there's bugs I can remember from five, six, seven years ago. So yeah, it is just purely the amount of time. I can't track the amount of time that I've been coding now for 12 years, uh,
since I'm 24, I started when I was 12, like the amount of hours I put in and also the amount of probably wasted hours where I wasn't doing something productive, but working on a passion is, is immeasurable. It's easily over 10,000. And that's why now I say writing code is literally like writing English. Uh, even like the way I type on my keyboard, like I type in a different style to write code faster. Right. So, um, yeah, it's for sure. It's just the volume really in the passion.
Yeah, and I'm curious, now that you do have programming skills, I mean, the learning never ends. I like to say that the key job description of a developer is to learn, not to code. Code is merely like residue of learning, right? It's the actual implementation details that actually get the job done, but the actual work is the thinking, right? Then the solution is just kind of...
Again, it's essential that you have the actual output of your work. You can't just do theory crafting and live in your head and be a dreamer forever. You actually do need to put code to memory. But let's say now you have a pretty broad array of skills, not just technical skills, but let's focus on technical skills. Sure. Okay.
Let's say a new technology comes out and it's really powerful, like large language models, right? Like they probably existed in labs. They weren't nearly as large as they are today. And they didn't work nearly as well as they do today because of the transformer architecture and all these other improvements, right? And let's say that you suddenly have to learn like an entire new language.
or set of tools or something like that. Can you walk us through how you would approach that? And maybe you can talk about how in the early days of GPT, I don't know if you got into it at GPT-2, GPT-3, but when you started actually taking it seriously and how you went about learning how it works and then ultimately how you went about teaching it and incorporating these tools into your own projects and things like that. Maybe you can, we'll use LLMs as kind of like a topic topic
around which you can talk about how you went about learning it. Because I'm very interested in how somebody like you goes about assimilating a large body of information. Sure. So first things first, like again, I got to know like why do I want to learn this? What's my ultimate goal? For me, even if I don't like, if it's just pure curiosity, I always start by attaching like something that I want to do at least with the thing that I'm going to learn so that I can look for specific pieces of information relative to that topic.
Like we've talked, it's very overwhelming to say like learn LLMs or like learn this new module or learn this new thing. Like there's infinite things you can learn about pretty much anything, right? So you got to kind of narrow the scope immediately so that you actually know what it is that you want to do. So I'm going to give you a more relevant example. I was learning Streamlit recently. It's like kind of a UI library for Python. Yeah. And I wanted to make a mini course on it. So like...
My goal of learning Streamlit was to make this course to teach on YouTube. So I know when I'm learning this module, I've got to focus on the core important concepts and get rid of all of the other garbage and just try to convey it as concisely as I can to an audience. That's the goal that I started with. Now when I want to learn this, the first thing I'm going to do is I'm going to spend probably 20, 30 minutes just trying to get some high-level overview on it so I can kind of pick up a few things that I don't know that...
that I don't yet know. You don't know what you don't know. That's kind of what I'm saying. So what I want to do is I want to listen to an expert online who's maybe the Streamlit founder who talks about it for 15 minutes, or I want to read a quick article on Streamlit, or I want to read the main pages of the documentation. I want to get just general info that can help guide me in my learning next so that
I'm a little bit more informed about what I'm jumping into. I don't want to just like go right into streamlit docs and start like, you know, start from point a, cause that could be a major waste of time. If that's not like the main feature I want to focus on. So I'm trying to like chop them out of stuff. I need to learn in half, like as quickly as I can. So I get that like high level overview and,
And now I'm going to make like kind of sub goals for the task. I'm going to say, okay, like I want to learn Streamlit. I want to know how to like make this simple website that maybe I can make in JavaScript in Streamlit. Like how fast can I learn how to do that? I'm going to open up a code editor. I'm going to open up Streamlit docs. I'm going to open up chat GPT or AI. And I'm just going to start like trying to solve this task.
It might involve me spending some time upfront, like just reading a bunch of docs or going through a YouTube tutorial that's short and two times speed or something. But I'm trying to get to like a sub goal as fast as I can so that I'm using those problem solving and critical thinking skills. I'm not just blindly reading through content, like hoping I pick up some information. The way that I learned something is because I got to apply it into something. So that's why I'm looking for those specific bits of info. So I start with something basic just to get like the lay of the land or a grasp.
Then I have my specific goal, so...
A lot of times it's making a YouTube tutorial. So I'm learning like just what I need so that I can know it well enough so I can teach it to someone or I have some project I need to build or a freelance thing. So I'm like, yeah, I'm going to learn this specifically to do this thing. So, I mean, I could keep going, but that's kind of the general gist of what I do. Like I want to apply it right away and I don't want to just get pure theory. Like I want to know why I'm learning it and immediately start working towards that task incrementally. Okay. So it's interesting. It sounds like you frame everything as a project and like there's some, some,
that can be measured. For sure. Like whether something goes I got to complete something. How do I know if I learned it if I don't like complete something, right? Absolutely. And I think that like a lot of people are structured like in like everything is structured around competition like school, it's like athletic competitions, competitive programming, you know, sports, war. Who has more money? What's the net worth of this rich douchebag versus this rich douchebag? You know, all that stuff, right? And like a lot of people
A lot of that comes down to people not being able to measure things and come up with their own heuristics and their own evaluative criteria of different outcomes.
You can turn anything into a competition if you're competing with yourself. You don't need to go run a marathon with a thousand other people. You can just go run and say, oh, I shaved 10 seconds off my run this time. And you can compete with yourself. Like Michael Phelps, for example, he doesn't care about what other swimmers are doing. He cares about his own time. And as long as he can reliably get...
a certain time, then he's like, cool, I'm ready. Like, and that's just the best he can do. He just does the best he can do and he's competing with himself. Now, part of that is because he's at the very top of the field or at least he was, you know, when he won all his Olympics medals and stuff. And so there's not really anybody that makes sense to compare. But if you think about your own life, it doesn't really make sense for you to compare because everybody's got different circumstances and things like that. So it sounds like
You have a knack for taking things where there is no clear evaluation criteria and creating that forcing function that so that you can, you can clearly, you know, track progress and turning, turning a goal into something measurable.
Yeah. Yeah. A hundred percent. I mean, look, it's very helpful when you, you know why you want to learn the thing, right? Like if you just say, I'm curious about this thing, I want to learn about it. Then I, okay, whatever. It doesn't really matter. Learn how you want, you know, go through, you're probably not going to make as much progress, but it was like, Hey, in two weeks, you're going to go and you have like a
presentation about LLMs to like the CEO of Apple or whatever, right? Like you have something like that. You're going to figure out how to do it a lot faster and more efficiently because you know what it is exactly you need to do. And you're going to cut out all the crap and just learn what you need to do. And by the way, that's how I approached university. I said, look, why am I learning this? Most of it I'm learning because I want to pass this exam. So eventually I can graduate, which didn't end up happening. But
The point is I'm going to sit out of the lecture because 90% of the stuff there is not relevant to the exam. So I'm just going to focus on exactly the types of questions I know that are going to be asked. Uh, and you can kind of play the game that way, right? That's why, um,
I don't know. That's what I've always done. I've just tried to work smarter, not harder. And honestly, if I want to learn something, I'm like, how quickly can I learn this? I'm not like, oh, I need to be the absolute expert on it. How quickly can I learn the absolute basics of what I need to know to get this task done? That's what I look for. I mean, as a teacher, you just read the students that come up and say, is this going to be on the test? But then I think a lot of people lose...
the message in that, if everybody's asking, is this going to be on the test? Well, the answer should always be, yes, you should figure out a way to like get everything that you're teaching onto a test. So there's a reason for somebody to actually, so it is a very reasonable question for people to ask. They have finite time that you can stand in and, you know, philosophize, uh, quixotically at the, at the chalkboard. But at the end of the day, like students just want to pass the test and get on with their busy lives and, and,
You know, like the sooner you realize that as a teacher and like start just saying, okay, I need to restructure my test so that I can always answer. Yes, this will be on the test. And then I need to start for my teaching. So like, you know, if you, if you can figure out that, that way to get that to work, I mean, the test can be as long as you need it to be right. Like if I were like a teacher today and like I was still teaching and somebody complained, like I'd just be like, okay, we're the, the exam is gonna be three hours, right?
And we're going to have literally everything on it because I want you to study everything. I want you to learn everything. And, and I, I guess I've never understood why there's, there's kind of like this random sampling and some people just get unlucky because like, Oh, I can't do that specific problem that they, I just got unlucky and they asked a question that I wasn't prepared for. You missed like half a page of the textbook and now, yeah, it's now you're done. Yeah. Yeah. And I, I, I'm like a huge advocate. And when you look at like free code camps, upcoming exams, it's going to be incredibly exhaustive. It's going to have,
you know, a hundred plus questions and it's going to, they're going to be far reaching and we're going to make sure it's really balanced. But, um, but just, just to what you said there, um, I think,
As long as people know what they're doing and why they're doing it, it gives them clarity of purpose. And then the test is not just seen as some arbitrary thing, but it's like an evaluation criteria. And it's hopefully affirming like, okay, I studied really hard. I passed the exam. That's how it's supposed to work. And it just takes out a lot of the arbitrariness and, uh, you know, like fate just dealt me a bad hand of cards, you know, that kind of stuff. So, um, I'll get off my soapbox and ask you just a couple quick closing, closing questions. So, uh,
You're in Dubai. You just finished this big entrepreneurial project that did not succeed. I mean, you published a video talking about how you essentially did not get product market fit.
You did not get sufficient paying customers to justify continued business operations. This is how 99.99% of startups go, especially if they actually have big goals. If you want to go create a lemonade stand, that is a project that maybe has a 20% success.
chance of success depending on how thirsty people are and what the temperature is and whether you've got a high traffic park and you know all that stuff but like when you're trying to build something truly novel it's very difficult to get what we call product market fit maybe you can talk a little bit about that experience and what you learned from it
Yeah, 100%. I think this was a humbling experience, but also just allowed me to grow a lot as a developer because in the startup, just to give a little bit of context, I was not like the main guy per se. Like we had the CEO who founded the company, who put in a significant amount of money, very experienced, successful entrepreneur, doesn't need this mid-millions upon millions of dollars. And he brought me in, in kind of like a co-founder capacity, but like, you know, minority shareholder to run the tech side. So I was really focused on the engineering of this.
So as much as I don't want to push the blame for market product fit to anyone else, just giving context, I was not the one who was responsible for getting people to pay for this. I was like, just build the thing pretty much was my role. But as an engineer, what I learned from this specifically, I think the number one thing is that
You really shouldn't build anything unless you have a really, really good reason to build it. Like I think a lot of times as engineers, like we get excited, we want to build this feature. It looks really cool. You want to get on the keyboard. Like you're excited about this thing. You've been working on it for a while. At least for me, it was about two years and you just start like over engineering and building all these things and using, like you said before, you know, these crazy tech stacks and all this stuff when at the end of the day, most of it doesn't matter. Um, and you can get away with a lot less. Um,
So the number one takeaway I took is like, if I was going to go and do something like this again in the future, I would try to code the least I possibly could. I would try to build the simplest thing, even if it was like a no code tool I was using. I don't care. I would completely detach my ego and my self work from the programming language and the complexity of the project. And just like try to make the absolute minimum thing I could to validate and test the idea so that if it wasn't going to work out, I could fail in six months or four months, not two years. Um,
that's what i learned now at the same time i'm glad i built the product because i got a lot of engineering experience managed a team of engineers built this huge you know impressive thing at least technically but no one uses it so at the end of the day does it really matter right so that's that's the main takeaway probably that i had from yeah so like lean startup type stuff um yeah 100 easy look everyone take watching my video like oh you just summarized in the lean startup i'm like maybe maybe that is what it is but you know i've read that book
It's a lot easier to read it and say, oh, yeah, it makes sense than when you're actually in it. You're on the grind. You're building this thing. You think you've got the next great idea or feature. I don't know. I think you've got to almost kind of go through it to really relate completely with all the things that are said there or at least put them into practice. Yeah, Henry Ford himself famously said, if I asked people what they wanted, they would have just said they wanted faster horses.
And what they really wanted was cars, but they didn't know that yet. And so your innovation is not going to come – it has to kind of come out of – I mean, yes, you can incrementally tool up to that. But there are like innovation jumps that cannot be made merely by asking people questions and showing people stuff and listening to their grievances. Like there has to be some flash of insight. There has to be some risk associated.
associated with some sort of step change in how society is, right? So I applaud you for going out and doing that. And 100%, everybody can be like, well, duh, did you do customer validation and stuff like that? But everybody does that, and everybody thinks that they're doing sufficient work
uh, you know, they're being sufficiently agile, but the, in practice, uh, sometimes it works out. Sometimes it doesn't. And it's not necessarily, I mean, some people may not have to do as much diligence and they may just kind of get lucky and get product market fit. I think free code camps are great example of that. But, uh, other people, uh, you know, when you're trying to get like, I think it was like athletes. So if I understand the product, it was like,
Bring training for athletes or something like that. Yeah, pretty much. That's the summary. Yeah. And, and that's a hard thing to get athletes to adopt something that like, where's the value proposition? Is this really going to work? Is this worth my time? I've got so many other things going on. So yeah, it sounds like it was a really hard project. So where are you going from here? What, what, what are your next six months year mapped out to look like?
Yeah, so without getting into too much backstory, I moved to Dubai. That was a huge life change coming from Canada. After I moved to Dubai, I spent about five months traveling, kind of digital nomading all around Southeast Asia. I was back in Canada for a little bit as well. So I was very much without a routine and kind of all over the place, which was super fun, but not maintainable. So now that I'm back in Dubai, I've been back here for about six weeks now.
My main focus has been getting a really good routine, build those habits back, get back to peak productivity like I was when I was 19, 20 years old doing the stuff at Microsoft and all that, and kind of get back into that grind. I've been in a little bit of the limbo with the startup failing. I always do the YouTube channel, but it's not enough to fill a
full week, especially because I like doing stuff on weekends and whatnot. So now I'm back. I've gotten that routine. I've been doing a lot more work and I'm kind of just going more all in on YouTube. So trying to scale my course up, I'm doing a lot more content. If anyone follows me, you'll see I'm doing like shorts and stuff across all these different platforms. Yeah. I'm just trying to pump out even more volume than before. I've never really taken the time to like, just go fully all in on YouTube and not do something else.
And just bluntly, it is a huge business and revenue stream. So I'm just going to see where I can kind of take it if I spend even just six months really investing, spending some money, hiring some people out and see what we can get Tech with Tim to with my complete focused energy. And then we'll see what's next after that if I even want to keep doing that. Well, man, well, best of luck with doing that. I'm going to encourage everybody.
to check out some of Tim's videos, which I've added to the video description or the show notes on your podcast app, wherever you're listening to this.
I have a huge opinion of Tim. Like, like I think he's an amazing teacher and he does a great job of just breaking complicated ideas down and making them not only understandable, but like he makes it fun to learn. So thank you for the many courses that you've helped develop with the free code camp channel. And we'll look forward to continuing to sing your praises to anybody who wants to get into tech and like learn more.
math programming, computer science, all the concepts that you cover on your channel.
A hundred percent. Yeah. Thank you so much for having me. This was a fun episode. Hopefully we can do it again and see what's up in a year or two. And yeah, massive thank you to free code camp as well. I mean, they really introduced me to a lot of the community. They got me inspired. I can remember seeing those first emails from free code camp saying, Hey, we want to post your course. Um, and that kept me going as well. And yeah, just thanks for all the support, uh, in the early days of the YouTube career. Awesome, man. Well, everybody who's still listening, I hope you're having a fantastic day and until next week, happy coding.