Every year a large number of "kids" enter our doors, fresh out of college, for their first programming job. After time-consuming and nerve-wracking selection processes and interviews, it is considered an honor and an accomplishment to be chosen.
Yet, I can't really figure out why. I can't think of one career-enhancing reason to start an IT career here.
And I don't mean just our bank, I mean all big banks. And really I mean all big companies, around the world presumably (though I haven't worked for big companies except in two countries, so that's speculation).
The best thing you can do at the beginning of a software career is to work for a small company.
After thinking about the many jobs I've had and the many careers I've seen start here, I could only come up with 2 solid reasons why someone might want to go big:
1. money
2. vacation time
The money is often better in larger companies, especially on the upper end. But, the money differential now is peanuts compared to the difference 3 years later between someone with deep, hands-on skills versus a mediocre programmer. Taking a job just because it pays more is like dropping out of college to help the family by working. Do it if you truly have to, but it's mortgaging your future away. Live at home or squeeze in an extra roommate, instead.
Bigger companies usually give an extra week of vacation. At small companies, a missing pair of hands really hurts because it's such a big percentage of the total. But what's that vacation for, anyway? I doubt anyone uses it to spend more time with the parents. OK, you'll probably have one less trip to the Caribbean every year, but if that's where your priorities are, then this post isn't really for you anyway.
Note that neither of these reasons are career-related, and that's my point.
Now consider the advantages of working at a small company. All of these come from simply being in an environment where there's fewer people.
1. constant direct, hands-on experience
2. more responsibility than you're qualified for
3. close proximity to or direct involvement in major technical decisions
4. constant interaction with senior developers
5. satisfaction of contributing a large, noticeable percent of the code
6. frequent interaction with company senior executives
7. easier to adopt new practices like scrum or kanban or whatever
8. frequent feedback (believe me, you will know whether people think you're doing a good job)
I could go on, but that's a decent high-level short list.
The early part of your career is the time to focus entirely on learning. Take from the experts; no one expects you to give back yet. It's almost unfair, but go ahead and be selfish.
Even if you've been working a couple years, as a mid-level coder, it's still a good time to jump to a small company. Come back later if you really want that extra week of vacation, and they'll probably throw a title and even more money at you.