So, you want to be a computer programmer. Previously, we talked about the need to program to be a programmer. But what kind of programming. Let’s assume for this discussion that you want to be an independent programmer/entrepreneur. First, you need to decide waht kind of freelancer you want to be. Do you want to develop websites, web applications, games, mobile apps, etc. This will dictate the language you should learn, the platform you should become familiar with, and the ide/tools you should become proficient with.
If you want to be a game developer then there are several choices, but the tools are more important here probably than the language. I would suggest the Unity game engine. There are several good game engines, but Unity seems to be gaining the most attention. This will lead you to learn C#. This is the most popular scripting language for the Unity game engine. Secondarily, to this you will also need to develop knowledge in 3d graphics and need an eye for graphics. This is not my speciality and due to this I have stayed away for game development and website design in my career. I outsource the design elements of the projects I do.
If you want to develop apps the 2 most popular are Android apps and iOS apps. Android lives in the Java programming world. For this you will want to learn Java and then pick an IDE. Eclipse is a very popular open source IDE that is also easy on the budget(it’s free). There is plenty of online help with the Java/Eclipse world to assist you as well.
For iOS the language was ObjectiveC but is now moving to Swift. Apple’s Xcode is the IDE for this language and is really the only choice. There are 2 downsides to developing iOS apps using these tools. First, there is some cost. You need to buy Xcode, and Apple development box and an Apple mobile device. Secondly, this skill set will pigeonhole you into just Apple products. Another iOS approach now is to use C#/.NET/Visual Studio w/Xamarin. The downside to this is you are developing Apple based software using Microsoft tools. This platform is fairly new for Apple development and it’s use is not widespread yet. The upside to this is the knowledge you gain learning C#/.NET/Visual Studio can be used to develop for the Windows platform. Also you can use the Visual Studio IDE for Android and Web development as well. So, you are not as pigeonholed into Apple if you decide you want to branch out.
Another mobile platform to explore is Windows 10(don’t laugh). The reason I mention this is not due to the huge market of Windows mobile devices, but due to the huge market of Windows desktop, laptop, tablet, and XBOX devices. Windows 10 allows you to develop across all of these platforms plus HoleLens(up and coming) and IOT(internet of things). Also, the Windows platform with C#/.NET is one of the largest installed bases for business applications if you decide in the future to work for a company instead of yourself. This is also a benefit to Java as well. Java is another very popular language for business applications. Incidently, this is also a downside to Swift/Xcode. The Apple platform has a very small user base in business applications. Apple does not play in the backend server market like Windows and Linux.