Ask HN: Reasons to stay in Software Engineering
44 points| _anon_ | 7 years ago
I really do like Linux, OpenSource projects, blogs like e.g. hackernews etc. To me it felt like a passion: So much cool stuff I can read about, all accessible only with a computer and an internet connection. However, I recently decided to do my masters but currently have some serious doubts whether I should focus on software or just completely change my track. The problems I have are:
* Everyone can be a "software developer". Even thought I went through a really though and challenging university degree, which I finished distinctly above average, I have to go through whiteboard interviews. This won't change with additional job experience. For some reason, companies do highly mistrust my skills and degree. Other jobs, equally well paid, do not require this.
* You have to know _a lot_. Programming languages, Tools, Operating Systems, Tests etc. On top of that, specific domain knowledge is required. Unfortunately, my brain forgets and if I work with different technologies, after 1 year I will not start at 0 but definitely neither at 100%.
* After all it's "just" software. Besides yourself, nobody really cares how you solved the problem. Sure, it's quite appealing to think through a complex system, tune it, develop it etc. but often it includes cumbersome work and decisions are made elsewhere.
So why should I stay in the software domain ?
[+] [-] a3n|7 years ago|reply
With my BSCS, I worked in aerospace, telecommunications, finance focused MoM (we are dated by our buzzwords), manufacturing supply chains, indigent health insurance, auto sales, dark pool trading, and medical device manufacturing.
I'm now out of software because I was a B player, and my freshness date expired.
Now I'm a long distance semi truck driver, and I'm currently sitting in my Kenworth T680 as I write this. It's the ultimate experience if you're a loner.
I miss the money, and the software writing itself, but I've never had a meeting since I started truck driving. I don't miss the development practices churn, or what I call work about work.
I do still automate some parts of my personal administrivia, mostly with python and Bash.
[+] [-] fermienrico|7 years ago|reply
[+] [-] pandler|7 years ago|reply
[+] [-] cjhanks|7 years ago|reply
That said, should you change your track from pure EE?
My personal experience in hiring has been that people with pure CS bachelors/masters are usually a worse fit for highly technical roles than those with another STEM degree. I think this is because it is harder to teach yourself electrical engineering than entry level software development.
A average candidate knows how to program. A good candidate knows has deep domain knowledge in something. A great candidate has deep domain knowledge and can turn that into code.
[+] [-] shados|7 years ago|reply
And while "everyone can be a software developer" right now because the demand is so high (we're in a middle of a mini-dotcom-boom), it won't always be that way. Expect to see saturation in the next few years. Yes, the self taught person who works their butt off will be able to make it, but it won't be common, or will be limited to entry level positions, which will become more and more competitive. We're already seeing this happening a bit.
[+] [-] wetpaws|7 years ago|reply
[+] [-] ankurdhama|7 years ago|reply
[+] [-] superice|7 years ago|reply
[+] [-] booleandilemma|7 years ago|reply
I’ve never prepped for a tech interview and I’m never going to read a stupid book that’s supposed to coach me.
What am I prepping for? I’ve been a programmer 10+ years. I’ve had 10+ years of “prep”. Is that “fresh” enough for you?
Tech interviews have gotten way, way out of hand.
[+] [-] abledon|7 years ago|reply
[+] [-] drvdevd|7 years ago|reply
For better or worse, this practice will take their company wherever it’s meant to go.
[+] [-] plasticchris|7 years ago|reply
[+] [-] rahimnathwani|7 years ago|reply
- None of us know everything about every environment, even though we often imagine we do
- If you want a job, and spending a few hours prepping on data structures and algorithms (either to improve your performance, or to verify your performance is in fact perfect) will help your chances of success or your confidence, why not do it?
You might want to consider:
- Just because you don't want to follow the recruiter's advice, it doesn't mean it's a 'stupid book'.
- Although the recruiter mentioned 'programming problems', the problems in the book may test a wider (or just different) range of skills than what you (or I) consider 'programming'
- The fact that you've 'never prepped for a tech interview' may have impacted the set of environments in which you have worked, and it may be hard to know whether you would enjoy working in those places where preparation is 'table stakes' (i.e. necessary but not sufficient) for success.
- Companies that interview in ways that require/expect some preparation might be (intentionally or unintentionally) filtering out candidates who are not willing to do what is required to achieve their aims. (If you're not willing to spend a few hours with a book to increase your chances of landing a great job for the next 2-3 years, then maybe you wouldn't be willing to learn whatever JS library is required to succeed at your next project.)
You and I have not yet had the pleasure of meeting. But I know other people with 10+ years of coding experience, and the majority would improve their chances of succeeding at a given interview loop, by preparing using 'cracking the coding interview'.
[+] [-] ex_amazon_sde|7 years ago|reply
Be aware of this: 99% of teams/companies out there are not solving quantitative problem. They are throwing chunks of code from stackoverflow at some app. They use every framework, tool, methodology of the year and look for those names on your CV.
Yet, there's a niche where people do data driven development, understand and use statics and mathematical models, and do real engineering like aiming to solve a problem with the minimum amount of complexity and code.
Aim for that. There are teams like this in Google, Amazon, Facebook and other smaller companies. You have to go and hunt for those. Stay away from coder jobs.
[+] [-] jiveturkey|7 years ago|reply
hardware jobs pay less. many times, much less.
[+] [-] alecdibble|7 years ago|reply
[+] [-] stevenwoo|7 years ago|reply
The interview process for software developers is as you write, terribly broken at a lot of companies from the point of view of most developers. I do not see this changing in the foreseeable future and it does not matter what software you have written in the past, you will get the opportunity to prove yourself all over again for the rest of your career.
One possible solution is to work for yourself. This solves some of your issues and introduces a whole different set.
[+] [-] smilesnd|7 years ago|reply
You really don't need to know a lot. You choose to know a lot probably because you either feel uncomfortable not knowing the whole picture, or because your just curious. I have meet a ton of great developers that their knowledge base was their language and libraries because that was all they needed to know to be great. One guy I know that hires peoples ask one question in interviews to gauge peoples knowledge "You click the address bar of a browser type in www.google.com and push down enter on the keyboard what happens?". There are some people that give 5 min answer and some that could spend a hour just explaining the keyboard interaction with the operating system across 4 different operating systems for a hour. Find what domain you enjoy and just do it.
Everything is "just" something, and their is no way around having to do cumbersome work and making decisions to get some where doing anything.
You should stay in software because you want to. If you need others to validate a reason for you then you probably should get out while you can. Keep it as a hobby, but the second you start questioning something like this you either need to try something new or go on a camping trip and drop some mind altering drugs so you can find a answer. Maybe do some volunteer work in a third world country.
[+] [-] au750|7 years ago|reply
* Everyone can be a "software developer". Everyone can also be a [whatever]. Why would you want to have a whole profession for yourself? If you don't have to prove yourself during the interview, you'll have to do it on the job. This is not going to be different somewhere else. In general, is better for you if your colleagues have to meet a minimum competency standard.
* You have to know _a lot_. There is a lot and there is a lot that changes. There is also a lot that stays the same and a lot that you can transfer from an area to another. Once you are a good at design, architecture, Test Driven Development, Pair-Programming etc. you are not going to forget everything just because you have to use a new programming language.
After all it's "just" software. How you solves the problem and write your code internally is going to influence how good it works (bugs, performance) and how fast you can change and improve it. People will care about that. Usually, you are going to work in a team and your colleagues will also care about your solutions.
[+] [-] dbattaglia|7 years ago|reply
> "For some reason, companies do highly mistrust my skills and degree. Other jobs, equally well paid, do not require this."
I think if other jobs were able to directly test your technical skills in an interview they probably would. I personally hate whiteboard style interviews as well but, having sat on both sides of the interview process over the years, I see a lot of value in seeing people's code. Personally my preference is a take home coding test, but interactive coding is fine too if the problem isn't too tricky. Probably this is because I am self taught and don't have a degree to lean on that colors my opinion so take my words with a grain of salt I guess.
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] inertial|7 years ago|reply
More that once I've come across such crossroads, and the answer for me is:
(i) Find a niche in which you can excel, master your domain and then people will "care".
OR
(ii) Don't worry about how others perceive you as long as you are having fun along the journey. Find a way to stay happy.
[+] [-] ljm|7 years ago|reply
If you’ve got a talent for it, then look at your career in terms of how you can increasingly fulfil that ‘how’.
That could be your own business or a company/vision/mission that really sings to you.
You might get a few bad experiences along the way but they would only serve to remind you of that ‘how’, and give you more resources to do it better.
For me that means blending my passion for proper agile, coaching, and compassion, into my dev workflow such that I will always leave a team or company better than I found it. There have been plenty of situations where I failed to do that but it only empowered me to learn and adapt.
That’s not a yes/no answer, it’s just another perspective.
[+] [-] bitL|7 years ago|reply
[+] [-] mathattack|7 years ago|reply
The key question is “Do you like the work?”
[+] [-] drvdevd|7 years ago|reply
So you have the opportunity to ask “Do you like the work?” under many different circumstances.
[+] [-] tcrow|7 years ago|reply
[+] [-] badpun|7 years ago|reply
[+] [-] mabynogy|7 years ago|reply
My strategy is to build stuff with other folks, create a value and try to transform that to real money (with a startup for example).
I think your real question is more around what you wanna do with your life.
[+] [-] meiraleal|7 years ago|reply
Because you are already heavily invested and is part of the current elite of software engineers, probably. If you still like it, why leave it?
[+] [-] coldtea|7 years ago|reply
https://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallac...