Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"I make my students code FizzBuzz, but they will have literally done 106 complete programming projects before it."

Pretty sure I've never met one of your students in an interview...

(Just joking...)



I understand that you're joking, but my students deeply understand the fundamentals. They can code everything from scratch without having to Google anything or ever reference Stack Overflow.

My program is very strong. Some of my former students now write code for Microsoft, Google, Apple, Facebook and Dropbox. (Haven't gotten anyone hired at Amazon yet, though!)


> They can code everything from scratch without having to Google anything or ever reference Stack Overflow.

This isn't a good measure of proficiency. I frequently do both of those things---in fact, I consider it a bad thing when someone does not, because that means that they are not exploring others' solutions to the problem, or learning other methods of doing something. Struggling is a good way to learn, but at some point you should see what others are thinking, and how they are doing it better than you are.

Similarly, manuals (manpages, info manuals, online resources, etc) are essential: trying to memorize every detail when certain things aren't often used is not an efficient use of one's time, and that knowledge will only fade unless applied.

I think the point you were trying to get at was that for what was taught in your course, the students were proficient enough that they didn't need to reference other resources.


There is a difference between proficiency and fluency and when teaching languages it is important to distinguish them. Proficiency is a measure of how many things you can do. Fluency is the degree with which you can do something without undue thinking or planning.

I don't know exactly what the parent poster had in mind, but for me fluency is what you should aim for when teaching novices. You should keep the domain very, very small and help them get to the point where they can explore it without undue effort.

In human language training you get the classic example of "I can read just about anything if I have a dictionary, but a can't speak to save my life". The lack of ability to output fluently is an indication that the language has not yet been acquired.

It is tempting to get students to achieve impressive results based on being able to piece together material from outside sources (Google, SO in a programming context or a dictionary and example sentences in a human language context). However, creating fluency in a small domain gives a more solid conceptual model and will ultimately serve them better IMHO.


> There is a difference between proficiency and fluency and when teaching languages it is important to distinguish them.

That is important; thank you for the clarification.

> fluency is what you should aim for when teaching novices

I think you should aim for both, but yes this is important. An earlier thread mentioned autocompletion: use of it during early stages of learning is a good example of working against fluency.


Yes, I mean that they can code everything in my class without needing a reference.

I don't make them memorize anything -- I agree that's a waste of mental capacity -- they just learn it through tremendous repetition.

Once you know a half dozen programming languages then Stack Overflow and reference manuals are of course useful and I'm sure most of my former students do use them.


> I don't make them memorize anything -- I agree that's a waste of mental capacity -- they just learn it through tremendous repetition.

I don't understand. You are drilling them to memorize through repetition.


As someone who is studying web dev right now, i'm interested in hearing your methods and curriculum, as at least for web dev, it seems so much requires googling/using stack overflow.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: