3 ms·
The point of going to school is to learn all the details of what goes into making things, so when you actually make a thing, you understand how it’s supposed to
by orev 8mo ago
The point of going to school is to learn all the details of what goes into making things, so when you actually make a thing, you understand how it’s supposed to come together, including important details like correct design that can support the goal, etc. That’s the “getting stronger” part that you can’t skip if you expect to be successful. Only after you’ve done the work and understand the details can you be successful using the power tools to make things.
- charcircuit 8mo agoThe point of school for me was to get a degree. 99% of the time at school was useless. The internet was a much better learning resources. Even more so now that AI exists.
- josephg 8mo agoI graduated about 15 years ago. In that time, I’ve formed the opposite opinion. My degree - the piece of paper - has been mostly useless. But the ways of thinking I learned at university have been invaluable. That and the friends I made along the way. I’ve worked with plenty of self taught programmers over the years. Lots of smart people. But there’s always blind spots in how they approach problems. Many fixate on tools and approaches without really seeing how those tools fit into a wider ecosystem. Some just have no idea how to make software reliable. I’m sure this stuff can be learned. But there is a certain kind of deep, slow understanding you just don’t get from watching back-to-back 15 minute YouTube videos on a topic.
- abustamam 8mo agoI think it depends on how they were self taught. If they just went through a few tutorials on YouTube and learned how to make a CRUD app using the shiny tool of the week, then sure. (I acknowledge this is a reduction in self-teaching — I myself am self-taught). But if they actually spent time trying to learn architecture and how to build stuff well, either by reading books or via good mentorship on the job, then they can often be better than the folks who went to school. Sometimes even they don't know how to make software reliable. I'm firmly in the middle. Out of the 6 engineers I work with on a daily basis (including my CTO), only one of us has a degree in CS, and he's not the one in an architecture role. I do agree that learning how to think and learn is its own valuable skill set, and many folks learn how to do that in different ways.
- josephg 8mo ago> But if they actually spent time trying to learn architecture and how to build stuff well, either by reading books or via good mentorship on the job, then they can often be better than the folks who went to school. Yeah I just haven’t seen this happen. I’ve seen plenty of people graduate who were pretty useless. But … I think every self taught programmer I’ve worked with had meaningful gaps in their knowledge. They’d spend a week in JavaScript to save them from 5 minutes with C or bash. Or they’d write incredibly slow code because they didn’t know the appropriate algorithms and data structures. They wouldn’t know how to profile their program to learn where the time is being spent. (Or that that’s even a thing). Some would have terrible intuitions around how the computer actually runs a program, so they can’t guess what would be fast or slow. I’ve seen wild abstractions to work around misunderstandings of the operating system. Hundreds of lines to deal with a case that can’t actually ever happen, or because someone missed the memo on a syscall that solves their exact problem. There’s also hairball nests of code because someone doesn’t know what a state machine is. Or how to factorise their problem in other ways. One guy I worked with thought the react team invented functional programming. Someone else doesn’t understand how you could write programs without OO inheritance. And I’ve seen so many bugs. Months of bugs, that could be prevented with the right design and tests. I’ve worked with incredibly smart self taught programmers. Some of the smartest people I’ve ever worked with. But the thing about blind spots is you don’t know you have them. You say you’re self taught, and self taught people can be better than people who went to school. In limited domains, yeah. Smart matters a lot. But you don’t know what you don’t know. You don’t know what you missed out on. And you don’t know what problems in the workplace you could have easily solved if you knew how.
- abustamam 8mo agoYeah, I agree, but not knowing what you don't know applies to almost everyone in every skill, not just programming. I acknowledge I have gaps in my knowledge. But it's because of those gaps that I am always trying to supplement my knowledge by studying different data structures, different patterns for solving problems, different algorithms. I don't aim for complete mastery. I aim for basically "what can I add to my bag of problem solving tools." I concede that because the barrier to entry is low, stories similar to your anecdotes are probably quite common in most self-taught programmers. I think this just speaks to the necessity of rigor during the interview process. Like, does the candidate just know how to build features, or do they know how to design fail-proof systems? Also, to clarify, I'm not arguing that self-taught vs CS grad is mutually exclusive to smart/not smart. There are plenty of not-smart self-taught engineers and plenty of smart grads. > In limited domains I'd argue that many, if not most, teams operate in limited domains.
- leptons 8mo ago>I’ve worked with plenty of self taught programmers over the years. Lots of smart people. But there’s always blind spots in how they approach problems. I've worked with PhDs on projects (I'm self-taught), and those guys absolutely have blind spots in how they approach problems, plenty of them. Everyone does. What we produce together is better because our blind spots don't typically overlap. I know their weaknesses, and they know mine. I've also worked with college grads that overthink everything to the point they made an over-abstracted mess. YMMV. >you just don’t get from watching back-to-back 15 minute YouTube videos on a topic. This is not "self taught". I mean maybe it's one kind of modern-ish concept of "self taught" in an internet comment forum, but it really isn't. I watch a ton of sailing videos all day long, but I've never been on a sailboat, nor do I think I know how to sail. Everyone competent has to pay their dues and learn hard lessons the hard way before they get good at anything, even the PhDs.
- r_lee 8mo agoI haven't heard of self taught programmers binging 15 minute YT videos. I can't recall the last time I did myself.. aside from conference talks and such its probably been at least 5 years since I watched something explaining things in the realm of programming. Am I an outlier or am I missing something here?
- daotoad 8mo agoFor a motivated learner with access to good materials, schools provide two important things besides that very important piece of paper: 1. contacts - these come in the form of peers who are interested in the same things and in the form of experts in their fields of study. Talking to these people and developing relationships will help you learn faster, and teach you how to have professional collegial relationships. These people can open doors for you long after graduation. 2. facilities - ever want to play with an electron microscope or work with dangerous chemicals safely? Different schools have different facilities available for students in different fields. If you want to study nuclear physics, you might want to go to a school with a research reactor; it's not a good idea to build your own.
- _carbyau_ 8mo agoTo extend 2. facilities, my experience had a - somewhat older and smaller - supercomputer that we got to run some stuff on. And I'd argue for: 3. Realisation of the scope of computing. IE Computers are not just phones/laptop/desktop/server with networking - all hail the wonders of the web... There are embedded devices, robots, supercomputers. (Recent articles on HN describe the computing power in a disposable vape!) There are issues at all levels with all of these with algorithms, design, fabrication, security, energy, societal influence, etc etc - what tradeoffs to make where. (Why is there computing power in a disposable vape?!?) I went in thinking I knew 20% and I would learn the other 80% of IT. I came out knowing 5 times as much but realising I knew a much smaller percentage of IT... It was both enabling and humbling.
- charcircuit 8mo agoBut you can also meet experts at a company and get access to a company's machinery. To top it off the company pays you instead of you paying the school.