A while ago, I was a mentor for CodeLouisville. It was fun, but it was also Front-End design – something I needed to learn on the fly to keep up with the coursework that I was mentoring. I met a lot of folks who were excited about learning.
There was some criticism of the program, though. One such criticism was, Why aren’t you teaching .Net? Louisville has a lot of .Net work available. The answer, for CodeLouisville, was a lack of teaching resources. They are reliant on “free” resources (as in, LFPL paid TreeHouse and thus it was now free for Louisville residents and workers), and at that point in time TreeHouse did not have any .Net curriculum. (They have since hired somebody and they are working on it).
This annoyed me, and so I (along with some other folks) tried to design a .Net curriculum. I think the design was good, but the problem we kept hitting was the lack of consistent free curriculum. And under the umbrella of CodeLouisville, I couldn’t venture into paid curricula like Pluralsight, for example.
The other thing holding me back was, adjusting to the speed of a class of people. Some folks go fast, some folks go slow. How to enable success?
And finally, there is the conversion of time to money. I used to not have any free time, but thanks to kids getting older, I’m finding myself able to reclaim an evening or two a week. I have my own projects I’m super-interested in, however, I’m also interested in having spending cash to buy coffee and gadgets with.
So here’s the pitch:
- Hire myself out as a private .Net / C# Tutor.
- I get to help a person 1-on-1 in the direction / goal of their choice.
- I get spending money. Cash, Starbucks Gift Cards, or Amazon Gift Cards all work for me.
How much $ do I charge?
- For folks with hardship, I don’t know yet.
- Definitely won’t be enough to replace my day job .
- Maybe the first time around, its on a pay-as-you-can basis as I get the kinks ironed out of the process?
- I want to help people get better, so I’d discount myself for folks in hard spots.
- In cases of non-hardship, I would not discount myself. For example:
- Employers hiring me to train-up their employee
- Parents hiring me to tutor their high-school kid.
- I’m thinking $50/hour for these instances, that feels right.
- I reserve the right to change my mind before or after a session;
- I will not change my rate during a 2-month session.
What’s the curriculum and method of study?
- Depends on where the student is at, and where they want to get to.
- I would steer the student towards Pluralsight. Its got the best content that I know of, as a learning tool. I would, in fact, discount the cost of pluralsight from my tutoring fee. But if that’s not how they learn, we can find other ways for them to collect information.
- There is a TON of content out there, but the quality varies.
- I would guide the student into picking a personal project that is interesting to them, that is not too hard, yet not completely ridiculously easy.
- The personal project must involve at least two related sets of data. We need some parent/child complexity to be real-world complex.
- We would meet once a week for 1-2 hours, and pair-program (or side-by-side program) our way towards completing that project.
.Net is Huge, what specifically would I cover?
- I’m an old fogey, so I’d start the student off with a console application.
- Get them to put data in a database. Start of with SQL Express.
- Then either go with a Windows/WPF version, or a WebForms/MVC version, of their app.
- I am intentionally wanting to take the student the “hard way” through doing some of the stuff (the way it used to be done) before we switch to the easier way which hides the complexity. For example, SqlConnection before EntityFramework.
- If desired, we can visit “advanced” topics like:
- Unit testing, IoT/Dependency Injection
- Integration Testing, Automation best practices
- Scale testing (I’d need to refresh myself on this)
- Waterfall vs Agile vs Scrum vs …
- Art of Software Estimation
- I suspect these are more appropriate if I’m hired by an employer to up-train an employee.
What I cannot do:
- I am not a UI / CSS / Make it Look Pretty person. I would not dare teach best practices around that.
- I am, however, good at detecting UX problems (usability).
- I am not a mobile-dev person at this time.
- I cannot teach an uninterested person. You have to want to learn, be curious.
- I cannot guarantee employment if you are un-employed.
- However, if you show me the job description your are interested in, or if you are an employer, tell me what you want your candidate to be like, I can teach towards achieving those skills.
Am I a good instructor?
- Rider Rodriguez, who ran CodeLouisville, thinks I am.
- Most of my students during my single stint at CodeLouisville as a mentor think I am.
- I have a very good intuition / radar: I can detect where people are at in their understanding of something and then guide them to getting new things understood.
- I’ll hazard a Yes.
- If I’m not, I’m open to feedback, and I can learn from feedback.
Does this take away from CodeLouisville?
- First, CodeLouisville does not currently cover .Net programming. So, no, I don’t think so. If a person really wants to learn .Net, and thus spends their time with me instead of them, then who is being served?
- Also, I’m doing this one-on-one. If I were teaching a class, then that might be different, but I’m really trying to focus on making one person shine at a time.
- If CodeLouisville does pick up .Net, I definitely would not want to detract from them getting students and/or compete with them. I will visit that thought in the future when it becomes reality.
What do you think? Is this feasible? Do You know somebody who would want to hire me in this manner? Find me on twitter at @sunjeevgulati if you are interested.
Currently available for May/June/July 2015.