Ask HN: Does anyone dream of code?
I have been having this problem lately. When I close my eyes and try to sleep my mind wanders and soon enough I am thinking about code, programming mentally. And I wake in the middle of the night and I am still mentally coding in a semi hypnotic state. I have slight OCD if that matters. Does any one feel the same? It is as if my mind never turns off.
145 comments
[ 7.3 ms ] story [ 466 ms ] threadI used to have such dreams about EverQuest. So I eventually realized I should play less :P
It's called the Tetris Effect, read: https://en.wikipedia.org/wiki/Tetris_effect
Even though I stopped gaming somewhere during university, I still have dreams about those games every now and then.
OT: Just like other's in this thread, I have dreamed about code as well, with a similar frustration to wake up knowing the beautiful solution was all imaginary :-)
I find that I tend to think about things in my sleep on three occasions:
1 when the activity is new
2.when I am sufficiently stimulated and excited by the material.
3. when I am worried or upset
This 'dream state'used to occur to me in the past when I actively played chess, when I was in school studying for exams and nowadays when I'm struggling with (and mastering) a new concept or paradigm in programming. Recognizing it for what it is - a process of deep archiving and reorganization, I have come to embrace it and even be happy when it occurs, since material I have processed in this way terms to be deeply ingrained in my memory for longer.
The clearest memory I have, is when I was 15, debugging some hacky PHP codes for days still unable to find a solution. I dreamed that piece of code and suddenly wake up with a fix, it was a pretty nice feeling.
Also an year ago I started learning Haskell, despite reading a lot of tutorials I wasn't able to understand what a monad is. One day I woke up and find myself understood the concept. I don't remember the content of the dream, but it was a sweet dream and I slept longer than usual.
I am not sure if I have OCD, but I like coding so dreaming code is not an issue for me.
That was the first and last time I dreamt of Java.
Different types of code dreams are common too - code nightmares where you get caught in small, infinite loops or are unable to escape oscillation between a small set of bad operations
Or happy code dreams where you float above the system and observe high levels of interaction and execution, watching data flow like water, and execution happen rythmically like beats of music.
Edit: Come to think of it, this 'free shrooms' experience is reason enough to not do CRUD apps :)
One time I went to sleep after starting a take home code test for a job interview; I woke up a few hours later having some intense dreams about it and ended up knowing exactly what to do. I finished it at 4am. I didn't end up getting the job, but they said during the interview they really liked the code.
That's where you want to get lucid enough to realise that struggling with the problem isn't a worthwhile pursuit now, and go do something fun instead :)
That's why I like to play some easy games or read a book 1hr before going to sleep. Sometimes they induce creativity though and are counter-active.
I dreamt about the homework problem, and realized I had made a mistake. I immediately woke up, grabbed the paper, and made the correction. The whole class burst into laughter, but the professor didn't seem disturbed. Later he told me something like that happens every few years (he's been teaching for 30).
Of all the things I've discussed here at Hacker News over the years, this is probably the #1 subject. Most programmers have the opposite problem of you: they have trouble turning their minds on.
I always turn my computer off several hours before bed. The last thing I do every night is review hard copies of code with a red marker. Many nights I dream of my project/code. Sometimes I even jump up in the middle of the night and go to my computer, write down my thoughts, or lately, voice record them.
Sometimes I am incredibly grateful for the "gift" I've received from "outside myself" in the middle of the night. Other times I'm annoyed. For every cool insight, there are many false positives: What was I thinking? But the positives far outweigh the negatives.
I don't know why this works, but I can't imagine accomplishing all I do without it. Many programmers struggle for years to turn this "mind CRON" on. You already have the gift. I suggest you find a way to embrace it and turn your lemons into lemonade. You don't have a problem; you have a gift. Make it count!
My original HN post: https://news.ycombinator.com/item?id=191275
Also #49 here: http://v25media.s3.amazonaws.com/edw519_mod.pdf
Why is that? I loathe writing code on paper, seems like it'd be a serious regression.
I have the exact opposite view. I love writing it my code on paper. It makes me feel like the creative part of the equation while I leave the 'mechanical' computation to the dumb machine. Debugging and understanding difficult code samples is easier too.
I once read that Knuth(?) never used a computer and wrote everything on paper for his sectetary to type.
If you don't need the training wheels and you're not a hacker in a movie, I think you'll discover over time that it is a sweet sweet liberation to be free from the ball and chain of syntax.
Seriously, have you tried this for more than a few minutes? I've been doing it for a year and a half and I've never seen any benefit. You're only "free from the ball and chain of syntax" until you try to run the code, when you realize the syntax is still there, and you're only "free" from being able to clearly see it.
It's just a suggestion. Not everyone will like it or agree to seriously try it. I don't think it would necessarily work well for someone who's forced to use a certain editor or configuration at work, for example (and probably continues to rely on highlighting elsewhere outside of that job, preventing the mode shift from settling in).
But I think a good many developers who haven't considered this might discover as I have that it helps them to be calm and focused on higher problem-solving at the levels that matter to them. It really is liberating to read and write code more broadly as a meaningful language rather than just fitting and stacking bits and pieces together. You might reasonably claim you can just ignore the highlighting at will, but I and others have discovered after making the move (and really giving it time to set in) that we didn't realize how much the highlighting anchored our thinking to syntax.
I've had no more trouble at all preventing or finding bugs without highlighting than I did before. Also, while I've never used one I know that there are syntax-aware editors (or probably plugins for all the usual editors) that will show you broken syntax without drowning your code in syntax color.
As a primarily Python and Haskell writer, I have no idea what you're talking about with this "unchain your mind from syntax" stuff- though I guess that in Python the syntax may be so expressive as to be no cognitive restraint, and in Haskell binding your thoughts with syntactical structure is the point.
In principle I could imagine some languages might exist in which the concerns of developers are so confined to the smallest language bits and pieces -- at the expense of bigger-picture concerns -- that the drag of ever-present syntax cues is less of a drag.
But even from what I've seen of Haskell I can't imagine wanting to have those cues in my face all the time, unless I'm either learning the language or at my wits end trying to locate a (maybe) syntax bug ... in other words, when I'm not really writing or reading code. If anything, its proximity to math might make me more eager to be free of those cues.
I think in just about any significant code-making effort, we'll need to be able to think clearly about the meaning and intent of chapters, pages and paragraphs (and maybe sentences) without hundreds of little tethers constantly reminding us about commas and parentheses and subject-verb agreement.
All I can say really is that I had no idea how much of a drag those syntax cues were until I got used to being without them. Nobody has to do it just because it worked for me (and others). It's just a suggestion.
Frankly though, the dreams you get are the dreams you need to see and experience, whether you like the contents or not. If someone is not dreaming about code but about those other things, those are the deeper stuff related to life that the person needs to deal with.
If you are consistently dreaming about code, the gift is not that you are dreaming about code. The gift is that your daily life is aligned to a deeper sense of purpose and being. Your inner life and outer life is in better alignment than most people's. _That_ is rare.
I never know which I am going to get but coding is the most pleasant of them, by far. The higher my stress, the more likely it's not fun.
The fact that my current job is to untangle legacy Java code and we actively oppose any "unnecessary" changes hurts me, because I can't not untangle it in my head, working or sleeping. Resting/playing is OK though. That's why it's important.
Of course, we don't have any unit tests, because how else could we employ 2 testers per coder? And we obviously don't have any time for that useless stuff.