Thursday, May 23, 2019

How to efficiently use fragmented time



https://medium.freecodecamp.org/finding-time-to-become-a-better-developer-eebc154881b2



https://www.dailynow.co/
autogit will automatically commit a version of a file to a local git repository everytime a change is saved in a text or code editor.

Why use autogit?

Some simple reasons:
  • simple insurance against accidental changes or deletions.
  • makes it easier to support smarter undo, backtracking, or exploratory programming.
  • resume a task or track a task by seeing changes at a fine-grain level as they happened.
  • light-weight, stays invisible until you need it.
https://blog.ninlabs.com/2013/01/programmer-interrupted/
Prospective Memory

Various studies have described how developers have tried to cope with prospective memory failures. For example, developers often leave TODO comments in the code they are working on (Storey:08). A drawback of this mechanism is that there is no impetus for viewing these reminders. Instead, to force a prospective prompt, developers may intentionally leave a compile error to ensure they remember to perform a task (Parnin:10). A problem with compile errors is that they inhibit the ability to switch to another task on the same codebase. Finally, developers also do what other office workers do: leave sticky notes and emails to themselves (Parnin:10).

The costs of interruptions have been studied in office environments. An interrupted task is estimated to take twice as long and contain twice as many errors as uninterrupted tasks (Czerwinski:04). Workers have to work in a fragmented state as 57% of tasks are interrupted (Mark:05).

  • A programmer takes between 10-15 minutes to start editing code after resuming work from an interruption.
  • When interrupted during an edit of a method, only 10% of times did a programmer resume work in less than a minute.
  • A programmer is likely to get just one uninterrupted 2-hour session in a day
We also looked at some of the ways programmers coped with interruption:
  • Most sessions programmers navigated to several locations to rebuild context before resuming an edit.
  • Programmers insert intentional compile errors to force a “roadblock” reminder.
  • A source diff is seen as a last resort way to recover state but can be cumbersome to review

If an interrupted person is allowed to suspend their working state or reach a “good breakpoint”, then the impact of the interruption can be reduced (Trafton:03). However, programmers often need at least 7 minutes before they transition from a high memory state to low memory state (Iqbal:07). An experiment evaluating which state a programmer less desired an interruption found these states to be especially problematic (Fogarty:05):
  • During an edit, especially with concurrent edits in multiple locations.
  • Navigation and search activities.
  • Comprehending data flow and control flow in code.
  • IDE window is out of focus.
http://blog.ninlabs.com/2012/02/memory-2-0-attentive-memory/


In programming environments, code tabs are a central but limited interface element for supporting attentive memory [Ko 2006]. Bookmarks are another supportive but rarely used device. Arguably, Mylynoffers a good start. It is a programming tool that offers attentive memory support, by providing an ability to focus and filter programming files based on those that were visited or edited during a task. However, there are still several short-comings. For example, the focus mechanism is binary (degree-of-interest aside), and does not include stateful properties such as status of an unresolved issue or whether an item is edited or visited (which I might want to know if I’m in the middle of making a change to hundreds of locations).
In desktop environments, the Task Bar in Windows or the Dock in Mac OS offer attentive memory support for applications and documents. Browsers also use tabs.
https://juejin.im/entry/586daff1da2f600055d1bae1
你需要一个短暂的休息——这就是为什么番茄工作法这么受欢迎的原因:保持高效
既使你有一定的工作经验,也是如此。而在这时,有一个东西会影响你的工作与休息的时间,即心流:

碎片时间应该怎么玩:以收集为主

当我们有5~15分钟的碎片时间,那么你想的当然是来提高自己,而在这时最合适的方式就是:收集一些感兴趣的内容——做一个简单的判断,然后将需要的内容进行归类。如你可以将你所需要的鸡汤放到一起,来一锅大的鸡汤~~。碎片时间可以干很多事情:
  • 屏蔽朋友圈里你老板以外的咪蒙粉
  • 到 GitHub 上给自己的开源项目点个赞
  • 上知乎看看段子、发发广告
  • 到微博看看前端娱乐圈
在那之前,我们需要注意一些事项:
避免阅读。任何需要思考的内容都是不合适的,编程是一个脑力活。当然笑话除外:
避免思考问题。如果有一个问题你一直无解的话,那么估计你需要一些额外的灵感,需要一些额外的知识汲入——这些知识可能与你现有的知识是无关的。
如果你看到一些好的文章,那么你应该用一个 TodoList 工具:





Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts