Tech is booming. I know someone who went to a bootcamp for a few months and is working as a programmer right now. A college diploma doesn't matter now. It matters in years like 2000-2002 after your company goes bust and you're looking for work, or if your division does massive layoffs in 2008 and you're looking for work.
If you're going to go to school and take it seriously, the earlier you do it, the more it pays off. The easier it is to do as well - you don't want to be married at 37 with two kids and decide that you really need more than a high school diploma. Then you're juggling a full-time job, college and a family.
If you want to be worth your salt as a programmer you're going to have to sit down and study databases, operating systems, calculus, theory of computation, computer graphics, algorithms, data structures and so forth any how, so why not do it while studying CS at school?
When kids ask me, I tell them if you can go, go, if you're going to take it seriously. If they have financial issues or whatever I tell them to not take a full course load. One night class a week at the local public college is affordable (with Pell grants, loans etc.) and doable by most people.
I've had a very successful career in this industry not being able to do any of the things you ask in your first paragraph. Sure, I've taught Normalization to new devs (without needing to recite the actual forms), but I find that Google is pretty good at memorizing algorithms, and it did in fact have A* ready to go every time I've done pathfinding. It probably still will when this kid needs it.
University, in my mind, is for two things: It gets your brain shifted into "Engineer Mode" (or painfully informs you that you are not capable of thinking that way), and it teaches you how to be an adult.
The actual algorithms and interview trick questions that a CS degree give you aren't very useful at all in the real world, and I'd actually go as far as to recommend getting your degree in Mechanical or Electrical Engineering instead, so you can focus more on mindset and preparedness. You'll find it easier later to forget the trivia about Brunell Hardness and Eigenvectors when they're far removed from your actual field. And you won't be that annoying guy in every meeting talking about Big O notation instead of actually solving the issue at hand.
But yeah, go to school if you have the chance. The big offers will still be there in four years. You'll have many of the experiences that you'll spend the next 50 years reminiscing about. And you'll come away with a whole pile of other benefits that you never expected. (And some trivia to get you through your first job interview that you can then safely forget forever).
Usually trick questions aren't the one that you expect in real world, because they're trick questions. Nevertheless, it's very easy to consider a question being tricky, while it might be just a good check of your understanding of a given technique or algorithm.
> And you won't be that annoying guy in every meeting talking about Big O notation instead of actually solving the issue at hand.
Talking Big O is the very exact thing that you should discuss before solving (coding) the issue. It's only annoying if you do that instead. Please, do not underestimate this.
University is about enquiry and learning to think critically. It doesn't matter if you never use the specific constructs they cover but you do come out with a much more flexible mindset.
The other thing is that the OP might actually become a really talented academic and have the potential to do great things in the field.
I do think this gets overplayed, I'm sure you developed considerably over that period of your life, but so will anybody else of a similar age who moves away from home.
Do you understand, why we're using second normal form? Do you understand why all mu-recursive functions can be formed from those three basic functions? Do you understand, why A* works? Do you know, why we're storing those things during a context switch? Are you worth your salt as a programmer?
For my part, I recently left a career to return to school. I'm getting a graduate degree after a 10-year gap from my undergrad, and even though I'm working a job at the same time, it's inspiring to be in an academic environment again. Some assignments are tedious, but to share a cafe or a bar with other students who are working through intellectual questions is an experience that is difficult to monetize, and nearly impossible to expect outside the university. There is a reason it is called an 'academic bubble', but while many say that scorn, I am inspired by the space that bubble creates.
I would suggest that, if you're a capable programmer, then don't go to college to learn to program. Study topics that seem foreign/difficult to you, revel in the leisure time to discuss ideas with your peers, and rise to the challenges set by professors. The academy is intended to be a space for self inquiry and growth. If that is something you value, then try to find a college that feels right to grow with.
If nothing else, try applying. As a general rule, you should avoid closing doors on opportunities that don't exist. If you get accepted to an institution, then you have a right to decline it, but rejecting it without applying is hubris.
The kind of connection you make with people you've worked with are different from people you've studied with for 4+ years, no matter what.
And also keep studying stuff by yourself.
Also, like others have pointed out, nothing says you have to get a CS degree. You could get a degree in any subject and apply your skills and knowledge of programming to a whole new area.
The younger you are too, the more benefit you get from the networking of college, the social and dynamic skills and the problem resolution capabilities.
Would going and getting a CS degree get you more money, probably not if you have at least 3+ years of experience. Also, plenty of companies always say they want a degree but when you apply with experience they seem to drop it. Even the government jobs that say a degree is absolutely required, I have had a number of friends get those jobs with no degree, although there have been a few hoops for them to jump through.
It may be a barrier in 5-10 years, but you can worry about the problem then.
The main thing is to be continually learning and maintaining a network. If you aren't going to do that, go to college.
Going to college will make your life easier in the sense that you have a socially accepted piece of paper that shows you have put in the time/effort. For most companies that are hiring, that is what they want to see.
If you go the DIY route, you will have to work harder and/or prove yourself more (or maybe I just had a bad case of impostor syndrome). The really cool projects on your CV will help people "forget" you don't have a college diploma.
If you have the character and tenacity to find your way regardless of the situation, you don't need to go to college. If you're not certain, or if you miss out on college for working on some quite straight-forward CRUD apps (instead of seriously cool CV building projects), then go to college.
All that said, whether there is a point depends on your own goals and whether you think you can achieve the above benefits outside of a college setting. On a purely financial basis, college almost surely does not make sense.
Read more textbooks and fewer blog posts.
Negotiate a part-time role with the mainstream company, work around your class schedule. The boss surely wouldn't want to feel guilty that he kept you from completing a degree.
College value can be difficult to calculate. A good campus environment can expose you to some wonderfully random, useful people and ideas found nowhere else. The Steve Jobs calligraphy story is a classic example> http://www.leemunroe.com/steve-jobs-calligraphy/
Like this other guy says, financially it just does not make any sense. You could also end up with really bad professors who teach you squat whereas you could just pick up a high-quality textbook.
That said, there was an article on HN a few months ago showing a strong correlation between having a college degree and earning more over a lifetime.
You don't know what to do, and most people here don't, and the best we can do is speculate one way or the other - but so can you!.
Gas is cheap, and terrorism and the middle-east problems are back with a vengeance, but things are cyclical so that means gas will be expensive again? And your easy come easy go job will really be gone (based on the cycle I guess) when shit hits the fan? Maybe not? Maybe the world has improved, and we won't throw out decent people who have work experience, but maybe things will get so rough that we'll have to stamp a "no-degree" tattoo on your for-head when the time comes.
This is a complicated question, I see why you asked it.
If you have to go into a good amount of debt or the institution is not particularly prestigious, and you already have plenty of skill/experience/connections, I'd spend time considering what exactly you expect to get out of it.
I also have a side project that would be able to support me, but I do attend college. In my opinion, having that piece of paper (provided you don't go into massive debt for it) is much better than not having it.
Besides programming, you can learn more things in the college, such as physics, arts, maths, finance, social skills, etc. Though they may not bring you money immediately like programming, you will benefit from them. And you can meet many people from other states and countries.
College is one of the happiest periods of my life (though I was very poor).
In particular, Google explicitly does not have a requirement for a college degree. I also know from experience that Microsoft doesn't either.