Hacker Newsnew | comments | show | ask | jobs | submit | bstpierre's comments login

Dilbert was 10 years younger in 1997 than in 2007

It depends on your frame of reference :)

-----


What about the half of the tree that's underground?

-----


Going slow is often a good idea, but part of the wisdom that comes from 20 years writing software is knowing when you should choose between slowing down, coding like hell, slapping something half-working together, etc.

-----


The information in that wikipedia article seems incomplete or contradictory. It says that boiling for 10m degrades the toxin. If that's the case, why is cold soaking for 5h necessary?

-----


10 minutes of boiling for regular kidney beans will degrade the toxin. If they're dried, however, you need to soak them in order to rehydrate them.

"ten minutes at boiling point (100°C, 212°F) are sufficient to degrade the toxin. For dry beans... soak at least 5 hours."

-----


That's not even close to true. I've worked in more than one shop where the 19-23yo kid fresh out of high school/college is 10x better than most of the 40-50s. Or, in a few cases, infinitely better than the guys in their 50s who are -100x (it required weeks/months to undo the damage when they finally left).

There's something to be said for experience, but keep in mind the old adage about "10 years of experience versus 1 year of experience repeated 10 times".

-----


I see some programmers that work at it, but after 5 years their level is just as it was when they started out.

At the same time, there are others who grow their skill at an amazing rate, going from almost clueless to great over like 2 years.

(Assuming same workplace, similar tasks)

-----


I found ocaml to be a more flexible alternative -- I can sprinkle printf for quick debugging without having to alter types. (I think this is what you mean by "having to use the IO monad". I didn't work with haskell much, so it's possible there's an easy way around this there.) And stack traces in ocaml are reasonable, though not quite as verbose as python's.

But your point about needing to install extra packages stands for either language.

-----


You should look into Debug.Trace for quick printf-like debugging. Usage: trace ("error occurs here") (f x)

-----


OCaml is currently my language of choice. I love functional programming, been doing it for a while now, but it's nice to know that if I read an algorithm in a textbook, I can just implement it as-is instead of doing a translation to be purely functional (and sometimes having to fight to get back the asymptotic complexity). The module system is also absolutely great, and should be copied shamelessly by more languages.

-----


Haskell doesn't ban imperative programming, it simply distinguishes it in the types.

-----


True, what I mean is that I can be "messy" in OCaml for the sake of expediency. In principle, I prefer Haskell's clean approach, in practice I'm a bad programmer who sometimes does naughty things.

-----


Well, Haskell does force you to go and update your types about your effects, and fix the use sites to do proper lifting.

I don't feel this costs much, though, so even in quick&dirty mode, I feel that Haskell is quite productive enough.

-----


I spent a little time with Haskell and gave up because progress was slow. Later I picked up Ocaml and found many of the concepts to be similar but had a much easier time making progress. Having used Ocaml to familiarize myself with strongly typed FP, I think it wouldn't be so hard now to go back to Haskell and have more success.

If you decide to give it a try, I highly recommend Real World Ocaml [1] as a starting point, especially the installation instructions that help you get up and running with a sane toolchain right away [2].

[1]: http://realworldocaml.org/ [2]: https://github.com/realworldocaml/book/wiki/Installation-Ins...

-----


This sounds great. I've starting looking at the CIS 194 lectures, though, and so far not a single example works in ghci. Googling around indicates that you need to use 'let' or define things in a module and load them . . .

Is this tutorial already out of date?

-----


also: pipelining, "advanced" instructions

-----


Are universities using single-language curricula now? I hear people talking about "python schools" or "java schools". That seems like a mistake. I don't have any hard data to back it up, but it seems like students would end up better off learning a small number of languages across multiple paradigms while they are in school.

e.g. Intro CS 1/2 in python, followed by a computer architecture course that introduces an assembly/machine language (you could write an assembler/disassembler in python), possibly followed by C (since pointers will make sense now), and finally something different like lisp or ML family.

-----


> If we wanted to engage in the same level of software engineering for all software, we could. But we don't want to.

Of course. Like building structures, there are different kinds of software. I can build a garden shed by myself as long as I have the skills to get the thing to stand up. If it blows down in a storm I'm the only person with a loss. But just because I can get a garden shed (or even a larger structure like a barn or a house) to survive windstorms without incident doesn't make me a structural engineer.

-----

More

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: