Lord Yggdrasill wrote:Well I do know of that, but I dont see a section for general programming discussion so this is the only place I can post a topic like this. Its not my fault.
I would take Weedpacket's option of Echo Lounge if this was a completely general question of programming, but from your list it appears to have a strong PHP slant, so... I guess I'll just leave this thread here in the PHP coding forum :p
Lord Yggdrasill wrote:I've heard of people talking about definitions of noncoders, beginners, intermediate and advanced programmers.
Everyone has various strengths and weaknesses. Ultimately, what is important is the general ability to get the job done correctly in a timely manner such that the result is sufficiently secure, efficient and maintainable. In this sense, the idea of "OOP is being used everywhere, almost no trace of procedural codes" as being inherently desirable is a little foolish. OOP is not magic that solves all problems; other programming paradigms have their place too.
Using a database library like PDO is one thing: surely a beginner can be taught to use PDO? What I would look out for is how the library is used and skills in database design, e.g., normalisation for a relational database.
Even before we talk about "expert at all design patterns", does the programmer even have basic data structures and algorithms down pat? Do you really need to explicitly know "all design patterns" to be able to come up with good design? I think not.
Usage of frameworks is a useful practical skill, but if your team is using framework X, I think it would be in your best interest to know if the programmer knows framework X, and if not, how easily he/she will be able to learn to use it. Not knowing a major framework does not automatically mean that one is not a good programmer, but being unable to learn fast enough could be a sign of a bad programmer.
Oh, and what about security? I say this somewhat as an afterthought, yet security is perhaps one of the most important things to keep in mind on the Web.