Career Advice For Young Developers
Posted by Davy Brion on October 25th, 2008
Over the past few years, i’ve seen a few young developers make some not-so-smart decisions about their careers and futures. I’ve always found situations like that frustrating because i hate seeing good developers make bad choices. So i decided to write down a bit of career advice for young developers:
Make sure you like doing your job
To me, one of the most important parts of a job is the fact that you should enjoy doing it. If you do the math, you’ll quickly realize that you’ll spend somewhere around half of your active adult life at your job, so you might as well try to make the most of it. If you’re unhappy or frustrated at your job, you’re essentially wasting a large part of your life so you’re better off trying to find something that you actually enjoy doing.
Make sure you get satisfaction out of your job
A lot of people want different things out of their job, so it’s hard to quantify those. For some people it’s really important that their work is actually useful or helpful to others. Other people might get more satisfaction out of the fact that they are continuously increasing their skills. Other people want to make sure they work on very profitable stuff. Whatever it is that satisfies you in your job, make sure you get it. It keeps you motivated, it keeps you sharp and it helps in keeping you happy in general. Keep in mind though that there will always be days or short periods of time where you don’t feel like you’re getting that satisfaction out of your job. It’s only natural that this happens once in a while, but if you feel like that on a regular basis, you’re probably better off looking elsewhere for something that suits you more.
Choose between actual jobs, not companies
If you have to choose between jobs, go for the job that seems the most interesting and fulfilling. Do not base your decision on the actual companies offering the jobs. Always keep in mind that there are plenty of developer jobs out there (especially if you’re good) so you don’t really need to focus on stuff like job security. This can be different if you already have a family to feed, but then again, this advice is targeted to young developers. Go for the job that interests you the most, it will usually enable you to grow as a developer and increase your skill level substantially (which in the long run is the only true way to achieving job security anyway… more on that later).
If you like developing software, then keep working as a developer!
Developers that start working for larger companies often feel the need to climb up the corporate ladder to achieve some sort of management job. Because managers are important right? If you want to make it into management, you better be very sure that it’s really something you want to do. Be prepared to be stuck in meeting rooms with people who often don’t really know what they’re talking about and are often only interested in advancing their careers, even if that means if it has to be at the cost of others. If you’re a good developer and you like developing, there’s absolutely nothing wrong with staying a developer. There are far too few good senior developers, and those people are always in heavy demand.
Don’t put up with being a Code Monkey
Some developers are often considered as Code Monkeys, and they don’t really get a lot of respect. Those developers can be just as valuable as any other developer, so if you ever feel like people look at you as just a Code Monkey, there’s no reason to put up with that. You’d be better off finding a job where the developers are treated and appreciated as the valuable resources that they are.
Learn from your co-workers
Make sure you can learn from the people you’re working with. If you’re stuck in a place where you feel that you aren’t learning anything new from your co-workers, you can quickly become demotivated, which is a terrible way to spending large parts of your days. A job where you frequently learn new things from your co-workers is really a blessing. Not only are you getting better at what you do, you’re basically getting better for free, without having to invest your personal time into it.
Keep up with new technologies and ways of working
As i just mentioned, it’s very important that you learn from your co-workers. But that doesn’t mean you shouldn’t spend a bit of your own time into improving your skills. You don’t need to spend hours a day outside of work on getting better, but a couple of hours here or there could really make a big difference into increasing your skills. Not only do you get better from it, it also enables you to improve the skills of your co-workers, which in turn makes you a more valuable developer. Learning from people is important, but allowing people to learn from you is just as important.
Don’t focus on job security
I used to work at a large company in the financial industry. I was there as a contractor, so i wasn’t a ‘real’ employee of the company. I did meet some young developers there that only started working there because it was a large company where they had job security and a chance to build a career for themselves. The thing is though, those large companies usually aren’t a very satisfying place to work. Things take a long time to get done, and the bureaucracy alone is enough to drain you mentally after a few years. If that happens, you’ve probably found other ways to get some satisfaction and happiness out of your life, usually outside of your work hours. Odds are that you haven’t really invested much in your technical skills, and before you know it, your skills are pretty much outdated, and you become less attractive as a potential hire for other companies. At that point, you’re pretty much stuck at a crappy job. The job security you wanted at first is there, but you’ve lost a lot of options for you personally and you’re now stuck in a crappy job. If you want long-term job security, the best way to achieve that is to just make sure that you’re very good at what you do, and that you love doing it. If you’re a great developer, you will always find a great job somewhere. Yes, even when things in this business aren’t going too great. Great developers will always be in demand.
Don’t let money dominate your decisions
I’ve seen promising developers leaving their jobs just so they could make more money somewhere else. Now, if you’re sure that you’re going to like the new job more, then you’ve obviously made a good choice. But it’s important to be careful. You can always make more money somewhere else, but you often don’t know what kind of crap you’ll have to put up with to get that extra money. If you let money be the deciding factor, you might end up in situations where the only benefit of the job is the paycheck. If making money is your only goal in life, then you probably don’t mind too much. If you want to enjoy your career, you’re probably better off choosing the interesting jobs over the higher paying ones.
Always make sure you can leave your job if you’re not happy there
A lot of companies offer nice benefits to their employees. Some of those benefits could tie you into the company for the long term and you should be careful about those. No matter how much you like a job, one bad management decision could change everything. If something like that happens, and you suddenly aren’t happy in your job anymore, it really would be a shame if you feel like you can’t leave due to financial consequences of having to drop those benefits. Financial institutions are especially good at this… they typically offer employee benefits for their financial products, and if those products (like a loan for a house) tie you into the company for a long time (like, 20 years or so) it might become hard to leave that job due to the extra money it’ll cost you. Make sure you don’t get caught up in a situation like that, and make sure you become great at what you do. If you are great, you’ll usually end up with more financial flexibility anyway
In conclusion
I’m not going to claim that the advice outlined above is a guaranteed way of having a successful career as a software developer. Most of it is entirely up to you and the amount of work you’re willing to put into it. I do think that the advice above can definitely help you avoid some bad situations that could otherwise sneak up on you.
If you want to add some advice to the list, or think i’m wrong about something, be sure to tell us in the comments
October 25th, 2008 at 6:01 pm
Excellent Post!
October 26th, 2008 at 9:36 am
Thank you! Really cool post
October 26th, 2008 at 1:01 pm
Most of this advice is valid for other jobs as well, not only for developers.
There are basically 2 rules
1)Choose something you like to do
2)Try to keep your options open
October 26th, 2008 at 7:14 pm
- Learn different programming languages
Preferably programming languages that follow a different programming paradigm. If you are for example a .NET or Java programmer, look into dynamically typed languages like Groovy or Ruby, look into functional programming languages like Haskell and Erlang. While gaining insight in different programming languages, you will most likely improve your programming style in the language you use most often.
- Learn stuff / read books about other topics than software engineering
Read about starting up a business, about being an entrepreneur, about marketing a product, about finance and managing your money.
- Sleep more
October 27th, 2008 at 7:51 am
I have 2 years of experience in Development, switched 3 companies in last 2 years due to dissatisfaction with work and ready to join another company. i have threat that i haven’t good profile of experience but again i am doing because to be more concerned about working environment.
October 27th, 2008 at 8:32 am
Well, my 2 pence worth… never leave a job in less than 12 months. Get a stint of at least 24 months with a company on your CV.
The advice in the article is all sound, but you have to be aware of how your CV reads to an employer.
October 27th, 2008 at 10:41 am
Couldn’t disagree more, Guy Murphy. I’ve been a developer for almost 10 years now and am perfectly comfortable jumping ship whenever I don’t feel that a company or position is not the right fit for me. I’ve also left a company because another company offered me a much better deal. It’s called supply and demand. If someone is happy where they are then they should stay where they are. But there’s no need to stay at a job you don’t like for 12-24 months just to impress an imaginary future employer. Sounds sort of cowardly, to be honest with you.
October 27th, 2008 at 10:43 am
Thanks for those advices.
).
I think freedom is in some of those. Finding fun in what we do, being great at it, working in a great environnement (people, projects, …), all those will make you happy and free of your decisions (about work
Just to add something, I think that financial freedom is something important too, related to ‘Choose between actual jobs, not companies’, ‘Don’t focus on job security’, ‘Don’t let money dominate your decisions’, and ‘Always make sure you can leave your job if you’re not happy there’. Your lifestyle and expenses will impact your professionnal freedom
October 27th, 2008 at 11:23 am
Why not let other people give the right to make mistakes ?
How can you be so sure that your way is superior to others ?
October 27th, 2008 at 11:25 am
@Kazuo M3
i didn’t say this advice is superior to any other… it _can_ help you, i didn’t say it _will_ help you
October 27th, 2008 at 1:21 pm
That’s a fair comment Scott, and your experiences should for sure be weighed against mine. I too have been a developer for over 10 years, but I can only really comment on the job market in the UK in particular and the EU more broadly (which for me boils down to Spain).
While you should indeed move out of any position that is making you actively unhappy, here employers will most certainly look at the pattern of your employment history. If they are looking for somebody to fill a position for a couple of years, and you have a work history with positions measured in months, then this will obviously count against you.
Remember, this is advice for young developers, not advice for developers with 10 years commercial experience. Employers will want to see one position of somewhere around 2 years. They will want to know about projects you’ve worked on end-to-end etc.
If you plan on moving rapidly from position to position, get yourself 2 years commercial experience, then contract. You’ll earn a lot more money, and you’ll have the more fluid experience that might suite you.
It’s not about either bravery or cowardice. It’s about being smart, and getting what you want. There’s no moral imperatives involved.
October 27th, 2008 at 2:46 pm
I disagree with this post. You have a very optimistic point of view:
“Things take a long time to get done, and the bureaucracy alone is enough to drain you mentally after a few years. If that happens, you’ve probably found other ways to get some satisfaction and happiness out of your life, usually outside of your work hours.”
But why are you so sure that that everybody finds or at least tries to find satisfaction either at work or outside it? This is a very optimistic approach.
Life is mostly about survival. Satisfaction is a luxury, it’s nice if you can afford it, but if not, then not, it’s not a big thing. You can function perfectly well while not being particularly happy.
October 27th, 2008 at 2:51 pm
Some addition info: actually, because of this optimistic point of view, this advice can be very harmful to young developers. It raises unrealistic expectations. If you are just out of school and have an empty CV, ANY job is a good job, because nobody really likes to hire beginners, so getting any job is sort of a miracle.
I graduted as a Bachelor of Business Administration, majoring in Business IT, specializing in Accounting Information Systems.
I was very enthusiastic about environmentalism so I wanted to design some sort of information system that something to do with it. Wasted 3 months getting such a job – no success. Then I said OK then let me design any information system – wasted another 3 months, nothing. Then I said, fuck, just give me any job that something to do with information systems – another 3 months, and finally I found a job. I became Junior Sales at an ERP consulting company. Now I was very bad in Sales but I could get from there into consulting, and from consulting into development. Since that I am an ERP developer – not the most exiting thing to do, but compared with these bad experiences, it’s OK.
October 27th, 2008 at 3:18 pm
[...] Davy Brion: Career Advice for Young Developers [...]
October 27th, 2008 at 3:21 pm
Miklos, if you’re living just to survive, then you’re wasting your life.
October 27th, 2008 at 4:09 pm
It’s a mistake to allow your work define you as a person. As a developer, you are unlikely to find a tremendous amount of satisfaction in any job you do. It’s sort of naive to even think that way. I write software for a living because it pays better than a whole host of other vocations that I could be doing and I never have to stand out in the snow or rain.
I learned long ago not to try to find satisfaction in work, it is the road to ruin. Find satisfaction from family and hobbies and strive to avoid chaining yourself to any job. Your goal should be to retire as early as possible with the highest standard of living possible. Let the other schmucks work their lives away.
October 27th, 2008 at 5:35 pm
Thanks a lot for the excellent article. It’s really useful for my future decision.
October 27th, 2008 at 6:08 pm
I’m always shocked by the attitude of people towards work – thinking that it doesn’t have to be (or can’t possibly be) fun and enjoyable. I spend the majority of my time at work so I’ll be damned if I’m gonna have a crap time.
@Guy Murphy: There will always be some employers who see a CV featuring lots of jobs under 12 months and think ‘No way am I hiring this guy’ and other employers will see that same CV and not care – it is a balancing act but I strongly believe sitting in any job you don’t like for longer than a couple of months is a mistake, in most circumstances.
October 27th, 2008 at 6:10 pm
I spend a lot of my free time at work reading blogs and staying up to date on things. I also work on my own stuff or experiment with other programs if I get bored.
October 27th, 2008 at 6:17 pm
This is really good. I could add some softening and broadening of The Rules, as below.
The company culture is your environment and well-being
- #6 Learn from your co-workers
moderates
- #3 Choose between actual jobs, not companies
because companies differ in how people share and collaborate.
And re #10 – Always make sure you can leave your job if you’re not happy there
The secret is “to need” to spend the amound of the job you’d get if you switch. I’m sure you are not recommending (back in 77) don’t work for Apple because the stock options tie you in.)
Time works it’s wonders.
October 27th, 2008 at 6:22 pm
It’s a nice article. How about switching jobs in the current scenario where companies are cutting cost? How about joining a financial firm during this time as a developer? Can anyone suggest what to do for next 6 months in case if you are not happy with your current employer?
October 27th, 2008 at 6:35 pm
My advice could be “Be at some place where your bosses are smarter than you”
October 27th, 2008 at 8:02 pm
@Roon
With the current economical climate, i don’t know what ‘kind’ of company would be better to join at this point… it seems like most company are vulnerable right now.
October 27th, 2008 at 8:27 pm
I had to make this very choice, last week.
A job with A LOT more money (living close to my girlfriend), or the current job I have (as an intern), which is very very fun for me, but across the country.
I chose the lower-paying, far away job because this is exactly what I want to do, and this is the perfect opportunity for me to get very good at it, by working with true experts in the field (optimization algorithms).
I graduate from undergrad with a BS in computer science this coming May, but I have already signed on. It should be a relaxing senior year for me now.
October 28th, 2008 at 1:54 am
Nice post. I enjoy it when people emphasize job satisfaction over career advancement, because career advancement is an empty prize and besides, job satisfaction leads to career advancement by is very nature while a lack of job satisfaction can make career advancement very difficult to achieve. I have great sympathy for those of you who have commented that it is not worthwhile or a vain daydream to find satisfaction in your career as software developers, or that you are a software developer because the paycheck is higher that some other alternative career. If you cannot take enjoyment out of the time you spend at work, I wonder how rich is the satisfaction you take out of your personal life? Accepting such a fate is a tragedy and betrays a gross malignment between ones conscious mind and the universe, and accepting it so completely as to recommend it as advice to young developers is beyond horrifying.
October 28th, 2008 at 6:23 am
A young developer needs to get experience, and lots of jobs require 1-3 years experience, so personally I’m not sure about the first 3 items, since getting a foot in the door can be the hardest part. I started as a junior programmer (coding, network & tech support, cabling, whatever was asked of me) and worked my way up, but of course that depends on where you are in the world and your qualifications. I’m now not far off what most developers are paid at Microsoft.
Also, I see “code monkey” in the same light as “lab rat”, both terms can be used in a derogatory way, but I don’t mind the label (and neither do some lab rats I know), binary simian also comes to mind
So I like your list, but IMHO the first 3 items may only apply to developers with a few years experience.
Finally, I used to think what BB says is true, but ~8 years ago, after working 10 years in the industry (lasting on average 2 years per job before getting bored and restless), I finally found a good job with interesting work with good people that pays well. FWIW, I work in healthcare developing clinical applications, which is probably a reasonable industry to be in in this economic environment.
October 28th, 2008 at 6:59 am
89 Ways for You to Become the Coolest Programmer in the World…
Since there are dozens of posts on becoming a better developer, but no single post with all the advice you need, perhaps, you’ll find this short guide useful.
1. Learn the Skills You Need
Learn the programming basics
“The goal of this guide is to b…
October 28th, 2008 at 7:18 am
An assertion to many similar posts, but it is worth repeating.
If we cling on immediate rewards ( say, money? ), we are going to miss something big out there. Yea, it is really cool to work with smart people! Sometimes, don’t you feel want to skip those people who are muddling through life?
October 28th, 2008 at 7:19 am
In the context of first 2 points I would like to quote Steve Jobs:
On learning from co-workers, you learn the best if you’re at a place where you respect everybody. Something about everyother guy you work with fascinates you. Be it the speed at which they take decisions, the depth they go analysing most difficult problems or the smart code they write.
As others said, a lot of passion into work originates from environment. Especially from freedom, challenges you face and feel of ownership for your components.
October 28th, 2008 at 8:24 am
lots of great comments here… thx
October 28th, 2008 at 9:50 am
Hey Davy, Just found your post through the top delicious list!
Congrats and keep up the good work!
October 28th, 2008 at 10:17 am
Nice observations
However, from my seat (the nerd) it’s not really that clear what the exact difference is between advice for young developers and just overall carreer and personal well-being advice per se… Moreover, some of the comments are just striking (’yeeeeeeeh, you’re soooo riiight’). I mean, come on, good performance and well-being are guided by a strong internal motivation for what you’re actually doing (Self Determination Theory, Deci & Ryan; and many studies who have been supporting that in various work contexts). I don’t get how you can do these activities the entire day (because that’s what work is) without even thinking why you’re doing it. On the other hand: it leaves nerds like us with plenty of interesting future projects
@ Roon: many studies have been focussing on the EVLN-principle (Exit, Voice, Loyalty, Neglect) in times of downsizing, restructuring and other organizational changes. The bottom line is: in case of high employability(*), employees tend to seek other jobs when confronted with job insecure times. High employable workers_will_find (as Davy would say) other jobs. The most strategic way in these changing times (and beware, it will only get worse) is investment in your own employability rate. And the only way to manage thàt in an effective way is… by liking your job and being internally motivated. Look at this, one beautiful round circle!
(*) simple: you have a good profile which allows you to do a broad range of jobs
October 28th, 2008 at 10:20 am
‘career’ and ’studies that’
That’s what happens when you want to leave a quick comment
October 28th, 2008 at 2:06 pm
[...] yazı Davy Brion isimli programcının blog’undan Career Advice For Young Developers isimli yazısının [...]
October 28th, 2008 at 5:49 pm
This is terrific advice for a developer that comes from real emotional knowledge of how things work in the business world. I wish someone had said some of this stuff to me a few years ago.
October 29th, 2008 at 6:08 am
Thank you for your advice!
October 30th, 2008 at 3:36 am
Informative article for us young developers.
November 24th, 2008 at 1:49 pm
I believe that the essencial point is “Make sure you like doing your job” for anything that you can to do, not only developing.