Thursday, March 1, 2012

IDE of the Future

Bret Victor gives an interesting lecture on what development tools should be like - http://vimeo.com/36579366

Thursday, January 26, 2012

Improving Programmer Productivity (Mind Map)

I would like to share with you my long term observations on how to improve programmer productivity as a mind map.

Here is the clickable picture, below there is the mind map in a form of nested lists:



Improving Programmer Productivity

  • Short-Term
    • General
      • Caffeine
        • Adjust to your blood pressure and blood vessel elasticity
        • Only green tea after 6pm if you have insomnia
        • Green tea
        • Black tea
        • Coffee
      • Sugar
        • Can lead to weight gain, most effective if consumed not very often in small amounts
    • Getting into the flow
      • No short attention span activities
        • At least in the morning
        • No news
        • No fun content sites
        • No tweets
      • Enjoyable long attention span activity
        • Reading a book
        • Playing a computer game that requires deep concentration
          • Only if you can stop after a reasonable amount of time
      • Doing nothing AKA Meditation
        • At least for 10 minutes
        • Really nothing, no thinking, no starring at the screen
    • Solving an inobvious problem
      • Moving away from computer
      • A walk
      • Playing drums, guitar
      • Shower
  • Long-Term
    • "Hardware"
      • Regular walks/ physical exercises
        • Expecially in the morning
      • Spine exercises
        • Warm-up from yoga (Surya Namaskara)
          • Can take only 10 minutes a day
      • Medicines improving blood flow in the brain
        • "Increases brain RAM"

          Details are hidden to avoid harm for light-headed people. Those who really care will find it and use wisely.

    • "Software"
      • Studing new programming languages and approaches.
        • Don't beleive popular opinions blindly, check them
      • Looking for good programmer resources (books, communities)
      • Mastering google queires
        • Know at least "site:", "~" operators, sorting by discussion type, limiting results by past year
      • Organizing
        • "Improves brain swapping"
        • TODO notes
          • Good with a paper and a pen

            TODO item must be possible to write down in a few seconds in order not to lose the main context in which you are.

            Rule of thumb: if a task requires more than half an hour it deserves to be written as TODO item

        • Leaving clues, marks when switching topics/ projects
          • TODO notes
          • Browser sessions
            • "Session Buddy" Chrome plugin
          • IDE sessions/ "project groups"/ "working sets"
          • Virtual machines
            • Con: Requires a lot of RAM
            • Pro: Remembers open programs and cursor placement in the code
    • "OS kernel"
      • Switch projects/ activities if you feel an upcoming burnout
      • Good psychotherapy for motivation problems and "unclear" states of the mind
        • Very underestimated
        • Easy to run up against inefficient or even harmful psychotherapy approaches
        • "Core Transformation" technique by Connirae Andreas
          • Great long tested first-hand and second-hand results
          • Requires a few evenings to study or visiting a workshop
          • Sharply contrasts with a lot of inefficient NLP techniques
          • Universal, leads to improvements in other life parts