Programming is kind of like playing an instrument; you have to practice constantly to keep your skills sharp and improve your techniques. If you want to practice programming on your own time, use the Internet to find coding exercises and challenges to practice as well as improve your knowledge by working on open source projects or taking online courses. To hone your programming skills in a real-world setting, work on programming projects.

Method 1
Method 1 of 2:

Using Online Resources

  1. 1
    Learn from open-source software projects. Start by searching online for various open-source projects and just reading their code to learn how different frameworks work. Start contributing to open-source projects or create your own once you have learned how other open-source projects are built.[1]
    • Open source projects are projects where the code is completely open to the public to view. They are typically community-based and accept help from other programmers.
    • For example, if you want to learn how the Rails framework works, look for Rails open source projects on GitHub and study the code to see how different programmers implement different features.
  2. 2
    Take online courses to improve your knowledge and learn new techniques. Search for cheap or free online programming courses on sites like Udemy or Coursera or look for Massive Open Online Courses (MOOCs). Sign up and take the courses to brush up on your programming skills.[2] [3]
    • Courses like these are a great way to practice techniques that you want to work on at your own pace. You can also get helpful tips and feedback from teachers and other students.
    • You can find MOOCs here: https://www.mooc.org/.
    Advertisement
  3. 3
    Solve coding challenges and puzzles on different sites to practice. Search for coding challenge websites and find some that appeal to you. Attempt a variety of challenges to practice editing code to solve problems and improve your programming techniques.[4]
    • Some examples of top code challenge websites are HackerRank, TopCoder, Coderbyte, Project Euler, CodeChef, Codewars, and CodinGame.

    Tip: You can also find programming challenges on the DailyProgrammer Subreddit on Reddit here: http://www.reddit.com/r/dailyprogrammer. There are 3 programming challenges posted weekly, and the community then reviews solutions and provides feedback.[5]

  4. 4
    Do code kata exercises to learn by repetition. Visit the CodeKata website and create code based around the requirements for different kata exercises. Do each exercise repeatedly, improving the code each time, to improve your programming techniques.[6]
    • The term code kata comes from the Japanese concept of a kata in martial arts, which is an exercise you repeat over and over again, continuously improving as you go. Code katas apply this concept to programming by providing small exercises designed to take 30-60 minutes that are meant to be repeated.
    • Some code katas don’t even require any coding, but they will help you practice skills that are fundamental to programming, such as experimental modeling.
    • You can also find some katas on coding challenge websites, such as Codewars, which you can visit here: https://www.codewars.com/.
  5. Advertisement
Method 2
Method 2 of 2:

Working on Programming Projects

  1. 1
    Plan a software project of your own. Determine a business problem that needs solving and come up with a solution. Break the solution into smaller programming tasks that you can complete in a specific order to implement the solution and solve the problem.[7]
    • Practice good self-management by staying focused on each programming task as you work through it and keeping track of how long it is taking you. If a particular task is taking too long, ask other programmers for help.
  2. 2
    Practice your debugging skills on any programming project you work on. Identify the causes of programming bugs and try implementing different solutions to fix them or work around them. Ask questions about why a bug is occurring and try different coding techniques to debug them.[8]
    • When you successfully debug something, pay attention to the questions and techniques you used to do it. Keep asking these questions and applying these techniques to future bugs.
  3. 3
    Engage in pair programming to learn from others. Work together with another programmer on a single computer to solve a particular programming problem or work on a programming project together. Make sure to choose a good partner who you will learn from, such as an experienced senior developer.[9]
    • If you work as a programmer, you could try to choose a partner who is equal to you in seniority, but more experienced than you in a different programming language. For example, if you are most confident in your Python programming abilities, you could choose someone who is skilled in Ruby.
  4. 4
    Keep track of mistakes you make and learn from them. Do your best to notice coding mistakes you make when working on programming projects. Determine why the mistake occurred and what you need to do differently in the future to avoid making the same mistakes.[10]
    • If you made a mistake, but aren’t sure exactly what you did wrong, you can ask other programmers to help you figure it out, read a book on the subject, or search online for information related to the issue. This way, you’ll learn new skills and models you can apply to your work to avoid making the same mistakes.[11]
  5. Advertisement

Expert Q&A

  • Question
    Where can I practice coding for beginners?
    Stephen Cognetta, MBA
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Stephen Cognetta is the co-founder and CEO of Exponent, a learning platform that helps people prepare for and ace their tech interviews. Stephen specializes in coaching for product management, software engineering, product marketing, management, technical project management, and data science interviews. Stephen holds a BS in Computer Engineering from Princeton University, where he graduated Summa Cum Laude, and an MBA from Stanford University. Prior to founding Exponent, Stephen worked as a Product Manager for Google and co-founded HackMentalHealth.
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Expert Answer
    There are many different styles of coding challenge websites. Some only offer individual challenges, while others offer competitive or team-based challenges. Some provide online code editors that you can edit the code indirectly, whereas some require you to write solutions on your own computer and then provide it to the website.
  • Question
    How can I practice programming every day?
    Stephen Cognetta, MBA
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Stephen Cognetta is the co-founder and CEO of Exponent, a learning platform that helps people prepare for and ace their tech interviews. Stephen specializes in coaching for product management, software engineering, product marketing, management, technical project management, and data science interviews. Stephen holds a BS in Computer Engineering from Princeton University, where he graduated Summa Cum Laude, and an MBA from Stanford University. Prior to founding Exponent, Stephen worked as a Product Manager for Google and co-founded HackMentalHealth.
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Expert Answer
    Set time aside for practice every day. There are tons of free resources out there, like LeetCode and Exponent, that make it easy to practice. You shouldn't struggle to find practice tools out there.
  • Question
    I'm great at coding, but I can't find a job, What can I do to take it to the next level?
    Stephen Cognetta, MBA
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Stephen Cognetta is the co-founder and CEO of Exponent, a learning platform that helps people prepare for and ace their tech interviews. Stephen specializes in coaching for product management, software engineering, product marketing, management, technical project management, and data science interviews. Stephen holds a BS in Computer Engineering from Princeton University, where he graduated Summa Cum Laude, and an MBA from Stanford University. Prior to founding Exponent, Stephen worked as a Product Manager for Google and co-founded HackMentalHealth.
    Stephen Cognetta, MBA
    Tech Interviewing Coach
    Expert Answer
    There's more to coding gigs than the actual coding. It's a very collaborative field of work, and you need to be communicative, honest, and able to multitask. If you've already got the coding part down, focus on your soft skills! Practice your public speaking, engage in some community-based projects, and try to improve your skills as an overall candidate.
Advertisement
  1. https://codewithoutrules.com/2017/06/01/practice-on-the-job/
  2. Stephen Cognetta, MBA. Computer Engineer. Expert Interview. 21 July 2020.

About This Article

Stephen Cognetta, MBA
Co-authored by:
Tech Interviewing Coach
This article was co-authored by Stephen Cognetta, MBA. Stephen Cognetta is the co-founder and CEO of Exponent, a learning platform that helps people prepare for and ace their tech interviews. Stephen specializes in coaching for product management, software engineering, product marketing, management, technical project management, and data science interviews. Stephen holds a BS in Computer Engineering from Princeton University, where he graduated Summa Cum Laude, and an MBA from Stanford University. Prior to founding Exponent, Stephen worked as a Product Manager for Google and co-founded HackMentalHealth. This article has been viewed 11,795 times.
How helpful is this?
Co-authors: 3
Updated: July 2, 2021
Views: 11,795
Categories: Programming
Advertisement