š§ 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:
What are my hobbies? Is there something I could build that could incorporate something Iām already interested in?
What problems do I encounter in my day job? Could I build something to help?
What are my friends and families hobbies/careers? Is there anything I could do to help make their lives easier?
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
š¦ 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 (
Favourite Cities
{cities.map(city => ( * {city}
))}
); };
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
Subscribe at stackyack.substack.com