How to Become a Self Taught Software Developer

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Applause] [Music] talk about today about how to become a self-taught software developer all right this is something that i'm pretty familiar with as i was a self-taught software developer myself so i'm going to tell you why it's actually better to become self-taught rather than going to college for software development and how you can actually do this if you guys are just joining me for the first time i'm john from simpleprogrammer.com on this channel i teach you how to become a better software developer how to improve your career as a software developer and become a better person as a software developer living a more fulfilled and awesome life if that sounds like something that you want to do click that subscribe button join us here also real quick if you haven't already take the quiz there is a quiz that i have for you guys on your software development career it's up here in the cards i'll put a link in the description below and if you haven't already checked out my book the complete software developer career guide i would highly highly recommend if you especially if you're thinking about becoming a self-taught software developer that you you check out this book because it's it's a big book and it's got a lot of information the audio version is actually a little bit better because i have some extra information in there that is not in the the print book so all right let's talk about this uh now first of all before we get into becoming a self-taught software developer you have to really ask yourself why are you doing this because it's important to know it's important to know why you're even becoming a software developer in the first place alright so a lot of you you like programming for me it was i wanted to create my own game that was really what motivated me you need to have something that motivates you and the reason why i'm saying this okay is because it's not easy it's difficult to become a self-taught software developer it's difficult to become any kind of software developer it's going to require a lot of patience it's going to require a lot of discipline and it's going to take some time so figure out what your motivation is right what is the thing that's going to drive you now like i said it could be just because you want to make a game it could be because you want to make some money okay a lot of you want to make money i understand i tell a lot of guys that i'm working with with coaching with my other company with bulldog mindset i say hey you know what why don't you become a software developer you can make a six figure income anyone can make a hundred thousand dollars a year just become a software developer and it really is that easy as long as you are willing to do the work okay so now with that said let's talk about how you can do this the best way so the first thing about this is that when i started as a self-taught software developer okay it was harder for a different reason so when i started the difficulty was in finding the information all right so i remember when i started off i downloaded the source code to a mud a multi-user dungeon okay i downloaded the c c source code i couldn't really understand c all right but by looking through the source code by making modifications to the code and then running it on the server on that game i was able to sort of figure out how to things work right so for example i wanted to know all right where's the code for doing kicks right in the in the game you could do a kick you could type the command kick right it would in your character would kick if you're in combat so i went and i found and i found this table okay and it was like this lookup table and it was like okay it looked like some kind of command parser it would check to see all right what is the text here if it says kick then it would do this thing and then i figured out well what would happen if i added a new command to this like bash okay i think they didn't have basher you know a kick door or whatever now i came up with a new command and i added to the table and then i made it just like kik and it made it do the same thing as kik just to prove that i could do that thing so i i did step by step incrementally all right and that's because there wasn't a lot of resources there was a couple of books you know and i did get some books on c and c plus and i read through those but there wasn't all the information that was out there now in one way it was good in one way it was bad okay it was good because i didn't get distracted see if you're watching this video right now your problem i already know what it is okay if you made it this far because you might be too distracted even make it this far but if you made it this far keep paying attention because i'm going to give you some good advice here but your problem all right is that there's too much information out there there's all these tutorials out there and you have all these different programming languages and all these ways you can learn you can go to udemy you can go to pluralsight you go to you know whatever it is and you can learn all these things and so you're reading all these books you're getting all this information you're confused you don't even know where to start you don't even know where to go okay so that's the uh the bad side of today whereas yesterday you know in yesteryear when i was a youngin software developer it was easy right i mean in terms of like there wasn't a lot of information you just consumed what you could find right the same thing like when i was starting bodybuilding back then there was like arnold schwarzenegger's encyclopedia of bodybuilding that was it that's that was the thing you read you read that thing and that's how you learn how to do bodybuilding that's it right so like i said there's some pros and cons but one advantage that you have today is all that information that is freely available you know some of it paid sometimes it's worth paying for the paid content honestly you have things like software development boot camps i highly recommend bootcamps and you have a lot of just people that are willing to help you that have done it before okay so here's what i recommend that you do okay you need to sort through all of this and what you need to do is you need to decide exactly what your learning path is going to be i actually created a course called 10 steps to learn anything quickly we'll put a link down below i'm not really trying to plug the course here but if you want to check it out buy it it's like 100 bucks whatever it can help you but one of the things i talk about in the course is this idea that you need to narrow the scope of what you're trying to learn and that's one of the keys to learning things quickly all right so what you need to do is you need to stop worrying about do you need to learn python do you need to learn java or c sharp or c plus plus or unity 3d engine and all this stuff okay instead just pick one thing all right and you're just going to learn that thing and here's the other thing you're going to try and build something okay it is much more effective if you learn x so you can do y if you don't have a y you don't need to learn x so many people are trying to learn all these things right and i know a lot of developers are trying to get started they want to like learn all these different programming languages and technologies but instead let's start with something small remember the thing that drove me to learn programming in the first place right and made me successful at it was that i was trying to do something what was i trying to do i was trying to make my own version of this game called a mud and i downloaded the source code and i needed to learn how to modify the source code in order to create what i wanted to create so i had a reason for it and that helped drive me and give me the motivation and gave me most importantly the questions to ask right so i could explore you can't solve a problem that you don't know what the problem is right so and that's what a lot of you are doing when you're trying to be a self-taught software developer is you're going out there and you're solving a problem that doesn't exist yet because you don't know what the problem is like what are you actually trying to accomplish and learn how do you know when you're done how do you know when you've learned how to program right the answer should be when you can build a certain app right so i usually recommend for a lot of developers starting out self-taught pick some simple app okay let's say you want to do web development to-do list app okay but don't just go look up the source code or look up some tutorial on how to do a to-do list app figure it out yourself okay and that's where you use the other resources that you get some tutorials maybe some books things like that in order to figure out all the pieces that you need in order to develop that app okay it could be a mobile app a mobile to list app maybe you're going to create an android and ios application or something like that okay but what you're going to do is you're going to start from that that goal and you're going to have some other goals later on okay you'll create some more complicated apps but i like something simple like a to-do list app i used to use the protein tracker app to count how many grams of protein you ate in a day when i did that for some of my courses but something simple that has these elements okay the first one is that it has some kind of user interface okay so then when you think about some kind of user interface well what what do you need to learn well okay now you have to make some decisions right it's going to clarify things it's going to narrow down the path do you want to make a a web-based user interface do you want to make a user interface that is like a desktop application do you want to make one that is for a mobile app all right so that's going to determine where you're going to go okay let's say we do a web-based one okay great okay now we know we're going to do a web-based application okay so now what's the best way to develop the web-based application okay you know there's some options there perhaps one of the most popular ones today is react so we say okay well we're going to develop it in react because we know that in order to create web-based applications the the front and the user interface that react is a framework that we could use to do that okay so great that's awesome all right so now we have something that we know we need to learn in order to do this okay next uh what other functionality is it going to have okay it's going to have the ability to modify things to let's say let's say to insert data okay so you can create new items on your to-do list so that means that it's gonna have to store that data somewhere and you're gonna have to have some way of creating things in the user interface okay so you have this this whole day of creating things and storing them right so now now you have to say okay well how am i going to store it okay there's a couple options you could store it in the browser maybe that's a simple way to do it for now or you could sort in a database if you're going to store it in a database then now you have a new technology you need to learn okay i would probably keep it simple and say okay can we store it in the browser can we store it in some other way is there some way that we can store things with with react let's say we're using that okay but you could choose to use the database and that would give you another thing that you need to learn okay so we're compiling the list right we can delete things again that's going to be removing stuff from the database or wherever it's stored okay and and we have all these little elements right that we're going to have that make up this application there's some logic here right we think about this what about the logic of adding things of accepting commands of parsing commands or parsing input like clicks okay clicking a button how do we respond to button clicks okay and so this is giving us an idea of what we need to what we need to learn and then from there we can go backwards and you can say okay well how can i get started what's the very first thing i could do well how do i create the user interface now you say okay well how do i just create a user interface and react let me look up some tutorials let me see how to do this okay and you learn how to do that again it might seem backwards because you haven't even learned how to program yet but you're learning how to create the user interface all right then the point where you need to really learn how to program is when you need to create some logic for it now maybe you say okay i just want to make it so that when i click a button it just creates an item in the to-do list i don't even say what the item is i just want to make it so it clicks a button and it just creates a random item just just creates a blank to-do list item okay so now you're gonna look and you're gonna figure out okay how do i make button clicks how to respond to button clicks and how do i have some logic in there right and and you're gonna approach it from two ends okay one end is just like exploring backwards the other end will be going from the bottom up so maybe you're figuring out okay what programming language you're using at this point it's gonna probably be some javascript and maybe there's some other language that you're using on the back end okay maybe it's python or something like that all right that a framework that's going to work together and you're learning that language but what i'm trying to do is keep it as narrow as possible and you're not going to understand all of programming and all of the concepts but what's going to happen is that if you learn this way you'll eventually build this to-do list app and you're going to do a shitty job of it okay your code's going to suck you're not really going to understand why it works the way it does or anything like that but you're going to have something okay and then from there now you can start and fill in the gaps and you're like oh i wonder why it works this way you start reading some book on that programming language that you learned okay now you come up with a more complex app now you add some more features to that app and as you're adding more features as you're making it more complex as you're experimenting and playing around with these things you're learning these things and you're you're building a functional a functional ability not just not just knowledge right functional knowledge that you can actually apply and and use to to build apps so that's the best way to be a self-taught developer okay is is to do it like that instead of the way that most people are approaching it which is to just like try and find all this material do all these tutorials learn all these things and they still can't build a single app whereas you might not be as good as some other developers who are who are starting out and and understand so much of the intricacies of the language but you'll have an an actual working to-do list app okay very quickly you could probably do this in i don't know two weeks of of time you could figure it out and have like something basic working you know for some of you that have a little bit of experience maybe in a few days okay now that's not gonna mean that you know how to program that you're a software developer at this point but you can iterate from there and you become better and better and better and guess what pretty soon what ends up happening is it's like well if you can build an app and you can add all the functionality then you know what you're a programmer you're a developer like if you can do those things and and you keep on pushing in that that direction that's the way to do it that that makes the most sense to me you know bar none in fact a lot of times i recommend coding boot camps and if i recommend a coding bootcamp the reason why i do it is because usually what they do is they focus on a very narrow set of of things to learn and the idea of building something functional an application or they have several projects that you go through and build in a very focused short amount of time okay that's that's the key you really want to get into the immersion of it if you want to become good and stop confusing yourself with all the other stuff and all these things it's a messy process to learn these things it's not going to be perfect you're not going to know if you're doing the right thing it doesn't matter that's how software development is but what ends up mattering is whether you can actually produce a result okay if you can create your little to-do list app and even if the code is shitty and it sucks and whatever you're now like a lot farther than you were before okay you didn't waste a whole lot of time learning stuff that you didn't understand or that you didn't actually need to know so that is pretty much it guys i'm trying to think if there's anything else i wanted to talk about in this video i've already talked about more than than i planned like i said if you haven't already picked up a copy of the complete software developer career guide you know make sure that you grab a copy of that i also have the quiz here and yeah good luck with that let me know if you have any questions if if you've had experience doing this and i will talk to you next time
Info
Channel: Simple Programmer
Views: 4,222
Rating: 4.9212599 out of 5
Keywords: john sonmez, simple programmer, programming, coding, software development, self-taught software developer, software developer, self taught software developer, self taught software engineer, self taught web developer, day in the life of a software developer, fastest way to become a software developer, software engineering, how to become a software engineer, developer, software developers, software developer vlog, software developer no degree, day in the life software developer
Id: DJZMi1Fj02g
Channel Id: undefined
Length: 15min 1sec (901 seconds)
Published: Wed Jul 29 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.