Search

Dave P.

San Francisco, CA

$90/hour

Stanford Alum computer science tutor: Java, C++, APCS and more

20+ Hours
5.0 average from 9 ratings
Great coach with detailed feedbacks for each session
— Liping, San Mateo, CA on 6/2/17

$90/Hour


Send a message explaining your needs and Dave will reply soon.

Response time: 2 hours

Contact Dave

Stanford University
Symbolic Systems

Education

Stanford University (Symbolic Systems)

About Dave

Coding is hard, and coding alone as a beginner can be massively frustrating and discouraging. Some students can't write code that compiles, even after hours of debugging. Some students feel lost in concepts the professor introduces but doesn't adequately explain. It is these students, who feel bamboozled and need help getting started, who I am most suited to help. I also once struggled with coding and I'm well-versed in undoing beginners' mistakes. I promise that with persistence and some help from me you can break out of confusion and deadlock and start writing code that works.

I studied computer science at Stanford and worked as a developer at a startup in Sunnyvale, California. Gradually I phased out industry development and moved to teaching as I discovered a talent for clarifying confusing concepts. I have over two years of experience as a private tutor. Clients describe me as kind, knowledgeable, and lighthearted and several have returned for services over more than one academic term. I believe in maintaining positive energy and a sense of humor during lessons because coding is hard enough as it is. Please be aware I am not a disciplinarian. I help those who are struggling but not those who lack their own motivation to improve.

I specialize in teaching introductory college courses, high school programming classes, and bootcamp pre-work. I've taught most in Java, C++, and Python. I've also taught in C, JavaScript, Scratch, and Scheme.

In my early lessons I emphasize problem-solving, debugging, and good coding habits. As students learn to code for themselves they tend to need my help less, and while this is not the best business model for me I've found it to be the best for clients' school performance and long-term success.

I invite you to send an inquiry and we can schedule our first lesson. I respond day-of whenever possible. Thank you, and I look forward to meeting you soon!

-David
Coding is hard, and coding alone as a beginner can be massively frustrating and discouraging. Some students can't write code that compiles, even after hours of debugging. Some students feel lost in concepts the professor introduces but doesn't adequately explain. It is these students, who feel bamboozled and need help getting started, who I am Read more

Policies
Cancellation
4 hours notice required
Travel Radius
Travels within 30 miles of San Francisco, CA 94103

"Great coach with detailed feedbacks for each session"

- Liping, San Mateo, CA on 6/2/17

"Knows his stuff, and how to explain it"

- Ethan, Redwood City, CA on 10/21/16

Approved subjects are in bold.

Approved subjects

In most cases, tutors gain approval in a subject by passing a proficiency exam. For some subject areas, like music and art, tutors submit written requests to demonstrate their proficiency to potential students. If a tutor is interested but not yet approved in a subject, the subject will appear in non-bold font. Tutors need to be approved in a subject prior to beginning lessons.

C++

C++ is a language when many professors and teachers introduce intermediate topics like custom data structures, efficient file I/O, algorithms, recursion, and pointers. I've taught at this level enough times to know the common pitfalls and corresponding hints that keep student on top of new challenges. The first C++ course is often a time when the intimidation factor ramps up, but keep confident and accept help from a qualified tutor, and you will do great!

Computer Programming

The key elements I've found to helping students with software engineering are 1) teaching the patience to tackle a program in small pieces; 2) building the confidence to not second-guess a line of code that might be correct; and 3) calling a block of code done when it completes it role, as opposed to twiddling with code until it's "perfect," which often results in counterproductive complexity. This is how professional developers succeed, and what makes the CS wizards finish the homework with ease while beginners spend hours getting stuck.

I have years teaching the skills that advance programmers to self-reliance. The skills I will put in your repertoire include: debugging best practices, looking up documentation, decomposition, following developer convention, and focused problem solving. If you feel like your code isn't going anywhere, these foundational skills will get you where you need to be.

Computer Science

I studied computer science at Stanford. It wasn't easy for me but I got my head around it. Now after two years of tutoring many clients appreciate that I translate for professors. Too many professors use math-y, abstract language and it leaves the ordinary people like us confused when it's time to write an assignment or answer an exam question. I help students digest abstractions by explaining how they achieve a concrete goal in a program or puzzle. I've practiced a lot of common-sense analogies that work for beginners. Too often I hear "why do I have to write the code like this?" That's a question I can answer.

Java

Many colleges and high schools teach Java as the first language. I think it's a good choice: Java requires syntactic precision so it forces good habits, and unlike scripting languages like Python, Java exposes CS fundamentals like data types, classes, and standard collections. I see many students stumble on Java's daunting scaffolding. Everything is a class/object before a student knows what a class/object is. There are a slew of keywords that aren't explained upfront. Just to print the word "hello" you must type something like "public class HelloWorld { public static void main(String[] args) { System.out.println("Hello"); } }"

Java seems cruel to a beginner, but I can explain why there are so many bits of fussy code, how you can remember them, and hopefully settle your stomach and get to finishing the assignment. Java is definitely in your reach, but it can help to have a mentor untangle the unusual quirks first!

JavaScript

Whatever your exposure to other programming languages, a first journey into JavaScript has its own conceptual curveballs that I can help you acclimate to and digest.

My priority when teaching a student JavaScript is setting up the strongest safeguards to detect and solve bugs. JavaScript is a friendly language because it has stylistic wiggle-room, so a student can build apps sloppily and more quickly than with a rigid language like Java or C. Many students don't realize the flexibility is its own trap as programs grow because the permissiveness of JavaScript allows lurking bugs that cause the program to implode. I teach the tools to weed out bugs early, and detect strange behavior when it emerges. Web applications get complicated fast, but I have experience teaching the techniques that keep a program sturdy and clean. You got this!

Python

Python is a very friendly language to learn and for good reason it's the choice of many intro computer science courses. Sometimes, though, its tricky getting your bearings with the very basics like variables, loops, collections, functions, and I/O. I have experience to teach with patience and zero judgement for students confused on how to get the simplest programs running. As we grow together, I can help build your skill set to the point that you are developing interesting and complicated programs.

Web Design

I studied computer science at Stanford and worked as a developer at a startup in Sunnyvale. Web Design is a crazy animal that keeps changing. New languages and platforms come out every year and each has its bizarre set of features and infuriating bugs. Sometimes I help students put together together a page in basic HTML and JavaScript. Sometimes we build a behemoth with Angular or Rails or the latest utility. I've learned over the years to keep the focus on what needs to get done, what feature of the language will get the job done, and what tools we can use to debug the program together.

Many students are ready with a idea of the design. The part that gets messy is the bugs and getting elements to interact as desired. I bring years of experience crunching through the technical barriers that stop a webpage from launching. Web Dev is a wild field, but that's part of what makes it fun to teach.

Stanford University
Symbolic Systems

Education

Stanford University (Symbolic Systems)

Great coach with detailed feedbacks for each session

Dave helped my son score 96.77% on his final exam in Python, which brought his grade up to an A- for the semester. Within a short period of time, David went through the new concepts and practice with my son. He successfully encouraged him to practice more and become confident for the final exam. We hope to work with David again this summer.

— Liping, San Mateo, CA on 6/2/17

Hourly rate

Standard Hourly Rate: $90.00

Cancellation: 4 hours notice required

Travel policy

Dave will travel within 30 miles of San Francisco, CA 94103.