Travis S. passed a background check on 6/30/13. The check was ordered by Travis through First Advantage. For more information, please review the background check information page.
After sending a message to Travis, you will be able to order a new background check for $7.99. As part of your tutor selection process, we encourage you to run updated background checks. Please also review the safety tips for hiring tutors.
Success in the software field is not about rote memorization, nor is it about merely aping existing code. Excellent developers must be able to think critically -- to understand their problem, to consider in what ways that problem can be solved, and to select a solution that is appropriate.
As a tutor, my approach is to ensure that my student learns how to work with an abstract problem, formulate an abstract solution, and apply that solution through the language they are being taught in. Shared understanding between myself and my student is critical, and I tailor explanations based on how my student works best: metaphors, visual sketches, physical/spacial interaction, or whatever else I can find to make the topics "click." I understand that the way computers "think" is very different from the way that people think, and bridging that gap is not only useful for completing assignments with greater ease, but the first step towards building a truly portable problem-solving skillset.
Coding assignments done during tutoring are pair-programmed -- I will ask the student to verbalize their thoughts as they code, and watch as they write out their work. If I see something interesting (a mistake, an unexpected choice, or a correctly-used concept they've previously struggled with) I will in some cases ask them to explain why they are doing it. In other cases, I allow mistakes through purposefully: debugging is an incredibly important skill in and of itself, and catching all mistakes up-front would deprive a student of practicing that skill. Note that the pair programming approach does not mean I do the work for the student, nor does it mean that the code will be bug free. I will ask questions, answer questions, act as a fast reference, and in most cases indicate whether I still see bugs. It is up to the student to determine how much effort they want to put into any given assignment, and consequently, to drive the process of stepping through the code to ensure everything works as it is supposed to.
In addition to normal college coursework, I'm also happy to cover practical industry skills that are generally omitted from a degree, such as release management, source control, and build systems. Many people are taken by surprise by these topics when they get into their first job, and having advance knowledge is a huge productivity boon. I am also open to tackling custom/more specialized topics that students would like to cover -- just ask!
I have used C in reading, debugging, patching and extending a multitude of open source projects, including ReactOS, GEdit, Linux, GPLFlash2, Pidgin and more. As a programming foundation, C is excellent -- it has a fairly terse set of keywords (~30), allowing the student to spend more time thinking about CPU and memory manipulation (especially pointers), and less time worrying about syntax. When the student is ready to absorb additional syntax, this foundation can then be directly translated into more complicated C-like languages. Students should expect practical design and interactive pair-programming (as with any of my software development tutoring).
Six years of industry experience with C# has allowed me to gain fairly detailed understanding of the language, the most common mistakes made out in the field, as well as the .NET CLR that the compiled programs run under. For independent students, or student's whose coursework does not explicitly include the "trick" topics (overloading Equals/Hash, finalizers, implementing IDisposable, inheriting Exception, exceptions in asynchronous code), I would strongly recommend dedicating some sessions to covering them. Students should expect practical design and interactive pair-programming (as with any of my software development tutoring).
I have spent a total of over seven years working in C++, between personal projects, open source projects, schoolwork, and professional positions. It was the third language I learned, and remains my personal favorite. Depending on a student's needs, specific functional aspects of the language can be focused on one at a time: basic functional constructs (a la C syntax), the syntaxes surrounding object orientation, templating (metaprogramming), accessor/mutator markup, and operator overloading. After syntax, there's interation with C++'s STL and its set of operator conventions (e.g., "<<" and ">>"). For advanced topics, students may be introduced to the Boost libraries, or taught to tackle the thorny issue of writing link-portable libraries with C++.
I have been writing software in one form or another since age 6; I quite literally have a lifetime of experience in the field. I can help students to bridge the gap between the way the computer "thinks," and the way that they think -- allowing them to translate their English understanding of a problem into an abstract machine understanding of the problem. For most students, I would strongly recommend dedicating some sessions to covering related industry topics that generally aren't taught (source control, reading/debugging/fixing other's code, release management/version numbers, build systems). Students should expect practical design and interactive pair-programming (as with any of my software development tutoring), in whichever language they like (or their course requires).
I have used Linux on my personal machines since high school; currently, I have Linux running on four of five machines at home (2x Ubuntu, 1x Gentoo, 1x Debian). I also have embedded devices running linux, including my router (WRT54G running Tomato), and in the past, an NSLU2 NAS (running Unslung). Furthermore, I have previously acted as a Linux consultant for a small/medium business, as an emergency administrator for a friend, and as a developer for the platform at various times. As such, I am qualified to share a broad range of Linux topics with a potential student -- installation, administration, basic and advanced operation, using BASH, kernel compilation/modification, and programming.
Usually responds in about 4 hours
Send Travis a message explaining your needs and you will receive a response by email. Have you already emailed Travis or another tutor? If so, you have an account! Sign in now