Self Taught Programmers: Advice, Challenges, and Why We Need Them
Hey everyone, how's it going? My name is Mayuko. And welcome back to my channel. So maybe you're at a point where you've decided that you want to become a software engineer for your career. If that's the case, there's often these like three big main paths for how to get your first job and learning to code professionally. You can one go back to school or university get a degree in like computer science or software engineering or something related to you can go to a coding boot camp where you learn a lot of things in a short amount of time with a community of people and just like really hit the ground running for three. And this is like a totally normal and plausible thing that a lot of software engineers have done is that you can teach yourself how to code. Personally, I think that self taught developers are some of the brightest, smartest, nicest, most talented and hardworking people I've ever had the pleasure of working with. And it only makes sense because someone with like the self motivation and the fortitude, to teach themselves an
entirely new skill, like an entire new language, even is going to have a great work ethic. And coming from a non traditional background means that you also bring a lot of unique perspectives to the table two, maybe you're a retired Marine, or you used to be a teacher, or maybe you studied criminal justice in college, you'd be surprised how many intangible cross functional skills those backgrounds bring to the table. That being said, as you might know, I went about my software engineering career a little bit more traditionally. And I went to a four year university and
studied computer science. So I'm actually not like the best person to answer what it takes to become a self taught developer. But I wanted to learn more about how actual real self taught developers went about their journeys. How did they get to where they are today? What trials and tribulations do they face? Are they glad they taught themselves how to code. So as you do in the 21st century, I send out a tweet, I was lucky enough to get a bunch of responses and interviewed a bunch of these folks to find out. And I gotta say, I was really lucky to be able to collect such fascinating stories from a diverse set of people. They have such cool experiences and backgrounds like bio science, and criminology, and music and finance. And I even got to talk to some military veterans who used to serve
in the Air Force and the Army and the Navy. So the first thing that I wanted to clear up with this group, and perhaps it was like, the most burning question of the mall was, is being a self taught developer a legitimate career path. And spoiler alert, absolutely, yes. Being self taught definitely means that you're going against the grain a little bit,
because there's like this preconceived bias or notion that like the traditional way is like the only right way to get into tech. And I imagine it would be really easy to not feel like you're a legitimate or a real developer, because you didn't go to school for it. But this is just another classic case of imposter syndrome. I have a lot to say on this topic. And I've made a video before about imposter syndrome that you can check out right here. But we'll get to that later with regards to self taught developers. So if you're thinking about becoming a self taught developer or engineer,
then the first step is to really think about whether this path is for you. And it all depends on your priorities and your goals. But especially on your situations about money and time at this current point in your life. boot camps in schools both cost like huge amounts of money, but they do condense a lot of information in a short amount of time. Of course, Boot Camps nowadays have things like blade tuition agreements and income share agreements, so that you don't have to pay anything until you get a job. But it still costs a pretty penny. And shortening the process by going through a structured program can definitely be helpful. But it's in a way that kind of like dominates your life, it's really
impossible to be a part of these programs and have a full time job at the same time. So it just doesn't make sense for a lot of people. So resources really are the reason why you choose one path over the other and self taught is definitely the cheapest of the three. But it doesn't necessarily mean it's the easiest, because you have to put together all of the curriculum and structure yourself not to mention, you have to provide all the energy and ambition and motivation behind it yourself to for better or worse. It's kind of like the DIY version of creating your own career. It's a non
trivial task to teach yourself how to become a software engineer. And so there's a few things you should know beforehand. So yes, building your coding skills is like definitely the main focus of teaching yourself how to code seems straightforward, right? Like that's like the core part of it all. And I can go on and on about which tutorials and
resources are good for, like every single technology out there, but that's going to take time, so I'm just gonna leave links to the ones that I've recommended in the description box down below. But surprisingly, I've learned that like learning how to code is actually not the hardest part at all. teaching yourself how to code more than anything is challenging because it requires a Han of willpower and motivation. Realistically, I think this goes for like teaching yourself anything. So whether that be teaching yourself how cryptocurrency works, or learning how to build your own furniture, or learning how to pour a perfect latte, when there's a lot of skills to be learned for anything, it just takes time and perseverance over something as abstract as coding, it can be really hard to stay on that path and be motivated and focused the whole way through, I will go so far as to say like the one main factor that separates like who becomes a software engineer and who doesn't, it's dedication, you have to stick with it. And
sometimes it's for a really long time. I think anyone can do anything if they want it badly enough, and have enough resources. But I think the key is that you have to you have to like it. It has to be like a little bit fun. That takes way longer than you think. If you want to self teach yourself, you have to really, really want it. Now it's really easy to get engulfed in like completely swallowed by the coding world altogether. What is the thing you want so badly? Like you would live it, breathe it, eat it for breakfast? Right? Well, that's where balance comes in. Because without it, it's a one way ticket to burnout without even starting a job. I feel like time management is really important. That's what the issue was because I never solved time management. You know, and so I
didn't have time for other things, which is super important. So how do you actually motivate yourself to code in a way that doesn't take too much away from you? That's like the million dollar question. Well, the one thing that I heard emphasized across many of these interviews is to develop curiosity, it makes the learning and practice just like a lot easier when you're genuinely interested in what's going on.
Having a like, very keen sense of curiosity is super important. I think if you were going to teach yourself, you're going to need to be able to dive into stuff and like try and rip it apart and understand how it works for you, like they soak up information in a different way to where they're a different type of curiosity. So maybe you found that curiosity? Or maybe you're working on developing it, once you've got it, like, Where are you supposed to direct it, especially as you start? Well, coding, of course, everyone emphasize the importance of really knowing your coding foundations. So things like data structures and algorithms, regardless of what technologies
and frameworks you're going to work within. All of those really do serve as the backbone to anything coding related, you're going to do so you're really going to want to work on your coding foundations. And I know, I know, data structures and algorithms can be dry, boring and hard. But one way I've come to think about data structures is that it's really just about like, how do you organize and efficiently store your data, it's kind of like figuring out how to best organize your closet and learning what kinds of containers are available. And algorithms is learning how to work with and
play around with that data. There's a ton of great resources online about data structures and algorithms to like on brilliant.org, who is the sponsor of today's video, if you've heard me talk about brilliant before, you know that it's an app and website built around the principle of active problem solving. Because really, like, I truly believe this,
in order to learn something, you can't just like read it and watch it, you have to actually do it and engage with it. Really, it has recently upped their interactivity level on their platform to a whole new level. And they're constantly updating courses to make it more interactive. So yes, really, it has a course on algorithm fundamentals, that makes it really easy to understand how algorithms work. You don't have to dig through the weeds of coding syntax to learn algorithms. And you can just shift around these blocks of pseudocode. And get immediate feedback on your results.
It's a super good way to understand how computer algorithms work. And then once you have that down, the coding syntax honestly becomes a little bit less intimidating. Because you know what, when it comes to things like data structures and algorithms, you want to have a really good true understanding of those things. You can't just, like, regurgitate or memorize them because interviewers and other people are going to know if you don't really understand them. So I think they're brilliant course is really good to helping develop that true understanding. If you'd like to join me and a community of 8 million learners and educators today, click the link in description box down below or visit brilliant.org slash Hello, my you go. Thank you so much for brilliant for sponsoring. And now let's get back to the video. So there is one big blind spot that people have when becoming software engineers. And wow, if there's like one
thing I could shout from the rooftops about like becoming a software engineer. It's this one. Don't forget the soft skills. This is important regardless of how you learn how to code, but especially so if you're self taught and you don't have a community of other people to work with. Like it's just not enough to be like pumping out 1000s of lines of code by yourself every day. Of course producing results and the technical aspect of the job is very important, but it can To be the full picture for you, being resourceful dealing with adversity or confusion or stressors, challenging times, and then communicating your thoughts clearly is such an important part of the job. Some people
call them intangibles for interviewers or future co workers or like anybody you're going to work with. It's an important ingredient they're going to look for to see if you're a great problem solver, which remember, is the core part of software engineering, the skills you develop as a software engineer is actually very valuable, not just the coding side. But the resourcefulness. I don't think that software engineering is just about coding all the time, it's more about problem solving, you have to think about the best way for your use cases before you start typing. So software engineering really is about problem solving, then a lot of it is going to be about learning what you don't know, this is a really tricky place to be in when you're self taught, because there's no one like there to guide you along the way and show you your blind spots. Like for one thing, it can be hard to know what steps to take in the learning process. No one is there to tell you what to try next. So on top of having to teach
yourself, you also have to know what to teach yourself. And it's just a really hard thing to navigate, you definitely have the resources and talents to teach yourself whatever you need to learn. But knowing what you need to know is like a whole different issue entirely. So yes, at any given time, your self education, it's hard to know where to go or like what to do next. You don't always have a way of knowing what's important versus what's not like usually there's like
professors and like teachers to tell you those kinds of things. That's why it's really important to find a mentor or a community to help you along the right path. Not only can they be a figure to lead you on your path as you build it right before you but it's just like another human being to work alongside you can learn from their mistakes, because they're going to show you the path that they were on and tell you what they had wished they had adjusted for their own journey. You can also network from this person and expand your circle beyond theirs, which is way better than starting from scratch. I will start with the meetups. I will go around the engineers to see how he talks he see the environment that they're in. And also to ask them the questions, you know, because in that environment, like if you came to me, I would
be able to tell you hey, are you want to start with the basics here? So yeah, seek them out wherever you can meetups community events like online or in person. Be nice and ask all the questions you can think of. You can observe everything they say about starting your career path and sticking to it and what to know along the way. Prioritize mentorship early on, I think that mentorship you have to get it by like putting yourself out there, I would recommend going to meetups definitely recommend finding people that come from a similar background as you or who can empathize with you. One thing that really helped me overcome imposter syndrome was getting a good mentor. He I think was was really good at letting me know, like, guiding me in like the right direction. Like that's not the best practice. Why
don't you do this instead. And so through his like guidance, after a few months of kind of learning, like what the team style is, I was like confidently writing code that would regularly end up in our code base. And I think that it's really built my confidence, the skills to develop a network arrange you where you can ask people for help. It's also really valuable way of
getting a community around you who have experienced, you know what it's important to remember, you can totally teach yourself how to code through online resources and tutorials and all of that, but nothing is as valuable as like another human being who knows what's going on there, kind of like the human cliffnotes to that massive pile of information online. So as you learn more stuff, and you grow in your journey, and you start getting my interviews and stuff like that, it can be hard to stop comparing yourself to others, there will be people on your journey who want to better schools or like chose to go to school when you chose not to. There will be people lucky enough to meet influential people and companies that they work with or at when you feel like you haven't even gotten your first chance yet. But you can't look at these people as if they're just like you. There's like a million more factors in play. And you know what, they're just not you. And you know what having a non traditional background does mean that you're different from others, whether better or for worse. As a result, the people that I interviewed had some sort of inkling of imposter syndrome because they came from non traditional backgrounds, definitely imposter syndrome. I feel like Whoa, it's so like jumping into engineering. It is pretty daunting already but
when you just went to have like a three month course online and your peers next to you have been learning theoretical algorithms and discrete combinatorial for four years that feels intimidating if you go the self taught route and kind of also like if you just go any route because I definitely feel this to you. You're gonna meet people who you feel like had a better education than you. And you're also going to feel like they just know a lot more than you to first of all, that will not always be true, if it ever is. I really think that like you learn what you need to learn at the time that you learn it. And that's all that matters. People might
be a bit of head or a bit behind you, but they might use like different tools, like we're all just on our own journeys, it's totally normal to feel like you're not legitimate, especially when you're looking at your resume and like you're looking at your schooling, or your accolades, or your past experience or whatever like that. But in the real world, let me tell you, companies are looking for people who can do the job, it matters a little bit, but it doesn't matter that much. Whether you learned your skills at Harvard or UCSD or even tik tok, some places, it doesn't matter where you go to school, because there is some sort of like educational bias that exists in tech in America in general and stuff. But that's also because we see people from like Ivy League schools is like better than us.
But like, that's, that's not always the case. Like, just because you go to the school doesn't mean that you're going to make a good engineer. Also, just because you didn't go to school doesn't mean that you'll make a bad engineer. Anyways, if you have the talent and the knowledge, you're gonna get a job. And people at these companies know that that's why there's an entire interview process for this, I thought that I wouldn't be taken seriously, if I didn't have a CS degree, which wasn't true. I don't even remember any job that I had that, you know, during the hiring process, they asked about my degree, it was actually more likely that, oh, you have a criminology degree that Tell me about that experience. That sounds interesting. Like what do
you learn, it was more of a, that's interesting and novel, and not something we see every day. And also, like you had to get a computer science degree. Some people said, I was like, I don't think you need that. Like, cuz you need like programming is kind of different than this computer science. Yeah, the way you do things is totally different. So if you're self taught, then your learning pace is decided by you. So you're like the only person on this journey. So
like, it just doesn't make sense to compare yourself to other people. That's what always gets me about, like this imposter, feeling all the time, more than anything, it just doesn't like make logical sense to belong to a group of people who were just all so different from each other. I just think you know, our lives and careers are like too complex for comparisons like that, like we're learning about how many other ways there are to live through the internet. And yes, you could compare yourself. But you could also celebrate the fact that there are so many different ways to live. And there's so many different kinds of people out there, everybody learns at their own pace. And like, as long as you understand the concepts and you understand what you're actually learning, then that should be the only thing that matters. It's just better to go at your own pace, to think about other people's paths, I think
it makes it a lot easier to get through all these things out up to a problem of belief that can really affect you, it sounds simple and cheesy. But you got to believe in yourself. No matter where you are in your journey or your education. If you believe that you someday can become a software engineer, then that's the most important thing. There's people less qualified than you doing what you want to be doing. Because they believed in themselves. After working in the industry. For a few years, all these people realized one by one that a CS degree
really isn't necessary for a job. Nowadays, where you learn how to code is just not as crucial anymore, like their education section, unless you're in your university or something like that, is going to be at the very bottom of the resume. So it's just, it's just not as important as things like skills or experience. What's crucial nowadays is simply you and your abilities no matter how you came about them. And there's the tech world has a lot of these traditionally educated engineers like me, I will add, I really think that people from non traditional backgrounds with different perspectives are what's going to shake up the tech industry in a really interesting way. So as tech companies are looking to hire further teams, voices like yours are really important for their mission, in order to make the best stuff those like unique and diverse identities and perspectives are going to open so many doors and avenues that like people had just not previously considered, because these products and services that are built by companies are likely aimed at a non tech audience that has a diverse set of skills and backgrounds and perspectives and identities.
So it really only makes sense that the people building the thing represents the people who are going to use it, I just think you make a much better product that way, because people from different backgrounds are gonna bring up concerns and ideas that are relevant to them, their identity and their community. So I think that software engineers from non traditional backgrounds are exactly what the tech industry is lacking and needs, especially now. So if you're watching this and thinking about becoming a self taught developer, then please consider all of the above because Wow, we need you here. These people all did it despite their Vaseline different backgrounds, experiences and skill sets and interests, look to them as your proof that it's possible. It won't be easy, but if you really want it, we'll be waiting on the other side. Thank you all so much for watching. I really hope you enjoyed this video. Thank you so much to everybody that I interviewed for this video. All of their links are down in description box down below. So check
them out. This is a video that I've always really wanted to make and so I'm really glad that I can finally make it for you. If you're interested in more videos like these then make sure to click subscribe. Alright, hope y'all have a great day. I'll see you in the next video. Bye!!