It’s a fantastic time to be getting into Software Engineering. Opportunity is rife (present circumstances excluded) and building a career in the tech landscape is both exciting and rewarding.
There are many paths into and through the profession, however often these paths will meander. This will happen as you figure out directions and goals in both your work and personal life. Below are some tips on how to speed up this process and avoid the common mistakes people tend to make as they embark on their journey.
There are many paths into and through the profession, however often these paths will meander. This will happen as you figure out directions and goals in both your work and personal life
1. Build foundational knowledge
This can be applied to all technical fields. For example, when learning Guitar, it can be great fun to start off by playing along to your favourite songs. However, to really progress and improve, it’s a good idea to delve into scales, chord progressions and other fundamental principles. This concept can be mirrored in Software Engineering — it’s easy to jump the gun and skip learning the basics, in favour of wanting to dive straight into the latest trend or feature.
Whilst this can be beneficial, it’s important to learn the fundamentals of being a Software Engineer, at least in parallel. This is only if you haven’t already via a degree or some other form of experience.
Primarily these fundamentals will involve general programming concepts and the programming language that you’ve selected to kick off a career with. It may also concern other processes, such as how to debug efficiently, or how to deliver stable code.
Adopting foundational knowledge early on will mean you will be able to deal with problems and implement solutions in a faster and more controlled manner. This is a skill employers will be looking for.
2. Lean towards a speciality
Engineers often find themselves gravitating towards a specific area of the tech stack during their career. This could be either front or back end, infrastructure, or one of the many other layers available.
Whilst there may be some seesawing between them, often an area of interest will become apparent. It’s important to recognise this and build on it. Employers love to see new hires quickly becoming someone others look to for help. Increasing knowledge and reputation within this interest is a great way of achieving this.
The speciality you focus on can be as niche as you like. A lot of value can be found in evangelising a lesser know technology or practice.
3. Create a personal development plan (PDP)
Careers in the early stages often lack structure and clear goals. By creating a PDP it’s possible to remedy this. An employer may encourage the creation of a plan that can be worked on with a line manager, but it is always a good idea to have your own high-level plan that can be used for long term goals.
By doing this you are guaranteeing that you are consistently learning and improving as a developer throughout your career. As a result of this, you will be able to progress a lot faster.
PDPs usually have the following structure, although with the first word being personal, be sure to use a format that suits you:
- Category — Ensure your plan covers multiple categories so you are progressing across a wide array of skills.
- Goal — A specific goal you want to achieve within a category.
- Goal actions — What you are planning to do to achieve a goal you’ve set.
- Completion date — Set yourself a date to complete the action by. If you’re consistently missing these dates try to analyse why, and make appropriate adjustments.
To aid tracking of actions, use a Kanban application with a free plan, such as Trello.
4. Build great relationships
Teams are the lifeblood of our occupation. It’s therefore important for you to strive to become a key part of the team you sit in. This can be achieved through various means:
- Take ownership of your mistakes and be sure to learn from them. Employers should propagate a no-blame environment and ensure that delivery and quality accountability is on the team, rather than individuals. However standing up and taking responsibility when necessary shows great strength in character, and the rest of the team will respect you for it. Remember — We’re all human, and all humans make mistakes!
- Employers will recognise individual successes, but be sure to promote the team successes as well. This will be acknowledged and give a good indication that you are capable of leading teams.
- Reach out to fellow team members if they appear to be struggling. Helping others is not only a great way to build relationships, but also to keep productivity levels up. Often this will get forwarded onto line managers and will be taken into consideration during performance reviews.
- Don’t be afraid to get involved in team discussions and meetings such as retrospectives. Often a lack of confidence will lead to being unwilling to contribute to them, rather than not actually having anything valuable to contribute. If you bite the bullet and get involved, eventually any hesitations will dissipate and you’ll find you’re able to communicate your ideas without a problem.
5. Keep up to date with trends
The technology used in the software engineering profession is exceptionally malleable, and will only become exponentially more so as it gains even more popularity. Although it can sometimes be difficult to keep up to date with everything, following industry leaders on social media and subscribing to mailing lists is a great way to do so.
Be sure to relay any new information back to your team. This will create a certain sense of trust, as people will look to you as someone who can be relied on when it comes to bringing cutting edge technology and changes into the company.
Patience is key when it comes to career progression in any industry. These tips will help speed things up but there is no silver bullet when it comes to climbing the ladder.
Remaining empathetic and driven will make you a great candidate for more senior roles, but remember— there is no substitute for hard work, dedication and passion!