On Being a Software Developer
Over the past few weeks, I’ve been receiving a number of requests from some amazing folks who are starting out on their Software Development journeys, asking for some advice / guidance on the best path forward.
In this article, I’ve collated a lot of what I’ve been sharing, hoping it’s useful to others as well.
Start Here!
Read this article, and read every other article linked therein. Read it over and over again!
Go Read it now, I’ll wait.
Advice to future software engineers
Welcome back.
I love this article because it highlights some technical & non-technical fundamentals about how you approach being a software developer.
The Basics
LinkedIn is currently one of the biggest platforms for professionals in the world. Having (an up-to-date) profile is one of the ways to stand out and be visible in the community.
Some recommendations:
- Put up a profile picture. If someone can see your face, the trust factor goes up a little more. Try putting up a photo that’s not too casual.
- Link your GitHub (or GitLab) profile to your account. This way, anyone looking at your profile can easily navigate to your portfolio / proof of work.
- Update your profile, and fill it out with as much vital information as possible (“About section”, small courses you’ve done, Skills, etc). This way anyone looking at your profile is getting a full picture of your skill set.
- If you’re looking for a job / internship: make it explicit that you’re open to work.
GitHub
(I mention GitHub here because it’s the most common code hosting platform. Relevant comments apply to GitLab as well)
- GitHub recently introduced some features to “show off” your profile. Check out this article, and go to work on your profile - the more info you have there, the better: Managing your profile README
- If you have any non-private code, put it up on GitHub. As a software developer, your code is one of the most important things, let people see it! GitHub is for the code 👩🏽💻 🧑🏽💻!
Go the Extra Mile
Create a Blog
Consider starting a blog, and write about anything you’re doing!
Every small (seemingly trivial) problem you solve, write about it and how you solved it. There’s at least one other person who will find it useful.
Platforms such as dev.to, hashnode.com & GitHub Pages make it really easy to set up a blog with minimal effort.
Personally, I prefer GitHub Pages, since it’s as easy as pushing a MarkDown file to GitHub, and it gets automatically deployed (my blog: blog.muya.co.ke is built on GitHub Pages!).
Feel free to check out some of my earlier articles to get a feel of what I mean by “write anything”.
Of course, if videos or podcasts are your thing, go for it!!! Nothing is stopping you from starting.
Subscribe to Newsletters & Mailing Lists
Consider subscribing to a few newsletters that talk about things you’re passionate about in tech. For example, if you enjoy Laravel, consider subscribing to their mailing lists.
Some of the interesting ones I’ve been enjoying lately:
- The Overflow (from StackOverflow)
- Swizec
- Pocket Recommendations - Do you use Pocket? It’s a “Read It Later” service that allows you to save articles to read at later time. There are apps available across all platforms, so you can save something on mobile, and have it available on web, and vice versa. They allow you to curate the kind of content you’re interested in, and they’ll send you a weekly summary of interesting articles. Feel free to follow me there, I usually recommend articles that I like.
- Applied Go Newsletter - This one is GoLang specific
Contributing to Open Source
Contributing to open source is a great way to give back to the community.
CodeTriage is an amazing website that makes it easy for you to start contributing to open source projects, no matter your skill level. Everyone has to start somewhere, could be documentation, adding a useful comment, adding unit tests for an interesting edge case, etc. Check it out!
Build Something
Build projects, as many as possible, no matter how trivial. It’s how you sharpen your skills.
CodeMentor (https://www.codementor.io/projects) has a huge list of projects that you can work on. While you’re building, ask questions to the community, most people are willing to help (ask me!)
Getting a Job
This can seem daunting at first, but there are a lot of websites that are posting tech jobs. Some of the ones I can recommend:
- LinkedIn Jobs
- ProductHunt Jobs (Also check out ProductHunt in general - they showcase a lot of new products; new products means startups who might be looking to hire!)
- ProductHunt Hiring & Recruiting Apps filter - go thru the whole list here and see if there’s something you like
- Angel List Jobs - this one is mainly focussed on startup jobs. Fun fact: I got my 2nd job at DumaWorks via AngelList
- Related to the “Newsletters” section above, most newsletters contain a section talking about job opportunities related to the newsletter.
Shout out to my close friend @pnduati for pushing me to convert my notes into a blog post!
That’s it!
I think that this is a good start to anyone out there starting their journey.
All the best, and happy coding.
Take Care!