Back in the days, I used to be the crazy money minded programmer writing kLOCs of crap with no code quality concern, for projects I often found on freelancing sites. Freelancer.com, oDesk and likes which seem to be quite popular among employers looking for cheap third world country coders but honestly, if you think about being a better programmer, never log in to them. Why?
-
Cheesy employers: such people have pretty bad idea about what programming is. They want to get best work done and pay like pennies and the sad part is people are always ready to have the lowest bid on it, albeit, it is funny sometimes. I remember a web scraping project I had in which the employer was constantly pestering to add more and more features which was annoying to do at the price I was paid.
-
No concern about code quality: I believe that if you are into something where code quality is given lowest priority, you should not do it. For most of the projects, I am quite sure the posters would have no idea what code quality is about.
-
No scope for challenges: My experience suggests that nine out of ten projects out there offer no challenge at all. Maybe it is just a simple bug fix, a simple crud app, a task automation. Many times it is, “I want a website similar to x website but I would be adding y feature and it will become the next Facebook”. Granted there may be exception but with noise so high, you would have hard time finding the signal.
-
No incentive in doing things better: Most of the time, here employers won’t get excited about you having set up a automatic build script or integrated version control or started unit testing code. Most likely, they would start bricking about building features first. There is no reason for you to be better.
There is no point in making software unless you want to make it better.
— The Pragmatic Programmer
Freelancing on these sites will just make you a terrible programmer with no exposure to good software development practices. Programming is a craft, which needs improvement for lifetime to excel it.
My advice will be to start your personal website/blog, start contributing to open source project and have some pet projects of your own. Join and contribute to sites like StackOverflow, Hacker news, Slashdot. Doing this will not only make you a better programmer but also you will get many exciting offers coming to your inbox. Good luck!