I did my B.Sc. from a fairly reputable university in Electric Engineering. Since I enjoyed programming during my studies I decided to go for it and accepted a full time job as developer ( mainly C / C++ ).
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 ?
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.