"But if you know your basics in Python...."
That’s a comment I saw in one of my friends post "Duke vs. Python"
which I completely disagree. I agree that one should have good working knowledge to be a skilled programmer and what I consider the basics (stuff) are the concepts (OO, Function Programming, Design Patterns). The other basic areas that one should be strong in are the algorithms, equipped with tools (ex. Regex Knowledge, Text Processing, Debugging, Testing Techniques, etc…read Pragmatic Programmer by Dave and Andy
, to know what should be in a programmers tool box), and a perfect blend of these what makes one a skilled programmer.
I do agree that if one doesn’t have their basics straight then code cutting isn’t just going to help. For instance if you’re learning Scheme(another language) and you don't know anything at all about Functional Programming then code cutting is not going to take you anywhere, but on the contrary if you are already a master in LISP, code cutting will be an easy way out to learn Scheme since, you know where to look for.
The point that I’m trying to stress is that what makes someone a good is, simply not just knowing the basics of a “language”. Knowing your basics concepts and having the right tools with you and experience (being there and having done that) could take you much further as you will have the capacity to cut good quality code and apply it at the right circumstance which is basically the essence of a skilled programmer !!!!
Below I quote Dave Thomas
from “How to Interview a Programmer
Dave Thomas: Hire for talent. One of the biggest mistakes companies make is to recruit from a shopping list: I need a programmer with six years Java, three years Oracle, and two years EJBs. The world changes, so you need to hire folks who change with it. Look for people who know computing, not necessarily particular narrow niches. Not only will they adapt better in the future, they're also more likely to be innovative in the present.
posted by 88Pro / Wednesday, April 14, 2004