Ask HN: Solo developer, what's your recipe to start working?
Hello HN, I am a new solo developer who quitted job 19 weeks ago.
At this moment of my writing, I just don't want to work. I come across this problem a lot recently.
I don't have the urge to work, and it feels too difficult to focus.
I know that once I start, I will be productive. But I don't have a recipe to start. If my mood changes, I work. If not, I dont' know what to do.
I recently read that no matter what, you just work. I tried and failed to just work.
Any advice?
99 comments
[ 4.1 ms ] story [ 151 ms ] threadFor example:
Problem: There was too much street light at night to sleep coming through my window, so I bought black out blinds. Then I didn't have enough light to wake up in the morning and always felt sluggish.
Solution: I created an arduino sensor to detect morning light (depending on time of year) and then using a motor on the blind cord, it opens my blinds gradually so I have a nice natural wake up.
And it's powered by solar. I literally never need an alarm clock again. (All thought I still set one, good developers always have a plan b)
You can only tackle motivation issues when you're not feeling bad.
My trick is to imagine the end-result of what I am currently working on, it pushes me to get the reward of seeing it finished.
Of course it works only if I expect to be proud of the result.
Insulin level in blood is more impactful than we usually think.
You have to be that manager yourself — breaking the app or product down into small components and working out what should get done first.
Build a list in a form you’re familiar with — even if it’s a form you don’t like such as Jira. Break it down into large chunks and smaller assignments. Then start on the small stuff, ticking them off on by one.
When you see tasks being completed and the list moving, it builds a sense of momentum and it gets easier to keep going day after day.
If you don't know what you're going to work on or haven't decided what to build yet, then stop what you're doing and work this out first.
Even just checking a box on paper! No book is going to solve the problem for you, but "Every Tool's a Hammer" (Adam Savage, of Mythbusters and Tested fame) I found to be a great little memoir about learning how to be a self-directed maker.
- Use focus app block every website which can distract me
- Leave a "low hanging fruit". I can start the day with a very small and simple task and have some success in a couple of minutes. Getting into it is easier that way
The basics of it is red, green, refactor.
Before you write the code, write the test. Autogenerate the code from the test until it compiles. It will be red (fail) because there's no code. This is how you test the test.
Then do the absolute simplest thing to make the test green (pass). Make it really hacky. Once it passes, refactor (clean up your code).
The positives of this is you don't even have to be in flow. It takes seconds to do a red, seconds to go to green, seconds to refactor. You can be interrupted at any time and not lose your train of thought. If you're writing some tough code, there's also some other techniques you can do, like write several tests for behavior and triangulate the code from that.
That is, if you can’t focus, that’s usually (to me) a sign that the “work” available is currently too nebulous to focus on, and you need instead to focus on turning it into more concrete, atomic, actionable items, which you can then focus on doing.
you could prob use 3+ months off if you can afford it.
you can work doing something else in the meantime if you can/need to.
Don't diagnose people in 10 sentences. Have you ever tried solo developing? Without the extrinsic motivation, and forced external schedule it's fairly difficult for most people to stay on target with all the distractions we have today.
Literally every single response here is doing that.
The advice is fine, even if it would be bad for you personally.
- Disconnect the laptop's charger and work on one charge. I used to have a laptop that had at most 2 hours and it forced me to really focus. The progress I made on some projects on a commute is amazing.
- Disconnect from the internet and work only with what you have on your machine. This means no search, no tabs. No distractions. This is great for proofs of concepts/prototypes where you get something done first, then you refine it later. It taught me to look at the code instead of documentation, and it taught me that as good as a documentation can be, there always are things that are not documented but are still there to use. It also made me more familiar with the dependencies of my projects. I never really used StackOverflow much when online (I instead rely on the code, docs, and issues of the project), so your mileage may vary when it comes to removing internet access.
It's also useful to reduce the "activation energy" for work. One of the ways to do that is to exploit the time you don't feel like working to play or explore. A directory named "musings" can help, where you scratch a few itches with snippets of code. If you're distracted in exploration of a new library or concept, make a new file and play with constructs, patterns, APIs, libraries, etc. Just play for play. It's low pressure. You don't need to ship something. It's not work, but it's fooling around and more often than not, it tricks you into getting in the zone without even realizing. The other benefit is that day in and day out, you're building a "corpus", a set of snippets that very often will come in handy when you actually need to do something "work related". When that time comes, you won't perceive the task to be daunting or be clueless, because it's déjà vu. You already fooled around with that concept/library/problem and you have something in your back pocket. It won't be "How on earth am I going to tackle this" and feeling under pressure and overwhelmed, but "Yup, I already played with that. Heck, I even wrote some code to do that. I'll see if I can use it".
Playing when you don't feel like work is a great way to reduce the activation energy when you actually have to work.
My dad, a uni professor, simply didn't want me to have one as he thought it was too distracting. And I kind of agree now, but I thought he was crazy. I remember my best friend asked his dad to take his Ethernet cable away during the exam period. Instead of rehearsing, he was playing online games. And he couldn't stop, thereby failing most courses. This was a pretty smart guy that had aced university entrance tests.
It kind of worked. I got the best GPA ever in my university, and I had the best GPA across all CS schools in the country.
I must say at the time having a connection didn't bring as much into the table as it does now, with e.g. quick answers on Stack Overflow. I bought dozens of textbooks, and I had things like MSDN installed locally to access e.g. C++ STL docs. It also forced me to be quite resourceful, as I had to solve everything on my own and offline. For example, I didn't login remotely to university servers to do DB assignments. Instead, I had my own local Oracle deployment and so on. Quite an experience.
Ex.
8am - out of bed, make breakfast, no phone usage
9am - start working (and make sure you have specific tasks to work on)
12:30pm - lunch break + go for a walk and listen to podcast
2pm - continue working on specific tasks
5:30pm - leisure time + make dinner
7pm - workout
8:30pm - shower, get ready for bed
9:30pm - sleep
Sorry for being an arse, I had a rough day.
This is exactly what I feel. Thanks for clarifying this for me :)
I got the idea from the book Indistractable by Nir Eyal if you want to look more into dealing with distractions in general
This assumes that you can be instantly productive in the 3hr work blocks. If you can't get into a flow for the first hour, then you only have 2 hours, etc. And you start to look forward to your breaks.
Flow works best when you have open-ended working sessions. If you are making good progress - don't stop it for lunch. Grab something quick, and then have a larger dinner.
- The War of Art - by Steven Pressfield
Imagine a hypothetical "universal basic income" with a twist: you have to work for 8 hours a day, doing whatever you choose to do, and it doesn't have to be profitable at all. But you have to do something, because in this hypothetical universe they have lie detectors that actually work, and they connect you to one every week and ask whether you worked, and you don't get the money if you know you didn't. What would you do? -- If you have an answer for this that didn't change significantly for years, then that is what you are "meant to do".
People often don't do what they are "meant to do". One reason is that they need to pay their bills, and they don't have a sufficient safety net that would allow them to spend a few years doing something that doesn't immediately bring money. Another reason is that perhaps the work is necessary but not profitable; for example it would be nice to have people who take care of the homeless, but it's something that can hardly bring profit -- even if you reduce some negative externalities, there is no way for you to capture this value; or perhaps there is, but you only have people-care skills, not economical skills that would be necessary to create the business plan.
Then someone told me: "just try and see how far you can go". And that completely lifted my inability to start working. I don't really understand the psychological trick there, but somehow it worked well for me.
So now, especially in the morning - if I catch myself thinking "just 15 min of YouTube" or "maybe ten more minutes of sleep before working out" I make conceited effort to tell myself "no" and actively do what I completely acknowledge I do not want to do. Ironically I sort of caught on to this signal in college when I was a horrible procrastinator and didn't yet know I was ADHD. It's a bit extreme, but always doing what you're most actively avoiding has started to work for me. Only took me a year of being locked in my apt to figure it out...
Don’t build things by yourself.
Build for specific people, and feel responsible to those people.
Tie your social status into it.
Humans are incredibly social animals, take full advantage of that fact and make sure you’re sailing with the wind on the ocean, not tinkering with model boats in a poorly ventilated bedroom.
This is counter to most of the startup advice I've seen. It's practically a meme at this point that many successful startups come out of scratching your own itch.
Good advice, thanks :).
As the abbot and the warlord sat in the courtyard pleasantly chatting and drinking tea, they were distracted by an argument between a novice and a senior monk. The novice was complaining that the meditation technique given him by the senior monk was ineffective and worthless. "It cannot teach me how to concentrate much less meditate," shouted the novice. "Give me a more reliable technique."
Observing that the argument was distressing his old master, the warlord stood and said, "Please, Master, allow me to help this young man." When the master nodded his assent, the warlord summoned six of his archers.
The warlord then filled his teacup to the brim and carefully handed it to the novice. "Take this cup of tea," he ordered, "and without spilling a single drop, carry it around the entire periphery of this courtyard."
As the novice took the cup the warlord commanded his archers, "Follow him! If he spills a single drop, shoot him!" The archers drew their bows and began to walk beside the novice who, in the next twenty minutes, learned how to concentrate.
Dear Friends, there is no substitute for determination. Enlightenment is a serious matter. It can never be attained with a casual or lax attitude. You must be determined to succeed and you must be resourceful in your determination."
EMPTY CLOUD - THE TEACHINGS OF XU YUN
I've never found it particularly useful, but then I'm also too chicken to put up serious cash. I figure I put a high price on having to be disciplined :)
Then I would, and this is the most interesting part, record my pomodoro session using OBS studio.
I love to pretend that i have thousands of viewers that are rooting for me to get the the task done in as little pomodoro chunks that I can.
I set my pomodoro intervals to 50mins focus/ 15 min break, and I would change it depending on current tasks at hand.
“I write only when inspiration strikes. Fortunately it strikes every morning at nine o'clock sharp.”
― W. Somerset Maugham
- Make a pretty fine-grained list of tasks that are likely 10-30 minutes
- Put my task list on an index card or whiteboard
- Maybe use a Pomodoro timer
- Change my physical environment - take a laptop outside, kitchen table, bed (or in olden times, McDonalds, library, mall food court, etc.)
- Overload on caffeine and sugary snacks
- Crank up some loud, angry-ish music
- Dangle a reward for myself (If I ship this app today, I can order another keyboard)
- Grind out a code kata on Codewars or somewhere else
- Before I quit for the day, lay out the first task or two for the morning
- Take a shower
- Take a walk
What changed? I'm not sure, but I think it's that I'm working on a project that I believe in, that's more challenging to me, and that I feel in more control over. I used to be the guy who got added to a team that was already in progress, but now I'm the guy who was working on this project from the very start, and I'm determined to see it through. I feel more ownership over the project.
How do you get there? No idea, but I just made a proposal for a new project and I've got 4 days to make a prototype. This sort of thing seems to work for me. Maybe you need to figure out what works for you.
To me, this is the difference between being able to work 3 hours a day vs being able to work 16 hours a day. To quote Steve Jobs:
"Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it."
If you're anything like the average person, you've probably filled it with _something_. Take a moment to assess if this "something" is worth the time you are spending on it or if you're just using it to pass the hours in the hope you'll get a change of heart.
If you're just using it to pass the hours - aggressively cut those activities out of your life. You'll be surprised how motivating being bored out of your skull can be when it comes to getting work done.
Now, that said, you may be burnt out, or you may not actually have to do the thing you're putting off. That's different. I'm talking about something you know you have to do (or else painful and undesirable consequences), but you're avoiding starting it. It's a trap. Just find any way to start. Do a bit, don't get down on yourself if you only do a bit. It's better than nothing.
This mindset is valuable, thanks :)
The only way I've been able to improve is:
> The only thing that works is to start the work. I wish there were something else I could tell you, but that's it. Just open the book, open the editor, open the document, whatever.
If you fail, try again.
My favorite technique when I'm super lazy, is to write a function with bunch of syntax errors. It forces myself to clear this shit up the next day. And boom, you start working without even knowing it
Whack-a-mole reverse linter, the next big thing...
Not the work, but some work.
You want to procrastinate on something most similar to what you are doing. So if you are on YouTube, start coding. Then when you are coding, its just a matter of switching to coding that thing you should be doing.