How to Actually Use a Web Developer Roadmap: Mike Karan on Better Learning and Must-Have Skills for Junior Developers
Alex Booker (00:00):
Hello, and welcome to the Scrimba Podcast. On this weekly show, I speak with successful devs about their advice on learning to code and getting your first junior dev job. My name is Alex and today, I'm joined by Mike Karan, a successful web development business owner, and cohost of the HTML, All The Things Podcast. At Scrimba, we created a junior web developer checklist, which you can find in the show notes. Mike, on his podcast made a junior developer roadmap, checklist, roadmap. The intention here is similar, which is to give you ideas about what to learn and in what order, so that you can become job ready, but there are some drawbacks which you should be aware of, and Mike and I discuss in this episode. For one thing, a roadmap implies a destination but then, it's not always clear when to move on from one part of the roadmap like JavaScript, for example, to the next parts of the roadmap like React maybe.
Alex Booker (01:01):
Therefore, it's difficult to know when you actually add to your destination, you could keep going forever, even though you are more job ready than you realize.
Mike Karan (01:10):
If you feel the aha moment, when you solve something, that's a good indicator that you probably will grow to like it, there's a good chance. There's not a guarantee, but it's a good chance, but if you finish something and you are just pissed at the process and the result, that's a good indicator to say that, "Okay, this might be difficult for you to like ramp up to."
Alex Booker (01:29):
In this episode, we are going to teach you and discuss how to use a roadmap to your full advantage so that you can meet your coding goals as efficiently as possible. Now, do stay tuned to the end because we agree and discuss, but there are some technologies and skills that every junior developer absolutely must know. You are listening to the Scrimba Podcast. Let's get into it. I wanted to just congratulate you on 2021, because it seems like you've had a bit of an epic year, as far as your podcast is concerned, as well as Twitter. I looked up your follow account from last year and apparently, and tell me if this is wrong, because it does sound a bit unbelievable. On Twitter, it said that you had like 300 followers this time, last year and now, you have 20,000 almost followers.
Alex Booker (02:14):
I'm not really here to sort of like, bring attention to follow accounts and things like that, but to me, that's like an indication of the things you're doing. So, I just wanted to ask you like what you attribute that success to in general?
Mike Karan (02:26):
That's a great question, and yeah I think again, it's not all about the follower account. I've stopped looking at it almost even because I've realized how little it matters after a certain point but what happened in 2021 was that we kind of had a shift in our, how we handle things as a company. Matt and I, my co-host on the podcast asked to have a small web design agency where we do contract work and I was working on a more long term contract for several years now, where I was a tech lead for a startup in California. Once that contract was up, we had a decision to make like either extend it or look for another long term contract or maybe we had already built this kind of platform with HTML, All The Things. Maybe I take a little bit of time off like two to three months and really put myself into HTML All The Things while we look for something more stable down the line, that's really why you saw that jump.
Mike Karan (03:15):
As soon as I finished that contract and I had some time, I took all that time that I had and invested fully into social media, into the podcast in terms of quality, creating show notes, creating a systems for recording, creating a backlog of episodes. Everything that we wanted to do, we essentially could do now. Matt was still handling a bunch of the business, so I was fully invested in the platform. So Twitter really ... it was all about kind of figuring out what works and what doesn't and then, it all became about who should I interact with. Initially, for the first maybe like two to 3000 followers, I was barely posting myself. I was more just interacting with the people in the community, and I think what made it different for me is like I was legitimately interested in learning about all the different things that what we're talking about, because I had so little opportunity to talk shop because I'm a work from home developer.
Mike Karan (04:05):
Yes, I had teams of developers, junior developers and stuff like that, working for me but it's not the same. I barely ever go to conferences. I barely ever go to meetups, especially with what happened in 2020. So this was my opportunity to kind of talk shop and see where everyone is and align my myself to the industry. So that I think resonated with a lot of people and as soon as I started to figure out, okay, I have a little bit of an audience now, I can start figuring out what content I can create, and that evolved into maybe more of a snowball effect on the follower account. Having said that again, bringing it back to the fact that the followers, it doesn't really matter. There's plenty of accounts that have a million followers, that have zero interaction and zero engagement.
Mike Karan (04:44):
That's just because, like they've built up this audience, whether it's real, whether it's not, but they're not providing any value, they're not using it in any way, and it legitimately doesn't matter that they have that follower account because a person with 30 followers can get 10 times the engagement or 100 times the engagement of a person with a million. So don't look at your follower account, look at the value you provide, and when you're initially starting out, don't worry about posting the perfect content. You can post once a day, twice a day, whatever. Don't expect too much attraction. Try to find the people that you want to interact with. That's my suggestion.
Alex Booker (05:16):
I have to admit, I learned that from you, and I think up until that point, I was using Twitter a lot, like a megaphone. I was like, "Hey, look at this thing I've built, come and check it out." That really wasn't conducive to anything actually in my case, as a podcast host, which is why I had to reconsider my goal and I would implore everybody to do the same because as a junior developer, your goal probably has nothing to do with earning followers. It's really more about sort of establishing connections with people and having meaningful charts, and making friends, but with regards to the podcast and Twitter, one thing that strikes me is that you are always trying to deliver value to people, like you're genuinely trying to make something useful and helpful and something that will genuinely support people in their careers. I just wanted to ask you, who are you making the HTML All The Things podcast for primarily, who is the person you sort of imagine listening to it?
Mike Karan (06:02):
We've thought about this exact question many times, because a lot of the times, if you're ever talking to a sponsor or ever talking to someone that's looking into your podcast in terms of analytics, they're asking you, what's your ideal listener, right? What's your perfect person? For the most part, it is a junior developer in our case, but I think our perfect listener is a developer that just wants to stay current with the industry and is looking at their options for technology. They're looking at different ways to learn, and they're also kind of interested in maybe starting their own kind of side business, side gig because I think it's important ... having experience this myself, I think it's important to have diversified income streams.
Mike Karan (06:40):
Whether that'd be just freelancing on the side, just establishing those relationships just in case you have to get there, whether that'd be maybe your own podcast, maybe your own blog platform, whatever it is. I think it's an important thing to at least think about, and we try to talk in a breadth that like is not only, "Hey, this is all web development, but this is skills that you can actually apply today to potentially diversify yourself in the future, so you're never in that situation where you get laid off and you have nothing to live on."
Alex Booker (07:08):
What is it about the front-end web developer path that appealed to you? Is it just something that's in your wheelhouse or do you genuinely think it's a good place for any new developer to start?
Mike Karan (07:17):
It's a really good a question as well, because it's not going to be a one answer fits all at all. For me, I think it was more opportunity based, rather than I love front-end web development specifically. At the time when I was first getting into coding, I just had an opportunity to work on websites. So one of my friends' dads needed a website. We had a conversation with them even before graduating that we would start working on their website as well as some IT stuff. So it was more of an opportunity's sake and then, as soon as you start learning something, it makes it easier to learn the next thing, the next thing, the next thing in that realm, right? So having said that, I do enjoy the front end because I'm not an artistic person and I'm not a super creative person, but I always want to be like, I would love to learn how to draw really well.
Mike Karan (08:01):
I would love to have that kind of talent, but I just don't. It comes to me if I really practice at it and do a lot of work, but it's not something that's like I'm born with. So front-end web development is kind of a way for me to express myself in that way too, because I understand UI and UX principles, so I can design decent looking web of websites, I can manipulate templates, I can take something that someone has created and create a visual representation of that. I like that about it, whereas backend is a lot less visual and although I have delved in it, it's just not as exciting for me maybe, it's not as well of an output in terms of the creativity. I've used front-end web development in my real life, I proposed to my current wife creating like a little engagement website or engagement experience where she kind of goes in and goes through like three or four different stages of our relationship.
Mike Karan (08:51):
Then the final stage is like a camera and a song starts playing and like it starts recording and I obviously propose.
Alex Booker (08:57):
It's amazing.
Mike Karan (08:58):
I like to do those kinds of things, and I don't think I could do that with backend development, so that's why I've always, always leaned to the front-end.
Alex Booker (09:08):
Okay. That's very interesting. I think you're right that there is no one size fits all answer. With that in mind, let's take just the first principles, like say somebody wants to become a front-end web developer, they've identified that they want to either become a junior developer, maybe freelance or start their own product, and the way they're going to do that is by building front-end websites. What kind of skills do you recommend people start with?
Mike Karan (09:32):
So I think the first thing that you need to do is evaluate your computer skills. I don't mean to say this as a gate keeping approach because I don't think it is, but I think you need to have an idea of not how an operating system works, but at least being able to use an operating system, whether it's Mac OS, Linux or Windows, it doesn't matter, but you need to understand the terminology of what is a command prompt? What's the start menu? What's a web browser? Those kinds of things, right? How to access them, at least how to launch them. This might seem redundant to a lot of the people listening to this podcast, but I've been in situations where someone has asked me, "Hey, how do I get into web development?" And they didn't know what an operating system was, like if I asked them, "Hey, what do you have? What kind of computer do you have?
Mike Karan (10:14):
They said like, "I don't know, just a computer." I'm like, "Well, is it Mac OS, Linux, Windows?" They're like, "No, there's an Apple somewhere." You need to get past that point, so the first thing I would do is just go in and Google what it is, like what is a computer? What is an operating system or how do I use my operating system? It'll go through and break down, like what is a browser? What is a calculator? What is that? What are these applications, right? Start getting an understanding of the base layers. So again, I'm starting really, really low but if you're in the space of being able to help people, you will get asked these kinds of questions. So it's important to not assume that everyone knows how a computer works or how to even like launch a web browser or stuff like that.
Alex Booker (10:53):
I think for many of us, it's that natural inclination for doubling of computers that leads to programming or just tinkering with things, but that's not the only type of person who can be a successful computer programmer. I'm sure there are plenty of people who have either learned that their particular proclivities, whether that's creativity or problem solving, maybe they have no experience with computers, but they have to get started somewhere. I think it's really important, you make that point, because it's something that I've personally glossed over many times before and I'm sure others have as well. Where would you recommend people go from there?
Mike Karan (11:24):
I think if you're going front-end web development, the easiest and fastest route is to go through HTML and CSS. One caveat that I want to come back to as well, and I'm going to do this a lot because I think everyone learns differently, a roadmap is not a guaranteed place for you to end up. A roadmap isn't something that we're saying that you have to follow to get to a location, to get to a junior developer job. It's just a starting point that you can use to start at least finding the right path for you. So if you find that, "Hey, this roadmap helps you at least get started," use that and if you're resonating with the approach, keep going. If all of a sudden you find that, "Hey, I really like these skills. I want to expand more on that."
Mike Karan (12:03):
There's nothing wrong with you to go into a certain specific set of skills like HTML and CSS or JavaScript and stay there for a while, learn all the ins and outs there, maybe jump to a different point in the roadmap, come back to it. There's no wrong way to do it, but a roadmap is something that you can at least get started with if you're starting from zero. So having said that, HTML and CSS is where I would start because we talked about this earlier. It's a very visual way to see how you can write something in code and visually see it appear and manipulated on the screen. It is programming in my eyes, it's not like, if statements, conditionals but it is the start of programming because again, it's that translation of words to visual images or visualization. I think it's a really important step. I remember while I was in like grade seven or something and the first thing we did was literally open up a notepad document and we built like an HTML structure page.
Mike Karan (12:56):
I double clicked on it and it opened in a browser and it looked like an HTML, like a website and I was like, "Oh my God." I think that aha moment is worth starting there. That's where I would go next.
Alex Booker (13:08):
If you are enjoying this episode of the Scrimba Podcast, please, can you do us at Scrimba a favor and share it with your friends on social media, like on Twitter, for example or in your community. Word of mouth is the single best way to support a podcaster you like, so thank you in advance. Next week, I'm talking with Roberts Corrado, a Scrimba student who just got their first full-time junior developer job.
Robert Corrado (13:33):
I finally got to a point where the pandemic kind of ... it hurt my company. It was like, I think I got to shift to something else, and my wife was like, I'm so sick of you talking about getting into computer science and playing around with it, just if this is what you want to do, do it. So she kind of like pushed me and was like, it's time.
Alex Booker (13:53):
Robert has had some very relatable challenges, like quite firmly understanding HTML and CSS, but struggling a little bit to grow from JavaScript and the logical paths but despite those challenges, he persevered and ended up with not one but two potential job offers from which to choose. That's next week on the Scrimba Podcast, so make sure you subscribe as not to miss it. Back to the interview with Mike. I think that there are different degrees of programming and if you know, HTML and CSS and they're absolutely programming by the way, anybody who says that HTML and CSS isn't real programming or something, I think is talking nonsense. I think the cool thing about that is you can actually achieve a lot with just those as two skills.
Alex Booker (14:37):
You can't really do much with one, but when you bring them together, you can achieve a hell of a lot because you can build landing pages for a local business, right? You might not be able to build the feature where you can log in and book an appointment or one, where you can literally buy the product on the page, but there are so many companies in local villages and small cities and things like that, where they would just benefit hugely from having a dedicated page on the web, where you can learn about their business and how to maybe phone them up or take the next steps. You can also build email templates. I spoke to a recent Scrimba graduates who went on to create email templates on Upwork as a freelancer, and based on the sort of domain expertise he developed, he then went on to work at Activision doing the same. Of course, we can always go further, right, and I suspect that's where this magical thing called JavaScript might come in. Am I right Mike?
Mike Karan (15:24):
Yeah, absolutely. I think you made a really good point about how you can actually monetize your HTML and CSS skills. Again, if you really enjoy creating those HTML and CSS projects, without the JavaScript side, you can create templates. You can still work for an agency in my opinion, if you can show that you can build really nice, responsive layouts. There's plenty of demand for people that can quickly and efficiently build semantic responsive layouts of just HTML and CSS. Yes, it might not be the most highest paying thing, but a way to break into the industry. Absolutely.
Alex Booker (15:55):
It's a great point actually, because if you go on ThemeForest or something, you will find not only templates, but the profiles behind those templates, making bank actually. You can make lots of many selling templates, which might not be your only incentive, but I think it's nice to know you can monetize your skills earlier than you thought.
Mike Karan (16:11):
Like you said, JavaScript is a great place to move forward to because it's your first foyer into maybe more traditional programming, using actual programming concept, logical programming. That's when it kind of ... for me, it got exciting because I could not only visualize, like make a visual page but now I can manipulate that page. I could do something like pop up an alert or even start debugging in the console logs and stuff like that, all that kind of stuff I kind of nerded out on, and the roadmap is almost a way for you to find what you're passionate about. As you're going through it, you can see like, "Okay, you go to JavaScript and all of a sudden you really like programming," and you start knowing that you're passionate about programming and then there's ways for you to kind of elevate those skills as you go.
Mike Karan (16:51):
If you really love HTML and CSS, there's ways for you to go there or maybe you really love the design aspect of it, so that you go to the Figma design. You become a designer. When you find what you're passionate about in the industry, or at least something that you really like, it'll make it a lot easier for you to break in. I know for junior developers right now, it's a very competitive space. So finding that little difference maker and trust me, when I say this, when you're in an interview situation and you show some passion for whatever you're talking about, even if you have to fake it a little bit, it's going to elevate you past the people that don't. So again, it's just finding those things that can help you differentiate, that can help you elevate yourself.
Mike Karan (17:30):
Really, it's going to make it easier for yourself as well because as you're going through learning, JavaScript, learning the fundamentals of programming, if statements, loops everything, if you find some interest in it, if you find a way to change it for yourself, that can motivate you. It's going to be a lot easier for you to come back to it every day and try to break into tech.
Alex Booker (17:49):
I think looking at a roadmap as a curriculum, probably isn't a good idea. A prescribed step of exactly what order you need to do things, and when you're a junior dev, that is self-taught, you have the opportunity, I think, to sort of mix and match different skills and create a unique offering. So yes, I like what you're saying, which is to kind of treat the roadmap as like a tree trunk. This is the core, right, but you can branch off and sort of explore different subjects as they become interesting to you, and there's no real right or wrong way to do it. Just because ... maybe that is a problem with a roadmap, actually, Mike, that it creates this impression of like a destination and having to make progress. Really, if you get to like a little bit down the roadmap and you're like ... you know what, and I've seen this on Twitter from a few anecdotal examples.
Alex Booker (18:31):
They said, you know what, I just don't like JavaScript. I just don't like it. I love creating visual pages with HTML and CSS. If that person was looking at a roadmap, thinking they had so much more to go, that wouldn't be fair. I don't think because there are plenty of circumstances, like we outline where you can create a successful impact using only HTML and CSS.
Mike Karan (18:48):
It's almost great to figure out what you hate doing early on, because if you go through it like traditionally and you go through school, a lot of what you do in school, you hate doing, that's just the reality of it because of the structure of the education system, right? Then, you go straight to a job and you're like, "Okay, I'm going to be a web developer. I did this in school. I hated it, but maybe I'll like it in the job," and all of a sudden you're still hating JavaScript constantly and you're stuck in that loop of having to go to work and hating everything about it, when all you had to really do was figure out, "Hey, I really like the design aspect of it," and if you would've gone through and figured out what you hated and then gone through the other tree trunk or the other branch, and did the actual design work and loved it.
Mike Karan (19:29):
It could have been a two totally different career and it is a shame, and it is an unfair thing inside of the roadmaps where they don't have a breakdown of like when you can stop or when you can branch as much as we want them to, I think. I think maybe that's on us. Maybe we can have like a collaborative developer roadmap where we can start breaking it down and where we can start doing branches so that people don't get alienated. So that we can somehow promote people that maybe are going through the tech space. There's so much work in tech that you don't have to be a programmer to be even really in the tech space, but knowing about it, knowing about programming and having learned a little bit about it is going to help you for sure, to be able to talk to the people that are actually doing the actual creation.
Mike Karan (20:10):
So I'd hate to alienate someone by trying to help them, and I know that that happens a lot, but I really put a lot of effort into trying to not do that.
Alex Booker (20:20):
I agree that you can't necessarily know when it's a good time to branch off only looking at the roadmap. I also think it can be quite hard to know when to move on to the next thing. At what point do you think someone is ready to like graduate to start letting JavaScript?
Mike Karan (20:35):
I think honestly, if you can go on front-end mentor and build out one of those layouts or a couple of those layouts comfortably, I think that's when you can move on, right? You don't have to spend tons of time. If you can build out one or two of the beginner ones, that's fine but you don't need to know all that to get to JavaScript, but if you want to learn HTML and CSS, you need to have built out a website essentially, and having said that, you can have gone through the HTML and CSS and hated it and still move on. Again, getting to the point where you know you hate it, having tried, not saying that you hate it right away, is an important point. So hating is something that you can indicate. Maybe I should move on to something else and at least try it.
Mike Karan (21:13):
If you go through and hate HTML and CSS, move on and hate JavaScript and move on and hate the next thing, that's maybe an indicator that A, maybe you're using the raw materials to learn. B, maybe you need to go back and reevaluate what you want to get out of this as well. So it's a multiple step indicator. Again, this is why it's really difficult to give roadmaps.
Alex Booker (21:34):
How do you know if you've given it enough of a go that you like or dislike it?
Mike Karan (21:39):
If you feel the aha moment when you solve something, that's a good indicator that you probably will grow to like it. There's a good chance. There's not a guarantee, but it's a good chance, but if you finish something and you are just pissed at the process and the result, that's a good indicator to say that, "Okay, this might be difficult for you to like ramp up to." My favorite thing about programming is that aha moment, most of the time. There's tons and tons of times in my freelancing career, in my, in my tech lead career where I just have a problem that I don't think I can solve. I just sit there and I'm like, "I can't solve this right now," and I have to step away and you wake up the next day and you have that moment and you code it up and it's there.
Mike Karan (22:15):
I love that kind of thing. I love the logic puzzles. I love that kind of implementation. So there's parts of programming that I hate as well, but as long as I get to the point at the end, where I like the result, that's a good indicator for me, I think.
Alex Booker (22:29):
What are some of the things you hate about programing?
Mike Karan (22:31):
So I really hate the initial part of that moment where you don't think it's possible. I hate the potential of impossibility because you're always over ... you're not over promising. You're always hoping to deliver the exact product that you've promised, and a lot of times when it's a complicated web application, it's going to change as it goes. Regardless, there's certain moments where you hit that wall and you know it's going to be a real big pain for you to get through that wall. So that exact moment, I don't like that moment, but again, that's when I know I need to step back. That's a really good indicator for me in fact, to step back and go for a walk or something because when I come back and I have an idea to get through it, that's kind of my aha moment and I can keep going, but yeah, I do hate hitting roadblocks. That's for sure.
Alex Booker (23:17):
That problem in itself is almost an opportunity to have huge excitement when you eventually solve that thing that you couldn't imagine solving. I love that feeling.
Mike Karan (23:27):
Yeah, that's exactly it. So that's why I knew that programming for me. I had those aha moments and even though I really did struggle sometimes figuring stuff out, I was able to get enjoyment from it. So at the end of the day, it is a job, right? So we can't expect everyone to just love programming, but you need to be able to at least get something from it. In my opinion, again, this is a really difficult topic to talk about because again, I don't want to alienate people that just do it as a job.
Alex Booker (23:53):
I do imagine some people do really struggle with this question of like, am I meant to be a programmer? I'm not sure if I like it, but it's very reassuring that you an experienced developer don't love everything about programming, like it's okay to hate some things. Yeah, it's maybe unreasonable to think you have to love all of it. Maybe most people don't, but on social media, you tend to just say how much you were born coder, or you love coding and stuff like that. There's no room for nuance.
Mike Karan (24:17):
Yeah, that's why I try to give an honest take as much as I can, because first of all, I don't want people coming into the industry, thinking it's all rainbows and sunshine as well. You need to have a realistic approach when you're coming in as a junior developer. That's why we created that junior developer struggles episode. That's why we do talk about realistic things inside of coding, because I don't want people to think that we're all of a sudden, tech has evolved to the point where everyone loves their job. It's just not the case, but there's great opportunities in tech and I think it's an important field right now that's expanding. So it's important to get people in it, but you need to set expectations.
Alex Booker (24:51):
We are, and let me reassure you, going to link to a checklist that I created as part of my work at Scrimba which outlines some of the things that I think would be good for you to know on your path to becoming a junior developer, and we'll also link Mike to your episode and these show notes in which you spoke about a front-end developer road map, sort of breaking it down in a bit more detail. I think that's going to be really useful to people. I've listened to it and referenced the show notes recently, and one thing I noticed is that you kind of introduced this distinction, I think, between essential skills and monetization. Can you talk about that?
Mike Karan (25:22):
In the roadmap that I created, one of the things that I wanted to clearly label out is that you don't have to complete the entire roadmap to then find a job. It's important to know when you have enough skills to be able to monetize, and like we already talked about HTML and CSS is a monetizable skill. Now in my roadmap, I added a couple things like maybe you want to know some bootstrap to make it a little bit easier to integrate into third party projects, like if people bring you on, a lot of the times, Bootstrap is going to be in any legacy code base. So maybe you want to know a little bit about UI frameworks. It's an optional thing. The other thing is if you want a freelance and you want to create websites, there's also basic hosting as an essential skill.
Mike Karan (26:00):
So being able to deploy on Netlify, Vercel or maybe traditional LAMP stack hosting, right? Just understanding that process. Those, in my opinion, again, HTML, CSS, computer skills, maybe UI frameworks and hosting are enough of a stop point for you to be able to go out and try to find clients, to be able to go out and find a job, to be able to go out and start monetizing, start trying to break into the industry, because when you break into the industry, it's a very different path for you at that point, because when you get your first job, everything else on the roadmap will be determined by the person that hires you. It's a positive and a negative, like the positive is you all of a sudden, don't have to worry about learning this yourself because you're going to be guided to it.
Mike Karan (26:41):
You're going to hopefully have good mentorship with it, and you're going to up your skills a lot faster than you would on your own, at least for most people, and as soon as you break in, that's the challenge, that's the junior developer challenge, one year down the line, two years down the line, it's going to be 10 times easier for you to switch roles rather than breaking in with zero experience. So again, the whole purpose of my roadmap is for you to break into web development, right? Not to learn it, start to finish. It's just to give you an edge to try to start breaking in. While you're breaking in, let's say you start monetizing, let's say you start applying, learn the next parts as you're doing that. I know it's a lot to ask, but you can still continue through the roadmap while trying to break in.
Alex Booker (27:21):
I like you point as well of the what job you get will sort of determine the roadmap. I definitely remember this. When I was learning to become a junior dev, really roadmaps weren't a thing to be honest, like they weren't a very well-known type of content for developers. You sort of had to make your own roadmap and obviously I wanted to sort of design a skillset that was appealing both to employers, but also within my community and among my peers and stuff. I wanted to know the coolest trendiest technologies, so left to my own devices, I would sort of cultivate this list of like all the things I thought were cool and I saw people, I looked up to doing them. One of the right things to get a job as quickly as possible. No, there's actually so much less pressure to get it right, I learned because here's a good example, like you are inundated with friends and library and framework choices nowadays like between Svelte and React and Vue and Ember and so on and so forth.
Alex Booker (28:09):
You sometimes wonder about picking the right one, but yeah, if you get a job and that tech stack is Ember, you might be like, "Oh, that's not so trendy. I want to use Svelte," but honestly, you're going to learn so much about how a real front-end project evolves, how the structure works, what are the data management looks like, how the team collaborates? Frankly, the library or the framework at that point is like inconsequential, mastering React or Svelte or something trendier isn't really that appealing compared to actually being good and experience the contributing to a real code base and honestly, maybe roadmaps don't have a lot of nuance for this in particular, because they'll want to be prescriptive about what specifically to learn.
Alex Booker (28:45):
If you come across a roadmap and it says learn a front-end web framework, you'd feel pretty short changed, I think. So they're going to make a sort of bat on one or the other. It's actually us trying to be helpful, like by specifically suggesting a framework, we're trying to just reduce your options, right, because actually we know we're a bit more experienced, but it doesn't matter as much, which you pick, like if you go down this path, you're going to be in a pretty good place, don't you think? Then there's still always going to be a little bits of nuance, right? Depending on your specific goals and who you are and what you've done before.
Mike Karan (29:17):
I think that's an important point. I think you brought up the whole React, Svelte, Angular, Ember. All those other things, and the important point to take away from all this is that if you understand how they work, if you understand the fundamentals of a JavaScript framework, it's going to translate. If you've started with Angular, if you've started with Ember and you've built a full application or 10 applications with it, you can take on any other framework. Yes, it's going to take some time for you to spin up in it, but it doesn't matter at that point. You have the fundamentals of the programming down, you understand the concepts of what a framework does and what it helps you with. That's all that matters. Can you go into the documentation and control F or command F and try to find the right terminology for the thing that you're using, like conditional rendering and looping, conditional looping.
Mike Karan (30:01):
You need to know that kind of stuff more than you need to know the exact framework that you're using. It's really difficult to kind of get this point across and to be able to talk about this openly on Twitter all the time, but it's something that I'm trying to do as much as possible, like I created a Svelte for Beginners course and in the course, I constantly say like, "This is how you do in Svelte but really this is the fundamental concept of a JavaScript framework. You can apply this to React, to Vue, whatever. It's just going to look a little bit different, that's all." So I keep trying to tell people that are just starting out, my assumption, people that are just starting out, kind of have a little bit of a foundation in JavaScript that the skills that they're gaining are not for Svelte. They're very applicable to all the other frameworks that they're going to be using down the line.
Mike Karan (30:47):
When you're in a situation that you're applying for a job and you go to your local job board and all you see is React jobs, but you learned Angular or you learned Svelte. In my opinion, go take a week, figure out React because that's your local job board, put it on your resume, and during the interview, if you get one, explain the situations, explain like, "Hey, I built a couple projects in React to get spun up in it," I understood these concepts X and Y. My specialty is with Svelte or Vue because that's what I built most of my projects in, but the skills that I've learned from there a 100% transfer and take them through this conversation, and I think that'll actually bring you as a more valuable asset because who knows down the line, maybe they want to use Svelte.
Mike Karan (31:25):
Who knows down the line, maybe they want to have someone that can switch between frameworks. I think that's a skill that you can take across more than I'm an expert in React, and I refuse to use anything else. I've had that conversation with people, and I don't think that that's as valuable as being a person that can take your skills and transfer it.
Alex Booker (31:42):
If you learned React and now you're switching to Svelte or Angular or anything like that, you have this like terminology, like you will literally Google, what is X in Angular, right? What is this react thing in Angular? You couldn't do that unless you knew one and I guarantee you'll find the answers much more quickly because somebody else has asked it on Stack Overflow where they've had the same sort of how'd you do two way data binding in Angular or in React for example, maybe there's a bunch more concepts, like I was thinking of how performance works in a lot of these libraries and frameworks. They have slightly different flavors of ice cream, so to speak, but many will be using like a virtual DOM or some efficient way of rendering the page, batching the state updates, when you learn these kind of underlying concepts, you're so right, they will transfer in ways that you just actually can't imagine because you don't know what you don't know essentially.
Alex Booker (32:28):
It's for that reason why I kind of discourage people from hippety-hoppitying between different libraries and frameworks, at least pick one and trust that it's going to get you far, and if you feel the need to pivot later, for example, because a job in your area or the job you happen to get is putting you on a project that uses a particular library, you can do that. You're like, you'll have the right language and the right ideas about how to do it.
Mike Karan (32:49):
Yeah, exactly. I think that's really good advice. Just try to learn, like really just try to learn, if it's one framework, that's a great way to go through it, build applications in it, work in it, freelancing, whatever you can do, try to learn it and believe in yourself that you can make that jump, because the amount of junior developers that I've talked to that are like, I don't even apply to React because I only do Vue, is just ridiculous to me. I'm like if you know Vue, you know React like, I'm sorry, yes, it's different, but go and code a project in React and put it on your resume immediately. Don't be scared of transferring skills when you need to, when it's a requirement for you to get a job. When you're learning, it's not a requirement for you to learn every new piece of technology to be good at this.
Mike Karan (33:34):
It's in fact, a very huge detriment to you. If you're one day learning Svelte, the next day, you hop over to Vue and then hop back to Svelte and go to React. You're never going to get deep enough to be able to like transfer those skills.
Alex Booker (33:47):
Is there anything that you think a junior developer absolutely must know?
Mike Karan (33:53):
Okay. So one piece of technology I would say is GIT like you have to know GIT if you want to break in from a technology perspective. So you don't have to be an expert in it, but you have to know of it, and you have worked with it a little bit, whether it's just pushing a couple commits, whether whatever, you have to be able to at least talk the talk with GIT because all of the freelance projects that I worked on, all of the companies that I worked in have used some form of version control. Most of them have used GIT, really again, the learning will actually begin when you start to collaborating that you can only learn so much by committing and pushing to your own project without doing a merge. That experience is going to come and you're going to have a mentor take you through your first merge and all that.
Mike Karan (34:29):
Hopefully again, I'm talking in an ideal world. Sometimes it can be a disaster. Again, so GIT, learning GIT, other things maybe more on the soft skill side is learn to learn, I think is one of the probably the most important ones for anything. When you're a junior developer and you're coming into a job, the reality is, is that probably 80% of what you need for that job is going to have to be learned, self-learned or learned through mentorship or learned through doing. So learn how to pick up on new technologies, learn how to use it. I'm not saying go out of your way to study the concept of learning. That's probably not the way to go, but utilize your time when you're learning to note what works and what doesn't for you. So for some people, when they build a project, they learn a ton.
Mike Karan (35:17):
For some people, when they go through a Udemy course, they learn a ton for some people, when they watch a YouTube video at 2X speed, they learn a ton, but it's not going to be the same across everyone. So as you're going through and learning, note down what works best for you because when you get onto the job, and if you think that stops, that's not the case, you're going to have to learn 10 times more than you learn when you were trying to get that job. So you're going to utilize that skill way more than you think.
Alex Booker (35:41):
Yeah, like maybe don't sort of go and get a master's degree in pedagogy, but yes, like you can learn the fundamentals of the psychology through quite easy books, like Make It Stick. I also know Coursera have a ... I think it's a course essentially of a few modules about how to learn. There's some great YouTubers as well, like Thomas Frank and Ali Abdaal, like they talk a lot about things like the Feynman Technique, I think it's pronounced, which is where you learn by teaching. So you kind of repeats what you've learned in a condensed way and also things like space repetition and things. There's lots of great YouTubers around those subjects. I think just a nice way to kind of close the episode, actually in a really nice segue, I think I have to stumble upon, is that you've shared a few times how important it is to apply for knowledge and not just sort of memorize and regurgitate it but actually apply the knowledge.
Alex Booker (36:26):
I think for anybody, the key to success lies somewhere in this phrase, you will learn best, I think when you are motivated and that might be to complete a project where you get to be creative is like, what kind of project, how big of the project, who'd you collaborate with, but just talk us through a little bit about why you think it's so important to apply what you're learning.
Mike Karan (36:45):
I got it. So there's so much importance in that. In development in tech, you cannot get to where you need to go without applying your knowledge. You cannot go through school where someone is teaching you how to do something or go through a YouTube video or go through a course and never code and then, take that skill and use it in a job setting. It's so important for you to figure out a way for you to be able to utilize the stuff that you're learning as quickly as possible. So if you're going through a YouTube video and they're teaching you how to set up a Svelte project and create a little to do application, I think as a goal, you should be utilizing something that you're learning in that video and doing it almost immediately.
Mike Karan (37:25):
If you're going through the trouble of actually watching, the 30 minute or 40 minute video, because just watching it while you pick up on some terminology and figure some stuff out in your head, the immediate aspect of after watching it and then going on watching something else, it's going to just fly out of your brain. So it's really, really important to use the knowledge and the thing that I like to do, and the thing that like I promote others to do is to not only kind of just copy what's being done in the video, try to find a goal. So for instance, right now, I need to build out habits, right? So my life is kind of all over the place, I need to build out better habits. So a logical project for me would be something like a habit tracker that fits exactly into my kind of system, so the habit system that I want.
Mike Karan (38:09):
Yes, those exist true but the fact that I'm building it for myself and I can add the tweaks that I want to it, is going to motivate me to build it and to build it. I'm going to have to learn some new skills as I'm building it. So I'm going to have to take the courses, I'm going to have to watch the YouTube videos, but every time I'm going to watch that video, instead of thinking about like, okay, I'm just going to redo exactly what they did, I'll be thinking, how can I apply this directly to the habit tracker that I am building currently? That information for me sticks so much more than just following and doing a project from a course, not that that has zero value. I think that's still valuable, right?
Mike Karan (38:45):
Doing a course project or doing a YouTube video project, I think that's still better than not doing it, but having that extra twist where you're doing something for yourself and you're creating your own project is a multi benefit factor where you're retaining the knowledge better. You're immediately utilizing it, and you're building out something that you can definitely put on your portfolio because it's something that you have passion for, and it's something that's outside of a course project. I'm a little bit against putting course projects and YouTube projects on portfolios because it's very obvious, usually from a hiring perspective. Now, if you have nothing else, sure do it, try to differentiate yourself, get into the industry, sure, but if you can, try to find projects that you want to actually work on, you want to build.
Mike Karan (39:27):
That maybe are similar to portfolio projects or course projects, but at least a little bit different enough for you to talk about them and talk about the challenges you had doing it.
Alex Booker (39:36):
It's hilarious, isn't it like you wouldn't expect to get good at tennis by watching tennis on television. It's a very easy mistake to make, both if you haven't found success in school, as I didn't. It's like I never really learned how to learn at school, but I always could pursue my interests and through that, I managed to get good at a couple of things like coding for example. I remember always struggling to build projects that already existed. I was like, I don't know, man, why am I going to build a 98th habit tracker, this problem has been solved. I just couldn't get my head around it for some reason, and I was actually quite guilty of being bad at finishing projects for various reasons.
Alex Booker (40:13):
I didn't have the Scrimba podcast back then to show me the way, unfortunately, but I was really bad at like getting distracted and chasing new technologies or starting new projects and things. I really wish I had with discipline at the time, or at least the encouragement to finish those projects because they would've resulted in success quicker, I think and deeper learning, but still one challenge I definitely faced and I wonder if other people feel is just like, it's been done before, it's not particularly interesting. Is it a personality thing, it doesn't really seem to like register for you, like you don't seem to mind or is it more in what you described before about sort of making it just so for yourself, maybe that's where you find the motivation?
Mike Karan (40:49):
The motivation comes from multiple different things where this isn't a project that you intend to mass produce or mass market, this isn't a SaaS product. This is a project that you intend to use personally, and I think that is the motivator here, along with the fact that obviously this project isn't just for your own use it's for the portfolio. It's for the knowledge gaining, it's just an addition to what you need to do. I agree with you that it's like, if you're thinking of a SaaS product, if you sit down with your business partner or you sit down with your friends and you're shooting a shit about a SaaS product, and you mentioned a habit tracker, everyone is going to say that it's been done a million times, why would you do it, right? It doesn't make sense.
Mike Karan (41:24):
So rebuilding Facebook doesn't make sense. Rebuilding Twitter doesn't make sense, like all that kind of stuff, like you're not going to do that as a way to profit and then, make money but as a way to learn, especially if you have that little special twist for yourself, find something with that special twist in my opinion is really important. If you have that, it's going to be a huge motivator for you to kind of get it done, but having said that I'm the same way as you Alex, I abandoned more projects than I finished but much more, and I think that's completely normal. I want to just point out to everyone, because I'm sure most of the audience is the same way, but at some point, try to finish something at least, it'll make you feel better.
Mike Karan (42:03):
It'll have something to do for your portfolio, but don't feel super bad that you didn't finish project X, Y and Z because that's just a normal thing.
Alex Booker (42:11):
I think some signs that it's such actually good to quit, there's a good framework for some people to recommend and it's like, do you want to quit? Is it tough? Yes, probably, and then, is it worth doing? If it's worth pushing through a bad discomfort, then yeah, keep doing it, if it's hard than it's worth it. If it's hard than it's not worth it, then don't do it. If you put it in such simple terms, like it sounds a bit miserable. I was 19, 20 when I was learning to code and I didn't know exactly what motivated me. One thing that's always been true for me is like, I'm very motivated by learning and like that aha moment. I remember one of the projects I made the most progress on was like a blog clone because somebody I looked up to in the community had built their own blog engine.
Alex Booker (42:52):
And even though it was totally superfluous and redundant and unnecessary, I looked up to them and I was like, "Cool, I want to do that," and in the process I learned about different ways of handling data and how to use a framework and things, but one day I sort of woke up and it might have been one week or a month. I don't remember, it was a while ago and I was like, "Right, I think I'm about done with this project. I don't feel like it's worth pushing through to like flash out the front end and build an admin panel and all the rest of it." That was just enough for me, and even though it didn't end up on a portfolio or anything, it wasn't a waste of time by any stretch of the imagination because I learned so much in the process.
Alex Booker (43:24):
So, there is something to be said about finding a motivation. In recent years, it just kind of struck me for like some people are probably a bit like Tony Stark. They love the idea of having their own version of everything. To me, I feel like that's a waste of time. I don't want to do it personally, but nowadays, I'm looking at every utility and tool I use and I'm thinking, "Oh, that would be a good junior dev project. Oh that would be a good junior dev project." I used the tool to extract thumbnails from a YouTube URL, like the YouTube PNG, the thumbnails in the HTML, so you would make a get request to get the HTML and maybe use RegEx, God forbid, using RegEx to parse HTML, now I know. Whatever like-
Mike Karan (43:59):
Don't do that. My God, it just gave me a nightmare.
Alex Booker (44:03):
Talk to me about that, Mike, because someone commented on a YouTube video, I made. I made a similar joke and they asked like, "Why don't you use RegEx to parse HTML?"
Mike Karan (44:11):
Because there's so many better tools. There's HTML parsing tools like ... Python has some amazing ones. So, if you're going to make like ... maybe a great way for you to learn Python is to use like Scrapy or something like that and not do RegEx in HTML. There's just so many better ways to do it that have less chance of something going wrong. RegEx is legitimately a real way to do it. I agree with you there, you can absolutely create a really reliable scraper in RegEx, but someone has already done it 5,000 times and probably 100 times better than you. So use the tool that they've done, instead of reinventing the wheel on the web ... at least on the web scraping side. I say this having a new philosophy where I use less and less packages, but I think for scraping, I 100% would use a third party tool.
Alex Booker (44:59):
Mike, I just want to say, thank you so much for joining me on the podcast. I've had such a great time chatting with you. Is there any sort of like closing words or advice you want to share to any junior developers listening?
Mike Karan (45:09):
First of all, I want to say a huge thank you to you Alex, thank you to the Scrimba team. I had a great time, looking forward to you joining us on the podcast. As a final word to the junior developers out there, again, not one size fits all. Don't get discouraged, if what we're seeing, doesn't fully resonate with you. There's hundreds of other creators. There's hundreds of other people that know what they're doing, just like we do and are giving different advice, find what works for you and try to stick with it as best you can. You can make it into development. You can make it into tech and we're just kind of rooting for you,
Alex Booker (45:43):
Mike from HTML All The Things. Thank you so much for joining us.
Mike Karan (45:46):
Thank you.
Alex Booker (45:47):
That's was Mike Karan, a successful web development business owner and one half of the HTML All The Things Podcast. Thank you for listening. By the way, if you made it this far, you might also wish to subscribe to the Scrimba Podcast for more helpful and uplifting episodes with newly hired juniors and industry experts alike. You can also tweet me, your host, Alex Booker, and share what lessons you learned from the episode, so I can thank you personally for tuning in. My twitter handle along with Scrimba is in the show notes. See you next week.