Spend an afternoon brushing up on statistics. Discover how the Krebs cycle works. Learn about the fundamentals of music notation. Get a head start on next semester's geometry fundamentals. Prepare for the SAT, GMAT, LSAT, MCAT, NCLEX-RN, and AP exams. Or, if you're feeling particularly adventurous, learn how fire-stick farming changes the landscape of Australia.
If you want to better understand the relationship between hardware and software, then you’d enjoy the Piper Computer Kit 2, which has you building a Raspberry Pi-powered computer. Using this DIY laptop, you can learn to code through its custom Minecraft Story Mode challenges, use the drag-and-drop Blockly language to learn physical computing, or just pick up some basic Python from the pre-installed lessons.

There was a time when knowing how to program was for the geekiest of geeks. That’s not exactly the case today. As most entrepreneurs, freelancers and marketers will tell you, learning how to program can help you succeed. Over the past year, I've been learning to code. It's helped me to become a much better entrepreneur: I can dive in, for instance, when my team needs to fix a few bugs on the site. 

Whether you’re an adult looking to transition into the tech industry, a student looking to learn the latest language, or a hobbyist who just wants to understand how software and services work, all you need is a computer and internet access to start your programming journey. But before you take a flying leap into The Matrix, here are our best tips and resources to set you off on the right foot.
As a self-taught programmer, you might also benefit from books that offer broader advice on the profession. You’ll improve your thinking and habits, traits you can apply to any language you decide to learn. Steve McConnell’s 900-page Code Complete: A Practical Handbook of Software Construction (2nd Edition) is considered the definitive guide for best practices, with data-backed advice on everything from project design to debugging code.

You need to be patient with yourself; don’t expect to code the next Fortnite after just a few months of study or a few bootcamps. Coding an error-free wedding RSVP form on a website, or making a simple-yet-correct number prediction game, is already a significant achievement for a beginner. If you get stuck, don’t give up. You should absolutely look for help everywhere you can find it, but also know when to take a break to avoid burnout. And then try, try again.
I can’t recommend Harvard’s CS50x Introduction to Computer Science enough. You can audit the course for free via edX and earn a certificate by completing all the assignments, or you can go at your own pace and watch all the lectures posted on Youtube. You can build your own DIY college-level computer science program with this selection of fifteen online courses (many of which are also listed in our Lifehacker U series).
Take a few minutes (or a day) to think about the reasons—the real reasons—why you want to learn a programming language. Be honest with yourself. Are you trying to learn the barest minimum to score a promotion? Are you looking to make a big career change? Do you want to create the next greatest app? Thrill your roommates by programming your various smart devices to do something awesome?