PDA

View Full Version : What makes this man? A question about experienced programmers.


cupcakedream
12-29-2009, 03:50 PM
Hello All!
Thanks for reading, I've been working through a freelance website (scriptlance) to get some extra help with some ajax/php/html coding. I've received a ton of bids for my project already, and It occurred to me that the choice is a difficult one, if alone for the sheer quantity of replies.

If you're a coder, what do you look for in a super good programmer? Are there certain coding techniques that more experienced coder's use? Can you spot a hack from a mile away, how?

Thanks All!

VIPStephan
12-29-2009, 05:51 PM
I’m glad that you ask before possibly (but not imperatively) making a mistake. I won’t pretend that my opinion is the one and only as I can mainly speak from a front-end (HTML/CSS/JS) perspective but I do think I can at least give some hints on this.

Some more general things first:

Rule number one: Never trust anybody that claims to make good work for cheap. In at least 90% of all cases this isn’t going to work out. Just recently I had to fix a website that was terribly coded because the client took someone that was probably cheaper but in the end they paid twice because I had to rewrite everything. So if you think someone is too cheap for what you are requesting then you should already be suspicious about the quality of that person’s work.

There are probably people that are good in all things but my experience was often that the more someone has specialized in something the better s/he is in that job. Specifically I have noticed that people that are good in PHP aren’t necessarily good in HTML, too, and vice versa. PHP and JavaScript are programming languages while HTML is a markup language to give the eventual output a meaning and structure and serve as hook for stylesheet languages like CSS to take care of the presentational aspects, so different knowledge is required in each aspect and not all people know everything equally well.

Now, to become a little more specific: You can tell if someone has done a good job if the results (the application) is progammed in a modular manner so one can extend it easily. This includes separation of content and presentation (http://en.wikipedia.org/wiki/Separation_of_presentation_and_content), i. e. separation of HTML, CSS, JavaScript, and PHP so the change of one component doesn’t compromise anything else (e. g. removal of some “module” doesn’t throw up an error). A savvy PHP programmer might use the model-view-controller (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) technique which has the same intention of separating function (PHP) from presentation (HTML). But as I’m not a PHP guru I won’t tell you in detail what’s right and wrong there.

At first, run the output HTML code through an HTML validator (http://validator.w3.org/). If the person has used a strict doctype and the code is validating then that’s a plus for them in terms of HTML validity. If they are using a transitional doctype, or no doctype at all then you should be a little suspicious and ask them why. There’s actually no rational reason why one should do this so if they tell you any reason they probably make that up to sound smart but aren’t.

I’d go as far as saying that JavaScript shouldn’t have anything to do in an HTML document, it should only be included as script reference in the head of the document (same goes for CSS). If you switch JavaScript off and the page stops working then the person has done a bad job because it’s not modular enough and the principle of separation as mentioned above isn’t being followed appropriately. Likewise, if you switch off the styles and the unstyled page doesn’t make any sense (i. e. you can’t gather the information you want) then the content/HTML hasn’t been structured semantically (and half of an SEO job can be done already by properly and semantically structuring the content through HTML, by the way).

Sometimes workarounds for Internet Explorer are needed but if you don’t have an über-advanced layout and yet see a huge extra stylesheet to fix CSS discrepancies for IE then that person has most likely done something wrong in the first place.

Hmm… that’s everything I can think of at the moment. I hope that helps a little.