4 ms·
I'm going to go against the grain here and say that in my experience, self-taught engineers typically deliver worse products, and I say that as someone who is m
by coderenegade 1y ago
I'm going to go against the grain here and say that in my experience, self-taught engineers typically deliver worse products, and I say that as someone who is mostly self-taught, albeit lucky enough to have benefited from good mentoring. The best programmers I ever met all did software engineering or computer science, or were themselves mentored by others with a lot more experience.
I think the difference comes down to how you view programming. The self-taught programmers I've met typically see programming as a means to an end, and take "it runs on my machine" as the measure of success. Someone with more discipline will understand that that's the lowest bar and mostly a given for someone whose job is to write code. The real measure is can you come back to it in 6 months and know what you did? Can you easily expand on it to add new functionality? There's a craft there that isn't obvious unless you've done enough coding for long enough to run into the problems that software engineering is designed to solve. And if you're built like that, mentoring helps bridge that gap, because you understand why certain techniques exist. They're not just arbitrary patterns.
So I don't think it's being self-taught that makes the difference, but rather, being the kind of person who writes code that gets revisited. Even if you make a hash of it, it'll give you context so that when someone better than you comes along and points out a better strategy, you understand why it's an improvement. And I think that's true regardless of whether you're self taught, or you have a degree, it's just that having a degree in software gives you those strategies from the get-go, even if you don't necessarily have the context.
- YZF 1y agoThose best programmers you ever met; Was their first introduction to programming in university? The single very best programmer I've ever known was self taught. He went part way through a CS program and dropped out but that was after he was already the best I've ever met. Incredible skills. Software that worked. Incredible productivity. Across different languages and technologies. Rarely have I met someone who didn't have interest in software and computers before university (e.g. as a kid or teenager) be a really great software engineer. I've met many who took CS or Engineering because it's a good profession, they can make money, and have no passion or particular aptitude. In my opinion the best mix is a combination of self taught and some formal schooling. Passion, aptitude and education. You can learn the formal stuff on your own but it's harder to do. All of us software engineers are self taught. The stuff we do is generally not taught in university. I have a CS degree but 99% of what I do is not that. That's not to say formal education in CS and various related areas is not useful. In some specific software engineering jobs perhaps more so than others.