HN2new | past | comments | ask | show | jobs | submitlogin

Honestly, I'm not surprised, but I believe this is bad news. Learning C programming (first) was probably the most advantageous thing that has ever happened in my life of programming. When you understand C you understand how the computer functions, and in turn can write better software. It prepared me for virtually all programming and has enabled me to understand concepts correctly, the first time, and has made my life significantly easier.


I think C makes a great second language. Use Python to teach if statements, variables, control structures etc - then later use C to teach low-level algorithms, pointers and how computers actually work.

I don't think there's any harm in learning Python first. I think they may be harm in learning C first - it's much more likely to frustrate people and potentially even put them off programming.

This is the same reason I dislike Java as a teaching language: having to tell people "don't worry about what public static void main(String[] args) means just yet" when teaching "hello world" isn't a great introduction to programming.


>This is the same reason I dislike Java as a teaching language: having to tell people "don't worry about what public static void main(String[] args) means just yet" when teaching "hello world" isn't a great introduction to programming.

This is exactly why I have always thought that the move to Java for intro courses was a terrible idea.

C/C++ were never ideal for beginners, but it was still possible to strip it down to building blocks without immediately resorting "don't worry about this now."


>C/C++ were never ideal for beginners, but it was still possible to strip it down to building blocks without immediately resorting "don't worry about this now."

I agree. Except during that first C lecture when reading console input and was told 'don't worry about the ampersand, just remember to use it for scanf variables, we'll get to that later'.


"What does `#include <stdio.h>` and `int main()` mean? Why do I have to write them?"


Those can be understood from a high level point of view in a few minutes time. I've sat through multiple classes that have done just that.

Java is so deeply OOP that there's just no way for somebody to grasp and understand the concept of e.g., a public method when they haven't even learned about variables or basic conditional logic yet. A total novice just plain isn't equipped to handle some of the concepts that are immediately thrown at them with a simple hello world.


That's how it's done at the University of Central Florida for the introduction to programming course. You learn Python for the first six weeks, and then learn C for the remainder. It's nice!


You should really know how the soil and weather works before starting to farm. Otherwise you will end as a seasonal worker.


To get a turing complete programming language all you need are functions and function applications. Pointers and low level memory management are just an implementation detail :)


Do you think agricultural schools sit people inside for a month to learn geology and meteorology before they let them step on a farm?

C is important to know, but there's lots of stuff you need to learn before that.




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

Search: