PDF download Download Article PDF download Download Article

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

PDF download Download Article
  1. 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. 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. 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.

  4. 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.
    • 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

PDF download Download Article
  1. 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. [5]
    • 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. 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. [6]
    • 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.
    EXPERT TIP

    Kevin Burnett

    Software Developer
    Kevin Burnett is a Software Developer with over 20 years of professional experience. He spent the majority of his career at Rosetta Stone, a language-learning software company. He has experience with both front and back-end development and works primarily in Ruby, Python, and JavaScript.
    Kevin Burnett
    Software Developer

    Effective debugging requires the proper tools. When debugging, take advantage of dedicated libraries like byebug for Ruby. They let you step through code execution bit by bit to pinpoint exactly where things are going wrong. This modular approach makes debugging much easier.

  3. 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. [7]
    • 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. 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. [8]
    • 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. [9]
  5. Advertisement

Expert Q&A

Search
Add New Question
  • Question
    Where can I practice coding for beginners?
    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.
    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
    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.
    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
    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.
    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.
See more answers
Ask a Question
      Advertisement

      Tips

      Submit a Tip
      All tip submissions are carefully reviewed before being published
      Thanks for submitting a tip for review!

      About This Article

      Thanks to all authors for creating a page that has been read 24,207 times.

      Is this article up to date?

      Advertisement