Hacker News new | ask | show | jobs
by paul_milovanov 4055 days ago
Beware of foregoing formal university education just because you are getting coding gigs.

CS/math fundamentals are golden and make the difference between you being just another redundant dime-a-dozen ruby coder and a world-class engineer. Not to mention personal enjoyment of what you do down the line. Take a look at the Silicon Valley for proof.

Learning all this stuff on your own is possible, but much harder when you're "working 18 hour days". Harder yet if you eventually have financial commitments (e.g 14 cases of child support payments, har har).

2 comments

As someone without a formal education in this path, I mostly agree...

It took almost a decade before I would have considered myself very good... And in fairness, many of those even with formal education I wouldn't consider good. Passion accounts for a lot. I didn't start getting really good until I actually started deeper reading into more conceptual bits of programming, and some of the hard math still isn't the easiest for me, fortunately a lot of real world work doesn't need it so much in practice.

In development, with sufficient drive and without formal education, you'll spend 4-5 years just mastering your tools (the languages you tend to use, your environment for development and deployment etc)... and another 4-5 years on deeper understanding of the craft itself... even then you'll be missing on some of the deeper more low-level understanding.

There's room in this world for both, but if you can get a formal education without amassing hundreds of thousands in debt, I'd say go for it. Just don't think you'll be done learning when you graduate (I still spend at least 10-20 hours a week reading on software/tech), and accept that you will have to break every rule in practice during a career.

I know a really successful, world-class, senior Google engineer who doesn't have a high-school diploma. He's very smart and incredibly hard-working, a great mentor and an inspiration to others. He's also probably been lucky.

Could that be you, the OP? Of course.

Could that be the right path for someone who can't stand formal learning environments and thrives on the challenge of real problems? Sure.

Is it very hard and risky? Yes, in all sorts of ways. You need great mentors and people that will show you how much you don't know. If you accidentally end up surrounded by mediocrity, it's very easy to fall prey to Dunning-Kruger effect. How do you get to work with world-class engineers? It's a catch-22 although not impossible. Universities, on the other hand, are by design a place with many smart people, and you're not expected to have anything other than potential to join.

(And yes, absolutely, if you decide that you're done learning after graduating, good luck with your future hardship. Unless you first learn COBOL, in which case you might still be able to comfortably ride on it for another 20 years)

> CS/math fundamentals are golden

I agree with this. Before going to university I thought I was an ace programmer.

After just a single semester I could look back and see just how sloppy and awful my pre-university programming was.

I'm very thankful to my university degree for teaching me rigour and core CS fundamentals. Yes, you can learn them elsewhere, but like my parent post says, it's much harder and sometimes you might not even know where to start.