So I started working last year as a software developer. When I started, I had no clue what I was doing and I just feel like there’s not a lot of people who talk about this. A year later, I feel like I’m a much different person and as someone who started from knowing basically nothing, if you’re just starting out and finding things tough, you can do this!
I’ve made a lot of mistakes. But that’s how I’ve learned most of these lessons. I’ve learned a lot this year. So here are the top 8 lessons I learned in my first year as a software developer.
1. Where does your code actually run?
Now this is something they don’t really teach at university. Infrastructure. Where will the code you write actually run? Is it running in on-premises servers or is it running in public cloud? What servers are they running on? How are you ensuring that the servers are highly available and secure? Are you load balancing between multiple servers? How many test environments will you need to set up and how available do these need to be? What are the consequences of any down time to your application and how will that change your infrastructure?
Then you have to think about how you’re going to package your code to run on your selected infrastructure.
Coding is much about actually coding the software as it is about coding the infrastructure that the code will sit in.
2. Configuration Is Important
You know how at uni when you’re doing an assignment, you might have variables. Maybe you’ll store them locally within the function. If you’re good, maybe you’ll store them as global variables. But really, no one cares because the assignment is just auto-marked so if your outputs are correct then you get 100%.
What I learnt working in the industry? You need a file to store all your configuration properties. In your code, you retrieve the variables from this properties file. That way, not only is it easier for you to make quick config changes, but it’s also easier for anyone else who has to make changes to your code or troubleshoot a bug in your code without actually touching the logic of your code.
3. Log Everything
Ah this is definitely something we don’t think much about at University. I think at uni I only ever implemented any type of logging if it was part of the marking guideline. Otherwise, I’d completely skip it. It just never really served any purpose since I could just troubleshoot issues by using print statements.
You can’t do that unless if you’re working in a dev environment. You’ll most likely have limited access to production servers so logging is what you’re going to rely on to troubleshoot bugs.
4. Code Defensively
Edge cases are crucial to think about. Code like everything’s going to go wrong, because it will.
Test. Test. Test.
I remember this being mentioned in passing at university but I never really understood why this was that important and absolutely just hated testing.
5. Documentation
Documenting how your code works is important.
From the perspective of an organisation, if you are on leave or leave the company, someone else will need to know how your code works and all the configuration details. So being able to document your process in a succinct way is so important.
6. It’s not just about code
Understand the whole software development life cycle. Even though you’re a developer, you’re not stuck in the development phase of the software development life cycle. You’ll also need to work with testers and your customers or clients to build software that is reliable, usable and meets their needs.
There’s a lot more to delivering software than just the code.
7. Things will go wrong
That’s fine. It’s expected. Things always go wrong. It’s about how you handle the situation when something does go wrong.
8. Always be learning
In technology, things are always changing. There’s always something new to learn. Whether it be a new framework or new technological solutions such as AWS public cloud. So embrace it. Don’t be scared of change.