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

I think we (I'm 36) should also bear in mind that we'd probably be better programmers if we were starting out today. HTML + CSS + JS + PHP is worlds ahead of the rubbish we were using!


As someone who learned MS BASIC 2.0 -> 6510/6502 assembler -> Pascal -> C -> etc, I know we'd be more immediately productive, but would we necessarily be "better"?

I run into a fair amount of programmers these days who never worked with a non-garbage collected language, have never even seen an assembly language listing (let alone written code in assembly), etc who are generally productive but end up being really lost whenever whatever leaky abstraction their language/framework/etc is using inevitably breaks in some way and in this situation if the solution to their problem isn't immediately Google/StackOverflowable they are standing in front of a brick wall because they've never worked in a language or environment that wasn't abstractions upon abstractions over how computers actually work at a fundamental level.

I'm sure there is some amount of get-off-my-lawnism going on here and I know it isn't universal (there are still young kids writing real bare metal bit-banging code, especially in the maker/"IoT" space), but I think that while highly programmer-time-productive languages and frameworks are great we're still at a point where those skipping over the fundamentals the technology is built on do so at their own peril in terms of how effective they can be when things don't go as planned (and in software things rarely go as planned).


Computers are themselves abstractions upon abstractions. How many levels of cache does a modern computer have? How many memory protection layers exist between your code and the machine? Hardware keeps getting more complex and it becomes obsolete quickly.

It's hard to teach this stuff to beginners because it will probably be useless by the time the get good enough at programming to do anything. Add to that the fact that there are probably 15,000 different platforms all doing the same things in subtly different ways .

PS: 'subtly' is a horrible word.


> writing real bare metal bit-banging code

Well, there are plenty of microcontrollers running on Javascript/Ruby/etc, so if people are still writing "real" code, it won't be for long.


Just to clarify, the "real" I used was a qualifier for the bare metal code description.

I'm not suggesting JS/Ruby/whatever code isn't "real" code, but it is pretty common to see people talk about some JS/Ruby/etc code being "bare metal", totally abusing the classic meaning of the term.

Examples (just a couple out of many dozens I've seen over the past few years):

http://video.kiberpipa.org/jsmeet_slavic_performance_optimiz...

http://www.hyperscala.org/

Efficient JavaScript is great! But it isn't bare metal programming.

Also people will be writing low-level C/asm code on small devices for quite a long time yet. While it is great that you can get small "IoT"-style devices with the power to run a JavaScript interpreter, such SoCs are still really expensive by "chip whose cost must be factored into every device manufactured" standards.


No I don't agree. HTML + CSS + JS + PHP (and also probably + SQL) is a lot of layers and languages to get your head around as a beginner. A single simple environment (e.g. Python or even BASIC in a REPL) is going to be a lot easier to focus on.


No, I don't agree, I never managed to "study" programming using an editor and a compiler. I always had to have a reason. I read, poked away, tested, got burned, read, poked etc.

That kept me focusing. And, I learned it and mostly got better grades than the "student" types as well. (B.Sc Computer Systems).

Generally it seems for some of us it is easier to focus once things make sense and has a purpose.

"Studying" seems to be for people with infinte lifespans and neverending funding, I never had any of those and I guess it affects my learning style ;-)




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

Search: