Live data from Hacker News

The Trouble with CodeSchool

medium.com

11–20 of 29 posts

Re: The Trouble with CodeSchool

#11
I would just like to point out that I believe the CodeSchool methodology is brilliant. I have tried fizzbuzzing my way through Codecademy, reading books and all sorts. But that is not the way I learn: I am an adult. I need to know context. I need goal oriented learning. Furthermore, I am an audio learner more than a visual learner, and because my memory is not as good as it used to be, I need more of the Kinesthetic.

CodeSchool isn't deep, but it gives me a solid overview of a topic and is good at what it does. I _wish_ there was a site out there that could teach me programming, not from fundamentals like a child, but from overarching context and concepts like an adult.

@zachgallant I will try out http://codehs.com next. Thanks for the rec!

Re: The Trouble with CodeSchool

#12
http://tutsplus.com

I have tried several subscription sites, and I prefer this one by far. A few things make it stand out for me: Variety of content and content depth allows you to get a taste for different languages, tools, and syntaxes, while learning enough to kindle the fires of interest. Kindling and nourishing exciting concepts and ideas is what allows for real learning to occur.

Second, I much prefer the more bare bones approach to teaching than the highly polished, high production, hand-holding that defines Code School. Generally, less time is spent on useless background information which noobs will never appreciate anyways and professionals don't generally give a crap about until they decide to "buy in".

Additionally, they tend to purposely leave in (or even intentionally create) errors while presenting that give important context to the underlying logic. This is the sort of thing that always either get cleaned up in post, or is not embraced for the teaching tool it is.

The only drawback is that it operates as a sort of freelance hub, and not all of the commissioned teachers are equally eloquent OR qualified. However, my feeling is that once you get to the point where you're learning advanced patterns, you're already looking at source code and participating in a community.

Re: The Trouble with CodeSchool

#13
> To truly master the art of programming, we must learn the techniques available to us, not just the tools. Data structures, algorithms, design patterns, and computer science concepts are what I’m talking about here.

Exactly how are those techniques not tools of their own? A binary tree is a tool just like a language or a framework is. A quick sort or a merge sort is just another tool - hell, if I'm using a modern language, I can quite easily get any number of sorts in libraries. And what do I gain from learning the implementation details? Divide and conquer algorithms and recursion are wonderful, but simply saying "learn QuickSort" is emphasizing the wrong things.

I'm biased. I'm 19 and never took a formal CS course. I've self-taught myself some of these concepts - not all (bit twiddling is still a mystery to me). But the best programming learning happens organically. I learned how trees worked not out of a book, but because I needed to implement a parent-child relationship in a note-taking app I built. I learned recursion by learning how to do elegant functional programming in JavaScript to simplify my code.

This is how learning happens. You code. You realize your code sucks. You learn to code better. You realize you don't know how to implement something. You learn all you can about it, then you implement it.

Learn concepts because they're practical, not because they're on a list of Shit You Need to Know For Your Whiteboarding Interview. Every single one of the concepts on that list has practical applications, but there's no reason to memorize them and know them by heart unless you plan to use all of them tomorrow.

Otherwise, you're just falling into the same trap you do using a site like CodeSchool: missing the bigger picture of hacking. You're here to build. Learn what you need to do that.

Re: The Trouble with CodeSchool

#14
The market for teaching Computer Science fundamentals is already rather crowded with thousands of Universities competing in that space. It's no surprise that Codeschool et al don't address that market. At their pricing level they are going for volume and volume is obviously at the lower end of the market.

Now there are to me two interesting points:

1. Is there a market for a more advanced CS education delivered outside the University system? Coursera/Udacity/EdX cover this to some extent, but even here their courses are simplified versions of the University offering.

2. Is there a way to do address the volume market in a significantly better way than Codeschool et all do? Their pedagogy is quite out-dated -- it's the old programming language as bag of syntax approach. The How to Design Programs (http://htdp.org/) approach, which I'm familiar with, is much better. I'm sure there are other initiatives.

Re: The Trouble with CodeSchool

#15

> To truly master the art of programming, we must learn the techniques available to us, not just the tools. Data structures, algorithms, design patterns, and computer science concepts are what I’m talking about here. Exactly how are those techniques not tools of their own? A binary tree is a tool just like a language or a framework is. A quick sort or a merge sort is just another tool - hell, if I'm using a modern la…

The best learning curve there is. And additional irony, eventually someone on this curve eats all the white-boarding interviewing for lunch as well.

Re: The Trouble with CodeSchool

#16

> To truly master the art of programming, we must learn the techniques available to us, not just the tools. Data structures, algorithms, design patterns, and computer science concepts are what I’m talking about here. Exactly how are those techniques not tools of their own? A binary tree is a tool just like a language or a framework is. A quick sort or a merge sort is just another tool - hell, if I'm using a modern la…

The problem is without learning the fundamentals, you don't know what you don't know.

I'm 29, I taught myself to program with no formal education and I've been doing it since I made games for my calculator in 8th grade.

However, I'm going back to school for a CS degree (I already had 90 hours of a history degree), and I constantly run into new stuff in my theory classes that would've saved me a lot of time on past projects.

Learning just the practical stuff that you need right now is fine if you just want to hack something together. But know that if you do it that way you'll have gaps in your knowledge that you didn't even know were there until they bite you in the ass.

Re: The Trouble with CodeSchool

#17
I’ve spent the last 3 1/2 years working on a computer science degree from Stanford. In the past year, I cannot think of a time my understanding of the concepts mentioned in the article provided me a particular advantage in my programming work. That time includes a research position, an internship at VMware, an internship at Nicira (bought by VMWare), a self-initiated Unix course, a TAship in networking and a few quarters teaching introductory computer science in the CS 198 program.

I found this article intentionally contrarian for no useful purpose. Gayle, the founder of Career Cup cited at the end, runs a business grooming programmers to work at large companies (see her book 'The Google Resume'). Google and other large software companies are notorious for asking puzzle questions. Jeff Atwood, founder of Stack Overflow, has repeatedly expressed a hate for these questions. I've bought one of Gayle's books. It was well-written and helpful. However, I assume most programmers starting with Codeschool, Lynda and others are just dipping their feet into the world of software not shooting for working at Google tomorrow.

Mastery of computer science concepts is important in the long term. But as a 'long-term' programmer (~2 years of serious programming), I have yet to implement my own complex data structures in production use beyond simple JSON objects. Libraries simply abstract most of these problems efficiently enough for most work.

I read a comment recently stating 'the best programmers don't need frameworks'. Of course! The best produce frameworks themselves! And more importantly, the best produce frameworks, languages, and tools to educate the next generation of programmers in best practices. (See zachgalant's comment above.)

For those of us in software, let us not challenge ourselves to achieve personal mastery and also to enable mastery and education for others.

Re: The Trouble with CodeSchool

#18

The market for teaching Computer Science fundamentals is already rather crowded with thousands of Universities competing in that space. It's no surprise that Codeschool et al don't address that market. At their pricing level they are going for volume and volume is obviously at the lower end of the market. Now there are to me two interesting points: 1. Is there a market for a more advanced CS education delivered outsi…

Hello! I'm one of the co-founders of Dev Bootcamp (http://devbootcamp.com). The answer is 100% yes. :)

Funny enough, we go over basic data structures (linked lists, stacks, queues, etc.) in the first week at DBC and we emphasize at every level of the curriculum that being a good programmer means being able to translate some idea you have in your head into code. We teach mainly Ruby and JavaScript, but the students know it's incidental.

I just helped four students today finish their first-week project, which is a Sudoky solver. When they see the solver I wrote solve 500 puzzles in 5 seconds they want to know how. That's the perfect time to teach them about algorithms and data structures.

Re: The Trouble with CodeSchool

#19
post #2

There's always 2 sides to this argument. CS grads will say codeschool grads don't know enough CS fundamentals. On the other hand non-CS grads will say CS grads only know CS theory and don't actually know how to build products.

They're both wrong. It's a false dichotomy. The best programmers run up and down the ladder of abstraction. The magic happens the marriage of the two.

Re: The Trouble with CodeSchool

#20
post #16

> To truly master the art of programming, we must learn the techniques available to us, not just the tools. Data structures, algorithms, design patterns, and computer science concepts are what I’m talking about here. Exactly how are those techniques not tools of their own? A binary tree is a tool just like a language or a framework is. A quick sort or a merge sort is just another tool - hell, if I'm using a modern la…

The problem is without learning the fundamentals, you don't know what you don't know. I'm 29, I taught myself to program with no formal education and I've been doing it since I made games for my calculator in 8th grade. However, I'm going back to school for a CS degree (I already had 90 hours of a history degree), and I constantly run into new stuff in my theory classes that would've saved me a lot of time on past pr…

While I agree with you I think its equally, and if not more important to have a broad high level knowledge of topics.

I taught myself recursion, threading, bit manipulation, design patterns etc as I needed them. I knew what problems they solved at a high level and only learnt the implementation when I needed to.

For example, I only knew about where you might use the decorator pattern before I had a programming test for a job which required you to "create a plugin system". A few hours learning how to actually apply it and I was good to go.

Also if you surround yourself with people smarter than you, you always have someone to point you in the right direction.

This is why I love HN, even though my background is engineering. I get a high level understanding on marketing, design, sales, hireing, product development etc etc

Its cliché, but "learning how to learn" is whats important to me.

Post reply on HN