5 ms·
I'm often baffled by why it is that Programming is one of the very few (perhaps only) academic disciplines or technical proficiencies where learning without the
by ajarmst 10y ago
I'm often baffled by why it is that Programming is one of the very few (perhaps only) academic disciplines or technical proficiencies where learning without the assistance of another, more expert, human being is not only accepted, but encouraged. I expect it's because we're a young discipline and there are enough people around who did teach themselves and aren't critical about whether they might have done better with a teacher. While it's certainly possible to learn programming on one's own, that approach is fraught with the same problems that learning advanced maths, physics or martial arts on one's own would be: you're apt to miss (or never even encounter) foundational ideas and techniques, develop idiosyncratic or even inappropriate approaches, be unfamiliar with key theory, etc. My experience with several generations of programmers is that the self-taught can be excellent programmers, but they also tend to not play well with others, have difficulty integrating their code into larger projects, and sometimes wander off into territory (and algorithms) a more formally trained person would know to avoid. They also have a lamentable tendency to reinvent the wheel, and to be unable to effectively argue for or against a particular approach on the basis of objective criteria. So, while it's possible you're the Computer Science equivalent of Ramanujan, it's much more likely you're not.
- echelon 10y agoYou're absolutely correct that programming seems to be one of the few disciplines that can be self-taught. It certainly feels like the only science and engineering discipline (as music and the arts are accessible to those who take the time to self-learn). I'd really like to learn quantum mechanics and particle physics, but I see almost no alternative to going back to school. I took lots of Calculus and had two semesters of Physical Chemistry, but I doubt I can rely on that much now. I've thought about hiring a university student as a tutor, but even that seems inadequate...
- user837387 10y agoI think there is just one main equation in Quantum Mechanics [1]. Learn how to work with that one equation and you are pretty much there. [1] https://en.wikipedia.org/wiki/Schr%C3%B6dinger_equation https://en.wikipedia.org/wiki/Schr%C3%B6dinger_equation Of course, figuring out how to use that equation may require lots of work but I think that is pretty much it. I 'm no physicist but at least this is were I would start. It is similar in Electrical Engineering and Mechanical Engineering. In Electrical Engineering pretty much everything derives from Maxwell's equations and in Mechanical Engineering everything derives from Newton's Laws of motion. Everything else is just details.
- ajkjk 10y agoIn case you really want to try something -- If you want to learn QM, you should pick up Griffith's "Introduction to Quantum Mechanics" and work through it. It's a readable undergraduate level treatment that hits all the important stuff.
- wycx 10y agoFull text here: https://archive.org/details/IntroductionToQuantumMechanics_718 https://archive.org/details/IntroductionToQuantumMechanics_7...
- truth_sentinell 10y agoI don't understand. A self-taught programmer would know everything he needs to know given that he learnt with the right resources. Whatever you can learn from a teacher you can learn it from a book; teachers themselves write the books! The only difference would be that you can't ask question to a book, and if you have the right questions, that's invaluable. Good thing we have forums and stackoverflow, but sometimes questions don't get answer and when they do, they don't get a quality answer for that matter.
- emodendroket 10y agoTo add to this, I wonder how much better sitting in a lecture hall listening to a professor explain something actually is than watching a recording of that same lecture.
- keerthiko 10y agoI think one of the reasons why people are encouraged to learn programming on their own over other disciplines is because it is perhaps the most flexible field for a large swathe of the learning-styles spectrum. Are you the kind who learns best from observing large complex solutions produced by someone else and tinkering with it? Available. Read from textbooks and answer prepackaged problems with definite solutions? Aplenty. Prefer to build something from scratch learning what you need as you go along? Perfectly suited. And you can prove your competency easily: "here's a thing I built using what I learned and/or I understand how this works perfectly well and I can talk about it." The skills for other career paths do not have this confluence of circumstances. Learning accounting is a lot of bookwork, you can't just "dive in". Learning to be a car mechanic, you have to get dirty, you can't just read a bunch of textbooks. You want to become a martial artist, you can't just kick a tree a bunch and become an expert. But you can do the equivalent for programming and be just fine.
- generic_user 10y ago> Programming is one of the very few (perhaps only) academic disciplines or technical proficiencies where learning without the assistance of another, more expert, human being is not only accepted, but encouraged. You have to draw a distinction between programming as a skill and holding an accredited degree in Computer Science. You can certainly learn to program some useful Python without learning advanced Analysis of Algorithm, Abstract Algebra, Type theory, Building compilers and many others at University. What level of skill is needed is highly dependent on context. There is a vast need for programmers with a freshman or sophomore level of programming skill who have some domain specific knowledge in practically every industry you can think of. Having a degree requirement for most of these positions would result in highly over qualified people and a rapid turnover. If your project requires skills that only someone with a degree is likely to have then by all means put that as a requirement. But there are many positions that simply do not need upper division skills to get the job done.
- sin7 10y agoIt's the immediate feedback. The problem comes when the programs grow and the feedback is no longer immediate.
- RandomInteger4 10y agoI think that programming has a pedagogical bonus attached to it that other disciplines, except maybe writing and various arts, don't have. With programming you can build something gratifying and real at no cost, which, if you're good enough, can actually lead to monetary reward rather quickly. This type of instant and rewarding feedback is immense when it comes to learning something. Think of every other STEM subject. With Chemistry, sure you can learn about the subject, but to perform experiments you need money to buy materials, and nobody will hire a chemist without a degree. With Physics you're in a similar but different sort of situation, where even if you could afford the materials, you're limited to rather boring experiments along the lines of projectile motion, which doesn't seem to offer an rewards unless you become big on youtube. With engineering, I guess you can build some stuff, and that might actually pay off in the long run and be useful in the short run, but again, material costs. With programming you just need a computer and you can pretty quickly make something that you can monetize, even simply using free hosting if you're idea is decent enough. With a super minor investment in a market license you can put a good enough app up and start making bank. The only real limit is your brain.
- deleted 10y ago[deleted]
- emodendroket 10y agoI don't think self-study in other fields is actually frowned upon.
- tonyedgecombe 10y agoMy experience with several generations of programmers is that the self-taught can be excellent programmers, but they also tend to not play well with others, have difficulty integrating their code into larger projects, and sometimes wander off into territory (and algorithms) a more formally trained person would know to avoid. What a load of bollocks.
- vvanders 10y agoGiven how fast this industry moves I'd argue that a self-taught programmer actually has an advantage since they've shown an aptitude to pick up relevant things without direction. I've seen PhD developers who can't code their way out of a wet paper bag so we can all make sweeping judgements :).
- redleggedfrog 10y agoI'm going to go out on a limb here, but it's an honest limb. For the world I've lived in for the last 25 years, commercial and contract software development, I would go so far as to say a degree in some sort of computer science is actually a detriment. Going through the list of co-workers I've had, there is a definite pattern of the ones that were self-taught were better programmers than the ones with degrees. Of course, there were exceptions, but it was when someone caught the programming bug before they went to college. It seems that the success of our industry caused people to get the idea it was a great degree for getting a good job after college, but they didn't realize it takes passion to stay on the perpetual learning curve. They are often difficult to get good results out of, both technically and personally. Anecdotally, our current team of 15 the, 5 of the 6 best programmers are self taught, including the excellent lead programmer (well, one of those 5 is a college drop-out, as am I). One of the first programming jobs I had was for a what most of would consider an industry luminary of his day, and he was self taught. When I moved on the next job was run by a self-taught programmer, as is the company I work at today. I'm not saying a degree in something computery is bad, it just not the advantage the other degrees seem to be. And to a certain degree (no pun intended) I wish it was. It just doesn't seem like a computery degree properly prepares people for the actual rigors they will face.
- JoeAltmaier 10y agoI suspect Selection Bias
- redleggedfrog 10y agoAnd you may be correct in that perhaps a self-taught programmer prefers a self taught programmer and that's the sort of group we have formed. Hence my "anecdotally." But in the end, the proof is in the pudding. When you've got to deliver, and the people who deliver best are self-taught, then in really reinforces that assumption.
- JoeAltmaier 10y agoI too observe the best colleagues I have historically were not Computer Science degree-holders. In fact two have no degree at all.