bookmarks/sections/productivity-computer.md

40 KiB
Raw Blame History

Table of Contents

Productivity 💻

See also Dotfiles / Aliases and Shell aliases

News

  • Itamar Turner-Trauring - Become more productive ; articles about being more productive as programmer without necessarily working longer hours

Learn

The only way to go fast is to go well. Every time you yield to the temptation to trade quality for speed, you slow down. Every time. Robert C. Martin

Hofstadters Law: It always takes longer than you expect, even when you take into account Hofstadters Law. Douglas Hofstadter

  • RegExr - is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
  • Joël Spolsky - (2001) Dont Let Architecture Astronauts Scare You | about productivity
  • Ben Thompson - (2016) Whats taking so long?
  • Tim Ottinger - (2014) Programming Is Mostly Thinking
  • Tim Ottinger - (2017) Managing Programmer Productivity
  • Tim Ottinger - (2017) Taking Breaks in a Disciplined Way | Take breaks otherwise pairing will drain your energy

we don't take breaks because we are tired, we take breaks so that we are never tired.

  • Bill Wake - (2015) Multiple Asserts Are OK | Some people suggest we should restrict ourselves to a single assertion per test. Are multiple asserts in a test ever OK?
  • Joshua Kerievsky - (2005) [PDF] (2002) Stop Over-Engineering!
  • Joshua Kerievsky - (2010) Sufficient Design

we need high design quality for stuff that is critical to our products and less design quality for stuff that isn't critical.

  • Luu Duong - (2009) Applying the "80-20 Rule" with The Standish Groups Statistics on Software Usage | 80% of users only use 20% of features.
  • Joshua Kerievsky - (2010) Redefining Done

"A user story is done when the code is fully integrated, all tests pass and the functionality meets the expectations of the story author(s)." The race to get work done, especially to show management that we got work done is far less important than focusing on creating happy, productive users. A story isn't done until it is being used by real users in production and has been validated to be a useful part of a product.

  • John Sonmez - [Video] (2016) Being A Slow Developer... Am I Screwed? | on slow programming, clean code & productivity. Don't rush, do it right, do it clean then do it fast.
  • Jeff Atwood - (2004) We Make Shitty Software.. With Bugs! | Software is a process, it's never finished, it's always evolving.
  • Jeff Atwood - (2007) Do Not Buy This Book
  • Petter Måhlén - (2011) If its Broken, Fix It
  • Jakub Skałecki - (2017) Automatic code quality checks with git hooks
  • GitHub Help - searching code / tips & tricks
  • AnyAPI - Documentation and Test Consoles for Over 500 Public APIs
  • Michael Malis - (2017) How to Improve Your Productivity as a Working Programmer | It only takes one or two changes each week for things to quickly snowball.
  • Jan Mewes - (2018) How to pick up a new technology in minimal time?
  • Ronald Jeffries - (2018) Developers Should Abandon Agile
  • Ben Halpern - (2018) Write clean code and avoid the distractions of emerging technology | stay excited by the trends, but be impassioned by the small improvements you can make in the quality of your work.
  • chubin/cheat.sh - Cheat.sh - the only cheat sheet you need | allow to browse cheatsheets from internet using curl
  • aloisdg/awesome-regex - A curated collection of awesome Regex libraries, tools, frameworks and software
  • Liz Bennett - (2015) Regexes: The Bad, the Better, and the Best | A Story about How Just a Few Characters Can Make Such a Big Difference in Performance
  • RexEgg - (2014) The Greatest Regex Trick Ever
  • RegEx Hub - Useful Regex Patterns
  • Regular Expression Library - Search for RegEx patterns
  • Tyler Hakes - (2018) How to Measure Developer Productivity

Its easy to accomplish 100 small tasks to make yourself look more productive. But in many cases, its the one, big, ugly project that takes the most time and is holding us (and the rest of the team) back from moving forward. Measuring productivity can be difficult. But using the wrong metrics makes it impossible.

  • John D. Cook - (2009) Why programmers are not paid in proportion to their productivity
  1. extreme productivity may not be obvious
  2. programmers are most effective when they avoid writing code
  3. when they are being their most productive, nobody says “Wow! You were just 100x more productive than if youd done this the hard way. You deserve a raise.”
  4. it may take a long time to realize that others are programming with sound and fury but producing nothing.
  • Osman (Ozzie) Ahmed Osman - (2018) Just-In-Case vs. Just-In-Time Learning | Should software engineers learn new things “just in case” we need them in the future? Or should we learn the things we need “just in time”, when we realize we actually need them?
  • Gaurav Makhecha - (2018) Time saving habits for programmers
  • Forget office politics
  • Code quality
  • ...
  • Paul Graham - (2007) Holding a Program in One's Head
  • regex101 - Free Online PCRE-based regular expression tester and debugger with real time explanation, error detection and highlighting for PHP, PCRE, Python, Golang and JavaScript
  • Rextester - run code online
  • Hacker Tools - Learn to make the most of the tools used by hackers / programmers
  • Kent C. Dodds - (2017) Write tests. Not too many. Mostly integration.
  • Martin Fowler - (2019) Is High Quality Software Worth the Cost?
  • DistroTest - The first online operating system tester | Take a look at the existing linux distributions, test them live online and thus without any installation
  • gitignore.io - Generate useful .gitignore files for your project. See also Source Code
  • 1x Engineer - a non-exhaustive list of what qualities make up a 1x engineer.
  • Dan Slimmon - (2019) Do-nothing scripting: the key to gradual automation | pattern for scripts that do nothing but still help on the road to automation
  • Eric Pement - (2008) Handy one-line scripts for awk
  • Senthil Kumar aka SK - (2018) Some Random One-liner Linux Commands [Part 1]. Bonus : Part 2, Part 3, Part 4
  • Bash-Oneliner - A collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance. Bonus : GitHub repository
  • crontab guru - The quick and simple online editor for testing cron schedule expressions
  • Remy Sharp - (2018) CLI: improved | presentation of several powerful CLI tools
  • wwong99/useful_commands.md - Useful commands By @climagic
  • dbeniamine/cheat.sh-vim - Use cheat.sh from VIM
  • clvv/fasd - Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v.
  • donnemartin/haxor-news - Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
  • alebcay/awesome-shell - A curated list of awesome command-line frameworks, toolkits, guides and gizmos.
  • Simon Wirtz - (2019) How Kotlin makes me a more productive software developer
  • Loris Cro - (2019) I Want Simple, Not Just Easy

You've surely read plenty about how simple is good, but what's wrong with easy?

  • jhspetersson/fselect - Find files with SQL-like queries
  • MorganGeek - A gist with all my frequent favorite commands :) "just in case"
  • Gregg Caines - (2018) Zero Defect Policy
  • musicForProgramming - Music possessing these qualities can often provide just the right amount of interest to occupy the parts of your brain that would otherwise be left free to wander and lead to distraction during your work.
  • Andrew Payne - (2020) The Myth of the Myth of the 10x Programmer
  • I think 10x developers, like world-class athletes, musicians, and authors, absolutely do exist. Youre just not going to find them with a coding test.
  • Highly productive developers (10x or otherwise) are problem-solving at a much higher level.
  • Horia Coman - (2020) Jupiter Dev Log 3 - Lint All The Things
  • Jeffrey Paul - (2019) Stupid Unix Tricks
  • Carl Tashian - (2020) SSH Tips & Tricks for using SSH more effectively.
  • asdf-vm/asdf - Extendable version manager for multiple languages | Manage multiple runtime versions with a single CLI tool, extendable via plugins
  • github/gitignore - A collection of useful .gitignore templates
  • Mike Crittenden - (2020) Learning a technology you dont need right now is a waste of time
  • Jessica Joy Kerr aka jessitron - (2017) Hyperproductive development
  • Async Manifesto - (2014) Manifesto for Async Software Development | Principles of Async Software Development
  • Logan Mayville - (2018) How Being Busy Kills Productivity | How doing less can help you be more productive
  • Focus on results; not time : Time tracking is unavoidable in some instances, but rather than the rule by which companies operate, it should be used as a secondary metric to the results they achieve. Rather than give an employee a 2-hour window to do a job, have her do it right the first time (bonus points for documenting the process), then review and adjust your future plans based on time tracking data.
  • Improve systems : Improving systems helps remove busywork from an employees day, but it also makes things easier for the customer.
  • Whether youre getting a lot of satisfaction from being busy or just feeling exasperated, dont forget to occasionally stop and ask yourself: Is this the best use of time?

So I believe, having authored a lot of code that went down the toilet, that you don't get productive by working as much as by not working not on stuff that is likely to get thrown away.

  • Unix Sheikh - (2021) How to write software than will keep working for decades without problems
  • Learn X in Y minutes - Take a whirlwind tour of your next favorite language. Community-driven!
  • Nicolas Karolak - 🇫🇷 [FR] (2019) Les raccourcis clavier de Bash
  • Spencer Baugh - (2022) Prefer to change the code rather than write a workaround
  • Spencer Baugh - (2021) Write code, not configuration

Tools

  • Devhints - Rico's cheatsheets | TL;DR for developer documentation
  • Semver check - More and more projects try to follow Semantic Versioning to reduce package versioning nightmare and every dependency manager implements its own semantic versioner. Composer and NPM for example don't handle version constraints the same way. It's hard sometimes to be sure how some library version will behave against some constraint. This tiny webapp checks if a given version satisfies another given constraint.
  • CodeElf - Search over Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project, GitLab to find real-world usage variable names | A search tool helps dev to solve the naming things problem. Source code : unbug/codelf
  • Mattia Gheda - (2020) So, tell me about Nix
  • antonmedv/fx - Command-line tool and terminal JSON viewer 🔥
  • Mattia Gheda - (2020) Speedy Development environments with Nix and Docker
  • namae - Grab a slick name for your new app | Check availability for your new app name ideas across major registries at once.
  • rfc.me - Append an RFC number to the domain and it will redirect to that RFC. Example: rfc.me/1738
  • rfc.fyi - Search for RFCs, Fast — When they say fast theyre not lying. This site is amazingly nimble at helping you track down the particular RFC you want, whether you want to read the FTP spec, a protocol for controlling coffee pots, or how QUIC works.