PDF download Download Article PDF download Download Article

This wikiHow teaches you how to begin developing and maintaining free, open-source software in a programming community. While people who do this are sometimes referred to as "software hackers," the position itself is more oriented toward creating and tweaking software than breaking into it.

  1. Being a software hacker means that you'll spend a large amount of your time building, tweaking, and updating free software to satisfy users and keep your software relevant. To this end, you'll need to meet the following criteria:
    • Have a decent grasp of 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
  2. Contrary to popular belief, having an exceptional understanding of mathematics, previous coding knowledge, and/or a college degree in computer science (or similar) isn't necessary for you to learn how to become a free software hacker. [1]
    • 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.
    Advertisement
  3. Software development can be used for anything from a simple side hobby to a full-time career; knowing what you want to accomplish before you set out to learn a programming language or select a platform will help keep you focused down the road.
    • 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 that helps users accomplish a previously difficult or impossible task, make sure that the software in question isn't already being developed.
  4. Each main platform—Windows, macOS, iOS, Android, and Linux—has its own community, preferred programming languages, and individual needs. Knowing which platform to which your software will apply before you dive into software development is crucial.
    • 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.
  5. There are two types of coding languages; you'll need to learn at least one of each before jumping into developing, though you'll ultimately need to know several languages:
    • 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.
  6. Every computer has a command line application (e.g., Command Prompt for Windows, Terminal for Mac and Linux, etc.). You can use the command line to communicate with the computer itself, allowing you to issue detailed commands as necessary.
    • 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.
  7. Download and use Notepad++ . Notepad++ is an invaluable programming resource as it both makes coding easy to keep track of by implementing visual aids and serves as an educational tool.
    • 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.
  8. Your selected programming languages and platforms most likely have development software that allows you to save and test your projects from your computer; such software is called a "development environment". If possible, find and install a development environment for your selected language before you begin learning to program.
    • 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.
  9. Start learning how to program . Once you know which language you want to use, it's time to start learning how to use it. There are numerous online tutorials—both free and paid—in which you can partake, and most libraries will carry programming language-specific books (e.g., C++ for Dummies ) which will allow you to pursue an entire language free of charge.
    • Free programming resources are abundant online, so use these to your advantage before signing up for a paid class or bootcamp.
  10. Open source projects such as those found on SourceForge or GitHub often have avid followers; if you can find a project that uses the same programming language and/or has a similar goal to your own project, you can join the community in order to add suggestions and observe the development process.
    • Like any skill, being involved in the creation process (even if you're just an observer) is the best way to gain practical experience.
  11. You can do anything from posting in the community's forums to starting your own open source project, but the main goal is to run your ideas and obstacles by the community and listen to their feedback.
    • If you do start your own open-source project, be prepared to compromise with the community in terms of the project's direction.
  12. As is often the case with software development, your main idea or pet project may already be underway by a community with far more experience than you have. If so, consider asking to join the project. This will both further your understanding of how software projects work and help you bring your project to life, albeit in a group setting.
    • 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.
  13. As you progress with your software development and submit your work, you'll be subject to critiques. Listening to community feedback will help structure your future development, but it will also teach you valuable shortcuts and methods for approaching similar problems for subsequent projects.
    • Not all feedback will be constructive. If you do receive rude or unwarranted feedback, remember to be polite if you choose to respond.
  14. You'll often find challenges, bootcamps, lectures, classes, and outright competitions in your community's forums, in places such as Craigslist, and on campuses. Signing up for any such event or camp will give you some guided experience while placing you in an environment with like-minded peers.
    • One option is Google's Summer of Code program, which helps students become familiar with open-source projects and community coding. [2]
  15. Software development is a field that will only continue to grow as technology evolves, so make sure that you're constantly learning about new projects, languages, operating systems, and any other relevant information in your preferred area.
    • 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.
  16. Advertisement

Community Q&A

Search
Add New Question
  • Question
    Is there any direct hacking software?
    Community Answer
    The Kali Linux operating system is widely used by penetration testers. Kali is an operating system that is built for ethical hackers, it has lots of tools and software pre-installed in it that can be used by a hacker.
  • Question
    How do I hack my iPad to redo my Apple ID password?
    Community Answer
    if you forgot your password, you can reset your Apple ID password with email on a computer, or if worse comes to worst, you could factory reset your device.
  • Question
    Do I need any special hardware for my PC to hack software?
    Community Answer
    The short answer is no. In some instances it is helpful to have a genuine model of the hardware for which you're writing the software, such as when you're writing controller code for a specific device. For the most part, though, there's a great deal of fundamental building of concepts and skills that will keep you busy for a long time, using only general-purpose hardware, before you're likely to encounter a need for special hardware. You might enjoy having a look at rosettacode.org to get some general and specific ideas about programming.
See more answers
Ask a Question
      Advertisement

      Tips

      • Starting out by learning C (or C++) and Python will place you in relatively good standing, though Java is a popular starting point as well.
      • Ultimately, you'll end up learning several computer languages during your time as a free software hacker.
      • Computer programming may seem intimidating, but it's simply speaking to the computer in a language that the computer understands.
      Submit a Tip
      All tip submissions are carefully reviewed before being published
      Name
      Please provide your name and last initial
      Thanks for submitting a tip for review!
      Advertisement

      Warnings

      • Avoid asking any question related to fundamentals of programming or programming tools in an open source program's discussion page. A free software programmer's time is valuable. Instead, discuss the basics of programming in communities for amateur or new programmers.
      • Sitting at a computer for more than a few hours at a time can have lasting effects on your overall health. Remember to get up and stretch, look away from the screen, and move around at least once every couple of hours.
      • Be patient. Like learning any skill, becoming a free software hacker will take time and determination.
      • It's inadvisable to attempt to revive an abandoned project which has already lost its previous team.
      Advertisement

      Expert Interview

      Thanks for reading our article! If you’d like to learn more about programming languages, check out our in-depth interview with Tyrone Showers .

      About This Article

      Article Summary X

      Software hackers spend their time building, tweaking, and updating free software so it's more enjoyable for users. Therefore, if you want to be a software hacker, you'll need to have a pretty good understanding of both system and programming languages. To learn a system and programming language, start by choosing which platform you want to work on, like Windows, iOS, or Android, since each platform uses different languages. Then, use free online tutorials to teach yourself at least 1 system and programming language for that platform so you can start contributing to projects. For more tips, like how to get involved with the software hacking community, scroll down!

      Did this summary help you?
      Thanks to all authors for creating a page that has been read 388,444 times.

      Is this article up to date?

      Advertisement