Software engineering is a high-demand and high-paying field, which is one (but not the only) reason we see many people wanting to become software engineers.
ManpowerGroup (a worldwide job search and staffing agency) reported in a 2022 survey that 76% of employers face challenges in finding people with the right skills in the technology sector.
You might be wondering: "How"? So many people are actively looking for software engineering roles.
The problem is that companies are desperate for experienced software engineers.
Unfortunately, the market for new software engineers is challenging and more competitive. But there's so much hope.
This article will give you ten pieces of advice for new software engineers. It'll be beneficial for self-taught software engineers too.
Let's go.
Since I like to be transparent, I want to let you know that I partner with Manning Publications. This means that this article contains affiliate links and that I may get a commission if you decide to purchase an affiliate product. Thanks a lot!
I've gone through the book "Skills of A Successful Software Engineer" written by Fernando Doglio, and these are some takeaways I want to share with you.
1. Choose the Company Wisely
Choosing a workplace where you'll learn a lot is vital for new software engineers.
Money will follow (I guarantee you).
Other perks you may want to consider are, for example:
- flexible working.
- parental leave.
- on-site gym/discounted gym membership.
If you want to know more, look at my recent article on how to choose a software engineering job.
2. Keep Tech Interviews Positive and Professional
Avoid ranting about your ex-boss, company, or colleagues during a job interview.
For example, let's stay that in your previous work, you felt micromanaged, and communication was terrible.
During the job interview, you can say that you want to work in a company where engineers are trusted to do their work, and there's good communication between team members.
State what you want instead of what you don't want.
3. Learn How to Work Remotely
If you join a remote team, understand the difference between synchronous and asynchronous communication.
Synchronous communication happens when you work with people in the same time zone (or very close). In these cases, you're expected to reply almost immediately to messages.
Asynchronous communication instead is when you work with people from different time zones. In this case, you're not expected to reply immediately.
In both types of communication, you'll need to be available, but remember that being available doesn't necessarily mean being online 24/7. Set some healthy boundaries for yourself.
4. Get Your Code to Work
When you're assigned a task, focus on writing working code.
You can think about the initial version of your code as a prototype.
You can (and you probably will) refactor and optimize your code later.
5. Your code doesn't need to be perfect
As a new engineer, you won't be expected to write elegant and beautiful code from the get-go. That's something that will take years of practice to master.
So don't worry too much about being perfect.
6. Writing Readable Code Is Essential
We, software engineers, spend much more time reading code than writing it.
This is why a new software engineer must write code for humans, not machines.
Get into the mindset of writing code that humans can read because even though programming means giving instructions to computers, your present and future colleagues will be the ones interacting with the code.
Make it easy for your colleagues to read your code.
Follow your company's coding standards, indent your code, and give meaningful names to variables, methods, fields, classes and tests (yes, even tests need to be named appropriately).
7. Try Not Over-Engineer
There is this ongoing saying that in software engineering, simple is best.
For the majority of the time, I agree with this.
Over-engineering means creating complex solutions to simple problems.
A great strategy to avoid over-engineering is to take a step back, think objectively about what you're doing and look at the bigger picture.
8. Learn How to Fix Bugs
Everyone hates bugs, but the reality is that we engineers are the ones to introduce them unintentionally.
An approach to deal with bugs is to use a Root Cause Analysis (RCA).
When encountering a bug, you need to understand these three things:
- Why is the bug happening.
- How to solve the bug.
- What you can do to prevent the same issue from happening again.
9. Learn How to Test Your Code
Writing tests to test your code is one of the steps in the software development lifecycle.
A few key things to note when approaching testing:
Know what to test: writing no test is terrible advice, as is writing all tests. It's best to write tests for the happy and unhappy paths. There's no need to cover all edge cases.
Test one thing at a time. Don't try to bulk test multiple calls. Just stick with one thing only.
Test your code. By this, I mean you shouldn't test code from third-party libraries.
10. Code Reviews Are a Source of Knowledge
Out of the different ways to learn programming (such as courses, books, etc.), code reviews are one of the best ways to understand and improve your programming skills.
A code review is a session where other engineers review your code (usually when you open a pull request) before merging your changes.
From code reviews, your colleagues will let you know about:
Problems with the logic of the code you submitted.
Inappropriate coding standards.
Potential bugs.
10 Career Advice for New Software Engineers Conclusion
The book's great. Even though I'm not completely new to the field, I believe in keeping a beginner's mindset. There's always something new to learn.
What advice would you give to new software engineers?
Let me know in the comments.
Until next time!
🙋🏾♀️
P.S: Manning Publications is a well-known publisher that publishes books on computer technology topics. If you're interested in investing in your knowledge, you can use this link and the code blmaddy21 to get 35% off all Manning products. Thank you!