"What are you looking for?"And I'm honest. I say that I'm looking to grow my technical skills, in the way coding for production allows. In the way being surrounded by and working with bright people allows. In the way incessantly writing unit tests for legacy code doesn't allow. There's a knowledge ceiling to JUnit. One of my interviewers, a software architect, had a solid response.
"In our industry, anyone who's stagnant becomes obsolete."
UnprovenWhen you haven't done full-time industry work in the technical field, you're unproven. No matter how much stuff you have on your Github or how many contracts you've worked. That doesn't seem to hold much weight with interviewers. Coding with a team for production is different. This has become apparent in how much I end up babbling about my software engineering class from St. John's (CUS 1166, spring 2015 semester). That's the only time I've truly coded with a bunch of other people. Wide range of skill proficiency. Havoc over Subversion. Frustration abound. In the end we made this ugly thing called menusearch, but it worked. Being a full-time software engineer or developer is a whole bunch of that. Maybe more people who know what they're doing. What you work on for your first year in the field, out of school, could dictate your entire career timeline.
Two different job scenariosHere are two very real scenarios. For both, you're a recent BS Computer Science grad, only planning to be there a year, and Java's the vehicle of choice. Any mention of "new code" means test-driven and heavily documented, similar company culture. Salary's algebraic because it's highly dependent on location. First scenario - huge corporation, lots of name recognition. Salary offer of X. Day-to-day you write unit tests on legacy code. It's implied that after maybe a year and a half you'll be trusted to start writing a bit of real code. The new code to maintenance split is 20/80. Second scenario - sizable firm but still growing, concentrated to your state, hardly any name recognition. Salary offer of 25% greater than X. Day-to-day you're writing a lot of new code, all of the company's software is newer in-house stuff. You have a supervisor who mentors you. Since everything is fairly new you get to suggest and try out new technologies where appropriate. The new code to maintenance split is 60/40. At the end of the year, which scenario results in the greatest market value bump? This could pace the trajectory of your whole career.
"Why can't I do the same thing forever?"If you never want to expand your professional skills, there's always McDonald's. You can make $15/hour by 2021 and pretend inflation doesn't exist. Meanwhile in the tech field... What were traditionally different business departments - telecom and IT - have merged as phones became computers. Certain facilities stuff, like HVAC and surveillance, will likely follow. Unified digital infrastructure. The in-demand languages and technologies are shifting all the time. Here you have Github trends: And then job growth trends, ten languages altogether: Change occurs even within languages themselves.
- Major new versions - i.e. functionality from HTML4 to HTML5, setting up the death of Flash Player.
- Repurposing - i.e. Java, originally intended for programming hardware like VCRs, is now a force of nature from corporate to mobile.