This post is based on an answer I wrote to a question on Quora. The question was posed by an aspiring software developer, wanting to know the steps they need to take to move forward in development.
Learn Object Oriented Programming
A starting foundation with Object-Oriented Programming (OOP) is a must in software development. If you’re looking at traditional education, look for degree programs in Computer Science. There are also plenty of books and websites out there to learn different programming languages, one I frequently recommend is, because of the interactive nature of it. I learned more about OOP by doing rather than by reading theory, but it all comes down to the type of learner you are.
Work on Open Source Projects
Once you have the fundamentals down, take a look at various open source projects. I love working on these from time to time, finding an interesting bug or feature request in a program, and challenging myself to find a way to fix the issue. A good resource for this is. There’s also a website called that will list GitHub projects that are actively looking for new contributions. Some of these may include markers such as “Good First Contribution,” which means the problem is relatively simple, and they’re saving it for newer developers to work on to get experience in open source projects. Find an interesting project and see if they have any current issues that need solving, or if you can think of any improvements to make the software better. I learned a lot about development by jumping into some of these projects. Take a look at the source code and see how they run and what they do behind the scenes.
Write Your Own Programs to Solve Your Own Issues
Don’t be afraid to write your own software too. Always be thinking about current problems and new ways to solve them. Think about things in your daily life that you think you could improve with software. Then try to write a program that would solve this problem. The feeling of pride that comes with your first program to make your own life easier is awesome, even if it’s something that no one else would use. Remember, at this stage, it’s all about applying what you’re learning.
They say don’t reinvent the wheel, but I think when you’re first starting out with development, reinventing the wheel is a great place to see just what you can do. For example, do you like to cook? Make a cook timer that can be adjusted for different types of food. Sure, there’s plenty of cook timer apps and programs out there, but again, it’s all about learning. That was the first type of program I worked on myself outside of contributing to other projects.
Never Stop Learning
The key thing in development is to know that there’s always more to learn. Watch development YouTube videos, read blogs about development, and remember to always keep learning.