1.Learn deeply about the psychological mechanism of procrastination, pay good professionals if needed. Any any skill, it takes years to master, but pays off.
1. Do not stop reading HN, just use it as a price, when you complete a difficult task. This is very important, people will usually use HN of whatever as an excuse for procrastination, because it is easier to read (be passive) than create.
It has been extremely useful reading HN over the years, I spend over 20 minutes every day. I do not go deep but use Zotero to store anything interesting. When I need this for my work I just go to zotero and study deeply for days this useful info.
2. Learn how to make the machine program for you. Learn lisp, learn functional programming, learn lisp macros and metaprogramming. Learn grammar systems and how to create your domain specific languages.
Even if you don't use functional programming or lisp, the concepts and ideas you get from understanding it makes you avoid making bugs, or you know how to automate everything, including finding bugs.
This also takes years to master, but your computer can write hundreds of thousands of lines per second. Most people only write 20 or so per day on average.
3. Learn how to manage other people so they do the work for you. Learning psychology will also pay it back here. If you master psychology, people will be able to do things under your management that they are not able to do on their own.
Re 2: I love the idea of automating, but it rarely seems to pay off, because you really need a large number of users for it to be worth the effort to finish it/polish it properly - ease of use, ease of deployment, docs, helpful error messages, samples etc. All the things Fred Brooks talks about for a "programming product". https://wikipedia.org/wiki/The_Mythical_Man-Month
That's why we have products (including open source tools).
What do you mean when you’re talking about learning deeply about the psychological mechanisms of procrastination? Do you have any links to start with that? It’s something I’ve struggled with my entire life, and if there’s something I can do to learn more about it and be able to overcome it over time I’d love that.
CBT (Cognitive Behavioral Therapy) helps tremendously because the whole schtick of CBT:
1. become aware of a feeling happening (in this case procrastination). By becoming aware of it happening, you can consciously overcome it ("hey I've been looking at HN for 35 minutes, I should get back to work")
2. start understanding the conditions which exist which cause this emotion to happen ("I notice I always procrastinate when it comes time to update my react-redux actions and reducers. It takes so long and is so tedious, I'd rather watch a youtube video")
3. start working on the conditions which cause you to procrastinate - start to understand what it is about modifying react-redux that sucks. Is it inherent and something you're just going to have to grind through? Is there a process you can change to make the work easier?
Those three bullet points are a very high level overview of something a therapist or coach will work with you for months on. But that is the general flow: identify a feeling -> identify the root cause of the feeling -> change the root cause, or become aware of and okay with the feeling happening
I struggle w this too. No good links to share but IME it's primarily emotional not logical. It helps if you can find some spark of enthusiasm for a specific tiny single step, because having started makes it possible to get into flowstate and/or discover other potential hooks or (re)entry points for the next time.
If genuinely "stuck", try stepping away from it, going for a walk, and considering the simplest thing that could possibly work; ok to start there and refactor later.
Making plans? Think big. Making progress? Think small.
Also, standard self-care stuff (sleep, exercise, meditation) is critical.
Yes, writing tests work when you already identified the potential bug if future code changes break things. My first thought was you can't automate bad logic bug discovery.
But you almost can. There are tools like mutagen[0] that compile modified versions of your source mode, and if all your tests pass, then your tests don't actually test the logic that was changed. Now there's a lot of nuance to it (false positives, don't run this on stuff that can write files, etc.), but the basic concept is another good step towards automated bug detection.
There's also fuzzing, but that's (IIUC) not so much about bad logic but instead about finding novel (usually bad, memory driven) states.
> 3. Learn how to manage other people so they do the work for you. Learning psychology will also pay it back here. If you master psychology, people will be able to do things under your management that they are not able to do on their own.
I hope you're referring to cases where you're a project lead or in a position of management. Because if not, tread with care as most people can be easily influenced but if you run into another person who 'masters psychology' you may end up having a really bad time.
1.Learn deeply about the psychological mechanism of procrastination, pay good professionals if needed. Any any skill, it takes years to master, but pays off.
1. Do not stop reading HN, just use it as a price, when you complete a difficult task. This is very important, people will usually use HN of whatever as an excuse for procrastination, because it is easier to read (be passive) than create.
It has been extremely useful reading HN over the years, I spend over 20 minutes every day. I do not go deep but use Zotero to store anything interesting. When I need this for my work I just go to zotero and study deeply for days this useful info.
2. Learn how to make the machine program for you. Learn lisp, learn functional programming, learn lisp macros and metaprogramming. Learn grammar systems and how to create your domain specific languages.
Even if you don't use functional programming or lisp, the concepts and ideas you get from understanding it makes you avoid making bugs, or you know how to automate everything, including finding bugs.
This also takes years to master, but your computer can write hundreds of thousands of lines per second. Most people only write 20 or so per day on average.
3. Learn how to manage other people so they do the work for you. Learning psychology will also pay it back here. If you master psychology, people will be able to do things under your management that they are not able to do on their own.