Stack Yack #002 - The value of side projects, interview questions, and a book every developer should have on the shelf

  
0:00
-18:36

🎧 LISTEN: I’ve launched an audio version on Spotify podcasts! Check it out here.

📺WATCH: check the episode on YouTube here!

Greetings from sunny Los Angeles! No, I did not move back, but ended up having to head out here to pick up our car we left when we moved. Long story short, don’t leave your car sitting for too long or people will target it and steal your catalytic converter! The Prius sounded like a sports car. Anyways, it’s been a nice 2-day vacation 🤷🏻‍♂️🌴

This week I want to talk about side projects and the importance they play in your growth as a developer. For those that know me personally, know that I’m never not working on a side project. TBH I don’t think I’ll ever stop either. The benefits I’ve gained from the time I’ve invested has been oh so worth it. Today I just want to share some insight as to why I believe they are valuable and hopefully convince you to start as well if you haven’t already.

🧠  Thoughts from the week

What I’ve been thinking about, and think you should be thinking about too.

Whether you’re just getting started coding or are a seasoned pro, NOT having a side project can halt your growth as a developer.

Why should I care about having a side project?

  • 10x your learning opportunities

  • Better job opportunities

  • Extra income opportunities

  • Overall be a more well-rounded developer

10x learning opportunities – My favourite part about having side projects is that there is no predetermined technology stack I have to follow, and no external pressure or decisions being made that limit what libraries, tools, etc. that I have to use. Want to give Gatsby a try? Maybe Svelte? Side projects are a great excuse to learn something new.

Better job opportunities – When I’m looking at resume’s for potential candidates, I absolutely love when I see side projects included. What it shows me is that this person loves coding and building things, which then leads me to presume that they are a curious type of person who is willing to go the extra mile to investigate and learn. That’s the type of person I want on my team, hands down.

There is also the chance that if you work on a side project that gets picked up by a company and they dig it, who knows, they may just reach out to bring you on board. We’ve definitely done this at Hopin.

Extra income opportunities – Built something cool that other people want? Charge for it! This is much easier said than done, but thousands of developers monetise their side projects, thus turning them into side hustles. Indie Hackers is a cool place to discover these (and just a great community to be a part of in general).

Overall be a more well-rounded developer – When you work on a side project you’re likely not working on it in the routine way you do at your day job like a code monkey (ie. picking up a ticket that someone has predefined, doing the work, opening a PR, merge, and repeat). Side projects require you to think outside the scope of typical day to day development. You’re not thinking only about implementation details, but also making the decisions as to what it is that needs to be implemented. Side projects can help you see and understand the bigger picture in the product development lifecycle.

How do I start working on a side project?

Aside from actually shipping your project, one of the most exciting and challenging aspects of being a side-project developer is picking what you want to work on! For me personally this has never been a problem, I have a dedicated Note on my phone I use to write down any random idea that I think of, regardless how stupid or silly it might be. If you don’t have any ideas right of the top of your head, start by asking yourself these questions:

  1. What are my hobbies? Is there something I could build that could incorporate something I’m already interested in?

  2. What problems do I encounter in my day job? Could I build something to help?

  3. What are my friends and families hobbies/careers? Is there anything I could do to help make their lives easier?

  4. Given my typical day, is there anything I could automate or make easier to accomplish with technology?

Don’t worry if you struggle for a bit finding something you want to work on. You can find something that’s already been built and just find ways to improve on it. Also, if you start a project and a few weeks in you aren’t feeling it anymore, quit! It’s totally ok! Take a look at my repository count:

More than half of those are side projects I’ve never finished or done anything with. But they have ALL help shape me into the developer I am today. The point is to just start.

Side note - I just finished and launched one last week https://www.react-togglr.com/

Finding the time

Everyone has different schedules, and if you are the type of person that doesn’t want to code on the weekends, or want to do other things, that’s perfectly ok - just pick something really really small to work on that you can spend an hour or two a week on. Your side projects don’t need to be these grand, 20+ feature apps. Even if you do have a grand idea, I still suggest starting small and building an MVP version first anyway.

Just pick something and start, you’ll be thankful you did. If you are finding yourself lacking motivation somedays, again totally normal and fine just remember that by committing to being a side-project-dev you’ll be increasing your learning opportunities, have better job opportunities, and possibly make some cash from it.

Thanks for reading / listening! If you are working on a side project, tweet me @stackyacker to tell me about it - would love to check it out!

Have a wonderful week.🤘

– Christian

Share Stack Yack


🐦 From the Twittersphere

Things web development related worth sharing

It was pretty nostalgic for myself to read this tweet from Kyle. It’s so true though how it happens, you just have to stick with it and keep improving your skills. The doors will open.

TBH I never knew that existed either! I’ve always just used text-decoration: line-through. However, this is definitely more semantic (and accessible). Next time I need to have text with a strike through, I’ll be reaching for this. Learn here

The concept of z-index initially is pretty is straight forward to grasp, but once you start getting into super nested elements, it can get a little weird. If you are just learning about layering I recommend checking this out.


🔥 Interview Q’s

Frequently asked interview questions to make sure you have a handle on

Q: What’s the difference between .forEach and .map? – It’s easy to get these two confused when you’re first starting out, because in a way they are pretty similar. Both map and forEach are used to iterate over an array. The main difference here though is that .map returns a new array, while forEach just iterates through the original array.

So when should you use either?

A: The map() method is quite handy (especially in react) when you want to iterate over data in an array and manipulate it in some way. For example, say you’ve got an array of cities, and you want render them all as list items with the name of the city to the page. Example:

const Page = () => {
  const cities = ['Sydney', 'Los Angeles', 'Seoul'];

  return (
    <div className="container">
      <h1>Favourite Cities</h1>
      <ul>
        {cities.map(city => (
          <li>{city}</li>
        ))}
      </ul>
    </div>
  );
};

What’s happening here is you’re taking your original array of strings and returning an array of elements, which can then be rendered to the DOM.

So what about forEach()? This method is useful when you want to run an operation on each value in an array. For example:

const hasEvenNumbers = numbers => {
  let hasEvens = false;
  numbers.forEach(number => {
    if (number % 2 === 0) {
      hasEvens = true;
    }
  });

  return hasEvens;
};

console.log(hasEvenNumbers([1,3,5])) // false
console.log(hasEvenNumbers([1,3,5,6])) // true

Although you could still technically return an array of elements using a forEach, and you can map over an array of numbers and check if they contain evens, that doesn’t always mean it’s the best tool for the job. You can probably cut a steak with a spoon.. er you get the picture.


🎓 Learn

Tutorials and educational resources to check out

  • How to use React Testing Library by Robin Wieruch @rwieruch – Have a solid understanding of writing tests is a critical skill in every developers toolbox - and TBH, was something I didn’t really dive into until a few years ago (oh the headaches I caused myself… 🤯). Anyway, if you write in React and haven’t heard of or have never used React Testing Library, this tutorial is great. I luckily was able to first start using RTL on the job at my previous company, but wish this tutorial existed so I could have upped my game quicker.


🔗 Bookmark It!

Resources, tools, and other sites I think you'll find valuable

  • Javascript.info – Although marketed as a tutorial, I keep it bookmarked as an index of anything and everything JavaScript. This site outlines in extreme detail all the moving parts and inner workings of the language. I would say I use this just as often as the JavaScript MDN if I find myself needing a deeper understanding of a given topic.

  • Syntax.fm – Another Wes Bos plug! (you’re awesome too Scott Tolinski). Syntax is self described as “A Tasty Treats Podcast for Web Developers”, and it really is a treat listening every week. Wes and Scott do a great job breaking down a topic and definitely make it easy for developers at any skill level to follow. I highly recommend adding this to your podcast playlist, as I find myself often learning something new from these guys almost every time I have a listen.


✨ Stack Yak Recommends

Products and services that have made life for me better as a developer

  • 📗READ: Becoming a better programmer by Pete Goodliffe. This was the very first industry-related book I ever read. I remember being hesitant at first to buy, since 8 years ago when I first purchased it I thought it might be too over my head.. to my surprise it wasn’t at all! In fact it doesn’t assume you know any certain language whatsoever.

    Goodliffe writes in a non-college-textbook style which I think is what made it so easy for me to read through. In it he outlines a handful of useful approaches from organising and designing software, to techniques to work more efficiently and get things done.

    I personally have used and it have recommended it to students I’ve mentored, and in fact gave my last copy away a few weeks ago!

    Definitely a must read for any current or aspiring developer.


Enjoyed reading? If so, please share and tell others about Stack Yack. I’d really appreciate it! 🙏 🙏

You can also follow me on twitter @stackyacker

Share Stack Yack