something tells me in this era the majority of us are not CS/theory-first developers. And that's a good thing. It's the natural thing. And it means we have true inspiration to learn CS when it naturally comes time, rather than artificially enforced training before you have anything to do with all the theory, which also means a harder time learning it.
That's a pretty broad assumption about CS grads. That it was regimented and scheduled does not preclude students being passionate about learning it. And in many cases it's the best possible environment to learn.
I agree. I'm simply saying for many it makes a lot of sense to learn the theory as it actually becomes relevant to what you're already doing.
The more important thing though is that it's a line of thinking that enables people and gives them confidence to get going earlier, rather than wait until they've checked a bunch of checkboxes and have been cosigned by an institution. I think all the fears and ego-issues around not knowing enough before you get started are a bad thing, an inhibitor.
That said, I now wish I had done those 4 years. It would be amazing to be able to take 4 years off just for school at 31 than to have to struggle to find time to learn in the middle of projects. But it just was never gonna be any other way for me than diving in. And after all, a mindset of continual learning is what it's all about.
I think diving in and building something--regardless if you start out early with a CS degree--should be the primary focus.
If you jump straight to a CS degree before even building a simple website or simple whatever, it's a mistake. And ideally develop a minor level proficiency and achieve some wins where you start feeling yourself for your growing skillset. If you jump into a CS degree without at least having that, ur making a huge bet on something you know nothing about, that you might not even enjoy.
I think that hypothetical you describe at the end is very unlikely. Assuredly most CS majors had interest in computers that manifested in writing a simple app in C or building a web app or an IOS app prior to college.
That's why my suggestion to these guys is to save every penny at their current job so they can skip to a product business.
Forget the sales, soft skills, and making products for other people that will never truly appreciate the craftsmanship that went into it. Just stick to your guns and create the situation where you can just work on your own product.
If you guys are kicking ass at your current firm, you should be being paid for it, i.e. making enough to save some some money. There's your ticket. Be patient and wait it out while saving money. Plan out your upcoming product, and do all the preparation that doesn't require deep immersion, so from day one after quitting you can deeply immerse yourself.
ps. how's 7 years as a remote freelancer so different from a consulting firm? It's not. Just more developers, bigger projects. You already know what that life is all about. Do you really want to go back to that, now with the burden of supporting more engineers? Keep it simple. If you have the skills and confidence, your product idea will work out. Just create the space and time to do it.
If they start a consulting business there's a much more stable path to revenue from day 0, if they follow your advice they'll spend all their savings and possibly be in the reeds for ages. All the while they'll still need the sales/bd talent.
Ultimately it depends on the individual's scenario. Both sides are extremely challenging. Without more info, it's up to them to decide which best suits their situation. They're already thinking of going the consulting route, so I'm providing an argument for a different way so they can fully weigh as many possibilities as possible
So, the downside of consulting for one is that he's just going back to freelancing, just now with his buddy. But more importantly, the downside is simply that projects are always under-estimated, you'll grow your business ponzi-scheme style (new projects paying for old), eventually have more engineers, and be responsible for them, etc. Typical scene. They will have severely complicated their lives, whereas what a startup/product needs is simplicity and space to focus (i.e. not a plethora of projects distracting you and occupying more time than hoped). So it may very well be a long while before they truly create the space to do their own product whole-heartedly. I'm not saying it can't be done. They need to weigh whether they want to go through all that.
VERSUS:
a year from now (presumably after demanding a raise) taking 6-12 months off to work on their own product, and if it fails, simply going and getting another job (they'll be better engineers, and it will therefore be easier to get jobs).
At the end of the day, the biggest--and perhaps hidden--factor is whether you have kids. If you don't have kids (or people other than yourself to take care of), and you can't create this environment for yourself, you have other problems. But more than likely while at this stage of your life, you have options. So the trick is not to get yourself into trouble with large under-estimated projects for other people, and to do whatever it takes to create time for yourself and your own projects. That's the name of the game. That's what it's all about. I.e. keeping it simple. Don't get yourself into trouble with too many projects, projects that are too big, working for too much potential that doesn't pan out. Get short low responsibility projects, and make your #1 focus creating time for your own projects.
It's hard to call advice blanket good / bad when the decision is heavily dependent on an individual's end goal combined with their tolerance for risk and uncertainty. Different people need different advice.