<i>It usually comes in a phrase similar to &quot;I know how to program, but I don&#x27;t know what to program.&quot;</i><p>&quot;How&quot; is about yourself. &quot;What&quot; is about others. Both are important, but &quot;How&quot; ususally comes first. The best way to transition from &quot;How&quot; to &quot;What&quot; is to trust that you have enough &quot;How&quot; (you probably do) and talk to enough others to understand their &quot;What&quot;. That oughta give you plenty to do.<p><i>In the software community the rule is &quot;don&#x27;t reinvent the wheel.&quot; It&#x27;s almost frowned upon if you rewrite a library when a mature and stable option exists. While it is a good rule in general, novices should not be afraid to reinvent the wheel. When it is done for learning or practice, it&#x27;s totally OK to make a wheel!</i><p>Yes! The best thing I&#x27;ve ever done to get better (&quot;graduating&quot; to the next level) was to rewrite something else. Sometimes because I thought it sucked, sometimes because it was so cool that I wanted to grok how it worked from the inside out, but never because it needed rewriting. I have never learned anything reading someone else&#x27;s code. I have always learned tons rewriting it.<p><i>Don&#x27;t get the notion that you need to have the best idea ever before you write a program either.</i><p>I never write anything in order to get ideas. I write stuff in order to fill my tool box with enough skills and wisdom so that when I do get an idea, I&#x27;ll be able to run with it.<p><i>How many of you have been in the situation where you think &quot;I don&#x27;t know what to program?&quot; How did you handle it? What advice would you give to others in that situation?</i><p>Just write something, anything. You probably won&#x27;t know where this will take you, but rest assured, it will take you somewhere you never would have found by not writing it.<p>Great post! Thank you, OP.