· 7 min read
Guide to Getting Started in Software Development - Part 2
This guide to getting started in software development will help you focus on the essentials instead of going after buzzwords - Part 2
In the first part of this guide, we outlined the entire process of software development, went through some of the essential skills - both soft skills and hard skills - to have as a software developer, and mentioned some of the best learning resources for those starting, from coding platforms to books, bootcamps and several community resources.
In this second part, we’re going to explain the importance of building projects, give out tips to help you seek your first software development job and emphasize the continuous learning and growth that this area requires if you want to stay at the top.
Building Projects
We close the first part with some of the best learning resources. Community resources and books are great places to learn more by reading - while coding platforms and bootcamps allow us to put those learnings into practice. These are great but lack the most important need for someone to improve their software development knowledge - building their own projects.
Besides taking an internship or working for a client/company, this is the only way to practice your hard skills in a non-guided way. You can start by building smaller projects and move on to bigger ones as soon as you feel prepared. There are hundreds of tutorials on the internet suggesting a few software development projects for beginners - and most are crap (eg. to-do lists, calculators, tic-tac-toe games). I’ll leave you with actual projects that can help you progress and explain you why:
- E-Commerce Store: I know you might think this is crazy, but no one is asking for a fully-fledged store. Think of it as a UI that displays some items with filtering and sorting capabilities. Allow users to create accounts and sign in to bookmark their favorite items, add them to a cart and apply discount codes. From a high-level perspective, this project allows you to implement and talk about user management, storing data, security, architecture, design and stack choices.
- Social Network: whether you prefer web or mobile, building a social network will give you enough to talk about for your next interviews. You’ll need user management, data storage, security and real-time communication for a chat feature.
- Any Project On a Topic You Like: I could send you dozens of project ideas. None will be better than a project that’s related to a topic you enjoy or want to learn more. Do you like football? Build a fantasy league application to play with your friends. Do you love to eat out? Build a Zomato clone where you can search for restaurants in your area and review them.
Regardless of the project you decide to build, it’s important you stick to it, write clean code and, if possible, document both the journey and the project itself. It’s better to aim for one really good project than to have multiple “so-so” ones.
Tech space is very crowded and this is one of the best ways to make yourself stand out from the crowd. Just imagine: 30 developers apply for a frontend position and only two have portfolios: one is a dev that built a calculator, a todo app and the tic-tac-toe game; then other one is you - with a cricket fantasy league because you really enjoy cricket. Who do you think is more likely to get the job? (I said likely because recruitment is a strange place and shady things happen from time to time)
Seeking Job Opportunities
You’ve learned the basics, practiced with some of your projects and are ready to seek job opportunities. There are three important things you need to do before (and even after) applying to your first job: craft a strong resume and portfolio; network and make connections with people in the industry; and prepare for interviews (technical and non-technical). Let’s dive into all:
Craft a Strong Resume and Portfolio
This is the first impression recruiters will have, so you need to make these impactful. Since it’s your first time applying for a job and you don’t have previous experience to talk about, you need to focus on other things, such as your skills, your personal projects and software contributions you might’ve done (include links!), your education background (if related) and any certifications you’ve received during your learning process. Keep your resume clean, well-formatted and make sure you proofread it very carefully.
Building a portfolio might make more sense if you’re more geared toward frontend development, but there are some creative ways to showcase your backend work too. You should start by picking your best work (duh!), provide links to it and present it with good imagery and a brief description of the project - what’s the project’s goal, the problems it solved, the technology you used and any challenges you had to overcome. If you want to step it up a notch, add interactive demos or videos.
A portfolio isn’t a one-off job, so you must keep it updated with your recent best work. It’s also a place where you can showcase your creativity by styling it uniquely, provided you keep it user-friendly and easy to navigate.
As with everything else related to your career, seek feedback from colleagues, recruiters and other professionals in the industry. Feedback doesn’t mean something is wrong.
Network and Make Connections
You can be the best software developer in the world but if no one knows you or your work, you won’t go anywhere. Networking is crucial in almost any industry and tech is no exception. It can open many doors such as job opportunities, project collaborations, and even mentorships.
Social media platforms such as LinkedIn and Twitter - alongside online communities such as Stack Overflow - can be great places to (virtually) meet other like-minded people, participate in discussions, seek advice from other developers and also showcase your expertise. Participating in open-source projects is also a great way to (indirectly) network and put your name out there.
Although having all these interactions online can help you tremendously, there are other great (and better) ways to network - in-person! I’m a huge fan of remote work (link here), but that doesn’t mean I’m against on-site events. On the contrary, attending industry events, conferences and meetups are great ways to have social interactions and meet fellow developers.
No matter how you prefer to network, you have to do it consistently throughout your software development career. We never know when good opportunities might come and as I’ve recently heard on a podcast - “Opportunities are like city buses, there’s always another one coming”.
Continuous Learning and Growth
Tech is a very dynamic field and rapidly evolving. While you might feel at some point you’ve mastered a specific language or framework, your learning journey doesn’t end there. I normally say this is where we separate those who love it from those who are in it for a quick buck.
What you know today might not be applicable tomorrow. This applies to technical skills and soft skills. Tech changes, people change and the world changes too. While change can be difficult for some, it’s essential that you’re able to keep up with it.
Being open to continuous learning also increases your chances of switching areas inside tech. It’s a very common behavior when people are tired of a specific field or stack and want to experiment with different things. Not only that, but it can also enable to aim for career advancement opportunities.
Now, how can you adopt such a mindset? Well, you need to be proactive and have the intent to learn more. This doesn’t mean you’re going after every new framework that pops out (DON’T DO THIS), but rather keep up to date with the tools you’re using, get insights from experts on newer technologies and not be afraid to ask for help.
Set clear and concise goals for your learning journey.
Conclusion
To summarise this 2 part guide on how to get started in software development:
- Understand what software development is;
- Learn essential skills;
- Build projects to practice your learnings;
- Put some effort into crafting your resume and portfolio;
- Network and make relevant connections;
- Be open-minded about continuously learning.
I hope this guide helps you start your journey in software development.
See you on the bright side! 😀