I am often approached by programmers that are thinking about leaving their job but want to discuss to see if they are making a wise move. These conversations are quite sensitive in nature and I do not take them lightly, as the decision is rarely easy to make and will have a lasting impact on the programmer’s career and livelihood.
The thought of potentially leaving a job is often accompanied by the fear of being labeled a job hopper. In my experience, far more programmers tend to overstay their welcome and later experience difficulty with limited career prospects than those that move jobs too often. As I’ve written before, some positive flow in career moves is expected and even desired by hiring companies.
Technologists often rely on the more common and obvious signs to leave their employer (company product failures, layoffs, or reductions in pay/benefits) as primary motivators for making an exit. One could argue that experience at a failing company can be infinitely more valuable than time spent at a highly successful shop. Waiting for those alarms to sound, which could be false alarms, is a mistake for your career.
When should you think about leaving your job?
- You are clearly the ‘best’ programmer at the company and/or have no teacher or mentor available – Many people may get this wrong due to overconfidence, so you need to assess your skills honestly. Even if you acknowledge you are not the best, do you have access to others that you can learn from that are both able and willing to share their knowledge with you? Your company may have hired loads of great talent, but if these individuals are too busy to help or not interested in dialogue you are no better off than working alone.
- The technologies employed are static and make your skills unmarketable – The extended use of dated, proprietary, or very specific technologies can kill your marketability. If the firm is still using very early releases of popular languages or frameworks this could be a good indicator. Multiple years in a stagnant tech environment is much worse than the same tenure in a shop that consistently improves their tools.
- You have accomplished nothing – This is often not your fault. Perhaps your company is consistently delaying releases and never seems to deliver on time, where the problem could lie in the development process or management decisions and not on tech talent. If you look back on your stay with the company and can not point to any significant accomplishments (given a reasonable amount of time), consider the reasons why.
- You are underpaid with no upside – There are at least a handful of justifications to accepting compensation below market rate. The ability to work with great people is probably the #1 reason, with learning a valuable skill a close (and related) second. If you took less money with the expectation of a future positive that just hasn’t panned out, it’s time to look at your options.
- You are consistently passed over for interesting projects or promotion, and your ideas are not considered - If you are rarely given the plum assignments and not even a candidate for higher responsibility roles, the company simply doesn’t value your service. The firm feels you are doing enough to keep your job, but they do not see you as a true long-term asset. Keep track of how often you volunteer for a new venture and the company response.
- You are no better off today than you were when you joined the company - The phrase ‘better off’ can take on a few meanings. Traditionally one might use better off to refer to improved financial standing (raises), but you should add more qualified as well. If your skills, marketability, and compensation have not improved after a reasonable amount of time, you need to question why you are still there.
- You see little change in what you do – A consistent and small set of responsibilities for long durations tends to be a career killer. Working on one small part of a very large project/product is usually the culprit.
- You have no inspiration – Many domains in software development might not be all that interesting to you personally. In those situations, the technical challenge at hand or the opportunity to do something truly innovative may trump the lack of industry interest. Building a website for an insurance company might not be a dream, but scaling for millions of users could make it fulfilling. If you are finding no value in the work you do and lack any inspiration, there is probably something out there that will get you excited.
相关推荐
breath of fresh air to you and your students. The CS1 course serves as the cornerstone of the Computer Science curriculum. My primary goal is to motivate and excite all CS1 students, regardless of ...
在IT行业中,财务管理是个人和企业都需要关注的重要领域。面对额外收入时,是即时享受还是储蓄为未来打算,这是一个值得深思的问题。本文将探讨这个主题,并将其与IT行业的实践相结合,来阐述为什么储蓄至少部分额外...
When you purchase Python: Programming Language for Beginners - Learn In A Day, you'll find out the importance of this language, and how to begin improving your skills! These fun and easy tips ...
An introduction to ASP.NET programming 1. Describe the components of a web application. 2. Describe the four components of a URL, and describe what happens when you omit the file name from a URL when ...
Still, the fact that we have access to computers and mature programming languages means that there are avenues for us that were denied to the kings and emperors of yore. The purpose of this book is ...
### Introduction to Python Programming Python is a high-level, interpreted programming language that is widely used for various applications, including web development, data analysis, artificial ...
The goal is to provide students with a brief introduction to many topics, so that they will have an idea of what’s possible when the time comes to think about how to use computation to accomplish a ...
Leveraging these tools via Unity’s API or built-in features allows limitless possibilities when it comes to creating your game’s worlds and characters. This practical Cookbook covers both essential...
Deciding When to Submit a 510(k) for a Software Change to an Existing Device ______________________________________________________________________________ Guidance for Industry and Food and Drug ...
And next year, when you want to learn a new programming language or style of programming (perhaps OOP vs. functional), you can work through this book again, using new approaches to solve familiar ...
Leveraging these tools via Unity's API or built-in features allows limitless possibilities when it comes to creating your game's worlds and characters. This practical Cookbook covers both essential ...
management librar y wit h React is when to st ar t using it. The tendency is to use it all t he time at br st, but in my e xper ience t his approac h is a little e xcessive. Redux actions and reducer ...
C# is a relatively new language that was unveiled to the world ... This ease of learning, combined with the capabilities of the .NET Framework, make C# an excellent way to start your programming career
Let your imagination come to 3D life as you learn real-world programming skills with the JavaScript programming language – the language used everywhere on the web. This new edition is completely ...
In addition, we'll also teach you how to setup and use the Code Blocks IDE, which will help you greatly when programming in the C language. In this book you'll learn: Introduction to C Programming ...
Learning a new programming language can be very boring when you don’t get the opportunity to put knowledge into practice right away. In this book you will have the opportunity to write code, use ...