Ask HN: What are your greatest productivity hacks?
In the last few months I started using a clipboard manager (Ditto) and I'll never go back. My 'clipboard anxiety' (did I leave something in the clipboard? can I copy this? better open notepad and Ctrl+V just to be sure...) is gone, and I can copy stuff with reckless abandon.
This got me wondering, what are some of the other productivity hacks like this that I'm missing out on? I already use AutoHotKey and rave about it to anyone who will listen, but there must be other ways to improve my workflow.
What productivity hacks have changed your life?
48 comments
[ 3.5 ms ] story [ 78.1 ms ] threadStressing about other drivers that you can't control? You're emotionally exhausted before you get to work. Stressing (within reason, perhaps better stated as "mentally focused on") about how to do X in project Y? Perfectly reasonable, that's a task you need to get done and that stress/focus keeps you on the ball (overdone can still leave you mentally/emotionally drained, or hyperfocused can leave you unable to think clearly about the task because you need to step back and view the whole picture).
https://hn.algolia.com/?query=productivity%20hack
I am working Solo, but I get to bounce ideas off my spouse who also works in IT though it is sporadic at best. I am proactively trying to do this more, as it helps to air my ideas and it is much easier to recognize rabbit holes.
* Maintaining a list of things to do. If the first thing you do when you sit down to work is wonder what is it that you have to tackle next, thats a recipe for loss of productivity. If you have a list of tasks ( as granular as possible), ordered by priority if possible, you can hit the ground running. I use ZimNotes with the filed stored on DropBox. Zim autosaves. So no fear of loosing
* Try to have more realistic expectations of what you can accomplish. Try to estimate how long each task will take for you to do and then double that estimate. Knowing how long each task is gonna take will cut down on anxiety. This will clear your mind and give room for your mind to concentrate on the task at hand.
* If you are a solo founder starting out, product validation is much more important than QA. Once you have customers though, it is important to avoid any disruption in services.
* Release often even if only you are the only one who will see. Make incremental updates. Always start with something very small but working and keep adding features. Immediate visual feedback of seeing your changes at work will do wonders for your morale.
* If you are doing multiple projects, some preliminary documentation should be in place so you can context switch easily from one project to another
* Though all these help me a lot, I have just started following most of them and it needs lots of discipline. I need to be mindful of what I am doing. Whenever I slip, I just try to get back up and start again.
All that said, if I am exploring a new feature or tech, it often lacks structure due to it's lack of clarity and the time estimate for it is widely off the mark. Yet to find a way on how to tackle this. For now, the only option is to set some hard deadline. If there is no light by the deadline, that line of exploration has to be dropped. Maybe the unpredictability just has to be embraced and accepted.
I also need to find a way to handle situations where I run something and it needs a minute or two to finish. I end up wandering to HN or News or Youtube and lose track of time. Maybe another list of micro tasks that can be accomplished in 2 mins :)
Another idea is to use spacemacs. I have been a vim user for a long time. The idea of using emacs for browsing , task tracking and coding sounds appealing as probably there is lesser chance of distraction. Can someone comment on whether it is a good idea or another wild goose chase?
What helps the most for me is just closing out all other applications, chats, and browser tabs and not reopening anything else until I'm finished with work.
It's easy for many to get in the zone, but staying there can be hard.
The system I use is loosely based off of the Bullet Journal method (link below), highly recommend checking it out if you haven't heard of it.
http://bulletjournal.com/
I just googled "notion notes" and it was the first link. Looks quite interesting!
Using org-mode (other tools work as well, but particularly useful if you're fluent in emacs).
Full-screen apps, or two apps side-by-side. Specifically terminal, or terminal + reference (text, websites, man pages, PDFs). This helps to force focus on the specific task at hand.
My use-cases for org-mode: General project planning/management (personal, mostly); literate programming; notes while reading texts; notes while learning a subject.
Want to learn a new codebase but find reading dozens or hundreds of C and H files to be difficult to track? Slurp them into a massive org file that can spit them all back out using C-v-t (tangle). Then keep breaking the code down into smaller chunks adding notes, moving related sections in separate files closer to each other, etc.
Want to read a book and take notes on it? Half the screen is the PDf, half the screen is emacs. Create a headline per chapter, as you read, take notes. Write out definitions, use <<anchor>> content to create anchors for links like [anchor]. Write out your notes, capture things that you want to follow-up on, page numbers, etc. Each chapter and section gets marked as TODO (or customized) or DONE so you can chart your progress through the text.
Want to understand an RFC and maybe implement it? Put it into an org file, start structuring it, add in source blocks (or, if the RFC has source, turn them into source blocks as well).
===
And then there's GTD. Grok it. Understand that it's not a dogma but a toolkit. The tools exist to free you from the mental burden of tracking activities you need to do by capturing them, prioritizing them, dismissing them as needed, and scheduling them. If you aren't thinking about what's coming up, you can think about what's present.
===
EDIT:
Automate all the things. I write scripts to do a lot of my computer-based tasks. The purpose is to reduce error-rate (if there's an error, the script or the input was wrong, fixing the script fixes the former, adding a check to the input prevents the latter from recurring). It also gets things out of my head. I can literally forget how to do X, Y, and Z (frequent, maybe critical, but unnecessary for me to remember with any precision tasks). This is also useful for migrating a project from largely hand-rolled toward continuous integration/deployment (especially in my office where we don't quite have the infrastructure in place to do that properly or consistently). An example:
We get deliverables from contractors. My script takes that and pairs it with our own software, updating the libraries we link to with the ones they provided. Runs the build script. Constructs our deliverable. Pushes the output to a particular spot. Different parts of that are different scripts with one script to run them all. With a proper CI/CD platform, you could take each of these and put them in as stages triggered off things like git commits.
So now I've got these scripts, we have the git server and build server, I can restructure it all in a way that will run on that. Now I'm out of the loop. Whoever retrieves the contractor's deliverable and pushes it will also trigger the full rebuild of our system. No specific human is critical.
That's a specific work improvement, but the same can be done for many personal computer-based tasks as well. Like how GTD gets your future plans out of your head and into your calendar or whatever, automation gets your processes out of your head so you can focus on the product and inputs of the process and not the process itself.
It's a fancy outline mode in emacs.
(NB: You can use it easily in Windows, just go to the GNU Emacs home page and download the emacs binaries, I do this for work where we're a Windows shop.)
Simplest features, outlines:
It's a plaintext markup format, akin to markdown but not the same rules.Markup rules:
You can make enumerated lists or unenumerated lists: NB: Emacs shorthand: C-(character) means press Ctrl+(character), C-(character)-(character) means press Crtl+character, continue holding control and press the next character (the characters are pressed in sequence, not simultaneous). M-(character) means, on windows, the Alt-key (left-alt specifically?).Going fancier, let's make a TODO item!
On each heading, press C-t You finished task? C-t again You can do more configuration so it includes the time and day completed. You can change the workflow away from just <none>/TODO/DONE, as well. For code projects I have BUG/FEATURE/TRIAGE as well. TRIAGE indicates a possible error that's been discovered and its details are in the contents. BUG indicates that a bug has been identified and its details. FEATURE is a request and its details.Check out their site (http://orgmode.org/) for a lot more details. It can do a ton of things. If you really want to get started, just treat it as an outliner to begin with. Start using additional features as you need them. Like emacs and vim, it's a tool that you can grow into.
At the top of all of my org files is at least this directive:
indent means that the outline will look like: Instead of: It's cleaner, IMHO, and the second version is the actual file contents. It's strictly a change to the presentation.hideblocks means that codeblocks and the like are hidden to begin with when I open the file:
becomes: content means it'll show all the headlines, with their contents folded up. You can make schedules in it. Make checklists in it. Write code in it (literate programming). You can export it to LaTeX and HTML and other formats. You can tag headers And search those tags. I'm not sure how much else to say, it's big. But read the site. Play with it. Realize you want to do something, google that task and org-mode and someone probably wrote a blog explaining how to do it in org-mode.EDIT:
org-mode is included in the default emacs builds. You don't have to seek it out, though it does get updated independent of emacs. Emacs has been getting frequent updates the last few years, so you're usually not a major version behind if you just grab the emacs distribution and use its org-mode.
org-mode does sometimes create breaking changes in their formatting. But this has only bitten me once, and that was with a file I made i...
It's fully, and easily, extensible (once you learn the language, emacs lisp in this case). I use Visual Studio at work for C# projects. Extending it is a non-trivial thing. If I just want to change a simple behavior of the editor, it's non-obvious where to start, and it's probably not as easy as writing a simple 3-line function and putting it in a configuration file.
Emacs, vim, Sublime (ok, no experience with it, but it seems easy from what I've seen), and others reduce this down to:
org-mode, for me, is just a very, very useful tool that covers a lot of use-cases for me, and works across each OS that I use (Linux, Windows, macOS). But it's always worth exploring to find what works for you. If nothing else, you'll have "wasted" your time learning how to use emacs, and should you find yourself "stuck" in it, you won't be lost in the chords.Another poster mentioned Cal Newport's "deep work", which seems a more natural fit for coding to me.
I'm not saying GTD can't work for you, YMMV, but I think it's a better fit for more traditional office work.
Like, with Rust, I put in that I wanted to go through The Rust Book. I created a project with the book's title and a link to it in an org file. I created subheadings and turned them into TODOs for each chapter. Since I use org for literate programming, I included every example in this file along with my own exploration and toying with the language.
But an actual programming project won't be done that way. At most, from a GTD perspective, I note that I want to create a CLI TOTP implementation in Rust (as an exercise project). I'll capture it at a high level so I don't create too many projects (an unfortunate habit) and not finish it. So in my GTD list of projects I'll see that I'm working on "CLI TOTP in Rust", but no more details.
The details for that go into a literate programming org-mode file that drills into the details of what needs to be done. Somewhat GTD-style, but the tasks here never make it into my overall GTD action queue or schedule.
Basically, my system is an amalgam of what works for me at different levels. Dogma is rarely useful, in my experience. Flexibility and appropriation of tools from everyone else. Experiment, recognize failed experiments, latch onto personal successes, and explain what worked or didn't for me to others to help them do the same.
Deep focus.
"Deep Work" by Cal Newport. Read it.
Take breaks, but don't be distracted.
It's super-damn-hard to get back into this, for me, after neglecting these habits for a few weeks: when I have downtime.
What I've found, for me, is that going from home to the gym (running, BJJ, strength & conditioning, depending on the day), I come out of it physically tired, but mentally refreshed. The next few hours I can focus on other tasks pretty effectively. Part of it is the physical activity is, for me, meditative (which is itself refreshing), but also that it's totally different from what I'd just spent 8 hours doing, and was intending to spend the next 3+ hours doing.
- If you start the day with a clean slate, write three things you'd like to do today. Pick the one that will take the longest and do that first. This is Mark Twain's "eat a frog before breakfast" advice and I think it helps a lot.
- Install SelfControl.app and start it for 8 hours immediately when you sit down to work. No matter how in control I think I am, I'm always amazed at how my reflexes take me to some distracting website before I even realize what I'm doing. SelfControl stops this habit by blocking distracting websites and making me aware of them. (Pro tip: don't write an unblocking script)
this is great advice. I do this with writing, always stop with a few paragraphs to go, so you can pickup easily
SelfControl: I found an alternative for Windows called https://getcoldturkey.com/ - though I haven't tried it yet
__General__
1) Flux for sleep (sleep being the 'hack')
2) Social pressure: find a community that you want to belong to and that gives you the social pressure towards goals you want to achive
__For programming (when learning a new language)__
For me, the focus is on getting as unstuck as possible. I've noticed that interactive tools help a lot with this because they show you how things 'under the hood' work.
1) Get a text editor or IDE that teaches you how to code -- only if you're new(ish) at a language. Things like Intellisense, a debugger and jumping to function definitions allow you to learn a lot more about code. For me, with Java this is Eclipse (Netbeans and IntelliJ work as well). For front-end it is Chrome developer tools (Firefox works too). For iOS this is Xcode. For node.js this was Visual Studio Code. I'm curious if there are suggestions from other people.
2) Knowing how to search on Google well. I can't really explain this yet, and it's something that's learned with the first programming language. So I'm going to ask this question on HN to see if there are people who can explain it :)
Edit, see: https://news.ycombinator.com/item?id=13183302
3) Finding a shell to play with.
Learning Vim.
The learning curve was steep and for the first year (!!) I felt SO awkward in Vim. However, I pushed on and eventually it became second nature. I started reading up on how to do stuff differently, I watched a lot of youtube videos. Then I started implementing these things more and more into my daily routine. Now all these things are ingrained so much I get annoyed if there is a text box without my Vim binding because sometimes I just mash kjkjkjkjkj which I rebound to <Esc>.
Learning Vim is worth it.
For those who are still in doubt, you are going to be editing text (code probably) for so much more hours. If you are going to repeat something or do it often you should invest in your productivity. You could think of your non-trained productivity as a straight line in the (time, productivity) plane and your invested productivity as some exponential curve. It takes (a lot of) time to get to the same level, but afterwards your productivity just skyrockets. I am very happy I made the Vim investment.