views:

453

answers:

7

I want to help the Dev team identify areas of knowledge (practical and theoretical) that they can work on. Though I am big believer in focusing on people's strengths being a good programmer requires (I think) being challenged by concepts and ideas that don't always come naturally. We work largely in the web app space using PHP & MySQL but better skills in data modelling, query optimisation, use of MVC and OOP etc. would help the team and the company a lot.

I want to help the Dev team manage their careers, explore and expand their skills sets. Be all they can be and better than they were previously. I know its an idealistic goal but work must be about more than simply getting the work done. There should be some time to review, to learn, to grow and get better. Any thoughts, ideas, opinions and directions to tests or similar resources would be greatly appreciated.

+1  A: 

I would introduce a series of standard logic tests. Things like word problems and such, which are also a great we to start thinking in ways you may not have before

kilrizzy
Highly recommend any books by Smullyan! "What is the name of this book?" "Lady or the Tiger?" "To Mock a Mockingbird"
St. John Johnson
Will check em out thanks!!
kilrizzy
+3  A: 

If you're asking about basic programming / mathematical ability, you can try Project Euler.

SLaks
A: 
jwandborg
I should hope all the programmers can pass that test!
Cameron
@Cameron, one would hope, but one would be wrong
David
-1, if they already have a job and are performing well (which seems to be the case, the OP just wants to find out where they are weak), they should all be able to do fizzbuzz, plus if they fail it doesn't give you any useful information, just that they suck at programming completely. It's not broken down into, you need to learn more about SQL or about inheritance, like a good test should.
Malfist
@Mailfist, you are right. In my opinion my message is to be classified as spam.In my timezone, it was late night at the time of the post and i was bursting with self confidence after finding the test and passing it immediatly.
jwandborg
+5  A: 

If this is specifically for PHP, you can let them do a Preparation Exam from the Zend Certified Engineer test suite. They are not free though (10€ for 1). The test has a couple dozens questions around various PHP related topics and will give you an assessment in the end, telling in which areas you scored how. This could be a starting point for identifying areas of knowledge and areas of improvement.

Another thing to to improve code skills and quality is to improve the entire code culture in your dev team. For instance, by letting juniors do pair programming with seniors, so the seniors can mentor them (though the XP folks say PP is not mentoring). Or do frequent code reviews or have developers present certain design patterns to the other devs. Make everyone know the code. I found that talking about code and explaining why I used a particular code snippet helps immensly getting new perspectives on old views. Apart from that, consider introducing Code Quality tools, like UnitTests and Continuous Integration so the code base gets more transparent for everyone.

Gordon
and the downvote is for what?
Gordon
dunno, i'll upvote you tho, don't see anything wrong with your answer
David
A: 

If you work primarily with PHP and MySQL, I would get them interested in getting certified.

For PHP: http://www.zend.com/services/certification/

For MySQL: http://www.mysql.com/certification/

Also there are numerous great books out there for programming in general:

http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

bkildow
A: 

Brainbench has tests to cover almost anything, but they do cost money. There are self-assessment tests, certifications, etc. My company has used some of them as part of the interview process and they worked quite well.

David
+1  A: 

Strengths Finder 2.0 may be useful if you want them to learn where their strengths are and how to use them for one suggestion.

Learning-Styles-Online may be useful if you want them to identify how they learn so that they can become better learners.

JB King