I love this programming article by Terri Burns on Rookie Magazine! I could probably just retweet/share/like it, but I wanted to add my own $0.03 worth (up from $0.02 because I’m more opinionated than most…)
A step-by-step process:
1 Consider your Interests.
What I really want you to do here is to pick a platform. Do you want to write a game? What will people use to play it? Will they play your game in their web browser? On an iPhone? An Android? Or would you rather write a game within Minecraft that people play on a Minecraft server?
An iPhone game requires you to learn Objective-C or the Swift language. Android and Minecraft both require Java skills. There are loads of books targeted at Language and Platform, and you want to start with materials that apply to both. Don’t just pick up a generic HOWTO Java book when there are so many materials specialized to your needs.
2 Pick a Language
If you’ve done your job in step 1, then you may skip this step. But if you have a choice here one way or another, consider this: Many starting developers want to learn a language that’s hot, and a language that’s new.
And that’s exactly what you SHOULD do!!!
Github has an index showing language popularity in its open-source projects. These languages are constantly changing by improving and adding new features for programmers to utilize. There is a reason for this : These new features help developers do more powerful things with less headache.
When it comes to programming languages, modern is better. Popular is better. Don’t learn an obscure language just because your programmer buddy tells you how Elite it is.
3 Learn It!
Get a book with lots of examples, and watch YouTube videos. Pause the videos and type in the exact code the tutors are demonstrating. You really will learn by doing this! Follow your curiosity and try things. You can’t break it. Get a StackOverflow account and ask questions. Don’t worry if the moderators mark it as duplicate or ask you for more details. You are learning and that is the point!
4 Consider your Resources
YouTube videos, Safari Books Online, the library (often with free online resources!)… The list goes on. The less structure, the better! Don’t sign up for a course unless you really want the fundamental theory and mathematics. You don’t need university courses unless you’ve decided to make this your career. Programming can be a hobby just like sewing or landscaping!
5 Join Communities
Join Meetup.com or check around your local universities for groups with similar interests – Not just programming, but programming on the platform using the language you’ve picked.
Once you start working with other developers, you will be bombarded with a torrent of cases and tricks and techniques you never dreamed existed. You’ll start to get the feeling that you really didn’t know anything in the first place. That’s OK! Programming is a deep field that takes years to master. Learn, build, and don’t worry about it.
6 Build Something
It takes reading and writing to learn coding, but it you have to try to build something unique to really test the limits of your knowledge. Expect to spend a lot of time debugging and trying to figure out why things don’t work.
This is where tools are important. A good Integrated Development Environment (IDE) is important here (the books you picked in step 1 will tell you which IDE to use). Take the time to learn the features of the IDE, especially the debugger and code refactoring. And I highly recommend you learn git or some other Version Control System (VCS). It gives you a backup for all of your work and allows you to track changes. You’ll be happy you learned it the first time you break a working program and need to revert to a working version.
Don’t worry if it’s not perfect! It’s yours! It works! You made something, and that is really cool!
7 Keep it Up!
If you want to be a software developer, develop software. It is its own field. Programming is unlike any other discipline. It is not science, it is not engineering, it is not business, it is not art.
We design, gathering and assembling the pieces we will need to realize our vision.
We write, carefully considering the expressiveness of what we write. The future of the project often rests on the quality of the code.
We solve problems, using math and technology to light the way.
It’s a fun hobby.
It’s an awesome career.