- 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.