Heads up, I think I'm just going to be complaining. So my apologies now for one of those "Back in my days" topics.
As of Feb 5th(2017), I've considered myself a coder for 13 years now, and I've struggled for many many years before that to understand how to code with no tutors, mentors, or teachers. I've taken three serious semesters of college/university classes to get my bachelors before money ran out. I've taken miscellaneous other classes to help learn what I couldn't teach myself.
I've always wanted to be a programmer but every job interview refused to look at portfolios either printed out or on a personal website, nor would they do a full interview before I got a bachelor's degree, because coding for yourself in your spare time doesn't count. This includes winning many coding competitions against graduates and non-graduates.
Well, I'm in my forties now and I feel I still don't know even half of what I need to know, finishing a degree will put me in my mid-to-late forties, and the coding solutions aren't coming to me like they use to. Hell not even the motivation is as strong as it use to be.
I just feel like I've missed the boat.
I guess what's worse is I'm afraid to take that leap back into poverty to chase this old dream. I've got an all-around amazing non-coding job with good people I work for.
I started programming when I was 13 years old and I'm now 35 (will be 36 this year). Anyone that tells you that you can't get a job without a BS is full of shit plain and simple. Even the numbers show they are lying as the last numbers I recall seeing was well over a million tech jobs and only around 400k grads getting a BS. Look at the game industry, a developer I used to talk to regularly from NaughtyDog said that only two guys on the Crash Bandicoot game had college degrees.
I hold a Bachelor's of Science in Game and Simulation Programming and I'm still told I can't be hired. Just a hobby for me now anyways, less stressful that way, for me.
Well, you missed the boat at the momemt you give up.
I've always wanted to be a programmer but every job interview refused to look at [...]
You are invited to a job inverview if and only if they can imagine to hire you. They don't invite you just to waste your and their time.
This means you have a problem presenting yourself in a job interview. So you have to work on that if you want the job. Maybe take courses regarding job interviews.
> I've got an all-around amazing non-coding job with good people I work for.
> Here's my question: Did I miss the boat?
No. AFAIK, the majority of working programmers wont be able to honestly declare:
"I've got an all-around amazing programming job with good people I work for".
A formal degree is quite important for landing a first programming job; check if there is a part-time degree course in your are that you can pursue while still holding on to your current job.
As an aside:
It is extremely rare that one misses 'the' boat; usually, if you miss one boat, you can always catch the next one.
finishing a degree will put me in my mid-to-late forties
If you don't finish your degree, you'll still be in the mid-to-late forties, only without a degree.
Go ahead and get the degree. It's sad but true that the piece of paper matters. Employers need some way to rule out applicants: excluding those without a degree is an easy first step, even if they pass up good candidates as a result.
Another possibility is to get a job in a related field like systems administration or QA and then switch into development.
I wouldn't necessarily say you "missed the boat". It's theoretically possible for you to get a programming job. But consider this: when you started out with programming, at 27 or so, I had been programming for twelve years and had had a few different programming jobs. I got my first programming job at 19.
Are you okay with starting on the same position and earning the same salary as someone who's twenty years younger than you? If you are, then by all means feel free to follow the other advice you've been given in this thread. If you're not, then you need to carefully consider your situation before dumping possibly a lot of time and money into something that may not pay off in the end.
I am also in my 40s, and I am currently enrolled in a CS program. I was a math teacher, but for several reasons I decided I wanted to make a change. My goals now are quite different from my goals when I began college for the first time over 20 years ago. Last year I realized that it was time for me to do something different. I spent a lot of time thinking about what I wanted the next phase of my life to look like, and then chose an option that would best match what I was looking for.
In my opinion missing the boat is usually related much more to a mindset than to actually not being able to take advantage of an opportunity. I think the key is to be honest about why you are thinking about making a change, what you are hoping to gain from that change, and what you are willing to give up in order to get it. If you have realistically thought about these issues and still feel like getting a CS degree is right for you then go for it! Being 40 doesn't mean that you can't achieve that goal, it just means that you are starting from a different place and bringing a different set of experiences to the table.
However, if after looking at the issues you decide that it is not the right path for you, that doesn't mean that you have missed the boat - it just means that you have realized that you would enjoy your life more on a different boat. Either way, as long are honest with yourself about your motivations and expectations you should be able to make a choice that is right for you.
coding for yourself in your spare time doesn't count.
It counts if in your spare time you code things others use. Get on github, fix bugs in popular software, contribute. Then you won't be "Self-taught coder, author of this awesome hash table you can find on on my Geocities webpage", but Open source developer, contributor to gcc, qt, nodepad++, bitcoin - wherever your passion lies. Or even "project maintainer of xyz".
DTM256 wrote:
This includes winning many coding competitions against graduates and non-graduates
Software engineering is very different from coding competitions. It's about profiling, revision control, release management, unit testing, functional testing, continuous integration, deployment strategies, debugging, patching, project management, etc. If you deploy a server and it becomes unresponsive in the middle of the night, what do you do when a phone call wakes you up? How do you make it so it won't happen again? Competing against college kids at speed-typing Kruskal or Dijkstra is of little help..