I was thinking lately I should share some thoughts with my younger colleagues making some first professional steps as software engineers. I’ll go straight ahead without any further ado.
Any first job is – good job
Instead of picking just the right job to start with, based on what I experienced – a lot better is to just take the first opportunity that comes across. Nothing adds on top of your qualities as working experience.
Get the job offered and enjoy raising you quality.
Communicate, ask for and offer help
There’s nothing better and more efficient than collaborating with experienced colleagues. Of course – they will not be able to promptly react on your request for their assistance, but they will usually respond back to you as soon as they have free time slot. Be patient. This will also build stronger relation with team members which is also very important for you and company. On the other side, whenever you feel like you have potential to help someone – offer the help, even if it turns out that it wasn’t so effective.
Read the technical books, catch up with technologies by trying
Read a lot at the beginning. It’ll be very hard at the beginning. Try spending 70% of your education time reading and remaining part trying the technology yourself. As your skills get better with the time, this ratio of 70 / 30 might change individually. Just reading and not trying will not work. There are already known great software engineering books that should be on your list.
Don’t forget that once, at the very beginning, we all struggled. We weren’t born as great developers. None of us. With the time we get good. Try to find love in software development. Finding love in it will give you advantage that you’ll enjoy catching up with new technologies which is daily routine. Stay humble. You’ll get good engineer with the time. Mentor your colleagues. Be kind to them, with young ones. Programming is hard at the beginning – you already experienced that.
It’s our obligation to provide excellent quality in what we do. Today, software is filling in every second of our interaction with our reality. Software bugs that we might introduce could cause people get killed in accidents. Or someone could lose millions due to incorrect calculations. It’s our duty to provide excellent quality in what we do. We’re well paid for what we do. Software engineering is not a game (although it’s fun).
Those were some basic thoughts I had on my mind. I’m looking forward to any discussion to follow!