Hacker News new | ask | show | jobs
by kd1220 5469 days ago
I'm a CS graduate with 10 years in the field.

I've worked at 3 different companies and, compared to college coursework and projects, not a single one of these jobs has been intellectually stimulating for me. In fact, my first task at my first job was to document Java code created by foreign contractors. Most of the code was get/set functions for member variables. Nevertheless, there have been projects that I relished, but they have been few and far between.

Most of the work you do in college is individual work. It's completely the opposite in the working world. You have to work on a team of people, and your focus is building a product, not learning new things. This is not to say that you won't learn, but that aspect comes in a distant second to creating a working piece of software, on a schedule, that meets a business need.

My advice on keeping your intellectual needs met: do your brainy stuff outside of work. Work is not your muse; it's not your professor. Work pays the bills so you can live how you want outside of work.

At two jobs I was actually singled out and mocked for doing "advanced" things that had immediate positive effects on the business. Superiors and coworkers can feel threatened by a brainiac. Politicking isn't limited to the Beltway. These companies weren't exactly tech giants, but you'd probably find this situation is possible at any company. So being street smart is also a requirement. Don't showboat unnecessarily.

If you find a company that interests you, use your alumni association to find people who work there. Get in touch with them and ask them questions about what they do, what they like about the company, and what they don't like. Do some networking and research the work environment before you send a resume. It's very difficult to gauge a company from a job interview since it's a stressful situation and you're focused on presenting yourself as the ideal candidate.

Also consider jobs that aren't primarily tech-oriented, but permit you to use technology to do your job better. At a former company there was a sales guy who knew programming fairly well and he used it to streamline his processes. He was able to handle more clients more efficiently and he got promoted quickly. If there's something non-technical that you absolutely love, then taking a related job and applying tech to it might lead to interesting results.

As for start-ups vs. small companies vs. giants. It all depends on what you're comfortable with. Start-ups are risky but the atmosphere is generally pretty fun and they are often more open to using new technology and unorthodox methods. As companies get larger, the bureaucracy sets in and things become more about following a process than finding something that works. I'd recommend joining a start-up to any CS graduate, but do it before you settle down in life.