I wrote this post after reading an interesting thread on Reddit a while ago, and from my own experience. Software development is one of those jobs where the actual job can be quite different from what you learnt during a college or university course.
In this article, I’ve listed 16 tips that can help you if you’re looking to start a programming career. Some of them are from the Reddit thread, and others have been expanded from my own experience.
1. Version Control Everything
Version control can save your life.
Well, not quite. But it can save you from bad situations and help you save time.
Version control, in case you don’t know, is a system that software development teams implement, to allow them to store their source code on another server. It keeps track of changes made to the code, and allows teams to work on only their bit of code without fear of their work being lost.
If you use version control (and every team should), then you reduce your risk of losing work if something goes wrong. You can also reverse any changes you make that don’t go to plan.
I use Github for version control for a web app that I’m creating. It has helped on several occasions. My desktop crashed and needed to be reformatted, and in that case, the code was able to be restored easily. Another time, I made some changes that made the code worse. I was able to restore an earlier version pretty easily.
You can use it for database code as well, as I’ve written here: The Ultimate Guide to Database Version Control, CI/CD, and Deployment
2. Use the Team’s Programming Standards
Programming standards exist in a team to make sure the code is consistent and easier to maintain. These examples cover many areas of programming such as commenting, module structure, and formatting of code.
You might have heard about the importance of commenting your code. It helps to explain what the code is doing. Jeff Atwood has written a few posts on Coding Horror about commenting code, so it has its pros and cons.
However, if the team you’re joining has a standard for commenting code, whether it’s no comments, some comments or a lot, then follow the standard. Regardless of how you feel about it, it’s the team’s standard, and it’s better for everyone in the team if all code conforms to it.
3. Learn New Technologies and Tools
Software development is a fast-moving industry. Languages and frameworks come and go all the time. New programs are created to help developers with their tools. Even new standards are developed.
For example, when I was in university learning HTML and CSS, the best way to format and layout a web page was to use borderless tables. Now, this practice is frowned upon, as recent changes in HTML and CSS allow the use of div tags to achieve a better result.
If you’re using old practices in the current world, then your skills and ability to work with teams won’t last that long.
Also, you don’t want to get stuck using a language that is no longer as common as it was. It can mean you’ll get pigeonholed into using that language and it becomes harder to move around and find new roles in the future.
In my first role, there were a few developers using an old technology to support an existing application. This was an old and obscure programming language, and the only reason the language was still being used there was because it was too expensive in the company’s eyes to upgrade (I have a pet peeve on companies being against upgrading old software, but that’s a topic for another post).
You don’t want to get into this position. Keep trying to learn new technologies to keep your career active and relevant.
If your employer wants to send you on a training course, then do it. Find ways to improve your skills and stay current.
4. Be Friendly With DBAs and Sysadmins
The system administrators (sysadmins) and database administrators (DBAs) can make your life a lot easier. It really helps to be nice to them.
They can help diagnose problems you’re having, they can speed up requests you might have to make changes to the system, and they can also help to configure the system you’re working on to help your team or your project.
If you’re on good terms with them, they can make your life easier. If you don’t know them at all, then you’ll probably be treated just like everyone else.
5. Don’t Get Religious About a Language
Back in the day when I started programming, there were constant debates about which language was better between Java and .NET. There is still a lot of debate on the Internet about the pros and cons of different programming languages – which one is the best, which one is rubbish, and so on.
Don’t get too caught up in these debates. The truth is, every programming language has its pros and cons, and they all have their own way of solving a problem. The better way to approach a choice of language is to understand the problem, and choose a language that is best able to resolve the problem.
Having an open mind about languages is helpful.
6. Create Your Own Work-Related Side Projects
Having a side project is a great way to improve your career. John Sonmez from SimpleProgrammer mentions the benefits of having a side project, and even has an email course on starting a blog to improve your career.
A side project is a great way to improve your career, because:
- It can improve your writing skills (if it’s a blog)
- You can learn new technologies and skills
- You become more marketable and stand out in your field
- You can share your experiences
I’ve been treating this blog as a side project for some time, and I’ve found it’s helped in these areas
So, I recommend starting a side project. Whether it’s a blog, a web site, a software tool, or something else, get started on it.
7. Learn Unit Testing
Unit testing is an important skill to learn. You might have learnt in university or college that the earlier that defects are fixed, the quicker and cheaper it is. Unit testing is one of the first places this is done.
If you can write effective and repeatable unit tests, it can save time for you, your team, and improve the quality of your code. As good as you might be as a developer, your code will often have defects in it. Unit tests help to catch those defects before they move on.
I’ve recently been involved in the testing phase of a project, and I can say that if unit tests are run and defects found earlier, it helps to save everyone’s time in the team.
8. Take Initiative and Suggest Ideas
Companies love it when their employees take initiative and suggest new ideas. If you’re a new employee, you’ll have a fresh way of looking at problems that other employees might not see.
If you’ve got an idea that you think will improve the company or your team, suggest it to your manager. See what they think.
If it’s something that you can go and do first, such as create a prototype or do some research, then do that as well. Some of the smaller ideas can just be done.
Everyone wins if better ideas are implemented.
9 – Be Pragmatic and Open Minded
Sometimes developers need to make decisions. Other times we have decisions made for us and we just need to follow them.
What I’ve learnt is that it helps to be open-minded about ideas and approaches. Your idea may not be the best one when other ideas are considered.
Also, it’s good to consider the interests of the company as well. The best and most elegant solution may not be the most appropriate. A comment in the Reddit thread sums it up quite well:
“Whoever tasked you with a job wants a solution to a problem, they don’t necessarily need it to be pretty. If the elegant solution requires two weeks of testing and development but the problem could be solved by a temp doing data entry for an hour, suggest this alternative.”
10 – Don’t Settle
The IT industry is one that has been in demand for a while, and I think it’s one that will stick around for a while. If you have the skills and the desire to keep working in software, then that’s a good sign.
If you’re not enjoying your current role, don’t settle.
There are plenty of jobs out there, so you don’t need to stay in your current job. If you have a bad manager, a role that isn’t going anywhere or has no room for improvement, or any other issues that impact your ability to do your job, don’t be afraid to move jobs or companies.
You have choices in your career. I’ve been working in the IT industry for about 9 years now, and I’ve changed roles quite a bit. Changing roles gives you varied experience which gives you different insights into the process and stages of the SDLC.
When you start your programming career, it might seem like there isn’t much, but there is a lot out there.
11 – Don’t Burn Bridges
This is related to the previous point, but if you move on to other roles, don’t “burn your bridges”. Don’t leave places on bad terms or make it hard for companies that you leave.
You never know what will happen in the future. A previous manager may end up being in charge of hiring at a future job, and he’ll recognise your name when you apply. You might need to get a reference from a past employer in the future. Or, a future job might not work out and you might desperately need to go back to your old employer.
It helps to leave jobs and companies on good terms. It’s good for them, and it’s good for you.
12 – Know When To Say No To New Projects
Getting started as a software developer can be exciting. You just want to get into the office and work on cool and exciting things.
However, most companies have more work than people to do the work. Often they can give you more work than you can handle. If you like having heaps to do, this can be good.
But, it’s good to know your limits. Working 40 hours (or 45 or 50) hours per week may be the norm. If you’ve got plenty to do and are asked to take on another project, you should seriously consider if you have the time to work on it.
It’s better in the long-term to say no to work if you have no way of doing it. It might look like you’re pleasing your manager if you say yes to the new work, but if you can’t get it done, then everyone is impacted.
A phrase I’ve been trying to live by recently is “choose discomfort over resentment”, which I think is a Brene Brown quote. It means that while you might have some short-term discomfort if you say no, you won’t have any resentment in the long-term.
13 – Good Code and Bad Code Gets Recognised
If you write code and think it won’t get noticed, then you’re wrong.
Good code is an art form to work with. It’s easy to read, easy to maintain, fast, and gets the job done.
Bad code, on the other hand, is a mess, unmaintainable, and can be hard to understand.
The thing is, both kinds of code gets noticed. Good code will get noticed by other people in the team, and will be appreciated.
Bad code, as well, gets noticed by the team. It makes people’s life harder, and support in the future can be difficult.
So, when you start your programming career, take the time to make your code better. Improve the readability, remove waste, and generally make it more maintainable. People will notice.
14 – Understand the Users
As a developer, it can be easy (and expected) just to code to the requirements that have been provided.
Great developers have a desire to understand the role of the user when developing the software.
Understand the users role. It can help you make decisions on what to develop. After all, the users are the ones using the software for their jobs, so they are the ones impacted by any changes and decisions that are made.
The behaviour and needs of a user are not often captured in the requirements. Sometimes, in agile user stories, the “why” is captured, but this is often just a sentence.
If you can, try to spend some time with the users to understand what they do and how they might use the software. It can improve your development skills and decisions that you make.
So, there’s my list of tips for those looking to start a programming career. What other tips do you have?
Career Action Tip: Read these tips. Decide on one that you can implement in your own career.
Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!
Image courtesy of imagerymajestic / FreeDigitalPhotos.net