ArchAngel wrote:But, to the predictable end, Tyrion. Of course it's Tyrion.
A Lannister always repays his debts.
ArchAngel wrote:The company you work for makes a big difference. It sounds you interned at a terrible one. I'd try to look for tech companies, where the core focus of the company is developing software. You're more likely to find a company that builds itself around engineers than considers them a lackey to make them money. That being said, it's always about making money and that's why you show up everyday, but it can be enjoyable to do so. I enjoy working far more than my classes. Some companies do understand the importance of mastery and agency in motivations for these highly skilled and technical work, as opposed to the drollery of business where all they have to push them is money.
A place like Google builds itself to make it as hospitable to engineers as it can, including giving 20% time which pretty much lets you spend 1/5th your time working on anything you want. That's a bit more rare as what you do is often bugs or enhancements assigned to you. I might be speaking more from a west coast, silicon valley perspective, but there are plenty of companies that try to make themselves hospitable to engineers.
However, in the end, as any job, there is always parts you have to suffer through. Yes, legacy code needs to be supported. That client request? Yes, it's a terrible idea and it breaks up the elegance of the code, but there's no time to rewrite the whole thing. Yup, sometimes you just have to code with company code standards. And sometimes, the way a company does something is just stupid. And some of the code you have to go through... like.. why would anybody write it that way? Who would do this?
You will be making, or more likely maintaining, a product in the end, and it's someone else's product. Maybe it bother's you, maybe it doesn't. The field my company's software product is in could interest me less, but it's hard to see how, but I enjoy software engineering.
If you prefer state diagrams over debuggers and pumping lemmas over APIs, maybe academic computer science is more for you. If the thought of trenching your way through stacks of code to find the one line of code that needs to be fixed or developing a new feature for a web app doesn't sound terrible, maybe keep giving the industry another try.
I think this might not be understood enough for people entering the industry, but company culture matters. A lot. Be proactive about find out about the culture during interviews. Your mileage varies quite a bit. You might be able to be happy if you find yourself a part of a team that values engineers, places a high value on their motivation, and gets you connected with very smart people who are very good at their jobs.
And, here my west coast bias shows here, but the Silicon Valley is the mecca of Tech. It's one of the most expensive places to live, but I think you're more likely to find what you want here. If you find a job here, give it at least a thought. Even if that's a bust, you might find another one here.
Do you mind telling me more about how your internship was (not writing a line of code sounds terrible) and about your new job?
That's the thing: I do prefer Pumping Lemmas and State Machines. They're fun. XD
That said, I do want to clarify one thing before I continue: I wrote some code at work (A combined total of maybe 500 SLOC), but I didn't have the drive to code at home anymore. My will was sapped. I didn't have this problem during school, when I was coding for work there and for classes. I still had time for side-projects.
So anyway, my internship:
I interned at a financial and insurance company (I don't really feel comfortable posting their name here). That was probably the first mistake. They value security and stability over all else. And there's nothing wrong with that. As someone who both banks with and is insured by them, I'm glad they do that. But that's not how I roll. I value performance and elegance in execution over others (Though security is high up on my list, I generally don't write things that need more security than normal server security procedures).
But three things really killed the whole experience for me. First, I was placed on a team where everyone was at least ten years older than me. The married-with-kids, middle-aged type. Well, that's fine. But I had almost no common ground with these people. None of them were really interested in the things I liked. The closest was my mentor, who was also a huge Java nut. We had many good talks on the Java Platform.
Second (And perhaps my biggest gripe), the restrictions they placed on third-party libraries and developer/workstation applications was simply ludicrous. First, the only approved internet browser was Internet Explorer. Want to use Chrome? Use it in an emulated environment (Spoon, or some nonsense) or not at all. Mail client was only Outlook (Which come to think of it, isn't a half bad application.). But libraries in your code was a whole different monster. Want to use a nice Java library like Hibernate? Too bad, you gotta go through a monstrous, ten-month-at-least process to get it approved, and the answer will likely be no. Really bad business bureaucracy. But their restrictions on developer applications were worse. Want to edit code with an app like Sublime or Notepad++? Too bad. Your ONLY option is jEdit. Want to use a different IDE besides the stupidly-bloated, IBM-ified Eclipse distro known as Rational Software Architect (That never ran right on my workstation)? Too bad. That is your ONLY option. Every request to approve editors like Notepad++ and Sublime (And even emacs and vim for goodness' sake!) was promptly denied on the grounds that there was already a tool for that. Every. Single. Fraking. Request. No reason was good enough for them. I suspect they never even read the requests.
Finally, there was cultural hypocrisy. The leaders of the company were always going "innovate, innovate, innovate!" But every time I (or some of my friends who stayed with the company) suggested something that would require a slight alteration to the existing process, it was met with "That doesn't comply with our existing standards". Look, I know that it's possible to innovate within a box, but come on. That's unfair.
By the end of it, I was done with it. I was George Washing-DONE, in fact. If I never work there again, it will have been too soon. Ugh.
Sorry for the rant.
Anyway, my new job is in the Defense business. Which worries me, because I can't see that line of work being any less restrictive than Finance/Insurance. That's why I'm continuing to look at other options. If you know of anything, let me know. The only catch: I am done with the south. It's too dang hot here. I'm ok with California, but that's about as far south of Oregon as I'm willing to go.
Especially not Texas. Screw Texas. And arrogant Texans.