This is great advice. I’ve saved it to refer to it in the future. I usually get stuck because of lack of clarity. What helps is to open a blank file in my editor and just start writing what I’m thinking. Usually that leads to researching things on the internet and copying and pasting code snippets and links into my brainstorming file for later. I often forget to just open up that blank file though! I even have an alias, unstuck, that will open it for me and I still forget to use it.
The only thing I would caution further on is #5. I think I’ve worked with some people who’ve used that technique to get into the flow state, and they end up creating something that nobody else can maintain because nobody else has time to learn the new language, or framework, or whatever. Often times the best tool for the job is the one everybody already knows. It’s kind of sad but it helps us build things quickly and reliably. You might increase productivity of your whole team by being bored in that case.
Another thing to be careful of when you are in flow state is writing readable code. In flow I think your working memory is in top form and you can hold more in your head at once than the person who is going to be reviewing your code later.
Also it’s pretty easy to get into flow state by going down a rabbit hole — getting side-tracked trying to solve a problem that’s not important to solve at this time and can limit the options for your future self — so watch out for that!
In short, flow is great, but it’s okay to not be in flow too. It’s okay to only be in flow a couple hours each day.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.