Hacker News new | ask | show | jobs
by btschaegg 3379 days ago
> In context, this is about CS classes, while the others might do some programming they shouldn't need to do computer science.

We seem to read the same statement differently. I actually had a CS101 class in highschool (also in Pascal, I didn't learn much there ;-) ). While all students there wanted to go in the engineering/science direction, I think only a hand full of us ended up in CS. Granted, this might be due to terminology.

On the other hand, I work with people who studied "business informatics", which at a bachelor's degree has the same base classes. I can guarantee you none of them use a pointer in their daily work (again, they do more in the sysadmin direction).

> To anyone on the path of becoming a professional programmer, ...

Yes, but not in the first lecture. Not before they know what a loop is. Many don't even know the command line (yes, I was also stunned to see that).

On the other point, I entirely agree :). I could make a huge list of frustrations I have with professionals not being willing or able to introspect how things work.

> c/c++ don't force this straight away though, [...]

As I said, it's not so much of the language anymore, more its legacy. C++ has stuck around quite a while, and this results in an abundance of old and bad APIs.

And with the better ones, you'll be able to leave pointers aside, but end up ignoring templates instead... Also, already the output operator on STL streams means you'll have a lot of explaining (or ignoring) to do.

Additionally, if you really are already teaching computer science students, I'd say you'll give them a better time explaining pointers and so on to them after they already know a language they can certainly use in the industry - in which case the idea of using Java to start out still has a point...

Edit:

This basically leads back to the original argument of the article: If you change the starting language for beginners, do it for their learning progression. If you're changing it to C++ for C++'s sake, you won't be doing your students a favor, stick with Java. If you can tolerate telling your students "hey, look, this magical thing is actually that feature here", you can also tell them later on that C++ is basically much like Java except for some details. I think language switching isn't as hard as it's made out to be if you're teaching the right concepts.

1 comments

Yeah, I did Pascal in high school too, but I thought x01 were college designations, we don't use them here.

Actually, I've been brushing up on my awk lately and it seems like it might be a good candidate for those not on the CS track.

It teaches/requires the command line. It has a built in loop (great for fast feedback). It's a decent enough language. And I'd argue it and the rest of unix tools are probably more worthwhile than any general purpose language, they're brilliant for data wrangling.

> I thought x01 were college designations, we don't use them here.

As I said, this is properly a terminology question. I can't speak from experience for the american naming scheme, and where I live, much of it has been "rehashed" in different institutions.

Does that mean that you have noone at the beginning of a CS degree that can't program yet? We certainly hat a good bunch of them.

As for UNIX tools: Absolutely. I've never gotten around to learn awk properly (and never had any need to), but having experience in bash (and other shells) in combination with the GNU tools has had countless benefits for me so far.

Do you have any preference for introduction material for awk?

Edit:

When it comes to data processing, I also really like what projects like pandas are doing:

https://pypi.python.org/pypi/pandas

> Does that mean that you have noone at the beginning of a CS degree that can't program yet? We certainly hat a good bunch of them.

I don't think our school was very typical, it was a fairly poor public school, I suspect it was taught because there was a sepecific teacher that wanted to teach it. It was being run from the commerce department at the time, with half the time spent in the graphic design class rooms (they only ones with computers). This was in the late 90's when they were still teaching us touch typing on electronic typewriters. It does seem like a huge waste for students to start a CS degree without experience though, a good portion of them will never have any aptitude for it.

> Do you have any preference for introduction material for awk?

I've been going through O'Reilly's "Sed & Awk" that was sold as part of a unix bundle a while ago. I haven't done much at all, though it has simplified monitoring things at work, like coloring log files reading from log files to tell us how many and how long a particular set of processes are taking.