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.
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.
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.
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.
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.
Examine your daily tasks on your computer. Is there some way that you could automate a portion of those tasks with a program? Write down every idea. Even if it seems silly or outlandish at the time, it could change into something useful or even brilliant. Examine other programs. What do they do? How could they do it better? What are they missing? Answering these questions can help you come up with ideas for your own take on it.
Your prototype will change often during the development cycle as you come up with new ways to tackle problems or think of an idea later that you want to incorporate. The prototype doesn’t have to be pretty. In fact, art and design should be one of the last things you focus on. Using the calendar example again, your prototype should most likely just be text.
Try inputting odd dates if your program deals with dates. Really old dates or far future dates may cause odd reactions with the program. Input the wrong kind of variables. For example, if you have a form that asks for the user’s age, enter in a word instead and see what happens to the program. If your program has a graphical interface, click on everything. What happens when you go back to a previous screen, or click buttons in the wrong order?
UI design and functionality can be very difficult and complex. People make whole careers out of designing UIs. Just make sure that your personal project is easy to use and easy on the eyes. A professional UI may not be possible without a budget and a team. If you have the budget, there are lots of freelance graphics designers who could potentially design a UI on contract for you. If you have a solid project that you’re hoping will become the next big thing, find a good UI designer and make them part of your team.
Hacker News is a great resource for contract and freelance jobs. Check the “Ask” section. While it can be tempting to bid low to secure a contract job, don’t sell your services short. Not only will you end up working more for less than you deserve, you will also anger others in your field, leading to less networking. Good work on a contract job can sometimes lead to a full-time position. Always put your best foot forward!