5 ms·
It's not always a question of "needing" something, it's a question of whether you spend 5 minutes searching for the answer or 50 minutes, or 5 hours. It's a to
by wfunction 13y ago
It's not always a question of "needing" something, it's a question of whether you spend 5 minutes searching for the answer or 50 minutes, or 5 hours.
It's a tool. Use it.
- Fuxy 13y agoConvenience is good but i have to agree with him on this one. Understanding the technology in a deeper way is a lot more useful in the long run. And once you understand it answering other questions you may have gets a lot easier and arguably that 5 hour investment in the beginning may be a bargain. He spends 5 hours to understand it first you spend 5-10 minutes on each question and you may run into dozens if not hundreds of questions depending on what you're doing at the end of the day you may just come out even but do that long enough and you're worse off using SO for shortcuts instead of just learning how it works.
- wfunction 13y agoEasy solution: 1. Look up the first 60 questions on StackOverflow. That amounts to 5 hours you would've spent on just the first one. 2. If you still have more questions, spend another 5 hours learning the ins and outs of the darn thing. Problem solved: now you're not sacrificing latency for throughput.
- zaptheimpaler 13y agoThis is exactly the rent-or-buy problem! http://en.wikipedia.org/wiki/Ski_rental_problem http://en.wikipedia.org/wiki/Ski_rental_problem You just described the best deterministic algorithm, but it turns out there are even better randomized algorithms, where you "flip a coin" when deciding to look up StackOverflow or keep learning (of course, that may or may not be practical :p).
- TeMPOraL 13y agoThanks for the link! Hmm... given that you stated that the best randomized algorithms we have beat our best deterministic ones, isn't there a place for even better deterministic algorithm?
- zaptheimpaler 13y agoNope. Thats really the point - if we find the best deterministic algorithm, it means we have found the one with the best deterministic running time. By loosening our criteria of running time to expected running time and allowing randomness, we can sometimes do better than deterministic algorithms.
- TeMPOraL 13y agoIt doesn't square well with my intuition - if we understand how allowing randomness improves expected running time, then surely we must be able to create a deterministic algorithm that is at least as good as the randomized one. Am I missing some critical piece of understanding here?
- ethbro 13y agoI'd expect that it's simply that the additional constraints implied by requiring deterministic behavior precludes certain optimizations that can lead to improved running time. Iow, if you can never do X, then you cannot write any algorithm that may do X.
- zaptheimpaler 13y agoWell keep in mind that the inputs to the algorithm can vary. Randomization can help avoid a bad input from throwing your algorithm off. A simple example of how randomization helps is quicksort: if we pick the pivot to always be the first element, then any sorted array will cause worst-case running time. But by randomizing the pivot, we can do well (in expectation) for any input.
- jasallen 13y agoI think flip a coin covers what I do :-) Sometimes I really wanna dig in, sometimes I just. need. to. finish.
- mistermann 13y ago> Understanding the technology in a deeper way is a lot more useful in the long run. I don't know about your situation specifically, but in general....it may be more useful to you personally in the long run, but the person that signs your paycheck might be more interested in only what's most economically useful for the company while you are employed there.
- bmelton 13y agoAgreed. Thankfully, I haven't been the kind of programmer that copy and pastes code for over 16 years, but SO being down yesterday was still inconvenient, especially as, at the time, I was trying to do something I hadn't done before (working with Google Maps to fetch a staticmap) and SO's documentation was better than Google's own. Yeah, I suppose I could have spent a few hours learning the ins and outs of the library, but finding that all I really really needed was "draggable: false" on SO saved a good chunk of time.
- toumorokoshi 13y agoI definitely see the merit that StackOverflow provides. It's a great place to find a quick answer or get help on something you've never touched before. I'm just glad it's not my only tool anymore. And sometimes using the harder tools have unexpected benefits.