Learn Web Development And ACTUALLY Get A Job In 2023 | Ultimate Guide

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
this is super uncomfortable for me I've intentionally not talked about how much I make as a self-taught software engineer and I believe this is probably the first time that I'm even going to say where I work the reason 98 of new software developers are not getting job offers is because they are not doing these 11 things how is it possible for an average construction worker to learn to code to get that super hard first programming job and then get hired by a large tech company making hundreds of thousands of dollars in total compensation each year nine years ago I was totally that construction worker because I couldn't get another job with my near worthless history degree so I ended up freezing my butt off in the cold each winter doing physical labor for mediocre pay and no benefits I'm now a full-time senior front-end software engineer at Adobe and I'm self-taught working in a nice cozy office so let's talk about why most self-taught devs fail why you should choose to become a front-end developer instead of learning Java PHP python or some other back-end focused programming language the Technologies you should learn the right way to learn to code and how to get your first job as a programmer what it's a matter with your mind and your side and uh but first what's your background story I would totally dig it if you'd let me know in the comments fist bump all right there are four main reasons most people fail when they want to become a self-taught programmer first they underestimate how hard it's going to be there are plenty of videos out there about people who are learning to code in three months six months and in my case it took around nine months though three to six months is probably not very common unless you end up in a full-time boot camp that can really help you stay focused I did it in nine months in the evenings with the support and patience of My Wife and Kids because I end up having to sacrifice pretty much every evening during that time and that's not going to be something that's going to be doable for a lot of people it took a ton of self-discipline on my part especially on the days where I just wanted to give up because there will be those days you also have to be realistic about your ability to learn quickly some people learn incredibly fast and things just stick others need more time to process it if you compare your progress to a fast learner you're going to get discouraged and may quit even if you're actually learning code at a normal Pace second for most people getting your first programming job is going to suck I'll share some good strategies to overcome this in a minute but a lot of people watch out before getting that first job third some people's brains just aren't wired for this kind of work I know plenty of people who are amazing working with their hands and that's totally fine there's nothing wrong with that if you think that's you before you give up I encourage you to question yourself is it really because you don't have the brain for it or is it just because it's hard and you lack grit fourth a lot of people make poor decisions when it comes to picking a programming language or area of software development so let's talk about why I chose to become a front-end web developer and in simple terms front-end web development is just the visual part of a web page or application that you interact with there are a couple of really important reasons why I chose this first I have nothing against back-end development it's super important this is where the magic happens for store and retrieving data but let's face it back-end code is visually boring and this means when you go into interview the only thing they have to test you on are code problems and your ability to communicate what you know verbally you're new so you might understand what you're doing but it's super easy to get stuck trying to explain things and just not using the right words to describe it and to get hung up at least that's how it was for me when I first started perhaps that's hard for you too right now but the cool thing about front-end development is that you can show the finished project even if you stumble on describing some of the things they can see what you have done if you have other valuable skills like an eye for Aesthetics or a good user experience intuition it will show through in your work second the front end includes everything from software engineering skills to design skills and so it tends to be more open to self-taught developers as a community it's a pretty big mix of different backgrounds whereas with back-end development you can tend to have a higher concentration of computer science grants now it's still going to take a lot of hard work but it's going to be easier to stand out and out skill other self-taught front-end web developers who maybe just don't have the same level of ambition as you do third on the front end there are plenty of tools to make it super easy to set up boilerplate code needed for an application and that lets you quickly jump into developing everyday code skills without getting lost doing all the complex configuration stuff you can learn all of that later for a lot of people being able to see visual changes happening on the page can be super exciting it's awesome to get fast feedback on the progress you're making and this really helped me stay motivated with backhand there are also tools to set things up but the basic stuff can be pretty boring and it's just so much harder to impress people with what you have done it's like walking in the shadows of your girlfriend's real boyfriend this is really important when talking to non-technical hiring managers or recruiters because even these people can appreciate a website or an app that looks nice even if they don't know what's going on underneath the hood especially websites where you can hit that like button I would totally appreciate that so but you are going to end up having to learn three things HTML CSS and JavaScript HTML is kind of like code Legos that gives your app structure the CSS or cascading style sheets lets you define the size the shape color the animations for each of those Legos at JavaScript is how we give it instructions if someone clicks on a button what should happen maybe it loads some data onto the page if you hear someone say vanilla JavaScript they're talking about writing code with plain JavaScript without using any third-party libraries or Frameworks and the software Engineers we do a lot of repetitive stuff and instead of writing everything from scratch ourselves smart devs will usually use libraries of heavily tested code written by other people you should probably ignore anyone who says you should only use vanilla JavaScript or else you'll end up basically building your own crappy library that nobody else knows how to use and if you care about actually getting a job most companies will want you to have experience working with one of the major JavaScript Frameworks like react or you could learn angular if you want to become a boomer living in your mother-in-law's basement the right way to learn to code is not reading a book cover to cover it's not trying to understand everything there's just way too much stuff in HTML CSS and JavaScript that you just won't use it's far better to master the Core Concepts and to learn all that other stuff as you need it at some other time instead of just becoming mediocre in everything the best way to figure this out is to just step away from following tutorials as soon as you are comfortable with the basics and just start building things that solve problems that you are already interested in as you write code you'll start to identify things that you just keep doing over and over again and you should focus on learning how to do those things really well how can you make that code chunk smaller more reusable maybe more efficient and easier to read that kind of stuff and then you should be able to explain why you chose to do it the way you did in your in interview you'll probably get asked questions that stump you or that are just hard to remember the exact answer if you understand generally what's going on it's going to be super easy for you to say I don't remember that one thing and then just start to explain everything else and that's probably one of the best tips for dealing with your first interview in fact that is exactly what happened during the interview that led to my first job offer be able to talk about a lot of Core Concepts could really make up for messing up on some random technical question and trust me I messed up on a few questions and here are some more tips for how to get your first job as a programmer first most people who are fast at getting their first Dev job either know someone at the company or they have someone mentoring them who can vouch for them and their skills or else they just got lucky and if you want to be that person try to build solid relationships with people in the industry as soon as possible second if you've made it this far I assume you are liking this video so consider are subscribing I have a ton of other videos to help you become a programmer okay for reals second you are at a distinct disadvantage when compared to computer science grads they have a paper that vouches for their educational experience and that is something you don't you have to get practical experience any way possible and that means build your own projects work for free if you have to but you have to find creative ways to get your own experience in my case I built personal projects in the evening and then in my down time at work I started building things and doing things for my employer that could provide them value and build some skills stuff that they didn't even ask for and this means I had to be proactive and come up with ideas on my own I created my own opportunities to get experience and you're gonna have to do similar things too third you want to have a portfolio that can sell your potential and instead of focusing all of your attention on a single large project I would shoot for a handful of smaller projects first and then do one that is more of a complex project the people interviewing you are probably only going to give it a quick glance so seeing lots of projects is going to have a bigger visual impact initially and by starting with building the smaller ones you're going to get some quick wins that are going to help you stay motivated and then dive into that larger one if you start with a really complex app there's just a good chance that you are going to get lost and that you might give up for these projects you need to do stuff that interests you rather than just copying existing projects or tutorials simple and unique applications are going to be way better than a complex tutorial clone but a unique complex project will really stand out and don't get me wrong I mean following tutorials can really help you develop your skills but just don't consider them to be good portfolio pieces when you get to an interview there's a good chance that they haven't even clicked the link to see your portfolio so bring an iPad or a laptop and be prepared to show them what you build and explain the Technologies you use and why you did what you did if you used multiple Frameworks tell them what you liked about each one and what you didn't like that will go a long ways fourth and one of my personal favorites is don't just sit there hoping they'll ask you the right questions it's like politics instead of waiting timidly just answer their question as best you can and then try to steer the conversation to related topics you are prepared to discuss with confidence fifth the spray and pray approach to sending out resumes just doesn't work well if that's what you're doing don't complain about why you're not getting interviews you need to do whatever you can to get in contact with the hiring manager directly instead of going through HR and the online application process you don't want to be a no name in a database the goal is to have the company want you before you ever fill out an application this is super uncomfortable for me I've intentionally not talked about how much I make as a self-taught software engineer and I believe this is probably the first time that I'm even gonna say where I work I just haven't really wanted to come off as flexing that's not really how I roll anyways I'm giving in and making this video because I just keep getting comments like this one on becoming a front end developer the comment is both right and wrong and I'm just going to try to be really transparent here and tell you how it is when it comes to front-end developer pay as well as talk about some of the things that you'll need to know if you want to get paid how much you're worth and in a minute I will share with you how my pay has increased over the last eight or so years as a self-taught front-end software engineer so here's the skinny in a lot of areas front-end development is a race to the bottom I mean think about like website meals or Fiverr WordPress templates website Builders like Squarespace these are just a few of them but they're low paying because it's just super easy for someone living in an inexpensive country where there's a really low cost of living to just come in and do just as good a job as you for a few dollars making simple websites for people is dying there will be a few people out there who want custom work and are going to be willing to pay for it but most of the people looking for these smaller our simpler websites are just wanting cheap websites I mean it's got so bad that it's not even worth me spending my time to build my own personal websites and I talk about that more in another video and I'll leave that link in the description below so to make a lot of money as a developer you're probably going to need to build applications but not all apps are the same without good marketing apps in the App Store probably aren't going to make you much money they're kind of becoming the next race to the bottom if you're going to make a ton of money you're really going to need to build applications that solve complex problems now this usually means that you're going to end up having to work at a startup or at a larger Enterprise company but even then at those kind of companies the developer salaries are going to vary from company to company some just don't understand the market and then there are other companies who intentionally try to take advantage of new software Engineers you may end up having to work at some of these in order to get that initial experience but as soon as possible and once you have that experience you just want to stay away from these companies you really want to try to get a job at a tech company that pays well but even if you get in the different areas of the company are actually going to pay differently if you work on a project that is needed but that doesn't really directly relate to making money you're probably going to get paid less this type of project is called a cost center however if you end up working on a project that brings in a ton of money from customers then you're likely going to get paid more because you're working in what's called a profit center now cost centers try to squeeze you with high expectations and low pay but usually profit centers they want to keep you happy and productive so they give you Financial incentives to stay and keep working because if they lose you then they lose that knowledge of the things that you're working on and it can actually hurt the profits that they have to get better jobs you have to specialize in in demand skills and then you have to become good at those skills and then you also have to be a good culture fit and that's just another way of saying someone who's able to take criticism and not be an arrogant jerk you need to be someone who will just jump in and solve problems rather than the kind of developer that has told everything to do you needed to be able to work independently and Be an Effective contributor all right now for the not so juicy juice and maybe I'll even get fewer of these dumb comments going forward which is not super common because most of you leave great comments and ask awesome questions so thank you let's jump back 11 years ago when I was working construction for my father's underwater construction company I do go into how I transition from construction to web developer in another video so I'm going to keep that part short here but I started doing web stuff part-time when I was making around forty five thousand dollars a year and keep in mind that I do live in the United States now where I live we do have a growing Tech Hub but I do not live in Silicon Valley and so the salary and cost of living here is lower than it is in some place like San Jose or New York another look back at the first couple of years working for my father's company when I had started doing the web development it's kind of hard for me to say exactly how much time I'm spending doing that first is doing other stuff so usually when I say that I've been doing software engineering for eight years I'm only counting the last year of time working for my father's company when I was heavily doing front-end Development building applications and marketing websites though my experience is a little bit longer than that I don't know if it's just me but sometimes I feel like I got to Discount those first years of experience because I was new and I was also working for my father's company but I did end up getting some parises along the way but I got a decent pay bump when I got my first Enterprise front-end software engineering job at the Church of Jesus Christ of Latter-day Saints I was building applications for their missionary department and it was a contract position so I didn't get any health benefits but I was baking around 85 or 87 000 a year and this was a crash course in new programming Frameworks tools and complex systems things that I just hadn't worked with when I was on my own working for my father's company so I ended up spending a lot of time in the evenings on my own just learning stuff and so that I could try to really up my skills as fast as possible about a year later I ended up taking a front-end job at Western Governors University for 95 000 and after being there a year I got a three percent raise and then when the second year came around and I was to get my yearly raise I only got a partial raise because I actually ended up hitting the ceiling on my job salary banding and basically what that means is that when you hit the top of your band you can't get any more raises unless you actually get a promotion fortunately I've been leading the UI development of a really important application that was going to save the university a ton of money and so after jumping through a bunch of stupid Hoops I was able to get that promotion and my pay was raised to 110 000 I believed in wgu's Vision to make higher education more affordable for people and so I knew I was working on something worthwhile but by this point I had already helped WGU make the move from angularjs Jas to angular on the project that we were working on and kind of setting that pace for future migrations of older applications from angularjs to angular and I was really wanting to work on projects in react and combine that with the fact that it did leave a little bit of a sour taste in my mouth having to jump through all those Hoops for the promotion that I decided to put out my fillers and see what would happen and I wasn't in a super huge rush because I did like what I was working on and that's an important fact that if you want to get good offers it really pays to be patient and not in a rush if you're rushed you're likely to accept an offer that's just not going to be that good during this time I interviewed at four or five companies including higher view that I mentioned in a recent video that was the only sucky interview of the bunch and before that interview ended I already knew that I just wasn't interested in working for that company I received a couple of offers in the 120-130 thousand dollars range plus startup equity and that's basically means that you're getting shares of a company but you aren't able to sell those unless the company actually goes public or the company is bought out by another company and these companies were all right but I just wasn't really feeling it and this was really fortunate because one of them actually ended up laying off like 60 of their employees within that next year I am so glad that I missed that I decided to write it out longer at WGU but eventually I was told about an opening at Adobe and so I interviewed there and the team was really cool and the project sounded really cool but then I just didn't hear back from them which was really a disappointment because Adobe was on my list of cool places to work two months later my friend told me about an opening at the company he worked for and it was an angular position but it seemed like a good company so I interviewed there I ended up getting and accepting an offer from them that was somewhere in the mid to high 120s Plus Equity if I remember right so this is where it really starts to get awkward you see I had accepted that offer and I put in my two week notice at WGU and then a couple days before I was supposed to start at this other company I ended up hearing back from Adobe and it was a good offer and the salary was similar to the other offers that I had received but this one also came with a sign on bonus and then there was the RSU grants and these are restricted stock units so basically it's like what I talked about with getting the equity and the startup company only with the stocks that are publicly traded once those vest I own them and I can immediately sell them I do not have to wait for a company to go public or for a company to be bought out so it's almost as good as cash as long as you work for the company long enough for them to vest I felt super guilty withdrawing my acceptance from the other company but an offer from Adobe was just too good to refuse so that is what I accepted and I've been there for almost three and a half years now and I'm really glad that I was patient and weighted because in addition to the good pay Adobe has been a terrific place to work and it's fun to build cool stuff with cool peeps now this may seem like a lot but keep in mind that salaries are adjusted to where you live so I would not be surprised if Junior devs who live in San Jose or New York actually make more than I do a couple of annual salary raises later and I'm now in the mid hundred thousands salary wise but when you actually include in the yearly bonus as well as the rsus from a solid growing company that keeps going up in value as well as the Employee Stock purchase plan that actually puts my total compensation to over two hundred thousand dollars a year I also know some software Engineers with similar front-end experience and similar skills who make seventy thousand dollars a year I even interviewed at one place that considered eighty five thousand dollars High to be paying a Dev who has 10 to 15 years experience pay is really just all over the place and despite the rat race to the bottom in some areas of front-end development overall I think that the future is still really bright for front-end developers and that the market will continue to be strong for people who are going to be working on complex applications but where you live and the companies you work for really matter this is everything you need to know if you want to get a good paying job as a newbie front-end software developer this is the list that I wish someone had shared with me when I first started out and these are the same core skills that I use on a day-to-day basis working as a front-end software engineer at Adobe number one HTML you need to understand the document object model or Dom how to structure a basic index HTML page everything starts with that page but it's blank until you actually do something and put stuff in it for example you got to know the common HTML tags and how to use them this is going to include the body tag div image link orderless unordered list items and there's a bunch of other elements and you're going to need to learn about semantic HTML and why you should use it these HTML tags provide additional meaning to the structure of your HTML for example section article header aside tell you more about the contents of the tag than the plain old div with the div you have no idea what's inside we find and interact with tags using HTML attributes when you see an ID a class data Aria 4 type name value or similar words inside of an HTML tag and it's followed by an equal sign and then something that is wrapped in quotes you're looking at an attribute the script tag is important because it's how we actually load JavaScript onto the page and without JavaScript our application or website is just going to be extremely boring and not super helpful the link tag is going to let us include external resources in our document like adding CSS styling number two cascading style sheets also known as CSS it's not enough to just link CSS style sheets we also need a way to reference specific elements in the HTML that we want to stylize the most common way to do this is by adding class names from a style sheet onto the class attribute of an HTML element but that's just one of the ways to do it you need to understand why it's usually a better idea to use classes instead of IDs in CSS and you're going to have to prevent one style from colliding with other styles and the way to control this is through a concept called the specificity throwing important around all over the place is just a really bad idea we use CSS selectors to Target specific elements based on their location in the Dom in relation to other elements for example child sibling to Senate last child attribute selectors and there's quite a few of them out there to learn you control the actual styling through CSS properties which are the bread and butter of making things look good only it's kind of like honey butter mixed with bro broken seashells just when you start to think it's cool you realize it's also painful there are a ton of ways to influence the size of the elements you can set the height the width there's Min Heights Min widths you can do stuff with line Heights you can make stuff shrink or go completely off the page and the spacing around all of these elements is controlled with margins and padding but there's some gotchas here for example you need to know that margins can collapse it's important to understand how these interact and affect each other and the overall size of the element do you want the header to stick to the top of the page while you scroll or have some part of your HTML take up a certain amount of space or even move it off the page this is handled with static relative absolute or fixed positioning flexbox and grid are really important to know and they kind of overlap with some of the stuff that we just talked about and these and their related properties help make layouts that can grow and shrink and that are aligned with each other right have spacing between them around them there's a lot you can do with flexbox before flexbox there were floats it's good to know about floats because you're likely to encounter them but it's even better if you can avoid using them they're like fleas you know they're around you you just don't know where they've bounced off to minimalist black and white sides can be really attractive but sometimes you just gotta add a little bit of color and there are CSS properties for adding color to backgrounds to text borders and even pseudo elements there are also a ton of ways to style text links and images you need to know how to handle when content overflows it's a loud space what happens when content is too big for the space it's in do you hide it do you make it scrollable do you say to heck with Pixel Perfect and let it just completely run off the page and annoy the designers if you have a bunch of stuff that's overlapping which one should be on top you control this with something called Z index now the higher the Z index the more likely it is to be on top so Z index of 10 000 should just about do it okay you really need to learn how to avoid this Z index race to gigantic numbers is your web application going to be used in a laptop browser or is it also going to be used on your phone do you want your app to be responsive and change depending on the size of the screen so that a user doesn't have to fat finger tiny buttons on their phone we use media queries to control rules for the different sizes of screens and device types or maybe you want to spice up your site and have menus that slide in and slide out rather than just pop in and pop out and there are CSS properties for doing these kind of animations one of the challenges with updating the color of a website is that you might have to make changes to 100 different lines of CSS just for one particular color you can save time by storing that color in a single variable that is then used everywhere else and then whenever you want to actually change the color you just have to change it in that one place and everywhere else that the variable is used it will automatically be updated with that color and will save you a ton ton of time this is one of the features that are making CSS preprocessors less useful for the longest time that was the only way that we could do variables inside of our CSS that said CSS preprocessors like less post CSS SAS stylus are still in use by a lot of projects some people like how they can be nested together and there are also special things that you can do like mix-ins and other special magic so understanding what they are and why you would want to use one instead of playing CSS can be helpful and most of the larger projects that I've worked on have used either SAS or less that's it I personally prefer SAS but sometimes we have to learn to do more with less a lot of times you aren't even going to be writing your own CSS there are plenty of CSS libraries out there like Tailwind CSS and in the real world with projects there's a good chance you're either going to end up using a third-party solution to help with your CSS or you're going to be using one that has been built in-house by the company that you're working for now you can't really know ahead of time what every comp company is using but it is helpful to become familiar with using CSS libraries and you can do that by learning something like Tailwind number three JavaScript and in a minute we're going to talk about JavaScript Frameworks and much more but in this video I'm not going to Deep dive into the specifics of the JavaScript programming language because it's a large enough topic that I've decided I'm going to be making a separate JavaScript roadmap video so subscribe if you want to know when that comes out and a video of the courses and resources that I recommend for learning front-end development is also on the way for now you should plan on getting really good at JavaScript if you want to be able to get into one of the higher paying front-end developer positions because it is the programming language of the front end you're going to want to know about the newer ecmascript features es6 es7 Etc bleeding edge is now at 12 but the big shift to newer syntax happened several years ago with es6 this is why I don't share a lot of the courses and things that I actually use to study when I was first learning because a lot lot of them are now just out of date number four JavaScript Frameworks and libraries but first I Gotta Throw in the library's disclaimer because without fail some people cannot stand generalizations and will throw a tizzy fit if you say you're going to be talking about Frameworks and then you mention react.js you know who you are you should grab a soda and go chillax whatever you call them there are three main Technologies to choose from for building front-end web applications I mean there are more but this is what you should focus on angular should not be confused with the original angularjs which you should avoid it's what I learned on when I was first starting out but the newer angular is just much better angular is a full-fledged framework with most every utility you could want built in vue.js is a lightweight Progressive framework that is kind of like a smaller version of angular it lets you add third-party libraries as needed and it claims to be somewhere between a library and a framework and that's about as confusing as a girl claiming to be your girlfriend and a stepsister at the same time the third and best option is a small library for making awesome web and Native applications react rocks what can I say I am 100 unashamedly biased on this one and you should be too you see angular is highly opinionated which means that there is a specific way to do most everything so it's big and it's bloated you wanted a banana and you got a gorilla holding the entire jungle to on the other end of the spectrum is react which is intentionally unopinionated it provides some of the core functionality and you choose the rest which makes it much more flexible but this also means that you're going to be learning some of the react related libraries or you could just start with something like create react app VJs next JS or one of the other similar projects as a way to get started without having to configure all of this yourself react is in high demand and it's what I have been using at work for the last several years at Adobe and there's been this trend of things moving from angular to react for quite a while now that doesn't mean that angular is dead it's still powerful framework and a lot of people use it most notably Boomers but there's one universal truth that software development and that is that most everything is highly subjective this is no exception all joking aside if you're a new developer then I highly encourage you to consider going for react unless you already have some strong existing connections to a possible job in a company that is using angular then it could definitely be worth it to learn angular in order to get that job and let me know if you want me to make a react roadmap video now we have to get some data and for that we make API requests to do this in a react app you're going to either go with javascript's built-in fetch API and then build wrappers around it yourself or you'll end up using a library like axios that already has those utilities and wrappers baked in I like using axios for my projects but I'm sure that fetch die hards are going to chime in and tell us why fetch is better than axios and we'd love to hear your thoughts now if you're working with angular a lot of this is already built in so it's time to make something useful so you're gonna need to interact with actual apis and to get started you can build something that connects to an existing API you probably have a YouTube account if you're watching this video so maybe you look into creating a channel and uploading a video and then you could use YouTube's apis to interact with that video and the video analytics or if you don't want to go there with interacting with that kind of API then you might consider a solution like Firebase to handle the back end for you and then that way you can connect the app to the Firebase which is fairly easy to configure when compared to setting up a complete back-end and having to deal with the database and everything else on your own at this point as you're either connecting to Firebase or to other apis you're going to have the opportunity to learn some important things about security and protecting your data and authentication but all this doesn't mean that you should just go out and deep dive into back-end development at this early stage in your career and I talk more about this in another video where I share why you shouldn't become a full stack developer number five component libraries similar to CS access libraries there are libraries for reusable components like buttons drop down menus tables and other cool widgets in future projects there's a good chance that you're going to be working with either a third-party component library or else you'll use internal ones built by your company you might even be building components for that Library so it's a good idea to become familiar with how these work and it'll also help you to see good ways to create reusable components for when you're making your own components two of these that I really like is angular material or angular obviously and for react apps I like semantic UI number six some valuable tools that everybody should be using in order to get this stuff all running you're going to end up needing to install node.js and you're going to need to learn how to use npm which is short for node package manager you use this to install and manage the different dependencies for your project you also need a way to bundle your application for deployment now if you're using tools like great react app or VJs or nexjs they're really going to help with handling a lot of the more complicated configuration for you because they do this behind the scenes for setting up the dev servers and for actually bundling and building your code for production you'll be able to go pretty far with what create react app and VJs and next.js provides out of the box but as your project grows in complexity you might end up actually having to learn how to configure webpack directly or some other bundler in software development it is super important to keep a history of all the changes that you've made to your code base so you can go back and see when you introduced a bug or maybe you don't like the features that you just made and you want to be able to roll it back without having to remember every line of code that you changed and you also want a way to protect your code from getting lost in case something bad happens like your laptop fails so you should learn to use git for Version Control and GitHub is a great place where you can store your project that uses git as you work with Git you're going to want to learn how to create repos create branches push and pull from repos merge branches Fork repos and do pull requests into repos because these are some of the things that we do almost every day and some of them we do multiple times a day you also need to learn Chrome Dev tools it is one of the most powerful ways to debug problems with your front end application and there are also specific extensions you can get to help with debugging react or angular but Dev tools should be one of your best friends number seven deploying code what is the point of building an application if you don't have any place to put it some options for hosting your application include Roku GitHub Pages Firebase AWS Azure and there's a bunch more so just pick one to learn Heroku or GitHub pages is a good place to start it would also be helpful to become familiar with Docker containers and how that ties into the deployment process number eight things to learn later on once you're comfortable with building and deploying an application it'll be worth your time to learn how to actually test your code for JavaScript I recommend that you learn jest and if you have some time at least become familiar with some of the other forms of tests like selenium or Cypress I include these in the later section because it's probably not best to get swamped learning how to test early on is you're going to be fighting through a bunch of information overload already but eventually you'll get to where you're actually writing tests as you're actually building features for the application and now that you're comfortable with JavaScript you might consider learning typescript if you chose to go down the angular path typescript is already baked in so you might already be learning it but with react the dev Camp is still largely divided so it's not mandatory but it definitely could be really valuable for a lot of companies if you have typescript experience another thing to consider learning is accessibility and you'll often see it referred to as a11y or some will just say Ally and yes those are ones and not the letter L's knowing how to make your application easy to use for people with disabilities is a valuable skill I mean imagine being colorblind and not being able to tell the difference between two options on a page or perhaps you're blind and have to rely on a screen reader to tell you what is happening on that page this is really important especially at bigger companies educational institutions or companies that have government contracts and now let's have a candid chat about becoming a full stack developer because it's something I get asked about all the time which suggests that a lot of folks really don't know what it means and what's involved and it doesn't help that a lot of job openings ask for full stack experience and a lot of coding boot camps are selling full stack programs let's start with clearing up some of the misunderstandings around front end back end and full stack development and then we're going to go into why you shouldn't try to become a full stack developer as someone who is trying to get into the industry so what exactly is front-end development well the front end is the user interface or UI for websites web applications native mobile applications like those on your iOS or Android device hybrid applications and some front-end developers even focus on creating HTML based emails for marketing campaigns at the core they work with HTML as the markup language CSS as the style sheet language and the main programming language is going to be JavaScript now depending on the complexity of the project the front end is going to be integrated with a lot of different third-party libraries and Frameworks to handle the different parts of the application there are tons of them out there you got react angular nexjs low Dash axios Redux rxjs and there's CSS processors and a lot of other stuff not to mention custom in-house component libraries and style libraries the front end then communicates with the back end to send and receive data through methods like HTTP requests and web sockets so then what exactly is back-end development the back end receives data updates from the front-end UI and then updates the database and for other types of requests the back end returns data for the UI to display but the back end also has a really important role to play in all this because you see actual users of an application have access to the front-end code in the browser and so we have to treat it like it's always vulnerable and always going to get compromised the back-end developers will create specific ways to send and receive data which act as gates to protect the database from being compromised or corrupted whether that's intentionally or accidentally and a lot of times data is coming in from all over the place and it needs to be collected and processed into a consistent structure and cache so that the backend service doesn't have to keep doing the same stuff over and over again you see all of this processing costs money so back-end developers have to manage these interactions to be fast enough to provide a really good experience for the end user but also to be cost efficient with its transactions back-end developers often have to work across multiple programming languages and then their apis are usually going to be split into microservices where one could be written in Java another in Scala another in JavaScript with node.js or some other programming language and then back-end devs might have to integrate with a bunch of different databases read information from data pipelines and send data through other systems this system of interactions can be really complex and in some companies there's so much going on in the back end that they're going to be software Engineers who are dedicated to just databases or to managing the pipelines and others focused solely on building the micro Services all of this needs to be secure and protect the data now let's talk about full stack development a full stack developer does everything that a front end and back-end developer does and much more which means knowing multiple tools for bundling code and deploying the applications because this is handled differently on the front end and on the back end keep in mind that a lot of job listings for full stack developers are going to be a little bit misleading and we're going to dive into that more in just a second but most True full stack jobs are going to be at smaller companies on tighter budgets these companies want to get as much out of each person as possible so in addition to doing the stuff we just talked about a full stack developer is probably going to do a lot of devops stuff like matching infrastructure and that's something that's usually going to be handled by somebody else at a larger company if full stack developer is going to be more involved with planning with talking to customers and as is going to be on call for anything that happens with the application from one end to the other but that's why everybody wants them right well not exactly so let's get into why you shouldn't become a full stack developer when you're starting out first most job listings cast a wide net of requirements that often don't actually match the specific needs of a particular team for example the job listing for my current position targeted full stack with a focus on front end and what the team really wanted was front-end experience in fact 98 of what I have done at Adobe is on the front end now most everyone I've worked with is also specialized on one side or the other and occasionally crosses over we could do full stack development if needed but we play to our strengths because that is going to be much more efficient outside of the smaller companies this separation by specialization is very common and if you're not actually specialized and good enough at that area of need then there's a good chance that you aren't even going to get the job offer and this could be one of the downsides of doing a boot camp that teaches full stack breath without spending enough time really deep diving into the front end or into the back end when compared to self-taught devs who are going to usually be focused on learning one side or the other and learning it well second back-end devs are the guardians of the data which often is the company's most valuable asset and a lot of companies are going to be really reluctant to hire a new back-end developer because it's super easy to mess up the database that Subs can really cost the company a lot of money and can completely destroy their reputation so it's going to be harder to convince them that you're confident enough to do the job and because you're doing full stack work which includes back-end you're going to inherit a lot of those concerns third if the company is legitimately looking for and needing a full stack developer they probably need someone with experience who can actually handle the entire process without much supervision and hand holding if you're new to software development you just don't have that experience that comes from years of making mistakes that have taught you how to architect things without walking your project into a corner down the road you'll eventually get there but that experience is not something that you have but it's something that the company needs right now there's just so much to know and you probably don't even fully know everything it is that you're supposed to know and so they're not going to be super interested in you unless they're new to Tech and aren't even sure what they need themselves or maybe they're Cheapskates who are willing to take whatever they can get at the cheapest salary possible fourth a specialist who becomes really good at some niche of software development usually makes more money than a generalist because companies that can afford to really pay well want someone who is really good at something now money is not everything and some people really enjoy being full stack developers and there is nothing wrong with that and if that is your goal that is great I still think you're better off becoming a t-shaped developer and that means going deep in one area and then go broad enough to become full stack so the path that I recommend is becoming good at front-end development just so that you can get your foot into the industry and then in a year or two you can start expanding your skill set to include the back end even if you later decide to stick with either just the back end or the front end having that breadth across that domain and that full stack experience is going to be really helpful and if I were starting over the reason 98 of new software developers are not getting job offers is because they are not doing these 11 things your do so there's a ton of things that you don't know and that's okay it's perfectly normal you're gonna make mistakes and forget get things during the job interview what is super important is that you demonstrate your confidence in your ability to figure it out why should we be confident that you will succeed on our team if you aren't even confident in yourself we're probably going to ask you a bunch of questions to figure out two things first we want to know what areas you're good at and bad at because we want to know if your good areas are a match for the skills that we are looking for second we want to know if you're a good culture fit and how you respond to tough situations do you get incredibly frustrated when you get stumped do you throw in the towel easily do you get confrontational we really want to weed out people who get upset rude or just plain give up on hard things because those things really hurt the morale and effectiveness of a team for example during my first interview for a front-end position the hiring manager spent most of the time grilling me on backhand stuff in math problems I later learned that he wanted to know how I would react in a stressful situation when I was out of my element also don't talk badly about past co-workers bosses or projects we can help you get up to be learning new technologies but it is practically impossible to teach a toxic person to not be toxic if you trash talk them then you're eventually going to Trash Talk Us and nobody likes that number two you really need to demonstrate that you are a good fit for our team and to do that you should have spent the time trying to research and figure out what it is we are looking for and then when you get to the interview you need to ask us early on what we're working on and try to show that you are a fit for our needs and here's a little secret our actual needs might be completely different from whatever HR put on the job listing half the time they don't even know what they're trying to find and so they'll just use some boilerplate requirements or they're just casting a really wide net for example my first job offer was for an angularjs position and the team actually needed someone to work on Essentia touch application so I end up having to learn such a touch and it was several months before I ever even touched angularjs code number three how well do you know the basics of your programming language for example if you're working with JavaScript you should be comfortable with conditional law logic using objects iterating through arrays and there are a bunch of ways to do this functionally with map filter reduce and similar methods you can also do it non-functionally with for loops and while do you know how to add remove and replace items from arrays and strings how to split and join strings it is really hard predicting what algorithm problem might be asked but it's safe to assume that you will likely be tested on some of these Core Concepts on a regular basis for each algorithm question that I've received during an interview I've been asked at least 10 to 15 core JavaScript HTML and CSS questions number four how well do you know the basic functionality of a popular framework for front-end development that would include react or angular can you explain how the components work how do you pass data in and out of the components how do you compose larger components from smaller ones and how do you manage the application State when would you choose to use angular over react and why if you're applying for back-end work why would you use spring boot over something else number five on paper you probably look just like a hundred other new software developer applications how are we supposed to know you got the skills or are you just all talk the last thing that we want to do is to hire you only to find out that you don't know anything and then have to turn around and let you go that's a waste of both of our times and it's not very pleasant so show don't tell do you have a portfolio of projects that you've built or worked on and can you explain why you did what you did why you chose one technology over another technology is there something unique or complex going on in the code tell us about it after all we're software Engineers not mind readers so don't expect us to just know whatever it is you'd like us to find out or notice when you show up to the interview it's safe to assume that there's a good chance that we may not have even looked at your portfolio or code samples and even if we did we may not have looked that closely because we're all really busy so if we forget to bring it up don't be shy you want to put your best foot forward and show us your portfolio so bring your own laptop or an iPad and have your portfolio ready to go number six play to your drinks don't overly focus on your weak areas and don't apologize for not knowing something if you're stumped on something there are a couple ways to approach this first if you flat out don't know anything about it just acknowledge that you don't know or remember the answer and let us know that you'll definitely look into it later and just let this roll off don't let it jar your confidence it's not game over unless you clam up second if you happen to get stuck on a part of a problem but you remember the rest of it don't just shrug and give up and now pay attention here this is a super skill that most people don't do acknowledge that you don't quite remember this step but then explain everything else that you do know and what you would do next and what you would do to find the missing pieces if you just give up we are left to assume the worst about you this is the exact thing that happened to me during the interview that landed me my first Dev job I was totally stumped on some syntax pretty early on into solving a problem so I set down the marker and I verbally explained everything else I could think of that was related to that topic this ended up turning into a conversation that went about 30 minutes over the set time for the interview several years later in the interview handed a MacBook to an experienced software engineer to do some coding but he was used to Windows he kept struggling because if you push too hard on the trackpad it pops up the dictionary and interrupts typing instead of being frustrated he ended up laughing and stopped typing and then just started explaining things I'm really glad we ended up hiring him because he ended up becoming one of my favorite software developers another way to play to your strength is to pretend that you are a politician and look for natural ways to steer the conversation to topics that you do know without knowing much about you we have to just take a stab in the dark a lot of times we probably bring up a bunch of different generic questions and topics to try and figure out what your strengths and weaknesses are so help us out be proactive in sharing what you do know and this goes beyond just code do you have additional insights do you have experience making business decisions where you had to balance out doing something perfectly against delivering the most return on investment for a business let us know about it seven treat the interview like a conversation if we ask you to do a code problem don't just jump the gun and start answering before we've even finished talking or start working through things in your head while we're still trying to explain things instead of focus on understanding what we're saying and then ask us as many follow-up questions as needed until you know exactly what we want and then start solving the problem and this is crucial in asking questions you'll find out if we're okay with you using libraries or you'll learn about different edge cases that you might need to consider and basically you're demonstrating that you're the type of software developer who is going to take the time to really think through a problem first and then write code rather than having to rewrite the same code multiple times or Worse miss a really important Edge case now you're going to feel pressure to answer quickly because it is an interview but you need to push back against that self-imposed pressure The Silence of the room will definitely be awkward for you while you're thinking about things but it will be worth it and if anyone does give you a hard time for it then congrats you figured out that that's a place to probably has some Dev culture issues that you probably don't want to work at eight did you spend too much time on leak code instead of building a portfolio now this is kind of a tricky one to balance spending a lot of time on leak code can definitely help you develop problem solving skills that can help you with technical interview questions that you will eventually encounter but this does not mean that you're actually going to become good at building applications and what we do on a day-to-day basis is building applications and for me personally I would much rather hire someone who can demonstrate that they can build apps over someone who has memorized solutions to a ton of different leak code questions but admittedly software development interviews are kind of messed up in a lot of ways a lot of what you encounter comes down to the people doing the interview even teams at the same company will often do things differently for example is the interviewer more interested in discussing everyday situations and code problems or have they bought into the cracking the code interview book Paradigm I think the low level algorithm approach to interviews is often flawed because most of us just don't do this on a regular basis and besides typically the programming languages that we are using have built-in utilities to solve a lot of this stuff or else we will use third-party libraries and then the case where we actually have to come up with an algorithm on our own we have plenty of time to think through it to whiteboard and plan and prepare and then write the code without the pressure of someone just looking over our shoulders so that they could see if we're going to do it exactly the way that they want in a super short amount of time when they've had plenty of time to really refine and tweak the problem over the course of several interviews and yet it's just thrown at you without any advance notice and you're supposed to see things the way that they do it just doesn't make tons of sense that said this is one of the competitive advantages that lead code experts and recent college graduates have who have memorized some of the stuff for quizzes but even CS grads usually forget a lot of the stuff and have to brush up on it when they're going to go into a tech interview that is likely to be asking these type of algorithm questions and trust me I plenty of senior software Engineers who've been rejected for a job because they stumbled on an algorithm problem that they haven't even thought about or considered for the last 20 years but sooner or later you are going to encounter these kind of interviews and you're going to win some and you're going to lose some so don't take it personal I've even received lots of job offers and I've lost some because I didn't quickly solve an algorithm question that had nothing to do with anything that I have ever worked on then to make things even more confusing there are a bunch of ways to do algorithm tests you might end up having to write it out on a whiteboard and this can really suck because you can run out of space I mean outside of interviews I rarely write code syntax on whiteboards most of the time if I'm using a whiteboard it's because I'm just mapping out the relationships between different things and jotting down some Concepts and working through some of the logic but I don't actually write code on the Whiteboard I write it in a code editor because that's what makes sense or they could hand you a laptop to solve a problem on what if it's not that operating system or code editor that you used to working on or they send you one of several different online assessments now you have to kind of figure out how to actually use the testing software in addition to solving the problem all in a short period of time just don't flip and give up because the difference between a good interview and a bad interview is just a matter of the Stars lighting upright there are things that you can do to prepare and then there's just some luck that's involved because out of the thousands of different questions that someone could possibly ask you does the interviewer happen to pick ones that actually align with your skills or do they pick something completely unrelated and this leads into number nine you need to come into this with the right mindset and expectations failing lots of interviews is not a good indication of your future as a software developer so you need to learn from them and move on I mean in a few years you're going to look back and you're not even going to care about all those interviews that you bombed because the only ones that are going to matter are the ones that you actually accepted frankly passing interviews is its own skill and even good software Engineers are going to bomb interviews so what's your experience is not something new it's not unique to you and sometimes it just comes down to Simple Math that there could be several really good candidates for a job and there's only one position and the difference between you and the dev that actually gets the job it might be super super small for example in my last job it was pretty much a draw between me and another software developer and it was a recommendation from another employee that ultimately tipped the scale in my favor number 10 ask us thoughtful questions show some interest in our company and in our team so ask us things that we like to do what Frameworks and tools the team likes to work with maybe why we chose to work with react over angular ask questions about the company and don't be afraid to ask personal questions about us you gotta remember that an interview goes both ways you should be trying to figure out if you even want to work with us and also by asking questions you're creating interpersonal connections which can really help us to remember you when we're trying to look back over a bunch of different candidates that we've interviewed and then it's also going to help you because you can take these insights and you can apply them to future interviews if this one doesn't work out number 11 don't get greedy with your first job and don't try to compare yourself to that self-taught ivy league grad who ended up getting his first job at Google at Google pay and don't go around throwing some super high crazy salary out there because some dude on the internet did and happened to luck out and got it for most of us that first job is probably not going to pay that great or it's gonna be okay pay but we just need to get into whatever job we can and start getting experience and then the higher pay will come faster than you think going from no code skills to my first Dev job was really freaking hard it was much harder than I anticipated and when it came time to apply to jobs I was beyond terrified and I felt completely unprepared to take the lead I was developing more confidence in my ability to learn and figure things out but that was not enough to overcome the pit in my stomach the fear that I wasn't good enough and that no one would hire me how do I prove I'm worth hiring I mean it made my stomach churn with anxiety just thinking about it what if I couldn't make it I would be stuck in construction forever but maybe it's been easier for you I'd love to hear your story so if you share it in the comments I will read it well you can imagine the sigh of relief and excitement I felt when I got that first job offer especially after going through the painfully challenging code interview woohoo I was gonna be a software engineer hard part's over right well sort of sometimes I think we get so focused on learning to code or getting that first developer job that we kind of gloss over what we're actually signing up for you see as hard as that first step is the harsh reality is that while some things will get easier you'll also have other mountains to climb there's kind of three ways around this next Mountain the first way is working for a smaller company that isn't really Tech focused you're may very well be on your own trying to just figure everything out with little guidance and high demands from a manager who swears you should be riding front-end code using lisp because his buddy used that to build air defense systems during Vietnam which means this is going to be a crash course in learning software development and patience and as overwhelmed as you Bill you're going to be forced to develop the skills through trial by fire and if you survive this phase you're gonna end up becoming an independent developer but you might be like a leaky bucket full of best practices holes since you didn't really have someone more experience to Mentor you or you could end up working at a website meal cranking out smaller but flawless marketing sites or apps for other businesses you'll probably face a lot of pressure to deliver fast Pixel Perfect web pages and you'll get really good at CSS and animations but your JavaScript skills might not be that great depending on the kind of repetitive work you're doing a third path is through the Enterprise application world you show up for your first day on the job only to find out you're working on a JavaScript framework that you have never heard of the application is huge and complex so many different coding Styles you don't even know where to start so why not start with smacking that like button but that is only the start of your pain there are so many different pieces to the system from data collection to processing to retrieving the data with 100 steps in between and your surrounded by computer science grads who speak a completely foreign language and drop acronym after acronym feel like a complete idiot having to ask what everything means and you secretly wonder how long you have until they've realized they hired a dud and send you out the door or Worse to learn PHP setting up your Dev environment is a complete nightmare the docs are outdated and no one even remembers exactly what they did to get it working so they tell you you're on your own deploying the code is a beast with a bunch more tools that you've never heard of and maybe just maybe one day you'll stop feeling like a fraud and an idiot doesn't matter which path you take there is a universal truth that sooner or later you will encounter that condescending opinionated Haskell jerk that takes pride in making you feel like a that person who finds joy in making you look bad in front of everybody else or those snarky looks that you get from some of the other senior Engineers just when you think you start to get the hang of it you get handed a critical bug that has to be fixed yesterday you pound your head in into the keyboard until midnight you're so gonna be fired if you don't get this fixed soon the next day you yearn for even the slightest bit of praise for your late night dedication only to find out in your tired haste you introduced a bug that was worse than the first one because you're working in JavaScript day after day you feel like a failure a fraud an imposter you know you're getting faster at solving problems but you don't feel worth the pay that you're receiving until one day a new Dev joins the team and starts asking you questions and you actually have answers and he says wow you're good at this you feel that first Spark of validation that you are good at some things and your confidence starts to grow and you wonder if you really are worth it as a software developer it's been a year or two and you have a choice to make you're feeling comfortable with your current job so you could stay and Coast for a while take the slower path to Career growth or you could jump ship preferably to a job that's going to challenge you and up your skills allowing you to solve harder problems so that's what you do a new set of tools different Tech stack you're doing everything differently you realize that you are underpaid at your last job but now you feel like a fraud for making so much more at this company how long until they realize it and fire you you shouldn't be feeling imposter syndrome but you do around and around this vicious cycle you get better and better but there's always something to make you feel dumb like you're not sure if you'll be able to pull it off the best talent Rises with you you start at the bottom then became a big fish in a medium-sized Pond and now you're this little fish lost in a sea of brilliant software Engineers all working on really complicated stuff at one of the bigger tech companies you start to think that you're losing your mind because it's getting harder to remember things when really what you're trying to hold in your mind is way more complex than anything at your last job you wonder if you should have coasted like some of your HTML buddies taking things a little bit slower rather than driving yourself to the edge of technology to chase a higher salary but it doesn't matter you can't go back the reward for your effort is a pair of golden handcuffs even if you wanted to the past is not an option lifestyle creep has you stuck and besides why work the same number of hours for Less pay you start to realize that this whole self-taught devs versus computer science grads comparison doesn't matter because every successful software engineer is self-taught it just never goes away you got where you are because you are a self-taught programming masochist you know you should really pace yourself but there's something satisfying about completing that next piece of the puzzle then one day you look around and realize that most of your buddies have burned out moved on or gone into management there you are surrounded by a team of younger software Engineers making all the mistakes you've already made but they're fast really fast and they get things done maybe it's time either go into management or become that Dev out of place alone you feel like a different kind of imposter you're now wearing glasses because you don't see Sharp but you're still handcuffed a cog and a giant machine that never rests always hungry for more code you look back at your accomplishments only to realize that most of it has been Rewritten with the latest and greatest Silver Bullet and you wonder if chasing the dream was really worth it a thousand late nights completely forgotten and yet there's something about it that makes you still smile so you create a video to share what you wish you knew when starting out to pay it forward to the next wave of self-taught programmers [Music] get your own taunts here are five tips for finding development jobs when you're self-taught with no experience and no computer science degree and I'm not going to go into sending applications through sites like LinkedIn you can try applying to lots of companies through those sites but it's so easy that everyone is doing it and it's just going to be really hard to stand out when you're a new developer it's probably not going to hurt to send some of those out here and there but if you're relying on that as your sole strategy then don't complain if you end up not getting a job so let's jump into it number five probably one of the easiest places to get started is with websites like Glassdoor and indeed the ones where employees can leave their experiences working at a company now some of these also let you apply directly for jobs and will also suggest open listings to you for right now just ignore all of that what you want to do on these sides is look for smaller companies that are not posting listings on the big job sites often these companies hire through word of mouth or they may post listings on their own site and then when they're just not having any luck filling that position then they consider paying to list on a bigger site but because employees are able to leave their reviews you will find out about companies that might not actually be posting any listings on Glassdoor similarly you can look for smaller job boards and find listings that just aren't on these big sites and there are tons of these Boards out there the one downside to job boards is that there's likely to be fewer listings and there might not be many that are actually local to where you live we're hoping to find our companies that are potentially hiring or that are getting ready to hire and try to connect with them before they actually post to the masses and the only way to do that is with some effort now once you've accumulated a list of companies you should check to see if there are any actual job listings on their own websites if there are just keep in mind that it might be outdated so I would not just apply and then sit back and hope to hear from them do a little bit of digging around on their website and on LinkedIn or wherever you can to try and find out who works there and hopefully you can find out who the actual hiring manager is so that way you can con contact that person and follow up on the position see if the job opening is even open and let them know that you're really interested and that you would love to show them your portfolio sometimes it can be really hard to find out who the hiring manager is so have some copies of your resume and bring a way to Showcase your portfolio and just walk into the company at the front desk ask them if there's somebody that you could talk to about that job listing or if there weren't any job listings that you're looking at in particular find out if there's somebody that you can talk to about software developer jobs and opportunities at the company they might try to brush you off because either they don't know the answer or maybe they're unsure about giving that information or they might just end up pointing you to wherever it is that they post their listings even if they do this as a last ditch effort you might try something like hey thanks I totally appreciate that and I'm really interested in working for your company and I would really like to be able to talk to someone about what it is you are looking for in software developers maybe someone who could answer some of my technical questions is there a manager or maybe a software engineer that I could talk to for a couple minutes while I'm here if you get lucky be sure to have some questions ready so that you can stir up a conversation don't make this just about you you really want to show interest in the other person and in the company and have an actual genuine conversation let that person know you are really interested in working for the company and ask them who would be a good person to talk to about possible jobs often they're going to be more in the know than the front desk and so if they share that then the next step is getting in touch with that hiring manager they may have a company policy against giving out this information and if that's the case then ask if that person would be willing to pass on your resume to the hiring manager which is why you want to have a printed copy of your resume ready to go the key is to get your resume into the hands of a non-hr person you just don't want it getting stuck in a database or getting sifted out by HR and persistence and just being all-around cool person to chat with can go a long way to getting some attention and hopefully a phone interview and this is why you should focus on local companies it's just so much easier to walk in if you live nearby number four often these companies are renting office space and building shared by other smaller tech companies so on your way up be sure to write down the names of other companies in that building so that you can do some research later sometimes these Tech buildings are part of a larger group of buildings be sure to walk into the lobby of each one and write down the companies and then if you see a cluster of shiny looking tech companies on your way home don't forget to stop by and collect more company names you might find that some of these companies just aren't on Glassdoor or on indeed which means that there's gonna be less competition for jobs and as a bonus these companies are close so you could end up with a really short commute go through all these companies and make a list of the most promising ones and then start that walk-in process you're probably going to strike out on a bunch of these but all it takes is one and be ready because you might get pulled into kind of an impromptu interview situation so be ready for that number three local recruiters my first breakout job in the industry actually came through a recruiter but before I get into the pros and cons of recruiters I want to give you a strong warning some recruiters should be avoided at all costs once you have a LinkedIn profile setup for software development you will be approached by a ton of bottom feeder recruiters and some of these are just scammers trying to get your personal information like they might have you fill out fake applications to get your name your address your birth date your social security number just don't give that stuff out with legitimate recruiters all they really need is your resume cover letter and a link to your portfolio and if you're new they might ask you to take some sort of online assessment that they can afford to hiring managers I had to take an online HTML CSS and JavaScript assessment to help gauge my skill level the recruiters will then forward that information to a hiring manager who will look over and decide whether to interview you and eventually down the road at some point they'll have you fill out an application just be weary of giving out application information to anyone up front I also ignore recruiters who are impressed by my extensive experience and fill in the blank some random programming language that I've never used before never listed on my LinkedIn profile or I've even been contacted by one recruiter who told me his super impressed by my vast experience working at Adobe the dude sent this to me like three weeks after I started there I wouldn't personally call that a vast amount of experience at that time these people aren't even looking at your profile they're just blasting stuff out there to everybody which means they aren't going to do a very good job of actually representing you and the same goes for recruiters who contact you from other countries what good connections could they possibly have in your country with companies near where you live for example I was recently contacted by a recruiter from the Philippines now there's nothing wrong with the Philippines per se but why would I leave a great local company to go work for someone on the other side of the world in a different time zone for some random company that may not even pay well and may not have a good work-life balance it just makes no sense good recruiters will have lots of connections with actual hiring managers at local companies they're often going to work with both sides to help you present your best and most appropriate skills that fit the needs of the company and then help the hiring manager to tweak the job listing so that they can help get that past the HR bureaucracy if they want to hire you often they know about jobs before they even hit the market and they're super eager to really be aggressive in helping push you into getting a job because they want to get that big fat commission now there are some downsides to working with recruiters that I talk about in another video but when first starting out and trying to get that first job I definitely think that the pros outweigh the cons so where do you find good local recruiters ones that actually are proactive with local connections the same place that you find out about other local companies that are hiring so let's talk about those number two when I was starting out I learned a ton of stuff about software development including companies that were hiring devs at local meetups and JavaScript conferences I would attend angular JavaScript and react meetups through meetup.com these were cool once a month Hangouts with other devs in the area usually one or two people would present on different software development topics and then there's usually pizza and then chatting afterwards and after nearly every single presentation the presenter would be like oh and by the way I work for some company and we're hiring so get in touch if you're looking for a job most times there was also a recruiter to hanging out chatting with folks and handing out their business card and these recruiters seem like the ones that were most active in the local community so this is where I would start if I was trying to make connections with a recruiter it was also at these meetups that I found out about a local JavaScript conference that was held once a year and was affordable unlike all the big name conferences it was also a great place to meet other devs and recruiters this was sponsored by local companies who usually had the booths set out where you could go chat to them about their company and about job openings and then number one absolute best way to find good jobs is through personal connections and many jobs are even filled before the listings even hit those big websites but if you're new how do you even leverage connections like that first of all the earlier you start building connections the better you don't want to be a user I personally don't like recommending people for jobs if I feel like they're just trying to use me my best recommendations go to people that I know and that I would actually personally like to work with this isn't something you can really fake because these Quality Connections take time to build and require that you be a genuine friend and all-around good person so don't just show up at meetups and then expect that everyone is just going to help you get a job right away that's just a recipe for failure try to make actual friends and play the long game you see there's a good chance that your first job won't even come from someone that you met at a Meetup but down the road something might come your way maybe an opportunity for your second or your third job I've had people I first met several years ago at a Meetup who've reached out to me and asked if I was interested in joining their team you see we had had several good chats and interactions over the years it's just that when I was new I didn't really have the exact skills that they were needing it just wasn't the right time but once I had more experience I was more likely to have the skills they were looking for and I would be a good culture fit and that never would have happened if I had just sat back at those meetups and not actually gone out of my way and tried to meet people and chat with people and get to know them on a more personal level yes it's super uncomfortable to go out of your way and meet new people but it can totally be worth it I mean it was uncomfortable for me but I still really enjoy bumping into like all those people that I've met at those early meetups and while it's important to think about the now don't forget to plant the seeds for something that's going to happen in the future but now it's probably what you're most interested in and the next best place to leverage your connections is through your current Circle there's a good chance that there's someone in your extended family or maybe your friends group or a group of acquaintances through clubs or maybe Church congregations that there's someone out there who is a software engineer and you don't even know it or maybe you know that they're a software engineer but they don't even know that you're trying to become one so just speak up and let people know that you're looking maybe a brother-in-law has another brother-in-law that is looking for affordable software developers so they decide to give you a chance true story that just happened to a boot camp grad that I personally know connections completely Trump every other way of finding a job I found out about my last two jobs through connections that gave me a heads up on job openings but my ultimate all-time favorite way to leverage connections is to start with the company you are currently working for now this is not going to work for everybody but if you do work for a company that could use some help with either like updating their website or maybe they could use some smaller informational websites to help with marketing some products or they send out tons of emails that look like they came from the 90s you could offer to help them out you really got to demonstrate what you offer first otherwise I'm probably just going to say no so maybe create some sample HTML emails that really looked nice or some mock-ups for enhancing the website or maybe you just full on just build a small marketing style website from the ground up then you present that to them with your idea of how you can contribute maybe part-time just to get started maybe they let you spend 10 of your time at first but this can grow over time and that's how I got my initial experience and I worked my way into more and more software development duties even if they say no if you have built that marketing website volunteered to let them have it and help them set it up so that it's getting used and congrats you have a little bit of experience building something for an actual company if that's just not an option and not going to work for you at your current job and you're willing to leave and take another position somewhere else maybe one that's not even full-time doing software development you know maybe look for like a non-profit that could use some help on their website or mailing lists and then even if it's only 25 percent of your job duties are tied into software development that still experience that you are getting as you work on finding that full-time gig that could be okay for applying for conventional jobs but I would tell my younger self to take more risks here break away from the convention if needed what do you put on a resume when you don't have any programming experience that first resume is really hard at least it was for me I mean I spend more time on that resume than on any other one throughout my career and in this video I'm going to share what I did as well as we're going to look at some other common scenarios and how to handle them I'm just trying to get my first programming job that first draft of my resume sucked and the second one and the third one and I don't even remember how many drafts I went through but it was a lot my number one problem was that I was so focused on coding skills that I developed tunnel vision and completely ignored a bunch of other super important skills I don't want to bore you with everything that I did on that first one so here are the things that I did on that final draft I had a bunch of disconnected and random jobs and instead of focusing on listing out all of the normal skills for each role I tried really really hard to try to pull out everything that was even remotely relevant to software development or to the tech industry in general for example with my underwater construction job instead of focusing on skills that would only make sense to a commercial diver I focused on how highlighting my problem solving skills having to think outside of the box in very unique situations along with leadership experience I once had a sales position at an online boat parts company I could have focused on selling but in between calls I was also responsible for leading an effort to add product information and descriptions and stuff like that for thousands of new products on the website you know upload a picture and there's a form field for putting in the title and then another one for the description on my resume my focus for that position was content management and team leadership I had totally forgot about it but as I started down the path of content creation and trying to figure out how that tied into everything something clicked as trivial as it is when I was formatting those lists in that text box I had to use HTML ordered an unordered lists you better believe that I noted that and it was something completely related but I didn't even know it back then when I was doing it when I was filling in those descriptions I was like this is a really weird way to format stuff but okay whatever college for one semester I worked as a pre-law period visor I helped answer questions for students who are interested in going to law school and pointed them to helpful resources but instead of focusing on that I emphasized that I managed a distribution of a newsletter to thousands of students you know more content creation stuff I regularly updated the pre-law website content and I organized monthly lectures my reasoning for focusing on content creation was that I figured that a lot of potential employers would be looking for programmers to support content Management systems and it would be somewhat related to the goals of those companies I also worked at another company whereas doing digital preservation of the genealogy records as well as scanning documents for other companies and government organizations I could have just given some bland description of how I just scanned things day in and day out but instead I focused on my ability to learn new technologies quickly and that because of that I was trusted to figure out how to use some of our more specialized machines and then go and train other employees on their use and some of these were very expensive machines that could cost like over a hundred thousand dollars even though this didn't involve writing code I knew that good programmers had to figure things out had to configure systems and then had to be able to mentor and communicate that to others being a new self-top programmer I was super limited on actual coding experience so I had to focus really hard on selling my potential I had to demonstrate that I had the right aptitude and mindset to become successful in order to encourage a potential employer to just take a risk on me so that's great and all but what if I didn't have much to say on my resume or I just hadn't worked at many companies and my resume was feeling really empty that could be really intimidating and it was for me there was this time when I felt that I had to write my resume According to some set of HR best practices I mean we had spent weeks learning the do's and don'ts at one of my college classes that could be okay for applying for conventional jobs but I would tell my younger self to take take more risks here break away from the convention if needed let's say I had worked two jobs one flipping burgers and another is a cashier at a grocery store and I just didn't think there was much to say that would even relate to the tech industry in a situation like that I would try to keep my resume professional by using good grammar and that kind of stuff but I would probably break the rules of normal traditional resume structure instead of filling up lines of text underneath each of those positions that have absolutely nothing to do with text I would have a job history section and I put it at the bottom of the resume with the company name the job title probably a date range or how long I had worked there and that's it a two liner section the top of the resume is the most important because it's what you see first and that's where I put a relevant experience section and this would focus 100 on my portfolio projects for each project I would have a header with the title of the project and then underneath it I would have information about you know what are the problems that this applique patients solved what are the tools the Frameworks that I use to build it how many people are using it if that's available and other information to convey that I have relevant skills and I would order them with the most significant projects at top especially those that are commercial in nature and that would best relate to the job listing that I'm applying for and the less relevant ones I put towards the bottom of the list the goal here is to focus on what it can do rather than on unrelated stuff that I have done and this might ruffle some of the HR purist folks feathers but who cares I likely wouldn't be impressing those kind of people anyways I'm really hoping for the ones that are technical enough to know what I did and why I did it and that can see my potential and a lot of people they just skim the resumes really quickly in order to filter people out or the companies are going to run your resume through some software that looks for matches of keywords against the job description so by focusing on the stuff that I can do heavily that's going to position me better in the search results in HR they're most likely going to get that other job history stuff anyways because it'll probably have me fill out an application where you have to specifically enter the company and when you worked and information about it so they can get that later if they want but my resume is going to be more of a marketing piece that complements my portfolio and then I would be sure to have a really clear link to that portfolio in the resume a lot of folks have asked me about the front end projects that I did that got me hired so let's talk about those but more importantly why I chose them now if you intend to just watch this video to the end and walk away with a plan to just copy what I did so you can get a web development job then you've totally missed the point it said focus more on the progression of things and the why and then apply that to your own situation and interest hopefully this helps you come up with your own ideas for a web development portfolio so let's get started my very first project was a simple HTML web page no JavaScript and that's because I hadn't started learning JavaScript it was meant to be a silly page that was kind of a joke for example it had a menu bar and if you moused over any of the buttons in the navigation the other buttons would shift apart so that you couldn't actually click on anything and stuff like that my goals for the site were to learn to structure a basic page with the headers basic navigation a sidebar content and Footers and to learn some basic CSS as well as have some fun along the way keeping it simple enough that I could complete it quickly it was never my intention to turn that into anything serious I then started reading a book on JavaScript and once I got a little ways in I decided wanted to apply some of the concepts that I was learning so I was trying to figure out a simple problem that I could work to solve with JavaScript and it just so happens that I was in a conversation with someone and they asked me how old I was I had a complete brain fart I was off by a year so I decided to make an h calculator that accepted a birth date and then returned your age my goal here was to learn how to use forms and some basic JavaScript to do the calculation and then update the Dom on a button click the pitch itself was super simple it's basically a blank page with a little widget in the center and I tried to use some CSS that I just learned so that I could make the borders round on the corners and things like that and I was introduced to handling different scenarios or use cases in JavaScript because the calculation had to be different depending on whether the birth date occurred before or after the current day well that was fun but what else could I do I decided to use the same basic widget structure and then make a countdown timer because I just read about set timeout and set interval and I wanted to do something with those now up to this point the projects were really pretty simple and trivial but they let me apply what I was learning and then that way I could get some quick successes that helped me to stay excited and motivated my next project was a little bit more involved one of the JavaScript books that I was reading talked about making a battleship game and about the same time that I finished reading this section my church announced a code challenge contest where they encouraged you to build some app or some game based on a gospel Topic in a short amount of time challenge accepted I took some of the concepts I had learned from that battle Fellowship lesson and adapted it to a simple game I called Cricket cruncher that I thought might be fun for my kids the base of concept was that there was a farm field with a bunch of different crops in it and their crickets randomly hidden throughout the film you would pick a vegetable and if it was hiding a cricket you would be asked a gospel related question if you answered incorrectly that Cricket would hop off and Escape but if you answered it correctly a sequel would fly down and crunch it in its beak a nod to Pioneer history in Utah this ended up requiring a lot more effort than I originally thought and I barely finished in time by the deadline my kids liked it but it couldn't really compete with a lot of the other submissions my goal for this project was to incorporate concepts of prototypal inheritance learn how to work with Sprite images and get some experience with CSS animations I hope you're seeing the pattern here I'm focusing on applying what I learned to something without just copying someone else's code by this point I'm also thinking about building a portfolio of projects that showcases a variety of Concepts and if this is helpful don't forget to give it a thumbs up and consider some subscribing thanks at this stage I was diving into deeper Concepts in HTML like semantic HTML and different kinds of things that you could do with the Dom like including audio and one of my hobbies happened to be metal detecting and I had tried out a metal detector called the technetics Eurotech Pro I thought it might be cool to create a simulator for this particular metal detector I grabbed one of the marketing images from the manufacturer's website to use as a background and then I dissected that image into a bunch of smaller sections and photoshopped different versions of the sections to represent different states of the metal detector on the HTML page I was building I positioned transparent buttons over the background image buttons and use JavaScript to make the metal detector interactive so that you could click through the different settings and menu options I then used a handheld recorder to record the actual sounds of the real metal detector and then cut that up into smaller audio clips so that I could trigger audio that matched the different interactions of the metal detector and I was super excited about this picking projects like this that really excited me just helped keep me motivated each project could grow bigger and a little bit bigger in complexity without me getting super stuck since I kept building off of the stuff that I had just learned now it's time to get a little more strategic with my portfolio that age calculator and the timer there's somewhat run-of-the-mill and not that impressive my other stuff was more unique and tied into my interests and hobbies but that alone wouldn't likely sell a future employer on me as a potential hire and from this point on I'm not going to be sharing pictures of the projects we'll be talking about because that's stuff that is owned by actual companies and I have not asked them permission to include the screenshots here but that shouldn't really matter since the value is in the concepts you see at this point I started looking for projects that could help my employer in the construction industry I built a handful of Niche information microsides which are smaller websites and maybe like five to ten pages of articles that could be used for marketing or as landing pages for ad campaigns I designed to look at fill of each page including the banners and the graphics and building these small sites allowed me to learn how to do navigation and I was also able to learn how to have reusable sections with PHP includes even though these were still simple static websites my goal is to build things with commercial intent build things similar to what real companies were paying to have built sure these were far from the complexities of a Commerce site but it was a starting point for Relevant job interview discussions best of all the efforts paid off since my micro sites landed a big project which led to me doing a lot more stuff related to web development and computers for the company I kind of created my own position where I could start getting some relevant experience around this time I started attending local JavaScript meetups and I learned about single page applications they sounded really cool so then I started attending angularjs meetups after hearing some relatives talking about angular it was apparent that this was in hot demand and companies wanted devs with angular experience instead of backbone and jQuery and some of that other stuff I had heard about I decided to ride that Trend and jumped into some of the old school angular JS because I wanted to build something helpful that was way better than my static websites something that could really showcase what I could do it took some thinking but I decided that it's going to build a contact management application for my employer at the time because one of the problems was that when people would call in and leave messages they're recorded on those little paper message slips that you'd write on and tear it off and hand to whoever had received that call and they would just get lost if the boss asked for a phone number for someone who had called a few months back it may or may not be found so I started off with building a simple application there was just a table with a list of contacts with their name their company phone number and some notes about the call you could press a button and you're prompted to add a new contact you can also remove a contact from the table and I hooked this up to Firebase so that that would handle the back end for me now I try to think of some other features that would be both useful for this company as well as have some appeal to Future employers I integrated the application with the tool called twilio so that on a click of a button the contact information was sent off to the boss's phone and then I worked on adding additional features including a field for how we were contacted and then from there I was able to add in some analytical charts so you could see where most of the calls were coming from and get some other useful insights and this worked out really well I then put over updating the company's main website and adding a Blog for the company and then I took all that stuff that I had been building and I put it together in a portfolio site that I built using angularjs to showcase the projects with descriptions of the different concepts that were involved with those projects and then I even included some of the better design pieces that I had done for some of those micro sites I'll talk about how this portfolio evolved in a second but my first official software development job offer came because of these projects that I just talked about and the most impactful projects were the contact management application the blog and those micro sites I brought an iPad to the interview and I was able to show the different projects that I worked about and talk about the different aspects of web development I could demonstrate this visually because my portfolio showed that I had done something with all the Core Concepts of HTML CSS and JavaScript the company was looking for angular experience and even had a one hour section of the interview dedicated to angular and writing on that angularjs Trend really helped me to land that job now after this first job I revised my personal web development portfolio and shifted to something that was more visual with lots of thumbnails of stuff that I had worked on including this first Enterprise job a quick word of caution here some companies aren't going to want you to share screenshots of your project so be respectful to that I try to follow fair use principles and include only smaller partial screenshots rather than showing the entire app designs it's also super super important not to share private company information or customer data for any of the screenshots I would first edit the page to use names like fake person one or John Doe and fake email one and phone numbers that were just all zeros to make it very clear that it was all fake data don't share real data or sensitive parts of applications okay when it came time to apply for my next job I put all that new work I had just done front and center followed up by the commercial stuff from my previous employer and then I back burnered the metal detector app and the game I dropped the timer and age widgets completely because they were just trivial in nature and the project seemed to distract more than help my messaging at this point eventually I had enough examples of professional stuff that I let that old stuff go and removed even the related code from GitHub because it just no longer represented what I could do let's face it the early code just is not that great when you go back and look at it and there's no need to hang on to it as you get better
Info
Channel: James Cross
Views: 197,832
Rating: undefined out of 5
Keywords: devsmack, devsmak, web development, learn web development, web development tutorial, web development tutorial for beginners, how to learn web development, learn web development for free, where to learn web development, full stack web development, web development from scratch, web development guide, web development course, web development roadmap, front end web development, web development projects
Id: kQ-4bgu2htk
Channel Id: undefined
Length: 93min 52sec (5632 seconds)
Published: Tue Nov 08 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.