Something happened. I decided to make a change.
After 15 years of being a web developer, I want to upgrade my skills, not just a bit, but an order of magnitude - enough to be hired at a large tech company like Google or Amazon.
Most web development, in general, doesn't require deep computer science knowledge, or any at all. I hadn't heard about Big-O until I already had 5 years of professional coding experience under my belt. Many times in web development, you're dealing with small enough datasets that O(n) vs O(n^2) doesn't really matter all that much, and if it does matter, a wait of 1 or 2 extra seconds generating some report is usually acceptable.
Don't get me wrong, I've had to solve hard problems in my many years in the business. I've worked at several companies, doing big things and helping generate millions in revenue. I led a development team in a refactor of a large-scale payment integration with a hard deadline that could have cost millions of dollars if it had slipped even one day. I've written complex Javascript code that rode along with ads (from fortune 500 companies) in billions of ad impressions. I even started my own tech company (that I run full-time now and it's profitable) and I wrote all the code.
Looking back I can see where some computer science knowledge would have helped. I was doing tree traversal before I even knew what trees were. I was just coding a hierarchy.
The desire to change really started back in 2006, when my boss (he ran the company) suggested I learn some computer science subjects, because it would help me communicate better with other engineers and give me deeper technical knowledge to solve problems.
So I took 2 C courses and started reading the books in MIT's open courseware and ARS Digita. They overlap. It was going well and I was learning a lot, but I wasn't putting it into practice at work. I didn't see a need. So somewhere in the middle of reading a distributed systems book, I stopped. And since I wasn't using any of it, I forgot it all.
That was 9 years ago.
Now I'm back at it.
Why now?
I'm 44 years old. I still have about 20 years of work ahead. I love programming, but web development has become pretty stale and monotonous. Yes, there's always new technology and libraries popping up to accelerate development, but unfortunately that also means it's getting easier for newcomers to develop just as well as I do, and sometimes better.
I've seen what people with a CS background can create. They create amazing things: operating systems, databases, distributed hash tables, distributed computing systems, desktop software, mobile apps, image and sound editing software - all the things I've used for free (or relatively cheap) over the years.
I want to build great things, too. It's time for me to level up.
I want a challenge. Every day. I want to work where engineers are building the future of wondrous things.
Here I go.