Have a decent grasp on both a system language (e. g. , C++) and a programming language (e. g. , Python) Know which platform(s) you want to program for (e. g. , Windows, Android, etc. ) Be willing to spend a large amount of time learning about your selected languages, platforms, and software genre
As long as you’re legitimately interested in learning how to develop software and you’re willing to accept criticism where appropriate, there’s no reason to think that you can’t successfully become a software hacker.
While not strictly necessary, a degree in computer science or software development will help expedite your employment if a career in software development is your end goal. If your goal is simply to create an app or a program which helps users accomplish a previously difficult or impossible task, make sure that the software in question isn’t already being developed.
It’s best to work on the same platform for which you’re developing. For example, if you’re developing an Android app, using a Unix-based system such as a Mac or a Linux computer is better than using Windows. Linux is a commonly used (and free) solution for many software developers.
System languages — A computer language used to interface with the system directly. Common examples include C, C++, and Java. Programming languages — A language used to design your software’s interface (e. g. , what users will look at) as well as its function. Common examples include Python, Ruby, and Perl.
While you won’t perform the bulk of your software development from the command line itself, you’ll need to use the command line to run certain programs or integrate software commands with your computer.
While you’ll ultimately use different command line-based text editors and programs to write a large amount of your code, Notepad++ is a phenomenal (and free) learning tool when you’re first starting out.
If you’re developing an Android app, for example, you’d download and install the Android Studio development kit. Java users will often use a development environment such as Eclipse.
Free programming resources are abundant online, so use these to your advantage before signing up for a paid class or bootcamp.
Like any skill, being involved in the creation process (even if you’re just an observer) is the best way to gain practical experience.
If you do start your own open source project, be prepared to compromise with the community in terms of the project’s direction.
Open source projects may not be your end goal, but they serve as a great way to see multiple different perspectives come together to form a user-oriented product.
Not all feedback will be constructive. If you do receive rude or unwarranted feedback, remember to be polite if you choose to respond.
One option is Google’s Summer of Code program, which helps students become familiar with open source projects and community coding. [2] X Research source
Much of a free software hacker’s success is dependent on curiosity. As long as you keep asking questions and looking for answers, your time with software development will be productive and long-lived.