Career planning, or setting career goals, is a good thing to do for your career as a software developer. Learn why, and how, in this guide.
What Are Career Goals For?
First, let’s have a look at the reasoning behind career goals.
Career goals are basically a statement, a goal, that you have decided that you’d like to achieve for your career. You might have goals for the other areas of your life, such as financial or life goals, but the career goals are just focused on your career.
These career goals can be focused on achieving a specific job title or area of expertise, working for a specific company, or getting a role in a certain industry. We all should have career goals. It provides the direction and motivation that we need to get ahead in our careers.
If we don’t have any goals or targets or any idea of where we want to go in our career, then what should we be doing?
Get Your SQL Cheat Sheet
Three pages of SQL commands to save/print for easy reference
Why Long-Term Career Goals?
Long-term career goals are goals that you set for your career that have something to achieve in the long-term. For your career, long-term is probably anything over five years.
While it’s easier to set short-term career goals (get a promotion, pass an exam, finish a project), long-term career goals are harder. They require you to think of where you want to go in your career and what you ultimately want to do.
Reason 1: Satisfaction with Your Job
The aim of career planning, eventually, so you’re satisfied and happy with your job and your role. To know this, you’ll need to work out what you want to do in the long term – five or ten years. Some questions to ask yourself could be:
- Do you enjoy your current role?
- What do you like about it?
- What don’t you like about it?
- Do you know or work with people who enjoy their role?
- What do they like or not like about it?
- Are you prepared to take training or further education to make progress?
These may help you decide what you’d like to do. You may currently be doing development work and love that, so being a developer could work for you. You may like to take on extra responsibility, which could cause you to move into a development team leader role.
You may like to talk to people and work out what people want from a system – generally the role of a business analyst. You might like to manage a team of project managers, or you might be attracted to the world of system testing. It’s all up to you!
Reason 2: Know How to Get to the Destination
If you know what you want from your career, or roughly where you want to be at a certain point in time, this is a great first step. I’d probably say that’s the hardest part – working out what you want.
Now that you know what you want, you can start working out how to get it. Ask people, do research, and find out information about your target role and the progress:
- Talk to people in your target role about how they got to where they are and if they have any advice.
- Research what your target role involves – skills required, experience, what you need to be able to do.
- Look into any courses or certifications you’ll need to do to help your progression.
For example, if you’d like to get into project management and you’re a graduate at the moment, you may need experience in several main areas of IT (development, analysis, etc). You may need experience dealing with different kinds of people in different roles. You will also need to know what the project manager does, and you may consider studying a recognised qualification such as the Project Management Professional.
Reason 3: Proactive Approach
Your career doesn’t just happen by itself. It’s all well and good to go to work and do your job, but you can’t just sit and hope for opportunities or roles to come to you and expect to end up where you want to be. You need to have a more proactive approach to progressing your career.
Talk to your manager about your career plans – what you want short term and long term. Talk to people in your human resources department about these things as well – they may have tips on what you could do. Let people know where you want to go with your career. If you hear about an opportunity or a role you’d like to try, say you’re interested. This also demonstrates initiative and confidence in your own abilities – good qualities to have.
Where To Use Long-Term Career Goals
Long-term career goals are used in a few places. While short-term career goals are used perhaps on your resume (in an Objective statement) or in a cover letter, long-term career goals aren’t.
The main place where I think long-term career goals can be used is in job interviews. A common question in job interviews is around your long-term vision or what you want to do with your career. Have you ever been asked that? I know I have.
If you know what your vision is, your long-term goal for your career is, then you can answer this question easier. Knowing what you want to do 5/10/20 years in the future is a good thing.
That’s not to say it needs to stay that way. Long-term career goals can change, of course. They are just focused on the long-term. My career goal has probably changed twice since I started working in the IT industry.
Another place I see long-term career goals being used is in conversations with other people, such as co-workers, bosses, or friends. People can sometimes ask you, “where do you want to go in your career?” or “what’s your career goal?” or something to that effect. Knowing what your long-term goal is will make it easier to answer that question.
What’s So Special About Software Developer Career Goals?
The reason I’ve written this post is to highlight some examples and tips of some career goals specific to software engineers.
What’s so different about software engineers? Well, they not only are capable of writing the code for a system, they also know how to design it for other programmers. It’s kind of like a stepping stone towards an architect role. It’s also not just a role that focuses on programming, as there is a design element to it as well. By design, I don’t mean the visual design or UI. I’m referring to the design of the code and modules and how the interactions between the code work.
For these reasons, the goals of software engineers are different. I’ve included a few tips below for coming up with your own career goals. Even if you’re not a software engineer, they can prove useful to you.
Setting Long Term and Short Term Career Goals
It’s recommended to set both long-term and short-term career goals because it gives you something to aim for in both the short and long term. Generally, short-term is defined as anything up to three years, and long-term is anything greater than three years.
Start by setting long-term goals. This should be what your ideal image or picture of your career is when you feel the most satisfied.
This is something that you’ll be aiming for in at least three years. It could even be longer than that – it could be five, ten, or twenty years – as long as it’s your own goal. As mentioned above, my long-term goal is to become an experienced IT project manager.
Short term goals come next. These are the goals that will allow you to get closer to your long-term goal. They generally have a target date of fewer than three years. They should align to your long-term goal and follow the SMART method mentioned below. Using my example above, a short-term goal for me could be to get a junior project management position.
Using both short and long-term approaches is an effective method for setting good career goals.
Setting Good Career Goals The SMART Way
One of the most effective ways of setting good career goals is using the SMART method of goal setting. The SMART method is actually an acronym. Each of the letters stands for one part of the goal, and while there are several alternative meanings for each letter, the general message is the same.
- S – Specific. The goal must be a specific one, as it has more chance of being achieved. It should answer the questions of “who, what, why, when and where”. A goal such as “Get a promotion” is not a specific one. A more specific goal would be “Get promoted to a Senior Network Administrator in my current company”.
- M – Measurable. The goal you set must be able to be measured, so you know that it is on track and when it is completed. A goal such as “Get a raise” is not very measurable. A more measurable goal is “Get a gross salary raise of $5,000 after my annual review this year”.
- A – Attainable. The goal needs to be achievable. It needs to be not too easy, but not impossible to get. When you realize that a goal is attainable, then you begin to focus on it more and this gives you the confidence that you need to succeed and achieve the goal. The goal above of getting the $5,000 raise may be attainable – a goal of getting a $50,000 raise most likely wouldn’t be attainable.
- R – Relevant. A goal must be relevant to you and your career to be effective. It can meet all other criteria, but if it doesn’t provide the satisfaction to you or get you further towards your long-term goal then it isn’t relevant.
- T – Timely. The goal that you set needs to have a time constraint applied to it. It needs to have a deadline or target date as to when it needs to be achieved. This is done to motivate you, to allow you to achieve the goal in the given time frame and move on to the next one. Goals without times are just visions or dreams – they have no set date and therefore no concept of failure. When you set goals, place a time constraint on it – it could be the end of the year, within six months, a specific date in the future. As long as it has a date (which also meets the Attainable criteria) then it is timely.
Setting good career goals, both for the long-term and short-term, should help you advance your career and allow you to focus on what’s important to you. I hope you’ve found this information useful, and I encourage you to set goals for your career if you haven’t done so already!
Think Of What You’re Doing Now and Where You Want To Be
I think the best way to come up with a long-term career goal is to think of where you are now in your career, think of where you want to be, and then fill in the gap.
Well, actually, the long-term goal is more of the “where you want to be”, and filling in the gap is how to get there, but it can help to think like that to come up with your goal. It can help you decide if that’s what you want to do and how to get there as well.
Examples of Long-Term Career Goals
Alright, so now let’s take a look at some examples of long-term career goals. I’ve listed in some roles here, which can be substituted for other roles that fit your desires.
- “Effective and experienced project manager capable of delivering multi-year projects”. This demonstrates the kind of role you want to move in to, and the level of experience or responsibility needed for it. Multi-year projects are not simple as they take a few years to deliver.
- “Team leader for a large team of software developers.” This could be for someone who is a software developer and wishes to move into a team leadership role, focusing on larger teams. Many skills need to be learnt for this transition.
- “Become the most knowledgeable and effective Java developer in the area.” Becoming knowledgeable is a good aspiration, and knowing the development language inside and out is a great goal to have, especially for your local area.
- “To gain the Expert level ISTQB CTEL certification for software testing.” Getting a certification in your focus area is a common goal, but you also need to determine why you want it. This certification is for software testing, but you can rewrite it for other areas of IT.
So, there are a few examples of long-term career goals that work for the IT industry. You can take those and rewrite them to match your desires. Remember, these are just examples of long-term career goals. Goals are quite personal and you should put in your own plans into these goals.
Tips for Coming Up With Career Goals
I’ve included a few tips here for coming up with your own career goals.
Getting certified is a great goal to have. It shows that you are dedicated to your career, it shows that you can focus on something with an aim to achieve it and that you’d like to stand out from other people in the industry.
There are many certifications available to those in the software industry. If you’re focused on a certain language, then you can look at getting a certification from that particular vendor. For example, if you’re a .NET developer, you can look at getting certified by Microsoft, such as getting an MTA or MCSD. If you’re into Java, you can look at Oracle’s Java certifications.
There are also other certifications available that are not vendor focused and are more geared towards a software engineer role. The Software Engineering Institute offers several certifications for software engineers:
- Computer Security
- Measurement & Analysis
- Resilience Management
- Software Development
- Service-Oriented Architecture
- Smart Grid
- Software Architecture
Alternatively, the IEEE Computer Society offers two certifications for software engineers:
- Certified Software Development Associate (CSDA)
- Certified Software Development Professional (CSDP)
Either of these certifications can be helpful to you in your role as a software engineer. Have a read of the requirements of these certifications and see if any appeal to you.
Setting a goal to get a certification, by a certain point in time, is a great thing to do for your career as a software engineer. Remember, good career goals means they should be specific, measurable, attainable, relevant, and timely.
Learn a New Programming Language
Software engineering can involve an area of actual development. A good example of a career goal that you might want to set is to learn a new language.
There are so many languages out there that software developers and software engineers can learn. I know a few from my days in university, but there are so many that I don’t know and some I haven’t even heard of!
Setting yourself a goal to learn a new language can be a good way to improve your career. Not only will it make you more versatilebut it will alsoll help you understand programming and concepts in another language.
I won’t list all of the languages here, but if you’re interested in learning another language, think about what language you want to learn. What is used in your workplace that you don’t know about? What are you curious about?
Do some research online about how you can learn this language. There are many ways to learn a new programming language, which I’ve written an article about, so you can select the method that works best for you.
Learn A New Technology In Your Preferred Language
Learning new skills doesn’t have to be restricted to new languages. You can look at setting yourself a career goal to learn a new technology related to a language.
This new technology could be something related to your language, such as a new framework or a complementary language (e.g.. learning Hibernate if you focus on Java, or PL/SQL if you focus on Oracle SQL).
Also, you can look at learning a new tool or software relating to the language. Doing this can help you become more proficient and effective at your job. Is there a tool that is use commonly in your workplace, but you think you could learn more about? It could be a development environment, diagramming or design tool, project or bug tracking tool, or anything else that you’re not quite sure about. Learning the tool and becoming better at your job is a great area for software engineer career goals.
Lead a Team of Software Developers
Another common goal for those in the IT industry is to become a team leader. An example of a career goal, or a tip for software engineers, is to become a team leader of software developers.
Becoming a software development team leader is a common step for software professionals. It means you are responsible for the team, the work they provide, and making decisions that affect the team. You will need t use the knowledge and experience that you have to benefit the team and the company overall.
Getting a role as a software development team leader takes a bit of work, which I’ve also written an article about (https://www.databasestar.com/how-to-become-a-software-development-team-leader). If you’re interested in the extra responsibility, and extra salary that comes with it, think about setting this as a career goal.
Improve Other Skills Related to Software Engineering
You don’t have to set a career goal that is about learning a new language or getting promoted. You might want to look at other skills that complement or are related to your role as a software engineer. Some of these skills are:
These skills are used often by software engineers or people in the IT industry. If you feel that you have room for improvement in any of these skills, or any other skills that you use, setting a career goal to improve them is a good idea. The hardest part about setting these goals, I believe, is making them measurable. A good goal is measurable, and it can be hard to “measure” if you’ve achieved these goals or not.
You could put down a goal to attend a course, or to perform an evaluation after a certain period, or to ask those you work with if the skills have improved between when you set the goal and your target date. Ask them to rate your skills before and after. This way, you can compare the numbers from a few people and see how they have improved.
Should You Get a Master’s In Computer Science?
One goal I’ve heard software developers have is getting a Master’s in computer science. Is this a good idea?
A Master’s (or Masters) degree is an additional degree that is available after you complete a Bachelor’s degree. It’s also called a “post graduate degree”, or “post grad”, as it’s done after you graduate (from a Bachelor’s degree).
Usually, a masters involves:
- An extra year or two of study
- A thesis or research paper, which is an in-depth document on a subject area of your degree
- More education fees
Let’s have a look at the advantages and disadvantages of a masters in computer science.
Advantages of a Masters in Computer Science
Getting a masters degree in computer science obviously has a few benefits. These include:
- An advantage over others in your industry, due to the additional qualifications. This can help when job hunting and during the interview and selection process.
- In-depth knowledge about a particular area of computer science
- Fulfilment and enjoyment from learning about a topic you’re passionate about
- Possibly higher starting salary when you get a job
- Possible pay raise if you’re already employed
- Possible increased chance of promotion or job prospects, depending on your field.
- Able to use the abbreviation MCS on your resume or business card (which stands for Masters in Computer Science).
As we can see, there are a few advantages to getting a masters degree.
Disadvantages of a Masters in Computer Science
There are also some disadvantages to getting a masters degree:
- Additional cost of tuition. Masters degrees can be expensive
- More time to finish your degree. It usually takes two years, sometimes less, to finish a masters degree. This can prevent you from getting a job earlier than if you had a Bachelors degree.
- A degree which may not do anything tangible for your career. A masters degree is a great achievement, but sometimes it may not help you get a pay raise or job you’ve been hoping for, as there are other factors involved.
That’s about all I can think of when it comes to the disadvantages of getting one. I don’t actually have one myself, so this is just based on the research I’ve done and speaking to others.
What’s Best For You?
To determine if you should get a masters degree in computer science, you should work out what you want and what your priorities are.
- Are you happy to continue studying for a couple more years?
- Are you passionate about the subject area?
- Are you financially able to cover the cost of tuition? (This will depend on your country, as loans work differently in different places.)
- Do you have the time to commit to studying?
- Is it actually the best thing you can do for your career in the long term?
If you can answer these questions, it should give you some indication on whether or not you should get your masters.