Apart from theoretical knowledge, you need a lot of practice plus real time experience to be a good programmer.
First familiarize yourself with the concepts of the language - basic and advanced by reading books, tutorials, school etc. Then, take a look at source codes written by good developers. Then start to identify design patterns in code. Focus on aspects like performance and clarity.
A code can be written in several different ways, all leading to the same functionality. But a good programmer writes efficient, flexible and maintainable code. Keep these three things in mind.
Programming is one of those things that is easy to learn and difficult to master. You can fool yourself into thinking you're good at it because there are some simple things that are very simple. But the hard things are very hard.
So take the time to do the book-learning that goes behind the scenes. A degree in computer science is useful as it exposes you to a lot of concepts that you'll never discover by just writing code and reading docs.
Try to find programmers that are better than you to learn from. Learn their good habits and ignore their bad ones.
Then give your self time to just write code. I felt pretty comfortable after about five years writing code every day at work and then coming home and working on my own projects at night. Even better after ten years. Somewhere in that time period I feel like I had a good grip on it and got to where the code I wrote pretty much just worked. If it compiled, it worked. And then it got to where if I typed it and saved the file, it compiled.
Now after 26 years of programming every day in a variety of languages but mainly C/C++ (and their predecessor RATFOR, and its predecessor FORTRAN) I feel like I'm pretty productive. So hang in there.
Answers & Comments
Verified answer
Apart from theoretical knowledge, you need a lot of practice plus real time experience to be a good programmer.
First familiarize yourself with the concepts of the language - basic and advanced by reading books, tutorials, school etc. Then, take a look at source codes written by good developers. Then start to identify design patterns in code. Focus on aspects like performance and clarity.
A code can be written in several different ways, all leading to the same functionality. But a good programmer writes efficient, flexible and maintainable code. Keep these three things in mind.
Programming is one of those things that is easy to learn and difficult to master. You can fool yourself into thinking you're good at it because there are some simple things that are very simple. But the hard things are very hard.
So take the time to do the book-learning that goes behind the scenes. A degree in computer science is useful as it exposes you to a lot of concepts that you'll never discover by just writing code and reading docs.
Try to find programmers that are better than you to learn from. Learn their good habits and ignore their bad ones.
Then give your self time to just write code. I felt pretty comfortable after about five years writing code every day at work and then coming home and working on my own projects at night. Even better after ten years. Somewhere in that time period I feel like I had a good grip on it and got to where the code I wrote pretty much just worked. If it compiled, it worked. And then it got to where if I typed it and saved the file, it compiled.
Now after 26 years of programming every day in a variety of languages but mainly C/C++ (and their predecessor RATFOR, and its predecessor FORTRAN) I feel like I'm pretty productive. So hang in there.