Joel Spolsky is doing an IAmA on reddit
reddit.com
reddit.com
He was writing about how stories of social injustice get a ton of upvotes, but nobody actually goes out and does anything to fix the situation. I'm sure there's a lesson here for HN.
One of the negative consequences of social media in general is that it can lead to very casual and even cynical views of how we relate to one another. Thus, what was meant to bring people together can actually make them more emotionally distant. If I see a hundred stories of trouble in the world, why would I take action on even one of those troubles?
When you upvote a story on reddit about some issue you deeply care about, that tricks your brain into thinking that you have done something about it.
It is the same problem that announcing your goals makes you less likely to achieve them, because you already see yourself as a person who has accomplished that.
"All those biases that lead people to give time and money and thought to causes that don't really merit them waste not only time and money, but an exhaustible supply of moral fiber"
I can, however, give the slightest nod of support to promote countless causes that I may appreciate, but not be able to do anything about. Or I could smugly tell people how smug they are (believe me, I do that, too!).
Edit: Not that I don't agree there are far too many cause-whores out there who have stickers and shirts and web-buttons for a bunch of trendy causes that don't contribute toward anything in the world and that there aren't a ton of people who feel they directly had a part in the recent middle east uprisings, just because they followed activists in the thick of it, via Twitter.
It's the "Swedish model" -- there private charity is rare, but public welfare and development aid is generally accepted and supported by voters.
Basic strategy "always defect until everyone agrees not to while voting that everyone not defect."
"I defend the value of "not caring about 90% of stuff" Care deeply about everything == accomplish nothing." - John Carmack
I've got the books sitting front of me, and I've written some trivial visualizations of sorting algorithms using terminal output, but damn if I can find a way to use C as a web developer. If there were just some use case where C would help me get something done, I'd be all over it.
Write a web app in C? ;)
But yeah, in most cases C won't improve your productivity as a web developer. But it will certainly make you understand the computer better.
So maybe start a recreational project in C? A command line utility, a demon, a music streaming server - something not really web-dev related.
K&R gives you a very good, clear and detailed explanation of the topic at hand and then immediately gives you several exercises to practice it. If you don't do the exercises the information will just fall out of your short-term memory whereas if you actually do them your long-term memory will get engaged as well as general muscle-memory for C coding.
Probably not very fun, with all the string manipulation involved.
(See also: raphters, which was featured on HN not so long ago.)
This was the final project in the C class I took in college. It's not a bad idea.
(+) Yes, yes, programming languages are not written in anything. Their implementations are. I know you know what I mean.
It might not be a good idea to actually use your fast C function in production (if you're new at C you might have a security vulnerability in there, and there could be maintenance headaches). But you'll have learned a lot.
I found that hard to do as a starting developer who didn't know what was actually a bottleneck in my code, but I did have a particular library/gem that I wrote myself that did a few things I constantly needed (think of authentication in a web app, it's almost always included). So I rewrite it in C. It didn't really make it faster, or better, but I learned a bunch of C.
That's what a profiler is for! Even experienced developers use them, it's the only reasonable way to find bottlenecks.
> It didn't really make it faster, or better, but I learned a bunch of C.
That works too! :)
Particularly, libraries search their catalogs using the z39.50 protocol. Ruby 1.8 has a gem ruby-zoom[0] that does this using YAZ[1] however there is not a ruby 1.9 version. If anyone has a guide that explains native extensions for Ruby, please advise.
[0] http://ruby-zoom.rubyforge.org/ [1] http://www.indexdata.com/yaz
Then, a funny thing happened and I started playing with the Arduino.
And, while they go to great pains to hide it from non-technical people, the whole Arduino stack (ignoring the IDE) is based on C/C++. So then I began writing C again and learning C++. (I always find it slightly odd that I'm using C++ on a microcontroller--admittedly it's very small subset of C++, mostly just used for the object encapsulation/abstraction. (Insert handwavy, "yes, yes, I know it's not strictly C above library level" here.))
So, you might like to take a look at playing with the Arduino if you want to get into C. And if nothing else it's fun playing with tangible things that interact with the "real world".
Write a C-extension for infrastructure-level ruby gem if you're a rubyist, or fix a bug / add a feature in your favorite scripting language.
If they do the first, then Javascript is a functional language. But without even a function composition or application operator (or function), it's obvious tht Javascript is not intended to be functional. It's an imperative/OO language with lambdas, like Common Lisp.
But typical JavaScript development will not teach you the functional programming paradigm, if that is what you ask.