> <i>More times than not the above exercise leads me to a problem that I then can go off and solve. For example, a few weeks ago I sat down and decided I wanted to write a web server in go (think nginx/apache). I knew going into the project I wanted a really nice and easy to use configuration file to define the settings. So, I did what most people do these days I and used json, but that didn’t really feel right to me. I then tried yaml, but yet again didn’t feel like what I wanted. I probably could have used ini format and made custom rules for the keys and values, but again, this is hacky. This spawned a new project in order to solve the problem I was having and ended up being forge, which is a hand coded configuration file syntax and parser for go which ended up being a neat mix between json and nginx configuration file syntax.</i><p>You make a persuasive argument for why someone should <i>not</i> write code every day, but instead step away from the keyboard occasionally and get a sense of perspective.<p>No, your mix between json and nginx configuration file syntax is not "neat". It's pointless, and doesn't solve any real problem. In fact, if anyone ever uses your idea it will <i>cause</i> problems, by adding another random pointless format for the rest of us to have to support.<p>And did you miss the beginning of what you said? You set off to write a web server and instead you got bogged down in parsing the config files. Your efforts did not produce a web server. Writing code every day has apparently not taught you how to focus.<p>In short, quantity of code does not beget quality. Quality code isn't just code that's nicely formatted, clear, terse, etc., it's also code that solves a real problem that you've set out to solve. And just writing more code isn't going to help you learn what a real problem is, let alone how to solve it.
Actually, spend time with your kids every day. Or your special one. Or kitesurfing. Or playing pool. Or just learn about chess and play folks in the park.<p>Do other things and let your mind expand and bring those benefits to your code. It will make you a better coder (and person) and life will actually be interesting.
No no, don't.<p>Athletes don't practice every day, they rest.<p>The brain needs rest, just like the body. Take some down time. Come back refreshed. Practice deliberately.
I see a lot of negative comments here. The point being missed is doing something is better than doing nothing.<p>Yes he might not have ended up finishing with the web server what he started. But I'm pretty sure he did NOT set out to build something that would be a product or a startup someday. He set out to do something repeatedly, so that he becomes good at it and uncover new problems that are interesting to keep working on. None of this relates to productivity or writing the best code possible.<p>You start out with something; end up finding pleasure in doing something else; then you keep on doing it until you've written enough code to know where you stand and keep improving.<p>The take away for me is this. As for me it always was the chicken to the egg problem. I need to be keep working to find new problems. However, I need to start somewhere with a problem that I don't know yet. Trying to rewrite existing stuff was something I'd do to learn new tech. Now it hits me that I could use the same, to keep my fingers stuck to the keys.<p>I'd love to read more writes like this. Sharing how you overcame something is noble. It helps more people than you anticipate.
For me the whole point of technology is to free us. I want to write code that solves a real problem. 90% of my time is spent thinking about what problem to solve.
Off-topic, but why did you decide not to go with YAML? Did you just want a version of YAML that wasn't whitespace-significant? Forge just looks like an nginx-y YAML, with no arrays and `=` instead of `:`.
While I appreciate the sentiment when you set your goal as coding every day, that becomes your hammer to solve every problem.<p>The best example of this is your confguration project. I am amazed how many well-intentioned projects there are to do with configuration when really all you need is environment variables. No libraries, works everywhere, with every language and easy to understand.<p><a href="http://12factor.net/" rel="nofollow">http://12factor.net/</a>
Work at Wal-Mart every day.<p>Fix cars every day.<p>Perform brain surgery every day.<p>Fly passenger jets every day.<p>Flip burgers every day.<p>Hmmm. Doesn't really seem like a great idea.