| Work with smaller companies, or work with academia. My first job was a 16 person company doing industrial automation. I was a first-year CS student. They let me write their TCP/IP stack. Second job, TA at the mechanical engineering dept. They needed visualization software for their work on the European space project. Third one, 10-person company writing one of the very first CD recording tools, with prototype hardware. I was lucky. Each of them was willing to take what in retrospective looks like a huge risk on me. I was crazy and just said "sure, I can do this" to those jobs. I was learning a lot, fast. But the beauty was, I had no career to consider. Had I failed, it would've been OK - when you're new in the field, that can happen. You'll have to find a new job, but nobody will be surprised if you have quite a few jobs when you start out. That's when you take the risks, go for the crazy things. When you're a decade or two (or almost three. Jeebus!) into your career, it's a different proposition. At that point, you get hired for the experience you bring. Taking crazy risks is something that most companies would like you to avoid. (I'm blessed. My current employer still lets me take risks. I just spent 4 weeks in a code base I never touched before and have things in production now :) Did I love working on the things I started out with? Not really. But I loved being pushed to my limit. I still do. So how do you skip the "corporate" phase? By taking a job that's outside your comfort zone. Your own startup or smaller employers are your best bet for that. But there are big companies that let you take risks, too. Ultimately, it's a balancing act. How much safety in your income do you need, and how much risk are you willing to take? If you can push the risk side, it'll lead to more interesting jobs. |