Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have two team members who come from backgrounds that differ from what they're currently being asked to do: how can we encourage them to step up, develop their skills, and learn the new ways?

share|improve this question
3  
What do you mean by 'lacks confidence'? Lacks knowledge maybe? What do you use SQL for? How heavy and tricky is your usage? –  Job Jul 18 '11 at 0:55

5 Answers 5

up vote 9 down vote accepted

Practice, practice, practice. The only way to get better is by doing. I find that if I want to learn a new language, the best way is to follow along with programming examples.

share|improve this answer
1  
Start that team member out with some simple SQL requirements at work, overseen by another member, or to support some aspects of a larger database project. As they get into it and start familiarizing themselves with SQL and seeing it used in real world projects, they'll start to see their options open up and start thinking of ways to use it for other tasks and projects. Have the experienced SQL programmers steer her away from common beginner pitfalls for an accelerated experience. –  John K Jul 18 '11 at 3:08
    
Agreed. A mentor can be a great way to learn as the training usually has real world applicability. –  Joshua Dale Jul 18 '11 at 5:11

If you're talking about SQL code in itself, it is a relatively easy language to grasp and be productive with. I'd say she just needs to get a good book, read it and code SQL, and buckle down and start working with it.

As far as the encouragement goes, the desire to work hard to obtain something like this is intrinsic. But maybe you can explain how its not too monstrous of a language to learn. She must have some unjustified fear towards the language which you can alleviate.

Or if she's just plain old not interested in SQL she can 1) just learn it and use it or 2) find another job. That last statement is depending on whether or not this is a requirement for the position.

share|improve this answer

I suppose this depends on what you're doing with the SQL.

Surfer513 said that SQL is relatively easy to grasp and be productive with... but that really only applies to the basic CRUD stuff. Up until recently, I wasn't fully aware of all that SQL had to offer but a colleague of mine showed me some of the SQL he was working with for an advanced course in SQL Server 2008R2 (it was geomapping and some other stuff IIRC) and that can quickly get complicated/difficult.

So, if it's basic CRUD you're talking about then a good book, some practice and pair programming (or code reviews) with confidence building feedback should do the trick.

If you're working with some of the more complicated or esoteric bits, then a course or a certification might be called for. People usually feel confidence after a course, because they can say "I passed the course, I know x". Basically, a tangible badge of learning.

share|improve this answer
2  
SQL: It's easy to learn, yet hard to master. You can do pretty freaky and complicated stuff with it. It's powerful! –  Falcon Jul 18 '11 at 8:40

Make sure you have a test or development database that can be used as a sandbox. Oftentimes a fear of databases (or any component of a production system) is increased by the feeling that the least mistake will have catastrophic effects.

In the particular case of SQL databases you can show the engineer how to create test tables (CREATE TABLE foo AS SELECT * FROM bar) that can be INSERTed into, DELETEd from and DROPped without consequence in the sandbox. Make sure that the sandbox has at least a subset of production data so the effects of things like indexes and full table scans can be experienced directly. Demonstrate the EXPLAIN statement to remove some of the mystery from what can seem like somewhat arbitrary and magical SQL incantations.

You might also point out that both COBOL and SQL date from the relative dark ages of the computer business with COBOL having the slight seniority but both far predating things like the personal computer and spreadsheets. Whether this is a comfort or not probably depends on the individual.

share|improve this answer

Just ask her some questions (maybe during a meeting) that can be answered by running simple SQL statements on a database, like "Sandra, how many customers do we have in New York right now?". Start it simple, it should encourage her to be able to answer that right away, so make sure it's on her level of knowledge. Make questions more difficult over time. (like what was our sales volume since we implemented the automatic payment system).

When you are sure she can do it, you can ask such questions in customer meetings as well. Customers are soooo impressed if you just hack something in a commandline tool and get the results and it may be a highly encouraging experience to her.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.