I'm a 17 year old self-taught programmer, and I'm very interested in creating a start up when I'm older. My problem is that I seem to alternate between two states of mind. Some days, I'm very passionate about programming and excited to build new things and come up with new ideas. Other days, I am only interested in satisfying myself in the present and fall back to useless pastimes like video games. When I look at HN, I see people that are able to maintain the passionate and dedicated mindset that allows them to put in as much work as is required to do things like create an impressive startup or build an interesting webapp in a weekend.<p>I believe that the distinguishing factor between a lazy mindset and a proactive mindset is simply mental energy. If you're tired or lazy you're not going to get stuff done. So far Adderall has been successful at consistently inducing this proactive mindset, but I don't want to rely on it because it is not sustainable for a number of reasons.<p>Seeing as I have a mathematical mind, I view the solution to this problem as a game of in and out. If I alter a routine in my life, then my mental energy will increase/decrease. What are your examples, big picture or specific, of how you maintain a proactive mindset?<p>I assume most people will say eat well, sleep well, and exercise regularly, so unless you have specific insight or past examples of these, please try to give other answers.
You might find the Seinfeld method interesting[1]. Form habits even if it is a little thing like at least 10 minutes a day. No one can run full tilt all the time, that is why you are seeing the low periods. Smooth things out and you can hit a nice, productive roll.<p>[1]<a href="http://lifehacker.com/281626/jerry-seinfelds-productivity-secret" rel="nofollow">http://lifehacker.com/281626/jerry-seinfelds-productivity-se...</a>
Like sports, instruments, and any other developed skill, there will be days you feel like it and days you don't. The key IMO is to pace yourself: don't overwork on days you feel like it, and force yourself to work -- even if just a little bit -- on days you don't.<p>For software, having your code in a public repository like GitHub provides some socially-based motivation to keep your projects active. Just the simple act of regularly committing small changes can provide you with a sense of momentum -- and bonus points for raising (and fixing) issues, etc.<p>For days that you aren't on your A-game, it's also helpful to have made a TODO list from a day when you were thinking more clearly, so you can work on a relatively simple task just to maintain momentum.<p>Another key is to have a "big picture" goal that your projects are helping you towards. There's no reason you can't start now putting together the basic structural code (say, some core machine learning algorithms) for a later startup -- or even try your hand at writing an end-to-end web app and hosting it for free on Amazon. Whatever your end goals are, you'll be more motivated if you are writing code that helps you get there, not just code for learning's sake.
The trick is to alternate between high intensity and low intensity work when it feels right to do so. But to always be making some notable progress. Some days I just need to zone out, I can't concentrate, so instead I brainstorm, make a todo list, download some new github project, upgrade your tools (I spent yesterday installing Lion and almost nothing else). Do all that housekeeping work on those off days when your brain needs a rest. Don't worry so much about extending those super-productive peroids, but rather learn to ride the lower-productive ones such that you get back in the groove quickly.
Its not mental energy. Its actually habit. Work ethic is a habit... ie you do it WITHOUT thinking.<p>The only way to gain it is by working hard at anything. Preferably in a skill that you want to develop.<p>Practice practice practice. Going to the gym and staying healthy is important but have a closer look at Reid Hoffman, Mark Zuckerburg and Rex Ryan --- you wouldnt introduce them to someone who you'd like to impress with the benefits of gym-going.<p>Practice, practice, practice & dont give up.
Constantly challenge yourself to do things you normally would never want to do (outside your comfort zone), and then the convenient barriers and excuses will start to erode. Great things will look hardly taller than the smallest duties, and running after them will start to become second-nature.
This is something I struggle with too! One thing that's helped me lately is to adopt the Pomodoro Technique: work with laser-like intensity on one thing for a short burst, then take a break and slack for a few minutes. With a timer set to keep you on track, you can gradually increase the length of the focused "dashes," and if you're on a roll at the end of a dash, you can always extend and keep going.
"useless pastimes like video games"<p>We're all humans. Some days we feel really motivated, other days we want to sit around and do anything but work - both of those are fine. Just try to get the most out of your good days, and enjoy the "slow" days. Your work will get done regardless, and taking some time off here and there for mental health is a-okay.
Why are you waiting till you are older? Start earlier, learn earlier, learn more, learn faster, fail earlier (when it's less expensive), succeed earlier (and snowball).<p>I wish I started earlier. Way earlier.