I feel like confirmation bias is in play when you read about successful people who have dropped out of school, succeed, and then blogged about it. You have to keep in mind the hordes of people who have followeded a similar path only to archive not enough to blog about. Self education may appeal to many of us here, but it applies to less than it appeals to.
Obviously - the system clearly doesn't just produce huge successes. I simply wanted to tell my story because it's sufficiently different from most people's background to be interesting, or so I was told.
The Apprentice Programmer
111–120 of 156 posts
Re: The Apprentice Programmer
#112Re: The Apprentice Programmer
#113I simply do not understand this anti-college anti-credentialling sentiment. I am featured in the latest Hacker Monthly ( print version of HN). So they asked me for a bio. I wrote something about how I learnt everything in college...am not a hacker...and that you should go to grad school if you want to get better at CS. So they edited out all of the pro-college stuff and just said this guy is data scientist. You don't…
I think a big part of the problem is the irrationality of getting a degree in 'Computer Science' to be a programmer (aka 'Software Engineer'). My degree is in Electrical Engineering with a Computer Engineering focus and I would never have gone for an Electrical Physics degree. I wanted to build things, not be a research scientist.
So, why is the de facto degree for programmers Computer Science? How much do you actually learn about building software in a CS program? My experience indicates, not much. You learn a lot of computational science, great, most products have 1 or 2 difficult algorithms at their core, but they often represent an amazingly small % of overall development time, where is the training for everything else that needs to be done?
The biggest problem is that there seem to be no good Software Engineering programs. Software Engineering degrees do exist but they seem to be woefully outdated and only address a small subset of those people whom wish to 'build things' with software.
Re: The Apprentice Programmer
#114Earlier quoted context omitted.
You don't learn to code in college, or at least not in class. Good coders almost universally learn outside the classroom. This is true for people who go to college and those that forgo it. So if you don't go to college to learn to code, why go at all? You go to learn the fundamentals of computer science and math which underlie everything that we do. It's certainly possible to obtain this knowledge on your own with se…
>It's certainly possible to obtain this knowledge on your own with serious self-study. But it's a hard route (albeit one getting easier thanks to Coursera et al.) Now, what little math and theory I have learned, well, really, what anything I've learned... I've found that it's dramatically easier to learn from books than from a lecture. First, people talking? really, really slow. I ain't no speed-reader, but I can man…
They're faced with the problem of parsing some custom text format. Maybe they'll try some terrible regex hack (see: http://stackoverflow.com/a/1732454). Maybe they'll stumble onto recursive descent parsing. But if you've taken a class on compilers (or automata theory) you'll know when regular expressions are not up to a parsing task, and you'll know about parser generators and how to write a grammar for one.
How can these CRUD programmers avoid re-inventing the wheel if they've never been exposed to it?
Re: The Apprentice Programmer
#115Earlier quoted context omitted.
I completely agree with you. You expressed exactly what I was thinking. I am 15, and I am planning to drop out of school. It is extremely frustrating trying to persuade my parents that dropping out of school doesn't mean I am giving up on life, and that I am not a failure. I cannot function in this artificial society that exists in schools, and I learn much better by myself. Finishing school would be complete waste o…
> There are always exceptions, but you will have to be exceptional in their eyes. This is spot-on. People take certain prejudices to their modelling high school dropouts. These are formed by the sheer repetition of observation. Dropping out is something Bad Students do. It's low status. Even an average student who drops out will have the story of their life coloured in terms of: 'he could have done _even_ better if h…
I am definitely picking the harder path, but I believe that in the end it is the right decision.
Re: The Apprentice Programmer
#116His learning "disability" is all but universal: teaching style doesn't give students a real problem to solve. That's how science is supposed to be taught. Ask your students: can you build an engine out of a pot of water, a tight-fitting rubber cap that expands, and a small weight that can be attached and detached from a crank at any point in it's motion?
This is how you introduce temperature, heat, pressure, volume, work, etc. And I can't help but think that an apprenticeship basically achieves the same thing: it motivates the learner with real problems that motivate them to find a solution.
This is great in theory, but in practice CS doesn't really answer the problems you have as an application programmer. Much of CS "book learning" is focused on things like compilers, systems programming, or data-structures and algorithms. I don't know about you guys, but I spend very little of my time designing languages, compilers, or systems programming. I don't even spend that much time choosing data-structures. No, I spend most of my time learning the interfaces that other people have built around these things - learning how to parameterize and operate within someone else's higher-level environment (which is also known as a platform).
So what should ordinarily be an exercise in data structures and algorithms becomes a piece of techno-social detective work: nothing less than the determination which library/tool/framework is appropriate for the project, and then to get busy learning that combination to be able to release real software. If there exists, anywhere in the world, a class on how to discover, evaluate, and integrate libraries into an existing project, I don't know of it. In the same way, I doubt there exists a class on comparative application architectures.
Re: The Apprentice Programmer
#117I simply do not understand this anti-college anti-credentialling sentiment. I am featured in the latest Hacker Monthly ( print version of HN). So they asked me for a bio. I wrote something about how I learnt everything in college...am not a hacker...and that you should go to grad school if you want to get better at CS. So they edited out all of the pro-college stuff and just said this guy is data scientist. You don't…
Author is simply trying to say that going to college was not for him since he is a kinesthetic learner and prefers learn by doing. I believe he is advocating a dual system of education with a combination of college or apprenticeship since there are different types of learners out there. College is the 'only way out' for many people, otherwise you would be considered a failure and cannot find a job.
If the "dual" system were to include architecture, algorithms, discrete math, and deeper subjects that a typical CS curriculum usually covers, what's the point of an apprenticeship system if it is replicating academia?
I can see a need for a trades like class, but here in the US we already have an assortment of community colleges, certificate programs and the like that replicate that model.
Re: The Apprentice Programmer
#118I simply do not understand this anti-college anti-credentialling sentiment. I am featured in the latest Hacker Monthly ( print version of HN). So they asked me for a bio. I wrote something about how I learnt everything in college...am not a hacker...and that you should go to grad school if you want to get better at CS. So they edited out all of the pro-college stuff and just said this guy is data scientist. You don't…
Re: The Apprentice Programmer
#119Earlier quoted context omitted.
Speaking only for myself, it comes from a combination of selection bias and general mistreatment at the hands of others. When you see someone who has three degrees in various flavors of computer science (BS, MS, PhD) who doesn't know about what happens when you use "==" with two floats, it builds. When your boss tells you that he won't pay you any more because you don't have a degree, it builds. When you find out he'…
> When your boss tells you that he won't pay you any more because you don't have a degree, it builds. It's just a convenient excuse. If it wasn't a degree it'd be something else. The boss was negotiating, so negotiation skills are what's needed in this situation, rather than a degree.
All right. Now I'm genuinely curious. What would you have said under those similar circumstances? :-)
Re: The Apprentice Programmer
#120Earlier quoted context omitted.
Yup. In the UK we are trying to reconstruct the 'dual system' and we have things that are called apprenticeships but not quite as well organised as the ones they have in Germany. The OP is not a drop-out. He has followed an established path!
the UK system is an extremely poor version of the German system. To implement an apprenticeship model, the state HAS to take direct control over the hiring of almost all entry level employees. otherwise the incentives and work culture is simply not in place for a large number of meaningful training opportunities to exist.