Hobby Programming: Benefits and How to Get Started
Is it worth putting money, time, and effort into learning programming if you are just going to do it as a hobby? What happens if you enjoy programming but don’t want a career in tech?
Most people are attracted to programming because of the excellent career opportunities it provides. According to a survey by freeCodeCamp, 66% of developers learned programming for career reasons while only 11.4% got into programming as a hobby. [1]
With all the benefits that come with a tech career, it seems like a no-brainer to learn coding for career reasons. However, there are some good reasons why you may want to do programming solely as a hobby.
In this article, I will explore, in detail, the topic of hobby programming. I will look at why you may want to learn programming even if you don’t intend to take it as a career. I will also go through how to get started and make the best use of hobby programming.
Some of the questions I will explore include:
- What are the pros and cons of hobby programming versus career programming?
- Which programming languages and paths are best suited to hobby programming?
- What interesting projects can you do with hobby programming?
- How do you make money from hobby programming?
- How do you get started with hobby programming?
If this sounds good, stick around. Hopefully, by the end of the article, you will see that hobby programming is not a waste of time.
1. Programming as a Hobby versus Programming as a Career
Before choosing between hobby programming and career programming, it is important to be clear about the distinction between the two as this will help you to:
- Set the right expectations based on your goals.
- Choose the right programming path.
- Choose the appropriate language, tools, frameworks, and libraries.
- Come up with the appropriate learning strategy.
What is the difference between hobby programming and career programming?
When you learn coding as a hobby, you are mainly concerned with learning and creating only what you are interested in. Your choice of programming paths, languages, tools, and frameworks will be determined by your passions.
When you learn to code for a career, you are guided by what employers want. You choose paths, languages, tools, and frameworks that will enable you to easily get a job.
Pros and Cons of programming as a hobby versus programming as a career
Hobby programming comes with certain benefits as well as its own set of challenges. Being aware of them will help you make a more informed decision.
#1. Advantages of programming as a hobby
When you choose to be a hobby programmer, these are the advantages you will get.
- You can start hobby programming at any age. With career programming, it can be difficult to break into some career paths if you are older (see programming FAQs for more).
- You can work on projects you enjoy with no boss to tell you what to do.
- You can be more creative because you can follow up on your ideas. In a job, you can have many of your ideas shot down before you even get to try them out.
- You get to choose the programming languages, frameworks, and tools that you want to work with. In a job, you frequently have to work with what others are working with within the organization.
- You get to work within your own timelines. In a job, there are usually set timelines and there will be pressure to meet the deadlines.
- You get to work on the entire project. In a job, especially if you are working for a big company, you are a small cog in a big wheel. You may be part of a big team and working on only a small part of the project.
#2. Disadvantages of programming as a hobby
As a hobby programmer, here are the disadvantages you will face.
- Although you can make a good income with hobby programming, you often have to hustle for it. With a job, you often can get a high starting salary together with many other benefits.
- You are limited in the scale of what you can create especially if you are working alone. You lose the benefit of tapping the strengths of a big team.
- It may be difficult to motivate yourself to finish projects once they stop being fun.
- You can get into a comfort zone of only working with languages or frameworks that you are comfortable with and this may limit your growth.
- You may not have the mentorship and training opportunities that come for free with a job.
- It can be lonely especially if you are working alone.
2. Is programming still a good hobby even if it doesn’t become a career?
Having considered the pros and cons of hobby programming, does it still make sense to go into hobby programming?
I would say yes because of the following reasons.
1. You will have a great time. You are more likely to enjoy programming if you have the freedom to explore your creativity and do your own projects without having someone on your back. If you can wake up excited to do some programming, then this is enough reason to continue doing it.
2. You still get many of the benefits that come with programming. The cognitive, emotional, and social benefits of programming still apply even if you do it solely as a hobby. For more, see my article on the benefits of programming where I have done a detailed analysis of the major reasons for getting into coding.
3. You can still make money without being employed. With programming, it is possible to be entirely self-employed. Alternatively, you can use programming as a way to make a decent side income to supplement income from your current career. Later in this article, I will go through some of the main ways you can make money from your programming skills.
4. You can turn your hobby into a career or business at any time. Your decision to pursue hobby programming doesn’t have to be cast in stone. Once you gain programming skills, transitioning into a career or business will be smooth and quick.
3. Who Should Get Into Hobby Programming?
The decision to get into hobby programming instead of career programming will be determined by factors that are unique to you such as your goals, personality, location, and present career.
With that said, you should lean more towards hobby programming if:
- You have a passion project that you want to realize.
- You don’t enjoy the pressures of career programming.
- You feel that you might be at a disadvantage competing in the job market.
- You want to do programming for its non-monetary benefits (such as emotional, self-development, and cognitive benefits).
- You want to earn a decent side income without necessarily trying to make it your main income.
- You want to use aspects of programming in your present career without having to change careers.
4. The Best Programming Languages for Hobby Programming
There are at least 700 programming languages that you can choose to learn. It can be overwhelming to choose which language will be suitable to learn as a hobby.
So how do you decide which programming languages are best suited to hobby programming?
#1. Criteria for choosing a programming language for a hobby
There are three main points you need to consider when choosing a language for hobby programming.
- What do you want to create? Some languages are better suited to some tasks than others. For example, if you want to mainly create websites, HTML, CSS, and JavaScript are crucial. If you want to do machine learning, then Python is better. Choose your language based on the programming path you are interested in.
- What learning resources are available? As a hobby programmer, you will probably learn programming on your own therefore it is important to learn a language that has adequate learning resources. Most popular programming languages such as Python and JavaScript will have large communities and plenty of learning resources.
- Can you make money as a freelancer? Some languages are popular with freelancers because of all the opportunities available outside of formal employment.
There are several other crucial factors you should consider when choosing a programming language. See my article on how to choose a programming language for more.
#2. Best programming languages to learn as a hobby programmer
Based on the criteria above, several languages emerge as top contenders for hobby programming.
If you have no particular preference for a particular programming path, then you should consider learning Python.
Python is a great language for a hobby programmer because:
- It is fairly easy to learn because of its simple syntax.
- You can use it for many different projects such as machine learning, data analysis, web programming, automation scripting, and Raspberry Pi.
- It has plenty of good learning resources, libraries, and platforms.
There are plenty of other reasons why you should consider Python as your first choice. For more see my article on Why learn Python?
Besides Python, there are several other programming languages that you should also consider depending on your interests. These are:
- JavaScript. Together with HTML and CSS, JavaScript is crucial for creating websites, web apps, and mobile apps. There are also plenty of freelancing opportunities for JavaScript developers.
- C#. If gaming is your thing, consider learning C# as it is the primary language used in the most popular gaming engine (Unity). You can also use it for cross-platform app development.
- C++. If you are interested in programming for gaming, robotics, RC, and embedded systems, then learn C++. The language is popular for Arduino hobbies and creating games in game engines like Unreal Engine.
- PHP. PHP is the main language used in WordPress, the most popular Content Management System (CMS) for websites. This creates a lot of freelancing opportunities.
If you wish to teach yourself how to code in these languages, here are some great courses you can start with.
Introduction to Python
This professional certificate course from Georgia Tech will teach you the fundamentals of Python programming.
Complete JavaScript Course
This beginner-friendly course promises to turn you into an expert in JavaScript. Build 6 real-world projects.
C# Development Fundamentals
This course will teach you the fundamentals of C# programming and how to leverage the .NET framework.
For a detailed analysis of the best programming languages to learn, see this article.
5. How and Where to Learn Programming as a Hobbyist
When you are learning programming as a hobby, you need to strike a balance between how much money you spend and the value you get in return.
With career programming, you don’t mind investing a lot of money because you are hopeful of getting a good job that will pay for itself.
Here are some strategies to make the best use of learning resources:
#1. Start with free resources.
There are plenty of free resources online and on YouTube. These are great for exploring the different paths without incurring a lot of costs. YouTube is especially great for discovering new languages, platforms, or teachers because of its recommendation engine.
#2. Graduate to paid courses.
Once you have decided on the best programming path to take, you need to get a structured course. Paid courses tend to be more comprehensive and structured compared to most of the resources you will find for free.
There are plenty of good course platforms that offer affordable courses such as Codeacademy, Coursera, and Udemy.
Additionally, many of them also have free courses or will allow you to audit a course for free.
#3. Do projects and coding challenge
No matter how many courses you take, you will struggle with programming unless you can do small projects on your own without following the recipes found in courses.
You also need to sharpen your skills with coding challenges. You can check sites like CoderByte, HackerRank, GeeksforGeeks, CodeChef, and Codewars for coding challenges.
6. What Can You Do With a Programming Hobby? Hobby Programming Paths, Ideas, and Projects
Once you have had a chance to explore programming languages, you need to choose a programming path to focus on. The path you choose will depend on:
- What you want to create.
- Your goals and interests.
- Your skills and natural strengths.
- The programming languages, tools, and frameworks you want to work with.
- Your career and career goals.
Here are the most popular programming paths and the projects you can create in them.
#1. Web development path
In this path, you can create websites, web apps, blockchain apps,and many other cool projects.
The main programming languages you need to learn are HTML, CSS, JavaScript, and PHP.
Cool hobby projects you can create with web development skills include:
- Websites for friends, family, or local businesses.
- Web-based JavaScript games.
- Online stores for yourself or local businesses.
- Blockchain-based social media sites.
- WordPress themes and plugins.
An excellent course for learning web development is the Full-Stack Engineer course available on Codecademy.
#2. Mobile app development path
In this path, you will mainly create native or cross-platform mobile applications. For native app development, you need to learn Kotlin (for Android) or Swift (for Apple IOS).
For cross-platform apps, you need to learn JavaScript (with React Native, or Vue Native), C# (with .NET), Java (with Spring),or Dart (with Flutter).
Here are some cool app ideas you can try.
- Create an ad-free to-do app.
- Create a facial recognition app using an A.I platform like Tensorflow.
- Create a conversion app (weight, BMI, temperature, lengths).
- Create a blockchain-based app to transfer money.
- Create an A.I app to identify flowers, butterflies, or birds.
Here are the best courses for learning mobile app development.
- Become an Android Kotlin Developer (available on Udacity)
- IOS Developer course using Swift (available on Codecademy)
- Flutter and Dart: The Complete Guide (available on Udemy)
#3. Game development path
In this path, you can create 2D and 3D games in popular game engines like Unity, CryEngine, and Unreal Engine. The top programming languages you need for game programming are Python, C#, Lua, and C++.
Some interesting games and projects you can create with game development skills are:
- Simple 2D games such as car racing, Tic-tac-toe, or Sudoku using Python.
- A VR auto racing game with Unity.
- Virtual homes or cities using Unreal Engine. This is great if you are also into interior design, landscape design, or automotive design.
If you want to get started with game development, check out the Game Development in Unity course from Michigan State University (Available on Coursera).
#4. Embedded Systems Path
In the embedded systems path, you can create robotics, RC, Raspberry Pi, IoT, or Arduino projects. The top languages you need to learn are C, C++, Rust, and Python.
An great course for learning embedded systems development is the Embedded Systems Engineer course available on Udemy.
7. How to Make Money with a Programming Hobby
Even if making money may not be your main motivation for learning programming, it doesn’t hurt to bring in a bit of income on the side.
Can you make money as a hobby programmer?
Yes. There are plenty of ways you can make money as a hobby programmer without resorting to full-time employment.
Here are the main ways that you can easily make money from your programming skills.
#1. You can find a part-time job.
Some companies, especially smaller companies and startups, may be willing to hire you on a remote part-time basis. You can work from home for a few hours a day and still get to do what you enjoy.
Check sites like Freelancer or Flexjobs for such jobs.
#2. You can do freelance projects
There are plenty of people looking for people for programmers to help them in their projects.
You can advertise your services on sites like Fiverr, Freelancer, or Flexjobs and get people to hire you.
When you look at a site like Fiverr, you will see that there is plenty of demand for services like:
- Web and app development.
- Automation scripting.
- Debugging.
- Tutoring.
- Data analysis and visualization.
#3. Selling products
Creating products can be lucrative and can provide you with a good source of passive income. Once you create a product, it can bring in a consistent source of revenue for years to come.
Some of the products you can create and sell include:
- Websites templates.
- Ad-supported Mobile apps.
- Done-for-you blogs and online stores.
- WordPress themes and plugins.
- Programming courses and tutorials.
8. How to Get Started with a Programming Hobby Step By Step
To summarize the process of getting into hobby programming, here are some steps that you can follow.
# Step 1. Understand why you want to learn how to program.
Before getting into programming, you need to be clear about your reasons for learning programming and the goals you want to achieve.
A clear vision of your goals will help you to choose your programming path and language.
# Step 2. Determine which path you would like to take
There are many programming paths you can follow. The most popular are web development, mobile app development, game development, and data science.
Before you settle on a particular path, you need to do a bit of exploration.
- Think of a project you would like to do or a product you would like to create.
- Watch tutorials of people creating what you would like to create.
- Look at code in code repositories like GitHub.
- Make a list of the tools, libraries, and frameworks you might need.
The idea behind this exploration is to get a feel of what you will come up against once you seriously start coding.
# Step 3. Choose a programming language.
The programming language you end up using will be determined by the path you want to take. Each path has programming languages that are best suited for it, for example:
- Web development: Requires HTML, CSS, Javascript, PHP, or Python.
- Mobile development: For native mobile development, choose between Kotlin or Swift. For cross-platform development, you can start with Javascript (with React Native) or Dart (with Flutter).
- Game development: Requires C#, Java, C++, or Python.
- Data Science: Requires Python or R.
During your exploration phase, you will probably get a good idea of which programming language is best suited for your needs.
# Step 4. Find Learning Resources
There are plenty of learning resources online that you can take advantage of (both free and paid). When choosing a learning resource, take into account factors such as:
- Your preferred learning medium, for example, do you like video, or do you prefer written content in books or websites?
- Your preferred learning style. Different instructors have different teaching styles and it might take a bit of exploration to find the ones you enjoy most.
- Community. It is beneficial to take courses that have some community aspect to them whether online or in-person. This will help you learn from your peers and solve problems together.
# Step 5. Learn the Basics
Once you have decided on which programming language to learn and you have found the appropriate material, then you are ready to learn. Here are some basic skills you can start with:
- How to use an IDE (Integrated Development Environment) such as Visual Studio.
- How to use version control tools and repositories (such as Git and GitHub).
- Programming paradigms (OOP, Functional, Logic, etc).
- Data structures and algorithms.
#Step 6. Learn frameworks, tools, and libraries
In addition to learning programming languages, you will be required to learn various frameworks, tools, and libraries. What you learn will depend on the programming path you choose to take.
For an overview of these frameworks, tools, and libraries, check out my article on popular programming paths.
# Step 7. Do projects and code challenges
For you to internalize what you learn from tutorials and courses, you need to carry out projects of your own.
If you fail to work on projects, you may get stuck in tutorial hell where you appear to be making progress but you lack meaningful skills.
Here are things you can do:
- Create a simple project such as a website, app, or game.
- Modify and adapt other people’s code to suit your projects.
- Participate in coding challenges on sites like HackerRank, or CoderByte.
# Step 8. Present your work to the world
As you continue learning, it is important to share your work and your knowledge with others. This will help you to get known in programming circles. It will also help you get advice and feedback from others.
There are several ways you can share your work:
- Create a blog or a YouTube channel documenting the skills you are learning and the challenges you are facing.
- Share your code on code repositories like GitHub.
- Participate in answering questions on sites like Stack Overflow, Reddit, and other forums and groups.
If you are interested in creating a programming blog, see my step-by-step guide on how to start a blog
9. Hobby Programming FAQs
As a hobby programmer, there are probably so many questions that you have. Here are a few commonly asked questions.
For a full list of the most interesting commonly asked questions about programming, see my article on Programming FAQs.
#1. Can anyone become a programmer?
Anyone can become a programmer regardless of education level, age, or gender.
We tend to think that programming is just for smart people. While smart people tend to do well in programming, the opposite is also true- programming makes you smart.
#2. Can you teach yourself how to program?
As a hobby programmer, you probably want to cut costs by teaching yourself programming.
This begs the question. Can you teach yourself programming to a high level even without an expensive CS degree?
The answer is Yes. You can teach yourself programming and get into a lucrative tech career.
Did You Know?
According to a recent survey by Stack Overflow, almost 40% of programmers taught themselves how to program, mostly from online resources. Also, roughly 20% of professional software developers did not go to college (See Programming Facts).
So, if you wish to get into programming, don’t get discouraged because you can’t afford an expensive college degree. There are plenty of great resources that will help you become an excellent programmer.
#3. Is programming hard to learn?
Some aspects of programming are easy to learn while others are quite challenging. Many factors will determine whether you will find programming challenging or not such as:
- The programming language you choose.
- The programming path you choose.
- The learning style and resources you choose.
If you are struggling with programming, see my article Is Programming Hard? The article will explain some of the common mistakes that make programming difficult.
Wrapping Up
It is a great time to get into programming. The rewards of learning to code are definitely worth the struggle even if you plan to do it solely as a hobby.
As the future becomes more digital, any kind of programming skills will position you to take advantage of the opportunities that will arise.
Further reading
If you wish to get started with programming, here are some articles to help you out.