Hacker News new | ask | show | jobs
by al_borland 701 days ago
Instead of picking the language first, decide what you want to create. Having a project you are interested in is key to learning. If you’re just doing a bunch of tutorials you don’t care about, with no way to apply them, it’s hard to stick with it. Any language can teach you the basics and those basics will be transferable to any language.

If you want to make a website, start with HTML, CSS, and JS. If you want to make an iPhone app, start with Swift. If you want to make something for Windows, give C# a try. Knowing where you’re heading will narrow things down a lot.

While I had a Java and .Net class in college, I never used it after the class, didn’t have a project of my own, and forgot everything. Years later at work, I wanted to automate some stuff I had to do often, which led me to AutoHotKey. That was a painful way to learn, as the syntax and documentation were both difficult to deal with, but because I had a project I cared about, had quick results, and had reasons to keep adding more and improving it, I learned. Eventually I wanted to share some stuff with others and distributing a URL seemed easier than an exe, so I learned basic web dev. Then I needed some server side stuff, so I learned PHP, then needed something else and learned Python, and Ansible, and on and on… whatever I needed at the time. Was it “optimal”? No, but no path will be. You can only connect the dots looking back. The most important thing to keep moving forward is to have a reason to get excited about it. If you’re in tutorial hell, you’re probably heading in the wrong direction. Things are going to be hard at times. There will be a point where you’ll beat your head against the wall for hours, maybe days, because of a single brace that’s out of place. During these times, there needs to something you want that is worth going through the frustration.