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've started to learn programming in Python. It seems like every other code I write, the site breaks, and it'll take me hours to figure out the problem. It's not very encouraging at all.

I've been thinking of hiring a tutor to get over the learning curve. Has anyone gone this route? What were your experience?

share|improve this question
    
Do you notice that you often make the same mistake multiple times or do you have the feeling that you get something out of those hours it takes you to figure out the problem? –  ftr Jan 5 '12 at 8:55
    
I do noticed I make some of the same mistakes because I'm a little impatient. I also seems to learn new things with those hours trying to figure out the problem. I suppose they will help me in the future but at the moment it gave me such a headache, I just want to develop the apps that are useful to me now. –  Sam Mitchell Jan 5 '12 at 9:09
    
Well, making the same mistakes multiple times can be an indicator that you have trouble with understanding certain principles. A tutor certainly could help there, but a good book on the subject might be just as helpful. –  ftr Jan 5 '12 at 10:06
    
Making mistakes is the best way to learn! –  MattDavey Jan 6 '12 at 9:46
    
Have you looked for a local user group? –  JeffO Jan 6 '12 at 21:35
add comment

5 Answers

up vote 3 down vote accepted

When my team switched from Delphi as our main development language to C#, we did have a consultant/tutor come in to assist us in the transition. It wasn't cheap, but definitely worth it, I think.

That is, after we had found the right person, because it was a bit of a lengthy process to identify a good consultant. I think what helped was that one person on the team had been teaching himself some C# before (reading books and looking around online). So when interviewing people we were able to better judge whether they were up to the task and were knowledgable in the areas we would be needing help in, e.g. database development, UI frameworks etc. Even if you are just one person being tutored, I think you need to prepare by researching the language and the frameworks a bit to make an informed decision.

Once we had found the right person, we would group people by the kinds of things they already knew and the kinds of things they still needed to learn given their job descriptions. This isn't relevant when its just one person, but with multiple people I think it is very important to form homogenous groups, so everybody is advancing at roughly the same speed and nobody gets left behind or is bored while waiting for others.

It also helped that these learning sessions were scheduled events. The only reason to not attend were accute production problems, but otherwise there was no excuse to skip. I find it much harder to be this disciplined when studying on my own.

Having the tutor assign homework that was to be completed for the next session either alone or in pairs also worked really well to help people apply what they had learned in a tutoring session.

In the end, as people were doing their first projects in the new language, we no longer had scheduled sessions, but instead the consultant was just around the office, so when one was stuck, they could get some help from him.

We originally intended to have the consultant write some shared libraries that would be needed in the new language to complement the framework, but in retrospect, I wouldn't recommend that. He may help with such a task, but in the end, the people on the team have to own the code´, so knowledge is lost when he eventually leaves.

share|improve this answer
    
Thanks for sharing your experience! –  Sam Mitchell Jan 9 '12 at 4:43
add comment

I have no experience with a tutor, but what we do with new developers is a similar concept. In my experience training new developers (green to the industry as well as our codebase), the hands-on approach works much better than allowing them to bumble around and figure it out. There are, I think, two facets of this:

  1. Learning the language (syntax, basic concepts)

I've found this is more difficult to teach. You can repeat concepts, syntax, etc. until you are blue in the face, but retention and understanding come from use.

  1. Learning the framework (django, JBOSS, rails, etc.)

This facet, I feel, benefits much more from the hands-on approach. This is more like providing directions to someone who already knows how to drive (whereas #1 is more like teaching someone to drive).

Ultimately, why not try a single lesson? Negotiate a trial and only continue if you feel it's worth the investment. Above all, try not to be discouraged. Programming is about learning all the time, and learning requires some amount of failure along the way. Good luck!

share|improve this answer
add comment

well not really hired a tutor in my case google and the Stackoverflow were of great help. I will not make a pros and cons list but instead will try to provide some guidelines. Here is how you can start...

first of all select a programming language of choice the prefered ones are C# and Java (baised point of view)

then get a couple of books Dietel & Dielte is a good start both in java and C#, Thinking in java is also a great read By Bruce Eckle

DON'T overwhelm your self with a lot of books just grab a good one and get started

cover the basics of the language that includes the data structure loops etc

along the way keep in touch with the community Stackoverflow is the only example i can give

thats pretty much all and oh 1 more thing if you can get an internship st some local organization that deals the programming stuff that would be HUGE PLUS

good luck in over coming the coding horror...

share|improve this answer
add comment

Like the basic sciences where you learn, learn, learn, do, do, do learning programming is like learn, do, learn, do, learn, do.

So ask yourself problems, get some from forums, blogs and try to solve those, explore new ways to do those, improve and do them again.

Practice as much as you can in more practical problems and applications rather than book examples. You would gain immensely.

Self study is extremely under-rated. :D That's my view. Others may think and experience different.

share|improve this answer
add comment

try hiring some "virtual" classes with a freelancer, like in India?, they are very cheap and have good knowledge, you can set with the guy some rdp[or use log me in],

it saves time when some one gives you the trips and tricks, in any stage. Just make sure to follow a plan and document what you pick up

share|improve this answer
add comment

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.