It's Coffee time. Welcome back, and as an ex-Google Tech Lead,
I wanted to tell you why I'm so good at coding (even though I was...uh...fired from Facebook).
And, I know many of you out there may be thinking well, I'm not good at coding, and you know,
I don't remember ever asking for your opinion on that. And secondly
since you're not the Tech Lead, I wouldn't say that you're even qualified to give an opinion on this stuff.
I mean, why don't you first attain success, and then you can tell me what you think? Okay, like...like the way I did it.
So I see a lot of so-called
"Programmers" out there struggling to learn how to code, trying to create some website or something and they're flailing around all over the place,
waving their arms all about having panic attacks, suffering from imposter syndrome.
It's like, just let me...let me just clarify for you guys how you can become good at programming like myself.
Quick pause: this video, by the way, is sponsored by Skillshare
Skillshare is an online learning community with thousands of classes on creative and entrepreneurial skills explore everything from web development and
entrepreneurship, to marketing, productivity, and more. Because Skillshare is sponsoring this video,
I'm giving you a free two-month trial link in the description below. Now, during my years of adventure programming,
I had this thing where I became a photographer. A pro photographer, which is why the image quality is so good.
But, you learn a number of things, and one thing you learn as a
photographer is that the skill of photography is not what sets you apart.
Everybody has taken an award-winning photo at some point or another in their lives.
What makes a photographer good is what makes a programmer good as well.
So one thing is consistency: being able to consistently get a good shot
no matter what condition you may be in. It's like being tasked to photograph a wedding.
I'm sure everybody who attends a wedding, they're able to snap one or two good photos of the bride and groom. But being hard to
do that over and over again and always landing those good shots, that requires experience and that is where skill comes in for programming and
having more experience having breadth and depth of knowledge and languages and conditions is going to help you out. Now,
this is where most programmers stop and they think that that is all there is to it and they would just go practice
400 LeetCode questions. But there's really more to it than that.
You'll notice that there are actually plenty of semi-pro hobbyist photographers who have been to Africa and
taken thousands of amazing wildlife safari photos of lions and giraffes.
It's all just sitting on their hard drives and it's never seen the light of day, and even though these may be award-winning shots,
there's no validation of the work. The validation of your work is what makes you Pro. And
this is what frustrated me a lot about photography at first.
I would go out and take these amazing shots at landscapes, portraits, and when I compared my photos to the award-winning photos on National Geographic
there weren't that many differences.
It was all about the same, but the difference was that they had an outlet for their work.
They had the story to go along with it.
They had a writer to come up with the content, and make that story interesting. And I realized that for many photographs,
it was the caption and not the photo itself that made it award-winning. They captured something significant
There was a whole story around it: context. It was a product.
So in my opinion, code as well cannot exist in a vacuum
where only skill is involved, because skill alone is not sufficient to qualify you as being good or not.
You're just going to be coding all day long in your basement.
You're gonna become a complete pro at memory management and micro optimizations,
but then at some point the world will move on and then your skills
will become useless and nobody will care anymore. And you'll never know if you were actually good or not.
And so what makes you good at coding, or good at anything for that matter, is the
validation of your skill. It's the impact that you create.
It's entrepreneurship. And it is this entrepreneurial factor that gives coding all of its glory: the ability for a single person
to just go out and build something and affect the world. And as for the people who hide out in their garages,
tinkering with some small little tool or micro optimization on some FPGA controller, you know
those type of people, they've existed for millennia, and the world's
fascination with coding has never been towards those type of people who never quite make an impact.
In fact, I know a guy (his name is James) and back in the 1700s he was in his mother's attic
just coding all day long, on the typewriter actually (that's what we used back then) and
he would just code all day long and he'd eat spaghetti, and recycled the body fluids from himself to reboil the water into more spaghetti
powered through solar energy. This was all entirely
self-sustaining. Nobody really knows if he's still alive or not today
But he's had essentially no impact the world. And that's pretty much how most engineers these days are.
So tinkering around with the code,
it really becomes just a hobby at that point, and you need to separate the hobby from the business side.
The problem with engineers is they tend to be problem solvers.
But they're not solving the right problem necessarily, right?
Like, you can give them a Rubik's Cube and they're going to try and figure that out,
even though there's no goal to that. You show them cryptocurrency or augmented reality,
two technologies that are kind of useless, and they get completely
absorbed into that without quite understanding what they're going to be doing [with that]. And ten years later,
they emerge back into the world having mastered augmented reality coding, and don't really know what it was all for.
And here's the truth about programming. I believe that programming has gotten harder over time, and it has changed.
So back in the day,
All you had to do is put the website together, or an app together,
launch it, and you would get marketing right away.
You could become an overnight success. If you were to launch some quiz app on to the App Store,
you could find yourself being the CTO of a company the next day, and there would be tons of employees around you. You would be
leading a team and you'd be well on your way and nobody would question your experience as a programmer.
That's pretty much, what? Fields of the tech boom of the last decade. You had websites,
iOS apps, Android apps, mobile websites and games, Facebook apps and games, and all you really needed was coding.
You just put something out there and it would succeed right away. These days, the game has changed a little bit.
So, as I was alluding to earlier, and the truth of the matter is, that
coding is not sufficient anymore, in my opinion. Because a lot of the marketing power that came along with coding is now gone.
These days, blogs are pretty much dead. App stores are so competitive, and people are launching hundreds of thousands of new websites every day.
Many people without even needing to know how to code, right, they just use website generators. And because web usage has consolidated
towards a few major platforms, it's becoming very difficult to create new websites.
Like, people are mostly just using Facebook, Instagram, Twitter, Linkedin, YouTube, Reddit...And, you know,
the big problem about Reddit is if you're trying to monetize anything, if it's commercial,
they don't allow that. So, Reddit is actually not really a great source of
commercial traffic. Which is one reason
I don't particularly
recommend Reddit. Because, as you may know, I believe that some of the best things in life are not free.
Usually people will charge for something like that.
So, you'll never find really high quality content that people may ask a little bit money for, on Reddit.
Speaking of non-free stuff, check out techinterviewpro.com if you want to learn how to land a job in tech.
It's a program I run where I teach you coding, data structures, algorithms, systems design, behavior...Everything
you know to land a job at "top-tier" tech companies like Facebook and Google. So check it out: techinterviewpro.com
So what I'm trying to say is, what separates good engineers from great engineers is the entrepreneurial factor. It's having that
validation of the impact for your work.
I've seen plenty of people who will go on GitHub, they launch open source projects, people will create frameworks and libraries. And
yet, if they're not able to market it, if they can't get anybody else to use it, then
they're not considered a great engineer. And yet somebody else who builds a framework or product, if they're able to build the marketing power behind
it and get tons of people using their stuff, then they could be considered a great engineer. And they will be getting all the
opportunities and when their project becomes big enough, it's pretty much a business at that point.
So in today's competitive world, to make an impact
engineers just need to be a little bit more product- and marketing-focused, to make sure that their work has an outlet. And so if
you were to take a look at myself....Well, I have this huge YouTube channel. I have an Instagram.
Check it out: @techleadhd tons of fun pictures and stories over there. Twitter.
I have techinterviewpro.com which you should definitely check out. Mailing lists.
All of these are ways for me to distribute my work, my projects, and that's what makes me so good.
That's what makes me a better engineer than many other people. I'm sure other people are great, too.
Great at engineering, maybe even better than me? (Not likely though)
But, until you have the validation of your work,
you've got nothing. Ready to learn more about
entrepreneurship and marketing? With an affordable premium membership at less than $10 a month, Skillshare gives you unlimited access to high-quality
classes taught by experts working in their fields to help you learn new skills and live your best life.
Explore classes in freelance and entrepreneurship, web development, graphic design, UI, creative writing, and productivity.
I would particularly
recommend the JavaScript toolkit training by senior Microsoft developer Christian Hellman, in which he will teach you how to become a
JavaScript expert with an in-depth guide. So check him out: SkillShare, link in the description below. You know,
one of the funny things I learned while doing
photography was, it wasn't so much about your skill as being reliable and operating that as a
professional business where people could count on you.
It was equally, if not more important, to have backup equipment and all of the gear necessary such that if your camera failed, or
malfunctioned you would have extra gear to ensure that the day would go smoothly and you would still land all of the necessary shots.
It was also about reliability
Where, if you told people that you would be there for their special day, that you would be accountable for that,
and you wouldn't just cancel because you wanted to take a trip on the whim. And then, even after the shoot, all of the additional
support you would provide afterwards: timely photo editing, and then printing all of the photos onto an album in good paper,
delivering that to the couple in a beautiful package, and then following up on the additional referrals.
That was all part of the job of being a pro photographer.
And so, that's really what's all about.
Taking your skill, turning it into a product, and then bringing that to market and that's how you deliver impact. And that's one of the
clearest and strongest ways to show, and not tell, about your qualifications.
There's a quote I like: "When you're good at something, you tell everyone. When you're great at something, they'll tell you."
So that'll do for me. Let me know what you think makes me so good at coding. If you liked the video, give a like
and subscribe, and I'll see you next time. Thanks. Bye.