I've been programming for just over a year now and I don't feel like I've learned nearly as much as I should have. Not only that, I feel like I'm not making any progress either. I feel like I'm stuck in an infinite loop of n00bness.<p>I haven't work on anything that I would really consider a “project” yet, which I'm sure isn't a good thing at all. I just don't have any ideas for projects.<p>What can I do to become a better programmer? I'm sure that I want to develop software for a living, but I feel like I'm not on the right part at the moment.
You are going to hear this anytime this question is asked.<p>A: "Build Something!"<p>Reading books and following tutorials are all well and good, but you are not going to fully understand what it takes to be a professional developers until you start creating full applications.<p>Don't worry about the design, or perfect architecture, just come up with a small idea and build it.
First redefine "better". Better is not measured based against a report card. Strong programmers are better able at taking problems and representing them in an efficient manner in a programming language suited for the job.<p>Are you interested in an ambiguous project or one where the rules are pretty well-defined? Both are useful: the latter cultivates the ability to connive solutions to clear problems (building the mechanics), and the former cultivates the higher-level ability to dissect and attack a problem.<p>As an example of the former, just fish around for ideas from this and other sites, or just try doing something based on your own idea.<p>As an example of the latter, try to build something where the protocol is well-defined. For example, build a simple web server or quantitative trading platform or web-based git client. In all cases, the protocols are fairly straightforward, and you merely have to implement them.
If you are a student, I would join the Google Summer of Code. You can actually get paid while learning something. You could also look for Open Source projects that need a maintainer. Or grab one of the lists of startup ideas and try to implement one. Yet another solution would be to try to implement a web server or a framework just for fun.<p>You are right in that you need to work on projects to become a better programmer: that is the fastest way to learn. There are a ton of problems out there that need solving. You just need to find ones that interest you.
Would suggest to go through these - really helpful<p>1) <a href="http://programmers.stackexchange.com/q/43528" rel="nofollow">http://programmers.stackexchange.com/q/43528</a>
2) <a href="http://edweissman.com/53640595" rel="nofollow">http://edweissman.com/53640595</a>