views:

1554

answers:

18

Possible Duplicate:
One piece of advice

I always end up saying, I wish I knew this when I was making a career decisions. So can you share your advice about how to make good career decisions? From your experience what is the most important when it comes to choosing your next employer?

+27  A: 

Quality of the working environment is the most important part. Working in an unhealthy environment may lead to unnecessary stress and take a huge toll on your mental health, stay sane my friend.

Anthony Forloney
+1 for this... been there
SLC
+50  A: 

It's better to Be the lion's tail rather than the fox's head! Always prefer to work with the team that is smarter than you. You'll learn lot more than ever. You'll have motivation to keep learning and doing new things and finding new ways to do same old things and be innovative in them. This will help you more in long run.

this. __curious_geek
excellent advice, that I didn't follow. I consider myself at least a better than average programmer, and am always the lead programmer on all projects I have done for at least 15 years...sometimes I do wish I could be a junior intern working under some of the truly great programmers in order to up my game.
EJB
+1 To me this is not the obvious answer but probably is the best advice (in my opinion)
David Relihan
+8  A: 

Don't go for an employer who seems more concerned over project delivery timescales than the quality of the actual delivery - you will learn very little from them.

David Neale
Any reason for the -1?
David Neale
I disagree, quality is important, but delivery timelines are at least equally important. Work for a client that demands that you deliver what you say, when you say, and you'll not only learn how to program, but also help out your estimating and project management skills. A great programmer, that can never get done what he is supposed to when he is supposed to, is of no use to me.
EJB
The art of engineering is to create something good enough in the time available. So you need to be concerned about the quality - neither gold plating, nor making compromises which will cost more later in the project - in order to make the delivery.
Pete Kirkham
When the quality of a project is compromised then the timescales often become pointless and an endless number of patches and support calls can ensue. I may have made the point a little too clear-cut but if developers are prevented from using the most effective technology if favour of a quick-fix then the good developers will leave.
David Neale
+1: I know what you're saying mate, it also shows in the style of management. Teams - like armies - can be lead from the front by good management, or driven from the rear by bad management. The guys that drive from the back with threats and whips are often a) more concerned with the delivery schedule than with what's delivered and b) utterly unconcerned with how much you have to sacrifice to make the delivery.
Binary Worrier
+4  A: 

If you're really unhappy, take the job.

Your new job might not be perfect, it might even be worse, but you might learn some new skills and get back a good portion of your sanity. Then, if it's not a perfect fit, you can always keep hunting.

I did, about 5 yrs back. And I couldn't be happier with that decision.

Stephen
+1. *Now* I'm hunting, but I should have started five years back.
Beta
+3  A: 

> One advice you would give yourself 5 years ago? <<<

mail to myself 5 years ago: Make a baby :)

ttt
Only if you could mail yourself 18 years forward afterwards.
David Neale
+14  A: 
  1. Learn source control. Either git or mercurial.
  2. Don't sweat learning every language. Learn programming skills, not languages.
  3. Learn to work well on teams.
evantravers
+1 for number 2.
Kohan
+1 for number 2 indeed, http://en.wikipedia.org/wiki/List_of_programming_languages
dpb
+1 for the second one.
Algific
+4  A: 

Don't get hung up over job titles. Go for the job you'll enjoy (be it the technology or the domain or whatever) rather than sticking out for a "Senior Developer" or "Team Lead" role.

ChrisF
+13  A: 

While I was at university, I created a small business and made a few websites with some friends. Although the business didn't last long, I learnt more from running that business for just under a year than I did the whole 3 years of my degree.

My point being, do projects in your own time if you can. It gives you a great grounding and looks great on your CV, as not many students go to the effort.

I think a lot of students look back and think, wish I had done that.

Kohan
Solid advice, you won't find a decent programmer who hasn't done this.
SLC
Running a business in general is just an eye-opening experience. Running a small business for 3 years taught me way more than the MBA classes.
Awaken
+10  A: 

Advice to myself from 5 years ago?

Go for a job you like and gives you satisfactions, not just for a job that pays the bills. In an ideal situation you spend 8 hours a day working, 8 hours for yourself and 8 hours sleeping.

Half of your conscious life is done on the job so you should enjoy it. Find a job that you like!

dpb
+1. Completely agree. And find the job that satisfies you as quickly as possible, because it only gets harder to leave with time.
Awaken
+1  A: 

If I could go back only 5 years, I'd probably recommend that I go see a doctor and get the whole health care stuff rolling a little earlier than I did. Who knows what would have happened if I had? Just what I would have told myself back near the middle of 2005.

JB King
+3  A: 

Don't expect your bosses to understand the technology, reward your good work or tell the truth. When you join a project look around for the scapegoat; if you don't see one, watch your back!

Beta
+2  A: 

You can Change Your Organization or Change Your Organization.

Martin Fowler.

mcaaltuntas
+5  A: 

If I could go back 5 years, I would tell myself to stop working for companies using 10 year old technology, and if that wasn't possible, then at least to try to keep MYSELF up to speed on the latest and greatest. When switching jobs recently, I found myself woefully unprepared for how the world had moved on without me.

Ryan
+3  A: 

Early in your career, it's better to be a small fish in a big pond than a big fish in a small pond.

When you are in a big company, you tend to work in very specialized areas. This can be very gratifying, but if that specialty is no longer needed, or you get laid off, you are screwed. You also have access to very smart people to help you solve problems, but often this means that you don't develop your own problem solving skills. You also get disconnected from business reality. You are rarely exposed to either the costs or benefits of that "really cool feature" or this really cool "architecture pattern".

When you are in a small company you have to know about lots of things. For example, as in a large company, you have to code and write documentation, but in a small company you may also have to understand loadbuild, deployment, data management and operations as well. In a large company, you may be just the "database" guy, or the back-end guy, while in a small company you may have to understand how to do everything from database design to user-interface design. In a small company, you often have to interact with customers and get to understand what really drives them. Many coders in large companies are insulated from that. My first jobs were in large companies and I was insulated from business reality. In small companies, I learned a lot about the business realities that drive software development, and I am still amazed how many people in large companies just don't understand.

When you are in a small companies, the buck often stops with you. If you don't have a solution to a problem, you have to divine one yourself. There are no recognized experts. The skills you develop solving problems are very useful.

My biggest regret 5 years ago? I regret not taking the time to learn Javascript, CSS, DOM to develop good looking web pages. The "front-end" is the product as far as most users are concerned, and if it looks clumsy, inconsistent, or cheap, they assume that your well-designed back end is also the same.

Jay Godse
+1  A: 

My advice to myself of 5 years ago would be simple: don't spread yourself too thin. It's better to do one thing excellently and on schedule than it is to do lots of things poorly and late. The costs of context switching are greater for people than they are for computers.

And keep on top of the timesheets.

Donal Fellows
+2  A: 
  1. Buy as much AAPL as you can afford.

  2. Learn to play drums.

    Ha, just kidding with those two. Well kind of.

  3. Javascript may look terrible but it's going to be big. I think you should take a look at that, grasshopper.

Ken
+12  A: 

Beware the golden handcuffs.

It is very easy to graduate college/university and take the first good offer (or what appears to be a good offer). After a few years, you realize that you are not quite going in the right direction. But as more and more years go by, the handcuffs get stronger. You get full 401k match. You have 3 weeks vacation. You have a much higher salary because you are good at the specialized skill X and have tribal knowledge.

So now you want to leave your company because things got worse and you realize that A) you prefer a different type of work than X (think embedded vs. web apps) B) your company is just not going in the right direction and gets a 2/12 on the Joel Test (large Dilbert farm vs. fast moving young company).

The problem now is that you don't fall into the new grad category, but you don't have enough experience in the new area for most of the job required qualifications. So do you give up all the nice money, benefits, and reputation? Do you start over? It's a hard decision. Even harder if you have a house and working wife. And super hard if you have kids. Hence the golden handcuffs.

So my advice to myself 5 years ago is this:

Think harder about what you want to do with your life. Don't settle quickly on what seems like a "good job." And as soon as your gut tells you this isn't going in the right direction long term, get out, because it will only get harder.

Awaken
You nailed this one!
kirk.burleson
This is a scary comment. Scary because it is me...
Jay Godse
+1  A: 

Sell all your stocks & real estate, and invest your time & some money in writing iPhone and Facebook apps.

(And ignore Second Life)

GvS