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

Programming hasn't changed, people teaching it have. There used to be Cobol and SQL back in the day too, they just didn't teach it at MIT.


I disagree, programming has changed greatly.

Today programming is mostly about picking existing components and gluing them together. Those components are themselves mostly gluing together of other components, to many levels. While it is still possible to write code from scratch, that is usually not a productive use of time.

SICP is an awesome book, but it is probably better for a pure Computer Science course after you have had other courses.


> While it is still possible to write code from scratch, that is usually not a productive use of time.

The thing you use to “glue components together” is as much code as the components themselves are, and the techniques used in connecting them run the full gamut of programming skills.

SICP may not be the best pedagogical tool available today, because the space of options in programming pedagogy has changed, too. But the skills it teaches are no less relevant.


Creating things from scratch is still definitely a thing, particularly for high performance code. Sure, there are plenty of data structure libraries, but squeezing out that last bit of performance often requires something bespoke.

For example, I recently wrote a custom CSV parser because I needed something that did no heap allocation but without mutating the original character array (using explicit string lengths).


This is a ton of fun! If you have the double-quote escaping then you have to mutate the data in place, but if it's just a table of numbers then not.

Usually CSV parsing doesn't matter, but when it does, it matters a lot.


Your comment gave me flashbacks to FORTRAN data files with fixed width data descriptors.


I would put it like this: consistent small gains programming is about gluing components together. There are plenty of non-incremental (big impact or flop) programs that couldn't have been made by just gluing components together. E.g. BitTorrent, AlphaZero, and seL4.


What's the practical difference between gluing stuff together and creating it from scratch? When we code in C, we're gluing the standard library with others, in a way.




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

Search: