Great code and great coders are made out of practice. Many would agree that programming has become much easier nowadays than what it used to be. But becoming a true coder is about knowing a lot more than how to use a bunch of frameworks and code generators. You have to do things yourself
You know all those frameworks you've learnt about were originally written by someone. Why not write your own? Yes, many programmers would tell you not to do this, but a truly great coder is one who has done it all. Writing your code base means you can make it adapt to suit your needs exactly, which is one heck of a boost for any coder
Like the frameworks, some say that developer tools are also making programmers' lazy. No they are not, but it still doesn't mean you shouldn't try your hand at coding without them. You want to be a better coder? Try to get by your problems without using the developer tools. It's more time consuming and more work, but it makes you a much better coder.
Yes, we just said that and we know it sounds crazy. How can you create a website without testing their environment, right? That's just it. Code the entire website or the JavaScript widget that you're working on and don't look at the browser until you've finished it. This forces you to visualise what you are coding, which is a mighty weapon in any programmer's arsenal.
Often, programmers ignore certain parts of a language because there are just too many button makers, gradient generators etc. available to make their task easy. Don't use them and you will actually be thorough in languages like CSS3. Again, takes more time and effort but totally worth it.
We provide you with a number of free ebooks on programming. And almost all of these books have code samples in them. Try not to copy and paste these codes, instead, write them down by your own hand. When you've typed out a code, compare them to the one in the book and see how you did. It gives you a good perspective of where you stand and where you need to be.
Hip Hip, Hurray! A vanilla text editor is one that doesn't provide help like auto complete and other features. You know what is a good text editor to use? Notepad. Having no help from the editor forced you to remember the code that you are writing. Having such capabilities will help you in the long run.
When you move from one project to the other, you will often find code fragments that are common in the two. Moreover, often a code can be easily found online, so you don't have to write it. Avoid doing this and you'll become a much better programmer.