Tell me more ×
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.

My buddy strives his best to learn programming. He went to a college that didn't teach him computer science too well. In fact, most people that came from this college had a rough time because most of the professors just didn't teach well / speak good english.

I decided to help him out and will be tutoring him twice a week for 1-2 hours per day. We will be specifically looking at SQL Server and C#. My title at work is "CRM Animal". I'm mainly a programmer with 10 years experience in the microsoft stack and a great bit of experience in CRM specifically using SAP.

I've never taught C# / SQL Server or computer science in general, but I think I can teach him a lot more then what he learned in school. Can anyone provide a good outline / agenda as to what I should begin with and what to end with.

I figured I'd go over the basics first like variable types, basic programming, top down approach (don't want to get into OOP until later??). And then get into more of an OOP programming sense. But I need to mix this up with SQL Server.

Maybe I should first actually start off with SQL Server and explain the concept of tables, normalization and have him create a database first and then work my way into C#?

Any pointers?

share|improve this question
Is the goal here to learn computer science or to learn how to program? Being a CS major, I can honestly tell you that these things are quite different. While CS teaches one how to solve problems, only in a theoretical sense. Programming is more creative and less rigid. – P.Brian.Mackey Jan 28 '11 at 15:54

6 Answers

up vote 4 down vote accepted

Slightly off-topic, any maybe something you can have him do in his own time....have you seen the MIT open courseware video lectures?

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/

A whole series of lectures for introduction to Computer Science. The lectures are those taught to MIT students and were filmed live during lectures. I've found them really helpful.

share|improve this answer
+1 Like the videos. – JonH Jan 21 '11 at 14:05

I think it's cool that your helping your friend learn C#/SQL. Personally, I'd skim some books at barnes and noble and find something good for C#, simiarly for SQL. Teach him two seperate courses which basically follow the books from start to finish (use your judgement for skipping or shifting lessons). Then, make them do the examples...write tons of code. Thats how you get good.

On a side note, computer science is extremly broad and theory based. If he's already done a CS program, the logical and math skills should already be developed. That's about all a CS degree is good for as a real world .NET developer. Avoid any topics in the CS world that have "academic smell". Following some published, beginner, C# material is a great way to stay on topic for work ready skills.

share|improve this answer
+1 I think looking through some books will definitely give me a general idea. – JonH Jan 21 '11 at 14:25

I think the main thing is to NOT teach C# and other bloated syntax languages. Someone just learning to think as a computer scientist would find himself spending too much time wrestling with the compiler instead of having fun and learning what is important. I would start with a minimalistic syntax language like ruby or scheme (because it has AMAZING textbooks from MIT. "How to Design Programs" being one of them for beginners.) Other choices may be Python. For ruby you can try "poignant guide."

In terms of the actual learning process. The main thing is to give interesting programming problems to solve to practice and sharpen that way of thinking.

share|improve this answer
@Eugene, I totally understand that, however, he is also in desperate need of a job. And in michigan it's hard enough to find a job. Most interviewers are asking C# and SQL Server questions. He's asked me to specifically look at these two tools. – JonH Jan 21 '11 at 14:06
I think it is far more important to find good textbooks and make language choice based on that, then to choose a language for the job. Once a person can think as a computer scientist, learning a new language is a manner of few weeks. – zhenka Jan 21 '11 at 14:08
Also I think syntax is the easy part. I mean you just can't become a programmer by memorizing syntax. So I think it is counterproductive to not focus on thinking logically at first as opposed to memorizing syntax for the job. – zhenka Jan 21 '11 at 14:12
@Eugene: Yes, but getting to that point can take a while. It seems that @JonH's friend is looking to build up enough to pass an interview and learn the rest on the job. – Jeremy Heiler Jan 21 '11 at 14:38
1  
In that case I'd say pick a mid-sized project that he would be interested in. Say making tetris or hangman, while discouraging looking up other peoples solutions. Help him through doing it all the way. I think 500+ lines of code projects is the best way to learn. – zhenka Jan 21 '11 at 14:42
show 2 more comments

http://www.asp.net/ contains a lot of video tutorials on how to create web applications. It involves C#/ASP.NET/Ajax/SQLServer. So your friend will have more than enough information on how to get started with it. Of course you can help him out with the questions he will have. But, it's better to start seeing things in action rather than listen yet another theory-like tutorials.
One thing also, don't explain everything. Let him thing. When he'll come up with specific questions - you can help him. Let him think, and crack his brain. It's gonna be hard, but eventually he'll learn much more.

share|improve this answer

You could do no harm by looking at 'Learn Python The Hard Way'. http://learnpythonthehardway.org/index

If Python doesn't suit, at the very least the above book will give you an idea about to tackle teaching C# and SQL in a very structured and thorough manner.

share|improve this answer

Charles Petzold has a great introductory C# book. It's targeted at a developer who knows another C based syntax. For SQL I'd go with O'Reilly all the way Learning SQL

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.