Bad news – the ability to be a master/elite coder is only the first step in your career 😞
You’ll soon find that coding is the easy part.
Some of the hard parts – if you want to progress as a software engineer/developer – are:
1. Being able to communicate clearly in business language – not tech jargon – with business people / non-technical co-workers.
2. A high-level understanding of how systems work:
– design patterns
– how to abstract systems into manageable layers
– how the business or product ought to influence the structure of your app/code
– knowing which technologies solve what high-level problems
to elegantly connect different pieces of a system.
It’s easy to build a piece of a closed system.
It’s hard to build something that connects with other systems, teams in your organization, etc.
You’ll need to make sure you understand
requirements much better and provide really good documentation.
Yes – it means you will need to communicate with people and exercise your writing skills. Sometimes writing for non-technical people 😱
team members are people too…
You know this already 😉
You’ll soon find yourself getting frustrated with your co-workers.
Maybe they don’t code the same way as you? Maybe they don’t have the same understanding as you do?
Maybe every morning they take the first 30
minutes of their day to tell you about what movie they watched last night?
You’ll have to learn that everyone is different. Pick your battles. Not every difference is important.
The things that are important – make sure
you address those concerns by speaking with that person directly.
Be nice. Have empathy. Care.
Oh ya – don’t forget: they feel the same way about you too 🙃
of the business’ problem is essential
How can you build a solution to a problem you don’t fully understand?
If your product is designed to fix a problem that medical doctors have then you’ll need to know about how doctors work and deal with the problem at hand.
Get to know your problem so well that fixing the problem by writing code is the last resort 😉
This means having to problem-solve with business people and doctors, for example.
It might mean having to learn more skills: marketing, product design, business planning, etc.
Thanks to James for this piece.