Software development is learned through years of practice and experience. But looking back, there are always things we wish we’d done differently to speed up the process. So here 22 things I wish I’d known about software development in my 20s.
Caveat: in each of the points below, I speak directly to the 20s version of myself in the scenarios I’ve experienced. Take what works for your situation and discard the rest.
- In most arguments, nobody is right and nobody is wrong. There’s more than one way to solve a problem.
- Rather than staunchly defending an existing opinion, take another’s perspective for new insights you wouldn’t otherwise gain.
- Never lose your front-end skills. That’s where customer-facing solutions are made.
- Doing software development makes money. Creating software solutions transforms lives.
- Learn fast from those who you look up to as experts. Then compete on their level.
- The meeting room is full of people just trying to get through the day. Don’t be afraid to speak up for what could be a better approach.
- Go ahead and disagree with your manager. You have valuable insights that he might not be aware of.
- When you find yourself doing something just “because that’s how it’s done”, it’s time to ask why.
- Don’t write perfect code. You’re here to solve problems with software, not scratch some OCD itch.
- Your creative skills are 10x more important than how fast you can write code.
- Be the one who finds solutions, not problems. Become the fixer.
- Know yourself and don’t follow anyone else’s career “ladder”. Create the role that suits your personality.
- Talk back to your manager. Show him that you’re a decision maker, a leader, and not a follower.
- Teach as you learn. There’s someone a few steps behind you who you can help.
- However overwhelming or scary a technology appears, you can master it step-by-step. What tiny thing can you learn about it right now?
- Don’t be impressed by so-called “experts”. You have a unique perspective and experience of technology. Be an expert of that.
- Learn a technology to achieve an outcome or fix a problem. Learning without using isn’t real learning.
- Don’t be limited to a specific programming language because that’s “what you do”.
- Don’t let your standards be dragged down by mediocre developers who don’t see the importance of what you’re doing. Show them how it’s done.
- You could become an awesome developer in 10 years or 2 years. The choice is yours.
- Software development is full of adults who get their way by acting like babies. Don’t let them use a tantrum as a weapon to change your opinion.
- Sometimes you need to lose a battle to win the war. The end result is more important than being right all the time.
As you can probably tell, I believe that software development is as much a psychological game as technical. Us developers like to think we’re cold, hard, logic machines. But we act based on emotions as much as anyone else.
Understanding the emotions that drive you decisions and actions could be the key to unlocking your development potential.
Perhaps applying some of the above points could help you do that?