Being a software developer is a lucrative career plan. Those are people with some serious marketable skills. But what exactly are they doing? Since you probably can't beat 'em, you'll have to join 'em. Do you have the tech-savviness and the audience reliability to develop a good product? With a bit of brainstorming -- and, of course.
First: Learning the Ropes
1. Determine which basic type of software development interests you. There are two basic camps of software development: Applications Development and Systems Development. Applications Development is focused on creating programs that meet the users' needs. These can range from mobile phone apps, to high-production video games, to enterprise-level accounting software. Systems Development is focused on creating and maintaining operating systems using life-cycle development. Systems Development often involves network operability and data security.
2. Teach yourself a programming language. Anyone can come up with ideas, but a developer will be able to turn those ideas into something tangible. Even if you only want to work on the design aspects of software, you should have some familiarity with coding and be able to create basic prototypes. There are a huge variety of programming languages that you can teach yourself. Some of the more useful and important ones include:
C - C is one of the older languages still in use, and is the basis for most of the other languages on this list. C is used to develop low-level programs, and works very closely with the computer's hardware.
C++ - This is the object-oriented version of C, and is the most popular programming language in the world. Programs such as Chrome, Firefox, Photoshop, and many others are all built with C++. It is also a very popular language for creating video games. C++ developers are almost always in very high demand.
Java - This is an evolution of the C++ language, and is used to due its ease of portability. Almost any system can run a Java Virtual Machine, allowing it to run Java software. It is widely used in video games and business software, and many people recommend it as an essential language.
C# - C# is a Windows-based language that is part of the .NET framework from Microsoft. It is closely related to Java and C++, and if you learn Java you can quickly transition to C#. This language is especially useful for developers working with Windows or Windows Phone software.
Objective-C - This is another cousin of the C language that is specifically designed for Apple systems. It sees immense popularity in iPhone and iPad apps. It is a great language to learn as a freelancer.Python - This is an incredibly easy language to learn, one of the easiest. Python specializes in web development.
PHP - This isn't exactly software development, but PHP is essential if you are interested in getting into web development. There is always lots of work for PHP developers, though it isn't as lucrative as software development.
3. Find resources to help you learn. Most bookstores have entire sections dedicated to programming books, and there are tons available on Amazon and other e-tailers. A well-written programming book will likely be the best resource you can have, and will allow you to quickly reference it while working on projects.
Beyond books, the internet is an endless treasure-trove of guides and tutorials. Search for guides on the language of your choice on sites such as CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools, and many more.
4. Take some classes. While you don't need a full-on degree in order to get into software development, it can't hurt to take a few classes at your local community college or learning center. This will give you the benefit of one-on-one instruction, and you will be challenged to solve problems that you likely wouldn't if you were learning on your own.
Classes cost money, so make sure that you are signing up for classes that will help you learn what you want to know.
While many developers are able to enter the industry based purely on the merits of their skills, you'll help yourself stand out from the pack if you have a bachelor's degree in computer science from a four-year university. A degree will give you a wider background of knowledge and will give you access to additional helpful classes such as math and logic.
5. Work on pet projects. Before you start trying to apply your new programming skills to real-world jobs, work on some projects for yourself. Challenge yourself to solve problems using your programming language. Not only will this help develop your skills, it will also help build your resume.
For example, instead of using your computer's calendar program to stay organized, try designing your own!
If you're interested in video game development, work on simple games that don't focus on graphics or complex mechanics. Instead, focus on making them fun and unique. A collection of small games that you created yourself will look great in your portfolio.
6. Ask questions. The internet is a fantastic way to connect with other developers. If you find yourself stumped on one of your projects, ask for help on sites such as StackOverflow. make sure that you ask in an intelligent manner and can prove that you have already tried several possible solutions.
7. Practice every day. Work on your pet projects every day, even if only for an hour. This will help you stay fresh and constantly learn new techniques. Many developers have had success learning a language by ensuring that they are exposed to it on a daily basis.
Set a time every day that you can dedicate to coding, or set a deadline that you need to be finished by. Try to work on your projects every day during the week so you can relax on your weekend.