Thanks for such a large feedback. The "zone" for me is the time when you focus on one problem. No distractions. You will know when you was "in the zone" when 4 hours passed like 10 mins. :)
There is one book I can recommend - DeepWork ( https://www.amazon.com/Deep-Work-Focused-Success-Distracted/dp/1455586692 )
TOTALLY AGREE WITH WRITE A LOT OF CODE!!
Yes, I learned Java this way and am also learning VBA this way. Have you read "Deep Work" by Cal Newport by chance? I used this method you describe to acquire technical skills and have been surprised by how effective it is. In the past month, I've learned enough HTML/CSS, VBA and Java to make a website at work, write some simple scripts to automate Excel work and am still learning the foundations of Java, but I can also make simple apps with it.
and Deep work https://www.amazon.com/Deep-Work-Focused-Success-Distracted/dp/1455586692
Both of these books are in sync with what you said in your post, and what you wrote is true.
Reading books of course, it will greatly improve your ability to focus which has been really harmed by internet surfing. You may also work on improving some marketable skills, like programming, graphics design, etc., whatever you choose. To dive more into those topics I recommend you to read Cal Newport's books, especially Deep Work and Digital Minimalism, he also has interesting blog: calnewport.com/blog, old posts touch this topic in more depth. Another book that I would like to recommend you is The Shallows: What the Internet Is Doing to Our Brains which will show you how damaging internet can be.
Cal Newport says we all need to learn how to do "deep work."
I'm lucky enough to be work remotely with most of my colleagues in the US (I'm based in the Philippines), so I have a lot of control over my interruptions and can get a lot of work done in the morning while everyone else sleeps.
However, every time I get back into a deep work routine, I get distracted while waiting for builds to build, tests to run, etc. Sometimes it can just be 1 - 10 minutes, and in that time I can find myself on HN, instincively checking twitter or my email, and getting completely out of the flow.
For example, right now I'm waiting for a rather large Dockerfile to build and decided to write this post. I normally struggle the most when I have to do DevOps tasks (e.g. setting up CI pipelines, waiting for terraform to deploy only to tear down a deployment again).
Does anyone have advice for how to maintain a deep work "flow state" while waiting for random amounts of time? What do you do to maintain your focus?
Don't follow your passion. Instead, become really good at something. Apply methodical approach to improve your craft skills. Once you got mastery, you might actually like it.
 https://www.amazon.com/Deep-Work-Focused-Success-Distracted/...edit: formatting
I used Newport's recommendations to reclaim 4+ solid hours of deep focus and it's had a tremendous impact on my productivity and general quality of life.
Here are a few strategies I found successful:
* Create a TODO list each day and separate tasks into shallow and deep categories
* Block off each hour of the day and and fill it with one of the TODO items
* Restrict shallow work to 2 hours (after 2 hours, say no to everything shallow)
* Create a scorecard and track the number of deep hours each day (this number should increase)
* Experiment with Newport's recommendations for two weeks and see which ones increase your deep hours
* Become comfortable saying no
That said, task switching is a practical reality, so coping strategies are important, too.
For help with that, check out Cal Newport's "Deep Work: Rules for Focused Success in a Distracted World" (https://www.amazon.com/Deep-Work-Focused-Success-Distracted/...). Full disclosure: He and I share a literary agent.
While following the advice in the book did push my productivity up, sadly I didn't manage to keep up those habits. But it does appear to work, just need to make the right adjustments to make it easier to follow.
As the author points out, we've forgotten how to be bored. We need to learn to engage that part of our brain again.
He calls this "deep work" and has written about it in detail in his 2016 book of the same name: https://www.amazon.com/Deep-Work-Focused-Success-Distracted/dp/1455586692 . He emphasizes the increasing importance of such work in the knowledge economy.
Are there any companies or startups that allow their employees to work in this manner? Has this led to a different way of identifying tasks, structuring them and setting up the work environment?
It's sort of a bad thing to do, but you will start getting fewer Slack messages. People have an implicit understanding of who's likely to respond in a timely manner, and somewhat ironically, it's the most responsive people who have to improve their responsiveness even more because by being responsive they'll get even more messages and interruptions.
On a meta note, it continues to surprise me that more people and companies aren't talking about the highly distracting effects of the software. It works great at small scale, but if you get large enough everyone's pinging everyone all the time. I recently read Deep Work by Cal Newport (excellent book by the way ) and couldn't help but being mildly entertained when they get into the time draining effects of email (it seems to have been written a little before Slack caught on). The distraction engine created by Slack is the SR-71's Pratt & Whitney J58  compared to email's 5 HP motor out of an everyday golf cart.
 https://www.amazon.com/Deep-Work-Focused-Success-Distracted/... https://en.wikipedia.org/wiki/Pratt_%26_Whitney_J58