Skilled programmers have been in high demand for years now, and it doesn’t look like that demand is about to go down anytime soon. But even if you don’t intend to make a living as a professional programmer, learn how to code proficiently is going to come in handy in any computer-related job – even as a manager. But if you’re reading this, I probably shouldn’t have to tell you why becoming a coder is a good idea. You already know, and I guess you know something else, too – it isn’t easy.
Mastering the art of programming takes thousands (yes, thousands) of hours. Still, if you spend those hours well, you’ll get there sooner (and have more fun along the way). Here are a few ideas for you to consider and maybe try out on your path to becoming a coder.
Solve a Real Problem
Theory is boring. So are theoretical problems, usually. If you’re only learn how to code to make some money, well, I’m not sure how well that’s going to work out. But if you have an actual passion for building things, go build them. So the first question you should probably ask yourself is “why do I want to learn this?” If that answer is “to make something“, well, go make that thing. The good news are that the first step doesn’t require you to know how to code anything: You just have to write down (and preferably, sketch in) what would that thing look like. What’s the application that you’re missing? What tool doesn’t exist, but you really need?
What’s nice about this approach (also known as “scratching your own itch”) is that your project doesn’t have to be grandiose. You can start out with something really small, just create a simple utility. But no matter what it is, you should care about it. The first thing I ever wrote in Ruby was a personal project I’ve kept on using for years, and have never released to the world. Still, I’m very proud of how it came out, and much of what I know about Ruby (not Rails) came from that project.
Start With High-Level Information
Yes, I’ve singled out a specific book here. No, O’Reilly didn’t pay me (or MakeUseOf) anything. It’s just that good. I almost never make it through a book about programming, but Code Simplicity kept me fascinated all the way through. It’s a book about the art of programming, with almost no code in it. You don’t have to know a programming language to understand it. It covers things like the basic reason to even program anything (to help people!), when should you introduce new features into your application, when to optimize your code (and what’s premature optimization), and a lot of other good stuff.
Once you finish this book (or another book like it, if you find one), you’ll be at a much better spot to judge your future studies.
Carefully Pick Your Technology
Should you go code your first project in straight-up ANSI C? Unless you have a very specific reason, the answer to that is “probably not”. Good coders know how to code, rather than a specific language – they can learn any language they need for a given project in a short amount of time. But doing this for the first time isn’t so easy, because it’s not the language you have to master, but the general programming concepts (program logic and flow control, variable types and scoping, objects, and all of that good stuff). So, you should definitely spend some time thinking about what language or technology you want to code in.
This comes after picking your project, because once you know what you’re trying to make, you will be limited to a narrower subset of possible technologies. You’re not going to code a native iPhone app in Ruby on Rails, for example. But if you’re coding for the Web, there are about a zillion different languages you could use, each with many different frameworks. PHP, Python, Ruby, Go, and the list goes on.
Spend time researching each of the alternatives – what sort of community does it have? How easy is it to get support? Are there good free development tools for it? James covered this topic in another article, called Which Programming Language Should You Learn For Software Development?.
Don’t Spend Lots of Time Learning Big Chunks of Data
I once spent a few weeks watching a video course about PHP. I think it was 30 hours of video or something crazy like that. Do I know PHP now? Heck, no. I mean, I can read some of the code, but I’d say those hours were a sheer waste of time. Trying to cram so much knowledge sequentially without coding just doesn’t work. For me, carefully coding a pre-made example project is nearly as bad, because it misses a huge part of learning. I do my best learning when I’m trying to make something I care about (see above) and randomly run into problems. Solve a problem you feel something about, and you’ve learned something new. Stare at the screen for 30 hours and….well.
Do Spend Time Setting Up Your Environment
Just like there are many programming languages, there’s a lot of development environments out there for every language. Some people use a text editor like Vim (which I recommended in The Top 7 Reasons To Give The Vim Text Editor A Chance) or Notepad++ (which we’ve shown you how to “soup up” here). Picking an editor that’s right for you is a very personal process, and it’s just the start. You’re next going to have to customize it with keyboard shortcuts, color schemes, plugins, and more.
And that’s just a small part of the work – setting up a development environment requires installing the language you want to work with, many code libraries, a versioning system (like Git, which James explained here), and more. In other words, you’ve got hours of work ahead of you setting up the environment. And you know what? That’s okay.
Just make yourself a cup of coffee or ten, and go through it. Have fun. Learn to know your tool, just like any craftsman knows his tools. Learn the keyboard shortcuts. Get that highlighting just right. The more comfortable you feel with your tools, the better you’d be able to pay attention to your code. So, this is one area I wouldn’t skimp on.
Don’t Rush Yourself – Deadlines Are Your Enemy
Whatever you do, remember – you’re here to learn. You’re not under a deadline. When the temptation arises to use a dirty hack in your code just to get it to work, don’t! Take the time and invest the care to find out how to do it the right way. A sloppy first project is better than no project, but you’ll learn much more from a project you’ve designed and built with great care every step of the way.
Have patience, and sweat the details (when it comes to coding techniques and ways to get stuff done in code).
There’s the fantastic Stack Overflow which you can see in the screenshot above. There are many other language-specific forums online, but no matter the venue you pick, don’t be afraid to ask questions. If people aren’t nice, figure out what you did wrong and learn to ask better questions (a subject for an article in itself, really).
Failing that, go find another community. But no matter what, ask your questions, and listen to the answers. Thanking people for the time they took to help you is also a good idea.
Use Spaced Repetition To Retain Information
This final tip is a short one – go read all about the Janki Method. It’s an absolutely brilliant way to built an arsenal of always-current programming knowledge and retain it indefinitely, not in your computer, but in your brain where you need it. Seriously, go read that post.
Learning is a very personal thing, so maybe not all of these tips are going to work out for you. Then again, maybe you have a few other tried and true ones you’d like to share.
Most important (for me), I’d like to know if you’re going to be using any of these tips in your quest to become a programmer. Will you? Let me know below.
Image credit: Old big books via ShutterStock