- Hey TechLead here.
Now, I've been programming for a long time.
I started maybe 600 years ago or so
and I've learned a lot of things on my journey.
I thought I would cover in this video
some of the top tips I have for you,
things I wish I knew when I started coding myself.
So stay tuned because we're going to be right back
after a message from our sponsors.
But before we get to that message,
I have another message for you.
It is about the drink I'm drinking.
This is perfect product placement right here for you.
One of my favorite drinks,
I highly recommend that you go
and buy it right now it is known as water.
Wow, that just refreshes me so much, so good.
Now on to the message from our sponsor.
Now this is a sponsor that I felt so good
and so strongly about that I really wanted
to recommend it to you guys earlier
but I couldn't quite do it because
I wasn't going to get my kickbacks.
I didn't have an affiliate link set up.
I have that setup now, check it out.
It is audibletrial.com/techlead.
You can get a free audio book this way
and let me just tell you that
I've heard about audio books before in the past,
I always ignored it.
And then recently I've been trying that out
and I realized that it's so much fun
and it saves you so much time.
I listen to audiobooks on my driving.
I think we all know that reading is important,
everybody tells you that,
but these days in this generation,
people are just so busy all the time.
And it feels like you have to keep up with everything.
You've got to read blogs, social media,
you got to keep up with all the news,
and then on top of that,
you have to do your daily reading.
It's just a lot of stuff with audible,
which is run by Amazon by the way,
you get to listen to audio books on your drive.
The app plays in the background as you're driving,
saves you a lot of time.
Personally, I'd been listening to
the "12 Rules of Life" by Jordan Peterson recently,
highly recommend that book.
It goes very deep into psychology and human history,
very fascinating listen,
and it's read by the author himself.
Anyway, check it out and get your free audiobook
at audibletrial.com/techlead.
Now let's get into the tips.
The first tip I have for you is
to not try to learn everything.
It's going to take you forever to try to learn everything
and things keep changing all the time.
So choose what you need to learn
and focus on getting results.
You're going to be interfacing with dozens
of different technologies, maybe MySQL,
Linux, different API's, frameworks,
all sorts of different things developed
by other people that's changing all the time.
And at least for me,
I find myself often digging into various technologies,
trying to figure out exactly how things are working.
If I'm using an Apache web server,
I'm half tempted to just go read through
the entire Apache documentation
and figure out exactly how things are working
before I actually start using the service.
But the key I think is to just start using things
and as long as things are working
and it's not broken then you're fine.
If you don't do this,
you're going to find yourself stuck
learning tons of random things that half
the time you're not necessarily going to need.
One example is when I started with iOS development,
I launched my first app.
I didn't know half of how the language was working.
And I'm sure I made tons of different mistakes.
The code was probably not optimal,
it was not properly written,
the structure was probably very messy, no good.
But still, I was able to launch my first app
and just get things rolling, get things moving forward.
And that's the key to understand there
is that you're never going to get things completely right.
Nothing's ever going to be completely perfect,
and that's just how tech is.
Even in industry we often have many engineers
who know multiple languages, full-stack engineers,
and yet, usually engineers were just focused
on one certain technology and get to know
that particularly well and all the rest,
the rest of the ecosystem for other languages
are just changing all the time,
such that you can never really know a language very well
because things are just changing all the time.
You may think that you know Java now,
but in one or two years, the tooling,
the language, the frameworks,
the coding practices around that language
are going to change entirely differently.
There's going to be new technologies
that are hot that people are using.
So I wouldn't bare on saying that you'll be able
to learn Java then Python then Swift,
and after that, you'll have three languages
in your tool belt.
Now you're really going to only have one language,
that's the one that you're using at any time.
The field moves fast and the only constant is change.
And what you will always need
is the ability to learn quickly.
Now, the second tip I have for you,
is that our code is garbage.
And that's really the way to look at it.
Tech is not magic, don't sit there
and all of the technology around you,
and just so struck by how cool everything is.
You think that looks cool, it's just a front.
It's mostly just garbage code, purchased up
in a nice UI that looks shiny and neat and simple,
but in reality it's nothing good.
And as long as you keep this in mind,
you won't be intimidated.
You'll be able to go in there and start coding things
and know that your code does not have to be perfect
because nobody else's code is perfect.
It's just whatever works.
Just do whatever gets results.
If you saw the article from my last video,
it's reported that Google rewrites
their entire code base every few years
because it's just such garbage quality.
Now, I'm not 100% sure if this is actually the case,
but what I do know is that Tech engineers
also don't stay at companies all that long.
The track record isn't that great,
people stay at companies say two to four years,
and then they move on.
So when I go into a company,
my co-workers have been working there
like two years or so, maybe even less.
And so that's the amount of experience
that most people have.
Nobody really knows anything more than,
say two years of information.
Maybe senior engineers know a little bit more than that
if they've been hanging around the company longer
but everyone is sort of a beginner,
no one really knows what they're doing.
People are just winging it,
and it's funny that you may have a certain technology
that looks really good and solid at one year,
but then the next year, people find out that
they need to upgrade to the latest version of something,
the requirements change,
everything has to be real time now,
and then the whole entire tech stack
becomes complete garbage because
it doesn't fit the current feature requirements
that all the users are demanding.
People often look back at code that say two years old
and they'll say it's pretty ancient legacy code,
no one knows how it works, it's pretty much writing code.
So my recommendation is when you sit down
to create a project instead of imagine yourself
that you're going to be creating a masterpiece project,
and everything's going to be stable
and optimized and scalable and high performance,
and then you'll be able to show this code
to all sorts of people, push out to your GitHub,
show to everyone and everyone's going to say that
this is a masterpiece of code.
It's going to be better if you say to yourself,
you're just going to create a prototype.
You're going to create a prototype of a product
and just get things out there and see how it works.
And if the project really works,
then after that you're going to invest time
into making the code more structured,
more solid, make it more scalable
and everything like that, cleaning things up.
But for now, it's just going to be prototype code,
anything goes as long as it works, it's okay.
And that's really going to get you set up
and get you on your way so that
you'll feel free to make mistakes as you go,
you don't have to get things perfect.
The fact is no one has anything perfect
and software is mostly duct tape and strings.
There's always a better way to code something,
so don't let perfection stop you.
My third tip for you is to focus on
the project and not the technology.
The technology should enable you
to do something new, something innovative,
but it's going to be the project
that everybody is looking at.
Now, what do I mean by this?
Well, no one's going to care
if you spend all your time learning Python version 2.7.
And then you never use it to do anything,
when you spent all your time learning how to write Swift,
but you never launched in that never did anything with it.
And on your resume it just says that you know Swift.
It's going to be much more impactful
and much more impressive if you can say to yourself
and potential future employers that you launched
a website or an app, and it's still available,
people can download it or access the site
and see what it is, and it looks great,
looks cool, is functional,
and maybe even broaden some users,
maybe broaden in some side income,
you won't remember that software is a tool.
It's like a laundry machine or a dryer
or vacuum machine, right?
It's not something to be super passionate
and attach yourself to only saying,
while you're going to be a Ruby on Rails developer
and you love of him.
That's like saying that you just love
the Hoover vacuum cleaner and you just love that tool.
These are simply tools and for that reason,
concretely I might recommend learning
say JavaScript and web development,
because these languages can actually get you
to launch projects that are visible for other people,
though it can be highly visible and highly useful.
If the only thing you know is say Python,
then the only output that you can create
is going to be like a terminal output.
It's going to be text on the command line.
So even though Python is a very popular language
for beginners I would say that
to really make Python useful for you,
you actually need to combine that with
a web framework like say Flask or Django.
Problem is at that point,
you have two things you gotta learn
the language itself and then this framework.
With JavaScript for example,
you can already start putting together entire websites,
add to that little bit of PHP,
and you've got an entire website running
with the full-stack backend services.
If you want to do it in Python,
that's fine, that's great.
Personally for me, I wish I got into web development,
these high impact technologies a little bit sooner.
Speaking of languages, I just wanted to highlight that
I think JavaScript is an excellent language for beginners.
Simply because it's one of the only languages
through which you can create UI very easily.
Python is not that easy to create user interfaces,
it's going to be much funner for a beginner
to start actually being able to create
the instead of useful like, create a tic-tac-toe game,
create a hangman game like Tetris or something like that.
You can do all of this with JavaScript,
and standard HTML UI elements or HTML5 canvas.
You can get colors, games, interactive pages.
And overall JavaScript is a language that
is very similar to say Python
so you can easily transition to Python.
And JavaScript is probably a decent language
for getting your first job, just a beginner position.
There's a lot of people almost everybody
is looking for JavaScript developers.
Other excellent beginner languages
might be swift, Java, Kotlin, Python.
And my last tip is to just not be afraid to learn.
Most people around you you'll find,
they can't learn anymore.
They're very scared to do it, they don't want to do it,
they don't put in the time.
It's a very basic thing and as you get into it,
you find that it doesn't take that long,
like it might take you just two weeks or so
to pick up a language and then you always be able
to say that you have some knowledge about this language,
you can use it, you can work in it.
I think tech is one of those fields where
the mental barrier to trying to learn a language
is far higher than the actual reality of it.
I personally have put off learning iOS development,
for like a whole year, I just kept stalling on that.
When I actually sat down and got into it.
It took me just one month
and I had already finished launching my first app
and I was already making some side income off of that.
You'll find over time that many languages are very similar.
They have similar constructs,
they all have like a for loop, while loop,
if else statements, switch statements.
As long as you have these basic items
you can do a lot in in the language that you get into.
More than anything, software is about your willingness
to sit down and learn something.
That will do for me.
If you have any tips on what you wish you knew
when you started programming,
please post them below in the comments.
I'm sure people would love to hear that.
If you liked the video, give the like and subscribe,
and I'll see you next time.