Live data from Hacker News

The Apprentice Programmer

tobi.lutke.com

111–120 of 156 posts

Re: The Apprentice Programmer

#111
post #7

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.

You've been told right. It was news to me that Germany had such a well-organized system of apprenticeships. It explains a lot.

Re: The Apprentice Programmer

#112
Now I love that the company job board conveys the same type of ideals. http://www.shopify.com/careers?posting=ruby-developer. Nothing gets me more than founders saying "I didn't go to college and look how great I did" while requiring their employees to have a CS degree to even get an interview. I know this is more of a filtering tactic but it seems so disingenuous. The biggest take away from the article wasn't dont go to college, it was find an environment that suits your learning style! College isn't right for everyone especially with student loan debt just about to eclipse 1 trillion dollars.

Re: The Apprentice Programmer

#113
post #38

I 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'm definitely not one that thinks credentials / college matter for most software developers (or frankly, people in general) but setting that aside and looking at what options exist:

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

#114
post #110
post #105

Earlier 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…

That's sort of my point. People without a computer science education often lack the awareness of the gaps in their knowledge. So they don't set out to write a "parser," because they don't know that word.

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

#115

Earlier 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…

Thank you. You words are great inspiration, and it encourages me to work even harder to achieve my goals.

I am definitely picking the harder path, but I believe that in the end it is the right decision.

Re: The Apprentice Programmer

#116
tl;dr The OP is not alone in finding a real problem highly motivational to learn the solution; there is a missing component to computer science education that doesn't address 99% of what application programers do; apprenticeship programs would particularly benefit from certain practical additions to the curriculum.

His 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

#117
post #38

I 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.

A dual system, if you wanted to just turn out programmers who know the basics of scripting, how to use a language, and build applications might work.

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

#118
post #38

I 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…

You could spend years in college or you could just start trying to solve problems collaboratively that lend themselves to principal components analysis. You'll learn PCA much faster via the later approach.

Re: The Apprentice Programmer

#119
post #74

Earlier 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.

>> The boss was negotiating, so negotiation skills are what's needed

All right. Now I'm genuinely curious. What would you have said under those similar circumstances? :-)

Re: The Apprentice Programmer

#120
post #84

Earlier 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.

The state doesn't control hiring in the German system. If you can't find someone to sponsor you for your apprenticeship that's your problem. The state does have to regulate the conditions of work much, much more than is the case in countries like Britain though. In Germany becoming a florist requires a three year apprenticeship and you can't open a florists without someone who has done said apprenticeship. Half-arsing it and just trying it out, entry level jobs that can serve as an entree into a good career without much in the way of formal training; these happen much less in Germany than in the Anglosphere.
Post reply on HN