Adam’s current tutoring subjects are listed at the left. You
can read more about
Adam’s qualifications in specific subjects below.
I like to think of C as the mother of programming languages. Even though it was developed long before Microsoft and Apple were household names it's still widely used in applications today.
C is as close to the metal as you can get without using assembly making it great for writing operating systems and anything that requires performance.
Since C++ compilers generally support most of C as they use its types and other keywords most C++ programmers like me have directly used large parts of it. Things like printf, structs, malloc, int, char, pointers, loops, and the preprocessor all come from C.
The C11 standard will soon replace C99 primarily improving multithreading support for the parallel nature of processors and applications today.
In addition to my B.S. in Software Engineering I've been programming professionally with C/C++ for many years.
C# is a multi-paradigm language designed by Microsoft for the .NET framework and is one of the CLI languages they provide.
Syntax-wise it is comparable to C++ or Java but that's where the similarities end for the most part.
In my experience I've used C# to create a automated build tool, a custom installer, and an RTS video game with XNA. I find it useful for prototyping GUI applications and it's the first language I would choose when developing within the .NET framework.
I obtained my B.S. in Software Engineering from the University of Advancing Technology in Tempe in 2006 and I've been a professional programmer ever since in a variety of industries.
C++ is a statically typed, free-form, compiled, multi-paradigm, general-purpose programming language widely used in a variety of applications.
It's object oriented capability allows for design of massive frameworks and it is quite common as the language of choice for writing libraries.
It can vary from simple to complex with syntax similar to C and most compilers support much of the C99 standard in addition to the C++ standard. In 2011 a new C++11 standard was approved and the latest compilers are taking advantage of these new language features such as variadic templates, lamdbas, etc.
In programming as with any language you never stop learning new things. It could take a lifetime to master C++ and even then there would always be more to learn.
Currently I'm employed full-time as a software engineer primarily using C++ on a daily basis.
I've been playing drums since I was 8 years old and had private lessons from a phenomenal instructor who taught world percussion at the Marine Maritime College in Maine for that first decade until I turned 18 and went to college myself.
I've played in various bands over the years with a few album releases and one east coast tour. Currently I am the drummer for multiple bands and I'm always exploring material for new projects.
Drums and percussion are the essential musical instrument to any rhythm section whether it be the boom of the bass with the crisp sound of a snare in a marching band or the syncopated ghost notes and bright swing cymbal of a jazz ensemble.
The basics of a good percussionist are time, syncopation, rudiments, and beats.
Your primary job as a drummer is to keep all the other musicians on the correct tempo. You are the rhythm and they will follow your lead so you don't want to rush or drag the music.
Syncopation is your ability to independently manipulate your limbs to play creative and non-standard rhythms. Most jazz drummers are experts at syncopation and can match their groove to an improvisation as it happens.
Rudiments in drums are sort of like scales on guitar or chords on piano. You should know and practice them regularly. A few examples are the paradiddle, buzz roll, double stroke roll, and ratamacue. Rudiments are the core to any snare drum line in marching bands.
Finally beats are various collections of grooves for the set drummer from jazzy things like the bossa nova, samba, swing, and marimba all the way to rock and roll and heavy metal double bass.
I use multiple recording, mixing, sequencing, sampling, and mastering software as well as many types and configurations of drum sets and percussion instruments.
I do studio recording work for many artists, local musicians, and college projects. I also play in live performances at various venues a few times a month with various bands.
HTML language is used for making webpages. While there is a plethora of applications like Dreamweaver, Frontpage, and even some web based apps that can generate HTML for you there is still nothing stopping you from simply opening up your favorite text editor and banging out a webpage in minutes if you know the HTML tags.
I taught myself how to make webpages the old fashion way with notepad when I was in high school mostly to make fan pages for video games and have a place to chat with friends. While sites like Facebook have taken over that role they use additional languages and technology such as PHP as well as HTML.
In college I tested out of the XHTML core requirements for my degree allowing me to take more advanced classes in web design as a freshmen.
Today I generally use my web design skills including HTML for my LLC business page and to create and maintain pages for my bands.
My current employer uses an open source reporting library made specifically for Java apps. While our core components and applications are written in C++ and C# the syntax was similar enough and our object oriented approach to design made it easy for me to start writing applications in Java in less than a day using my previous experience.
I actually like Java quite a bit and since the code is interpreted within the virtual machine this may become one of the primary languages we use to port our applications to mobile platforms.
SQL is a declarative standard language for relational databases. Even if you're not planning on being a database administrator all programmers should know SQL in addition to their primary expertise.
With SQL you can easily create and modify your desired schema as well as query, insert, update, delete, and generally manipulate all of your persistent data for your applications.
At my current employer we have our own in house data model built with C++ which interfaces through ODBC to translate our querying API into the appropriate SQL allowing our product to work with a variety of database technologies such as Oracle, Sybase, MySql, etc.
At my previous job we used SQL Server exclusively and I was in charge of maintaining the VB scripts and installs which would run the SQL statements to create our database, import customer data, install stored procedures, build indexes, etc.
The final release of Visual Basic was in 1998 and extended support was ended in 2008. However the related Visual Basic .NET and VBScript are still supported by Microsoft. The former being the replacement programming language for the deprecated Visual Basic and the latter being a closely related scripting language which must be run in an environment like WSH, IE, or IIS.
I took various VB.NET classes in college but never used it professionally as C# is more popular. Strangely enough my professional experience was actually for legacy code including a reporting and import application in VB6 at my first job and VBScript install/upgrade scripts using ADO for SQL Server databases.
Today I occasionally use VBScript for quick file manipulation scripts on Windows and I recently tested out LINQ through a VB.NET application for my own learning purposes in Visual Studio 2010.
I haven't seen or used Visual Basic 6 in years and since it can no longer be bought and isn't supported it shouldn't be used in favor of newer alternatives like .NET anyway.