Things they don’t teach you about being a developer!
Ok so alot of people are now leaving school or perhaps starting univeristy and thinking about their first job in the IT industry so I thought I’d try and pass on a little of what I’ve learnt over the years and see if that can help you land your first role or at least smooth the path a little.
So before I get started, let me put my cards on the table. I haven’t been a developer my whole life - I flunked school and ended up working in shipping and logistics until I was in my late 20’s. It wasn't until I met my beautiful wife that I decided to go to University as a mature student. I lived in Oxford at the time and Oxford Brookes University was just down the road so I enrolled myself on a computer science degree course.
3 years later and I’m awarded a first class honours degree and heading out to find my first developer job. Now I was very luck with my first role as I ended up working at Content Master. Now Content Master are experts in creating technical documentation and training and I was lucky enough to work on some amazing projects while I was there. However I quickly realised that my degree course, as good as it was, had left me with some serious gaps in my knowledge.
I moved on after a few years and worked for several other companies as a full on developer working with a variety of languages and tools but I always felt like I was playing catch up. Every company does things differently, has different policies and processes and uses different tools.
So let me tell you the things I wish I’d known before I started.
Software development is a people business.
So we’ve all seen the pictures and videos of developers hidden behind a pile of pizza boxes and cans of coke. Headphones on and in their own little world. This is a myth. Sure there are times you need to knuckle down and focus but modern software development is fundamentally a people business. You’re going to spend alot of time face to face (socially distanced of course), in meetings and generally talking to people. It’s through that interaction with product owners, testers, developers and customers that the real work gets done. So if you’re not very good at talking to people, or presenting in front of people then that’s something you are going to need to work on.
You don’t need to be a maths genius
There is a common misconception that in order to be a great developer, you need to be a maths genius. This is just plain wrong. Sure there are parts of the industry where maths is really important so being good at maths will help, but don’t let your poor maths skills hold you back as it’s just not a big deal.
Try and understand the business
If you’re applying for a job as a software developer for a company that makes bikes, then it’s really going to help if you love bikes as well. You need to connect with the software you’re working on. You have to want to solve the problems and it really helps if you understand the business. When you’re working on a feature you need to have a sense of how that feature fits in with the wider business. Why is it important, how can it be improved, what impact will it have. Don’t forget that the people asking you to develop that feature probably don’t understand the code - they have a requirement that they need satisfying. The more you can understand the way the business works, the better you can delivery what they want.
Learn, learn and learn again
One common question you’re probably going to be asked at interview is “how do you keep your skills up to date?” Personal development is important as a developer. Your employer might provide some training but you shouldnt rely on this. They are only going to train you on what you need for the role and that’s often not enough. Tech moves so fast, new tools and languages are released all the time and after a few years in a job you can quickly find your skills are out of date, making it very hard to find another job. Try and stay up to date with the latest tech. Set yourself goals, perhaps putting asside a little time each week to learn something new. Platforms like Pluralsight are great for this but there are loads of other free resources.
You only know what you know
What kind of developer are you? front end? back end? full stack? Do you work with React? Node? AWS? Azure? You can’t possibly know everything so don’t try. Be honest with yourself. A lecturer once told me that once you know one language you can typically become proficcient in another in a matter of weeks. I was once asked in an interview if I knew C++. I was honest and told him no, I know C and C# but I will know C++ by the time I start. He gave me the job and I knuckled down and learnt C++!
Be prepared to push back
Often when working on a project and when the deadline is getting tight, you might be pressured into cutting corners. Dont do it, it’s not worth it! Take pride in your work as a professional developer and be prepared to push back. Ultimately they will thank you for it. Often this comes down to communication and those people skills I mentioned earlier but If you know something is wrong then be prepared to say and stand up for yourself.
If you’ve got any top tips or things you’d like to share then let me know.