Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
If I could go back in time and give myself advice it would be:<p>0) Nothing is too hard to do, no matter how much those doing it might seem like towering titans many levels above you, or how out of your reach it may seem. Nothing is too hard, there are only things that take time, and things that take more time. If you put in the work, those titans will be your peers before you realise it. Of course, you can&#x27;t do everything. If you want to put in the amount of work needed for some things, you need to focus. That means deciding to not do some things that you want to do.<p>1) No-one who is serious about programming gives a shit about language wars, they&#x27;re for fanboys and spectators. People who get shit done are too busy to spend time on that. So don&#x27;t sweat what language you choose (too much – there is still such a thing as the right&#x2F;wrong tool for the job) and especially don&#x27;t worry about the people insulting it.<p>2) If it&#x27;s not constructive practice, you&#x27;re wasting your time. I spent too much time - literally years - spinning my wheels, writing code but not getting any better at it. Make sure you&#x27;re reflecting, make sure you&#x27;re improving.<p>3) (related to #1) seriously stop worrying about choices and just get something done. You don&#x27;t get things completed by worrying if you&#x27;re using the right language&#x2F;framework&#x2F;library.<p>Unfortunately I worry that this advice would send me down another bad path and I&#x27;d probably need to add on something like:<p>4) All that said, some languages really are limiting, either in what you can do, the level of concepts you will learn, or straight up teaching you bad habits. Likewise some libraries &#x2F; tools &#x2F; frameworks are actually bad. While you should definitely avoid trying to optimise the last % of productivity, you should spend some time to make sure you&#x27;re not using something highly suboptimal. If after reflection you believe you are using such a language&#x2F;framework&#x2F;etc, then broaden your horizons. That doesn&#x27;t necessarily mean rewriting your current project, maybe do a toy project or some exercises in something else.