* The Business of SoftwareA community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software. |
||
|
This community works best when people use their real names. Please register for a free account. Links:
» Business of Software FAQ Movie:"Make Better Software" is a 6 movie course designed to help you as you grow from a micro-ISV to a large software company. Moderators:
Andy Brice Doug Nebeker ("Doug")
Jonathan Matthews
Nicholas Hebb
Bob Walsh |
Hi,
what's your opinion about starting your career (i.e. first job out of college) in a big or a small company? I don't really care about starting salary, company prestige or job title, my main objectives are to learn as much as possible, and to position myself for rapid advancement. What I've heard so far: Pro Small Company: You get to know more different fields, since they have smaller IT departments, and therefor you get to wear several hats. Pro Big Company: You get to work with more sophisticated systems, more powerful tools etc. More options for advancement without having to change employers. Plus, I've heard that it's easy to move from a big, well-known company to a small one, but hard to get a job with a big company after working at a small, unknown one. What are your thoughts on these issues?
Some small companies will only hire 'senior' developers, because they don't have the resources to a) train new hires, and b) have a well-defined 'process', and c) have an effective QA (for example complete automated test coverage).
> smaller IT departments I think of "an IT department" as something that a company has if the company uses software but doesn't develop software. I don't know about "IT departments" ... instead I have only ever worked at companies whose purpose is to develop software for resale.
You may not care about your starting salary now, but I think you will when it's time to move on.
I began at a very small company (smaller than Fog Creek) and was immediately thrown in the deep end. It was fun and gave me a broad view of technology and business as a whole, instead of just the narrow slice that a large corp. would have. If you prefer to focus on learning technology only, I think you'd be better off at a large company that has other people to do things like take orders, support customers, and take out the trash.
I suggest a big company.
Small companies are best for experienced people. Veterans know what to expect, they know how not to get stuck with dead-end tasks, they know when they're being cheated or neglected and they know how to stand up for themselves. In contrast, when you first start out, it's hard to know what is typical and what is just a really bad situation. Also, at a small company, you may get stuck doing mundane tasks, such as quality assurance or system administration, even though you have a computer science degree (read other posts to learn about that). Ideally, you'd get to wear many hats but, often, you're just stuck doing something that nobody wants to do and you're stuck doing it full time. You may not care about prestige but future employers may. Having a big company on your resume really gets you off on the right foot for future jobs. You can always say, "I worked there so that means I'm smart!" Big companies have problems, too, but, at least, you'll be paid according to some sort of salary scale. You'll also more likely be focused on becoming an expert developer, rather than be either a jack-of-all-trades or stuck in some non-development job. I don't know if anybody ever got a promotion because they were really smart or a great learner. In theory, learning is great but, in the end, promotions aren't a result of being a C++ whiz or having an MBA. You'll be better served by having a good attitude, working hard and being very friendly.
Great piece of advice I received at my first job out of school, "Try to be the small fish in a big pond. If you look up and reaize you are the big fish, it's time to find a new pond".
For the most part, I have been able to do this in my career. I seriously doubt I would have learned as much as fast as I did if I had let myself become the bigger fish.
"my main objectives are to learn as much as possible, and to position myself for rapid advancement."
If these really are your goals, then I recommend the smaller company. Assuming you get involved in a project as opposed to scut work, you will make more of an immediate and very visible impact. There are some caveats. First, as the others have pointed out, its equally as easy to get involved in a disaster (from which a larger company might shield you from), and it's also very easy to stagnate - you might develop the most amazing application but if you're not careful, you'll get stuck maintaining that one application the rest of your career. If I were in your shoes, I'd work for a small company for about two or three years, then plan to move on to a large company and simultaneously, more "project leader" type of work.
TheDavid Monday, July 31, 2006
At entry level, you're only beginning to discover the interests that will make up the focus of your career. Spending a few years at a small company might give you exposure to a broader range of industry activities at a valuable time.
At a large company, you might spend these years on updates and fixes to a single component of a single product. Your process would be 'industry standard' and your tools would be top notch, but that wasn't enough to convince me.
The definitions of big vs. small need to be clarified.
A small company could be a small shop that does a single thing in one industry only. So that would limit your learning experiences. But if the small company is a startup development shop and things are chaotic you have opportunity to try a million different things with no one to stop you, but you never learn the "right way" of doing things. Big companies may give you good experience with big systems, but big companies projects tend to move very slowly. I would try out a big company first, learn as much as you can, and if you find that it's moving too slowly, then jump to a smaller company and then you will truly appreciate the lack of bureaucracy.
Chitlin Monday, July 31, 2006
Bigger or smaller company question is irreverent. Pick a company that services an industry that really interests you. It might be finance, retail, or medicine. If you really enjoy the work the responsibility will follow. One other point, pick a leading company or the company that is number 2 or 3 in the pack. They will be very hungry and that will spur you on to achieve more.
Older Wiser Manager Monday, July 31, 2006
I would second that - the real differentiator in software is becoming Domain Knowledge.
I don't want to hire a C++/Java programmer I want to hire a 3D games programmer or a GIS programmer. If you are smart you can pick up whichever language/toolkit/framework I am using.
Really depends what you are after.
If you are after money, go into the company that pays biggest salary, and as soon as you find another company that pays more, switch again. Don't care so much about what you do, just try to get past your days. Ofcourse you can try to optimize and gain expertise and experience in fields that you can see are more lucrative in the future. Continue this until you have enough money to quit and start your own company or retire. If you are after enjoying your work, pick the company that has most interesting job offering or you have heard from friends that they do interesting things. Don't care so much about the money, because you want the job, and the job is half the money. As they say. And continue in this manner doing things that you love, and eventually you will find yourself in a niche where you are the number one expert and people will pay you honey to get your services. Assuming anybody is interested in your niche expert skills. But again, you don¨t do it for the money so you do not care. You might even start your own company to do it the way you like to do it, and maybe make money and maybe not, but you'd love it. So it really depends on whether you want to love money or the job. If you want to love them both then well eh, depends which one you are more impatient with. Again, if you are equally impatient with both ... well, there are 100 job opportunities every day so switch, switch, switch and switch, until you are happy while keeping on the tap.
Handyman Tuesday, August 01, 2006
I'd start with a big company. Tell them your dream is to move up the ladder there. Within your own mind, look at it as a place to learn for 2 to 5 years. You'll probably get good training in a particular subject matter (such as manufacturing, insurance, etc.), and in a particular technical detail (such as supporting a big C++ deployment).
The work is divided into small niches, and you'll be a small cog in a big machine. You'll see several different levels of management, several different departments, maybe several different locations. Learn a lot and figure out what appeals to you most. Make sure that with everything you learn and every project you undertake, you ask, "How relevant could this be to another company in a different industry?" For example, learning how to manage Windows Services is useful anywhere. Learning how to troubleshoot and restart MegaCorpInternalCrapMail is not. While you're at it, listen to the despair of the guys hanging on just a few more years until their pension vests. After a few years, you'll be full of great ideas for how to make things REALLY work well. And you'll be told it's not your job to shake things up or to look at the big picture. Perfect! That's the time to go to a small company, under 50 people, where you're in charge of all of IT, or all of production applications, or all of security, or all of networking - whatever is most appealing to you. Jump in the deep end and find out if you really can swim. After a few years of that, figure whether you like big company or small company better for the next decade - or a new career - or another degree - or running your own business for a change.
Flow Tuesday, August 01, 2006 |
|


