Imagine my surprise when I opened up this month's CFDJ and see myself mentioned in the editorial by Simon. In this editorial, Simon takes issue with my statement that you do not have to be a guru to contribute code to the community. He goes to talk about some ways in which new ColdFusion developers can grow their skills and travel down the road to GURU-dom.
I'd like to respond to that editorial with some thoughts about newbies and code. First off - I do think newbies can offer a lot to the community. The more experienced of us need to remember the concerns and problems that new users run into. Just participating in listservs and conferences is a great way for experienced people to not only help the newbies, but keep sharp as well.
Let me quote from Simon:
Code that is written for the purpose of being reused by the community and that is made publicly available should be well written. The idea of novice developers opening files that are freely available in order to read the code and learn from it, mistakenly using this poorly written code as an example to learn from, makes me nervous.
I think this warning makes sense, but applies to any open source code. I wouldn't trust open source code written by God. Seriously. When I download open source code, the first thing I do is open it up, take a look, and ensure that I don't see anything dangerous. I would hope folks do the same with my code. Don't trust me. Open up my code, take a look, and feel free to point out mistakes.
I think novices can learn a lot by looking at code, but all users should do the due diligence to be informed about the source of the code and review the source to ensure nothing scary is going on.
I also wouldn't be so quick to automatically discount code from beginners. As an example, one of my co-managers at my local user group is very much a beginner CFML. He does the "typical" mistakes like overuse of pound signs and other rookie errors. However, every time he shows off his code, I typically see him do something that is darn interesting. That's one of the reasons I enjoyed the beginner contest so much. I think a lot can be learned by newbie code, even if it is simply to point out the errors they make.
I can say I agree with most of the rest of the editorial, especially the practice suggestion. We always hear that you shouldn't reinvent the wheel. That is definitely true. But if you aren't working on client code and just trying to learn, I think it's one of the best ways to get practice. If you are a beginner, why not write your own blog? Yes you can download one. (I hear there is a somewhat decent open source blog out there.) But by purposely reinventing the wheel for yourself, you can gain some valuable experience. Also - reinventing the wheel like this is a bit easier since you have a specific set of tasks to accomplish. (Allow for writing blog entries. Allow for writing blog comments. Etc.) By not needing to make up arbitrary tasks, you can focus on learning the language enough to meet those tasks.
Anyway, that's my opinion. As always, I love to see debates rage on the blog, so if folks disagree, feel free to let me know!
p.s. Went to a doc in the box. Got lots of drugs. My eye is only half red now and my throat is about half way there as well.