I often take help from online videos to improve my programming skills, but I am not successful. Videos help me in debugging my code, but I am not improving my programming. Is there any other way through which I can improve my programming?

  • $\begingroup$ Look at Test Driven Development, and Code katas See Robert. C. Martin, Kent Beck. And then practice $\endgroup$ Commented Apr 17, 2019 at 7:34
  • 1
    $\begingroup$ Go to Carnegie-Hall. $\endgroup$ Commented Apr 17, 2019 at 9:37
  • $\begingroup$ @MichelBillaud When I was in college, the mainframes were actually in a campus building historically called Machinery Hall. I guess it used to be for teaching Engineering (with actual engines). $\endgroup$
    – Scott Rowe
    Commented Apr 17, 2019 at 11:02
  • $\begingroup$ Ubung macht dem Meister. (sorry no umlaut) $\endgroup$ Commented Apr 19, 2019 at 0:50
  • $\begingroup$ How do you judge the quality of your programming? Why do you think it isn't getting better? Is someone complaining? Are you comparing your code to someone else's? $\endgroup$ Commented Apr 22, 2019 at 2:00

4 Answers 4


The only way to learn a lot of things, maybe most things, is practice and feedback. In a standard course (not online), the professor assigns some work to do - homework, projects, .... The professor then gives you feedback on it - grades, but hopefully more.

To learn on your own, you want to try to simulate this as much as you can. So, to learn something, you not only have to see and hear about it, or even read about it, you have to do it. Moreover, you need some way to get feedback on the success of your efforts.

If the videos don't suggest projects then you will have to find them elsewhere, perhaps in a textbook. Do a lot of small and large projects.

But then the feedback part is just as important. One possible way to simulate that is to work with a friend in your learning. Each of you does the same exercise separately and then exchange your work and each comment on and improve the other's work. This isn't perfect, since the other person isn't an expert, but it is better than nothing.

You might even be able to use an online forum to get comments on your attempts. The Code Review here, might work for you, though I don't know how welcoming they are of novices. Be sure to see their "help center" for guidance.

  • $\begingroup$ CR is very welcoming of novices, so long as you ask a well-formed on-topic question ;) $\endgroup$ Commented Apr 8, 2019 at 14:56
  • 2
    $\begingroup$ The spirit of CR is different than most other sites. On CR it is expected that what is posted is a completely operational example, rather than a broken one that needs repair. The answers are not how to "fix" the code, but how to make it better. They critique the code, under what ever guidelines each person chooses. A better way to do the same thing, or a more standard's compliant variation, or any number of other points have been addressed. The catch is that before posting the code, as written, works. Help with making it work is still best done on Stack Overflow. $\endgroup$ Commented Apr 8, 2019 at 22:41

You can follow below points according to your stage of learning.

  • If you done with basic syntax of any programming language then try to solve logical problems from various platform like hackerrank, codechef and many more.

  • Find out other techniques or methods to solve same problem in different ways.

  • If you done with logical question then try for Object Oriented Programming in that particular language.

  • After that you can go with Data Structures and Algorithms. Try to implement Tree, Hash tables, etc. After learning it's theory and syntax.

If you already a developer then you can try following suggestion.

  • Learn and try some new frameworks in you field.

  • Search and learn how to make you project scalable.

  • Search for adding security in projects and programs.

  • Participate in online hackathon and work with team.

  • Learn how to integrate like you are back end developer and one of your friend either IOT or app or something else then try to integrity with your platform or do project something like that.

  • Try reverse engineer code of someone else from online source and learn new techniques and methods.


One good way to improve is to try new projects. Think of a problem and try to create a solution for it. That forces you to look at new tools and techniques. Another thing I do is revisit old code about once a year. I go back to it to see if I can improve it with new things I've learned or to catch old miatakes. When I can improve the code with things I've learned, it's encouraging because I can see my progress.

Also, there is a lot of info out there. When I first started programming and wanted to improve, my biggest problem was that I didn't know where to start. So, I looked at the Software Development Lifecyle because it cuts the process of developing software into different chunks > Planning, Analysis, Design, Implementation, Test & Integration, and Maintenance.

Then, I focused on learning about skills and tools for each of those chunks. For example, when I wanted to learn about testing, I looked up "testing tools" and "testing methods" for software and tried out new tools and techniques whenever I started a new project.

Even if you're not specifically interested in software development, the skills you'll learn by looking further into each piece of that life cycle will help you. For instance, let's say you write a lot scripts and you look at the maintenance piece of the software development lifecycle. By looking into maintenance techniques, you may find better ways to write code to make it more efficient and easier to maintain. Essentially, looking at pieces of the life cycle helps narrow down the areas you're looking at a bit so you don't get overwhelmed.

Last thing: keep in mind programming skills don't always have to deal with just writing code. Improving programming skills can also include how you package your code, how structure/design it, or becoming familiar with how code is compiled.


It is just like learning how to ride a bike: by programming. And by reading good (and also bad!) programs critically.

Pick some (simple!) problem to solve, have a go at it. Look for some open source package that interests you, pick some "for newbies" task (if they advertise some).

Check out textbooks and tutorials for your favourite language. Look around for more advanced data structures and algorithms (there are tons of lecture notes on those subjects available). A bit of combinatorics/discrete math is a must for a well-rounded programmer.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.