Expert Advice: Tips on How to Stand Out for Software Engineers Starting Out
The speakers who are experienced software engineers shared key points for people starting out in tech, greet tools for remote teams, and how to be an effective software engineer. Great is an awesome place almost is willing to share their tips/tricks, be a mentor/friend, if you're considering getting check places like Lux Academy that offers short Bootcamps and mentorship, as well as anyone whom you know, can guide you on how to get started.
In today's session, we had three experienced software engineers i.e [Wayne Gakuo](https://twitter.com/wayne_gakuo/), [Valentine Rutto](https://twitter.com/valentinerutto/), and [Denise Allela](https://twitter.com/deniseallela/) who shared their experiences and encouragement to people who are getting to tech or still new in the field. Here are key points:-
The first speaker was [Valentine Rutto](https://twitter.com/valentinerutto/), an Android Software Engineer at D-Light, mentor at [Akira Chix](https://akirachix.com/) and Android Trainer at Andela. Shared more on preparing for a tech hire:
- if one is new to the tech they have to identify their personality in order to choose the appropriate tech career path they can follow i.e they might either be interested in problem-solving, design, animation among others.
- After choosing the track i.e either Front-end/Backend web development, Mobile-App Development, Design, Data Science, Cloud among others they can go ahead and learn the hard skills either by joining schools/ Bootcamp training, finding a course online on [Udacity](https://www.udacity.com/), [Pluralsight](https://www.pluralsight.com/), [FreeCodeCamp](https://www.freecodecamp.org/learn/), [Youtube](https://www.youtube.com/)
- You need to put yourself out there and your work out there i.e writing articles, talking in meetups, sharing your learning progress on Twitter, working on your LinkedIn Profile among other ways.
- Prove you can add value i.e build real-world projects and commit your code to Github/Bitbucket etc and sharing your Github Profile, or if you're a designer put your designs on Behance to build your Design Portfolio then share the Behance Profile.
- Find a tribe/community i.e "it's not about who you know but who knows you"
The Second speaker was [Wayne Gakuo](https://twitter.com/wayne_gakuo/), a Front-end developer at Cobiro, an ally of Angular Kenya, GDG Nairobi, Anita B Org Nairobi. He takes sessions through working with distributed remote teams i.e communication and project management:
- In remote development project management is key and the good tools for project management:
> - [Trello](https://trello.com/en) a visual collaboration tool for organizing and prioritizing projects
> - [Jira](https://www.atlassian.com/software/jira) which is built for every member of your software team to plan, track, and release great software. It has features like issues, components, releases, project pages, add items, project settings among others.
> - [Azure DevOps](https://azure.microsoft.com/en-us/services/devops/) which allows different tasks to be assigned to a particular time and also has features like reports, pipelines, test plans, artifacts, and wikis for documentation for example CSS files for styling.
- Communication is also key in remote development unless otherwise there will be communication breakdown and Slack is the effective tool for communication. Most often we use messaging tools like email, telegram, WhatsApp among others to chat with our fellow team members but Slack is good since it's a message and storage tool used on multiple features i.e upload files/images, interact or update members, integrate with other apps like Zoom, Google Calendar, Trello, etc, and create custom emoji. Slack has features like channels i.e chatrooms which can be public or private, Direct Messages, invite, search, mention & react, pin a message, integrate other apps, etc.
- Discipline in terms of productivity and time management are part of the tips of good remote development.
The third speaker was [Denise Allela](https://twitter.com/deniseallela/), a Developer Relations at Google, Android Engineer, Machine Learning & IoT trainer. Her session was mainly on how to be an effective software engineer putting into consideration your development environment, the language of choice, team expertise, target audience, and device compatibility:
- Be driven by passion
- Have the ability to adapt and learn since the scope of work often changes from time to time.
- Foster collaboration i.e pair programming, mob programming, or sharing features on a common project.
- Your clients should be your top priority i.e app useability and end-users.
- Be open to feedback.
- Acknowledging that learning never stops i.e learn to try and implement as a way of practice.
- Specialize in a given area i.e choose a path and deep dive into one language.
- Unwind in order to have a work-life balance.
- Join tech communities
- Embrace Test-Driven-Development(TDD) for every project.
- Have clear and clean code i.e easy for the next person who will be handling it to understand. (naming variables and functions use relatable words)
- Don't get hooked to tutorials i.e go beyond by building your own projects without always referring
Those were the main tips shared by the experienced software engineers to the juniors and those getting started in tech feel free to check their profiles follow or ask any questions. Thank you for reading my article share any comments or insights.