DrumSensei

betwixt code and music

Backbone Basics

Backbone makes it easier

Our front end engineering class has brought us to the point where we know enough book information to make a desirable number of features on a website. We have learned a good deal of HTML and CSS for basic, good-looking website content. To increase the power and ease of using CSS, we learned Sass which is a pre-compiler for CSS. All of this knowledge brings us to the point where we can talk to designers and get a basic page built fairly well.

From near the beginning, we learned vanilla JavaScript in node in the terminal (or in Sublime Text, if you are fancy). Next we learned how to link the HTML/CSS into the JavaScript to provide functionality to our websites. We then learned some jQuery, a JavaScript library, to quickly target areas of a webpage for interaction. Just as soon as we were getting comfortable with mixing JavaScript and jQuery we discovered that AJAX lets us deal with a server to store information in a place other than the client's computer. This allows us to work arm-in-arm with our back-end brethren and opens us up to the world of Backbone.js.



Backbone is a library that is written in JavaScript and also incorporates jQuery and Underscore. This particular library uses the MVC architectural pattern that stands for Model-View-Controller, some of the main ingredients that make this approach attractive to many. I certainly have a freshman-level view of these concepts, but I can already see the appeal of having the page updated in a dynamic way. The main basic idea of the Backbone (or another MVC framework) approach is to have the internal use of data separated from the user's computer. Backbone code will be set up to listen for changes to the website and then will interact with the server behind the scenes to initiate and carry out those changes.

While somewhat easy to explain in those terms, the code is already sometimes becoming rather large. When the lines of code begin to pile up, it is best to step back and remember the bigger picture. We will set up a
model that will exist between the user's page and the server. This model will be our "single source of truth," as our instructor Aaron likes to say. When a change is made, the model is consulted and then it interacts with the server behind the scenes to make changes. Backbone is also smart enough to carry out changes that are needed. In other words, it will not refresh your entire profile on your social media site if you only change your picture. Backbone will just change your picture and be done.

Without a doubt, there is a long road ahead to grasp all of these concepts. Thankfully we have our
hackathon this weekend where we pair up with the design and back-end cohorts to create and implement a project of our choosing. This will be a great way to learn how to work with these other two elements of web development to realize a project. I am really excited to work with these folks!

To infinity and beyond,
Mike

TIY - Day 15

This is it...don't get scared now...

We have driven deeper into this world of JavaScript and jQuery. Today we talked about review from last night's login page homework. I did not have time to get it fully implemented because I went to a meetup and watched some blazing React.js happening. I mostly understood it, but today Aaron showed us some things that made a lot more sense.



We learned how to interact with a server using AJAX. Not the cleaner bleachy stuff, heavens no! Of course I mean Asynchronous Javascript And Xml. Everyone knows that!



This allows us to give information to the server, remove information, or update information. (A slew of other things are also available, but this is plenty for now.) Now, you might be saying, "Hold on, Tex. What is a server? You talking about my waiter at Chili's?"

Great question! Most people have heard about things that are stored in the "cloud" and maybe they don't fully understand what that means. A google search of the phrase "the cloud" returned "About 47,500,000 results." SOMEONE is talking about it on the interwebs! The cloud is a great little marketing phrase for what used to be called servers. These are computers whose job consists of connecting other computers together and storing data. When you backup your iPhone to "the cloud," it is really connecting to a remote computer somewhere that is holding a copy of your iPhone backup. To be fair, these days we are using a lot of wireless technology, so it does seem as if things are magically happening through thin air. Perhaps that is why the phrase has caught on.

Anyhow, as we learned AJAX a bit today, it becomes plain to see how useful it is. I can finally get a better picture of how our job as front-end developers is to build out a website
and understand the ways in which it will interact with a server a.k.a. "the cloud." Today we built a little chat utility in the browser using jQuery and AJAX that could store information in an object on the server and then retrieve that information in order to provide a running list of messages in a chat room.

We have some fairly complex projects coming up, so things are about to pick up quite a bit, I feel. Time to buckle down and continue the onslaught, come what may.

The Iron Yard - Day 13

Week 4 - Day 13

JS + HTML = :]

Our homework over the weekend was to construct a to-do list using vanilla JavaScript i.e. just plain ol' JavaScript with no bonus features or extra doodly-whatsits. My implementation of this works pretty well. I wanted to add a few more features to it, but I had to learn some deeper concepts first.

On Friday
our instructor told us it was his favorite day of the entire span of twelve weeks. We officially learned to connect JavaScript to our HTML to produce a page like we are used to seeing in the wild. Remember, constant reader, the JavaScript is what enables actions to happen on the page inside of your browser. For instance, if you look at my very plain to-do list, you will notice that clicking the button next to the text input area will make that text appear below in a list format. While this may seem like an easy task, it does involve many steps.

First, we target the specific areas on the webpage that need action. On my list, those specific areas are the input text field, the clickable button and the "list" section below that.

Second, we create functions that tell us what action we wish to happen. For instance, when I click the button, the text from the input text area should become visible in the list section. At this point we should have thought about what areas are needed and what we need to happen with those areas.

Lastly, we add what JavaScript calls "event listeners" to be the messenger between our targeted areas and the desired functions. In my example of the list, I have JavaScript "listening" for a 'click' from the user on the button next to the input text area. When that button is clicked, the text is added to an array behind the scenes, the list section at the bottom is erased and redrawn with the updated list. All of this happens so fast that we cannot see it, but for every item added to the list, the entire list is erased and started over with all values. I am told that this will be useful later!

My reset button on the list example works in a similar fashion. It is "listening" for a 'click' to happen and then it interacts with the list values by resetting them all back to empty or zero and then redrawing the list section to reflect that.

In honor of our teacher
Aaron, enjoy some nutella...


The Iron Yard - Week 3

Week 3 and Other Tidbits

In my quest to switch careers, a coding bootcamp seemed like a good fit. Through a mutual friend, I talked to a former student from The Iron Yard that attended the original campus in Greenville, South Carolina. He had gotten a job in development in Dallas at a smaller shop doing some cool work. The job market for coding in Dallas has plenty of open positions. After being a band director for twelve years, I was right at the point of getting ready for a new direction. My aforementioned contact said that the thing he would have done more before bootcamp was studying JavaScript.

JS-woody-buzz


Thankfully, I followed his directions. I went through the
Codecademy course on HTML/CSS and JavaScript two times each, the second time around carefully hand-writing nearly all of the code. Hey, I learn best by writing, and it keeps me focused, be nice. (You probably do, too.) I also got the book Eloquent Javascript by Marijn Haverbeke and read (and worked) through the first three chapters three times. You might think I am a JavaScript champion now. I would say that I was simply practicing and getting some mental and physical muscle memory built up. I knew that JavaScript has some weird idiosyncrasies that make it identically a mystery and a brilliant tool. My goal is to understand those and make them work in my favor.

A fun example: like most programming languages, JavaScript has certain base "types" where it stores information. This could be a number like 9 or a boolean like true or a string like "The Iron Yard" or an array like [1,2,3] or an object like {a:1, b:2, c:3}. Got it?
No, you don't.
An array is actually a type of "Object." Gotcha.
Unless you are working in the browser, then it could be an "array-like object."
HUH?
Exactly. That is JavaScript. It is weird and funky and a lot of fun. (Hey, I used Turbo Pascal and C++ in high school... I put in my time with the strict languages!)

This coding bootcamp experience has been daunting and scary at times. Other times I feel like a rock star when the code works and my tests come back with green check marks! YES!! My classmates have been cool to be around. Everyone seems interested in learning their stuff and getting work done. Staff is fantastic. The campus is in Austin...a wonderful place with great food and great people. I miss my family SO MUCH, but it will be worth it when I get a wonderful job back in Dallas with a great team shipping things that make the world a better place.

Something that has surprised me is that I was terrible at my first attempt at coding bootstrap. I haven't really finished my assignment from a week ago...it looks like I really need to start it completely over and rethink my approach to the grid system of the masses. Not everyone gets ALL of it the first time!

I definitely expected a challenge, and it has been delivered in nearly every assignment. Even when I feel like I have a decent level of skill, I know there is a long road ahead. I am always keeping in mind I am still near the left of the flow chart from the mind of
Mihály Csíkszentmihályi (pronounced "chick-sent-me-high"). As a musician, I achieved flow by getting my skills and challenges to extremely high levels. I feel like after about 15 years and thousands of hours of drumming that I was pretty accomplished. Hopefully I can get to flow sooner in coding!



To any future students, please hang in there and keep a positive attitude. Ask questions. A lot of them. The days I have been most frustrated were the days that I felt most isolated. Ask your staff, ask some mentors, definitely ask fellow students. No one can do this alone. I highly suggest doing some exercise to keep your body and mind active, as well. Lastly, I am a fan of writing things down (did I mention that?). I filled our moleskine cahier notebook in the first five class days. If it helps you learn, then GO FOR IT!

The Iron Yard - Day 08

Tic-Tac-Toe

In our quest to learn about loops of all kinds, the task at hand is to create a game of tic-tac-toe (also, called "Noughts and Crosses" across the pond) built in JavaScript to run in node on the command line.

Noughts and Crosses


There are some complications to this problem that are not obvious at first. We are making it a two-player game (except for nightmare mode is building an AI to play against). We start off asking for the players' names, and setting the current player to player1. Then the player must enter the coordinates of their move in the format "x y" (yes, with the space). The move is stored in an array that holds three arrays which I am calling gameBoard.

All of that is fairly simple (yet time-consuming) except we need the array to hold the numbers of the coordinate, and the way it was entered is a string. Thankfully, in JavaScript there is a method called
.split that allows a string to be split by a separator, which I defined as " ". This leaves us with a string of two numbers. The trick now is to use parseInt to get the numbers pulled out of the string and put into the array as a numeric value. This was a bit of a logical challenge simply because I had not really used all of these little processes before. However, like my old days as a music educator, I just have to tell myself (instead of the students) that the best way to learn is by doing it!

For the next part, I don't
love the way I constructed it yet. We must determine if the entered information was, in fact, the correct format, an acceptable number (1, 2, or 3), and that no one has taken that location. My solution here is incomplete and inelegant. I will continue to work through it!

I did manage to make the game board print with the correct player's token in the correct spot. That was a huge moment! Also, I have made it successfully switch players and I have gotten as far as declaring a winner if they get a row of their token (still have column, diagonal, and cat left!).

All in all this has been a good week, but I still have to touch up some of the responsive site stuff from earlier this week. I will do that today. We have a campus-wide huddle at 10:00am and
Iron Pints at 3:30pm. Also, I have to take my car in to double-check that the light that came on will be ok. Heading back to BIG D tonight!

Oh... and my oldest child turns thirteen on Sunday. We got old all of a sudden!

The Iron Yard - Day 07

The Iron Yard - Day 07

We have learned about arrays and objects. We are now aware of the matrix...

matrix_screen_saver_by_icyalaska

An array is a data structure that lists information in what we can think of as an ordered list. This might be most useful when needing a list of items such as a cash register needing to access prices or perhaps an inventory. Square brackets are used to start off an array, and all data types can be stored here.

An empty array named
groceries looks like this:
var groceries = [];

An
object is a data structure that functions more like a large bag that holds pieces of information in any order. Objects are central to the more advanced abilities of modern programming languages. The information stored in an object has a label to go with the value. Curly braces indicate the beginning and end of an object, and all data types can be stored here, as well.

An empty object named
kitchen looks like this:
var kitchen = {};

Arrays
We need to insert data into our array, so we will use the method .push() to insert data into the front of the structure. (You can also add data at the end or the middle, as needed.)
groceries.push('milk');
groceries.push('eggs');
groceries.push('bacon');

So our array now looks like this:
['milk', 'eggs', 'bacon']

These values inside the array can be retrieved and used by referring to label of the
position of the value. For instance, milk is at position 0, eggs at position 1, bacon at position 2. (Due to largely historical reasons, many times computer scientists will begin counting with zero.)

If we need to access an element of the array and reassign a new value to the spot that holds milk, that would look like this (pronounced "groceries sub zero):
groceries[0] = 'whole milk';

Objects
Unlike an array, an object is not ordered, so we cannot
push things to the object. Instead we have to access keys that behave as labels for the objects inside the array. If the keys do not already exist, then they will be created as we give them a value. For example:
kitchen.flour = '2lb';
kitchen.eggs = 1;
kitchen.coffee = true;

The above values don't have just a generic label but have a custom label. If we need to access the values inside an object we can access it much like above. If we want to reassign a new value to an object, then that would be identical to the assignment above.

Objects have two ways to retrieve data from inside: dot notation (usually preferred) or curly braces notation.

A
Matrix is created when we store an array as an element inside an array. If we had three arrays stored inside of an array, then that might look something like this:
var matrix = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]

This could conceivably lead to some rather complex data structures.

Anyone ready for tic-tac-toe?


The Iron Yard - Day 06

The Iron Yard - Day 06

On Tuesday we dove a little deeper into JavaScript discussing boolean operators, the ternary operator, and conditional statements.



We also discussed several scenarios that JavaScript handles in a quirky way. Type coercion in JS has its own rules that will be wonderful to harness once a developer can fully grasp them.

For instance, let's assign a value to the variable "name" and put it into an important sentence.
var name = "Mike";
var statement = name + " is really cool";
var name = "Bob";

One would think that the output would be "Bob is really cool"... Nope, it is still "Mike is really cool". Confused yet? The logic works like this:

Name holds the value "Mike"
Statement holds the value "Mike is really cool"
Name is given a new value of "Bob" which replaces the original of "Mike"
Statement is asked to show the value it contains, which is still "Mike" - we did not put a new value into Statement

Our homework was to use plain JavaScript to create a command line quiz in either normal mode, hard mode, or nightmare mode. We were to include 15 items that covered various HTML, CSS, and JS topics and then tell the user their number correct and percentage. I finished that and made some adjustments to also tell the user which topics they did best in and I made it display the correct answer if the user gets the question wrong. I also added a timer to tell the length of the test. As a bonus, I made a "100" display in ASCII characters if they get every question correct.

The nightmare mode (which I did not employ) asked the developer to make the quiz adaptive based on the success of the answered questions. I could see how this is possible, but my code would have been MUCH longer to make it work.

Now, I am
still working on my HTML forms homework from Monday. I will finish this TODAY!!



The Iron Yard - Day 05 part 2

The Iron Yard - Day 05 part 2

Solidly into week 2 now and things got real. Our JavaScript assignment was pretty straightforward, and I had no issue getting that done. We had to make a table in HTML with some answers to JavaScript questions that Aaron provided to us. My version of the assignment ended up looking very nice. I learned some nifty things about using tables in HTML. Thankfully I have studied a decent amount of JavaScript to prepare for the course. It does tend to make sense to me overall.

Our other assignment has me twisted in knots. It deals with using forms in HTML, just like the little buttons a user will push or the checkboxes you see on a website. I have the page looking
mostly right except a few elements just will not go into the correct place. I could only get about 60% of the way through the homework before I had to sleep. Hopefully this is a situation where things will just click when I approach it again in a bit.

Apparently, radio buttons and their text are nonsense to my brain on a Monday evening. I will have to work overtime to be able to get those up and running!

Breaks are helpful, I am finding. Occasionally you just have to get up and take a walk outside for a few minutes. In fact, your brain is still turning that problem round and round to work on it. Many times I have sat back down and busted out some serious problem-solving skills. Waking up and coding is just as beneficial.

Time to head to Day-06! Woot!

The Iron Yard - Day 05

Day 05 - SASS part2

Something learned very early in development or programming is the beautiful phrase "Don't Repeat Yourself" - usually referred to as DRY. Learning about Sass at The Iron Yard, on my own a bit, and at a local Austin meet-up was a great way to work it in to my homework project. The group ATXSass had the great speakers Abby Larner and Una Kravets. This was a fun presentation about the basics of the tool. Also, having gone to this meetup in ATX and several meetups in the my hometown of Dallas (woot!), I can easily say that the tech scene thrives on getting together. There is something magical about finally meeting the people that dance across your Twitter account as pixels... They are really real people, turns out!

Some more thoughts about Sass, the beneficial CSS pre-compiler follow the nice sassy picture.



Mixins
This handy-dandy feature behaves like a variable but lets you put in more lines of code. If you are familiar with a formal programming language like C++ or JavaScript, then you might consider this to act like a function.

At the top of your code (or really anywhere
before you need it) add a mixin by including this code:
@ mixin link() {
background-color: pink;
color: white;
}

This means that we want to use the visual configuration of white text on a pink background - and we are likely going to use it more than once in the body of the code. Perhaps this is useful if a person is dealing with several sections that will have the same formatting.

When the mixin is needed in the code (after it has been declared!), then just use this to include it:
@include link();


Now...a great reason I saw to use this in code. It is becoming accepted to use the measurement "em" when dealing with font size. This is based on the current font size or approximately 16 pixels. (Pixels are points of light on the screen) - If you have a picture that is 800x600, then you are dealing with 800 pixels horizontally and 600 pixels vertically). Using a "em"s is smart when considering that the end user will likely increase the size of the content (think smartphone or tablet). This means that the font size will scale appropriately when the entire page is "zoomed in".

Here is a snippet of code that will allow us to insert font sizes as the "em" measurement, but also provide a measurement in pixels.
@mixin font($em) {
font-size: ($em*16) + px;
font-size: ($em) + em;
}


(
Note: not all browsers on all devices support all of the things written, so it is a good idea to provide measures like this to shore up your code to be backwards-compatible to older browsers).

The perceptive student will note the $em is a variable. Mixins can include variables, which makes this a very powerful tool! This can be called from within the code like this:
footer {
color: blue;
font-weight: bold;
@include font(4);
}


There is SO MUCH MORE to learning Sass, but this is a good primer for getting started. I know that I am learning a ton more about how to use it to shorten my code and to keep it DRY!

The Iron Yard - Day 04

Day 04 - SASS


image courtesy of sass-lang.com


Whoa, baby, this stuff is cool. Syntactically Awesome Style Sheets or, SASS, makes writing CSS a much easier process. There are two versions. Hamburger A is Sass, Hamburger B is SCSS.

We learned about the SCSS flavor in class today at
The Iron Yard. Sass lets a developer write complex CSS in a simplified way using various patterns.

Nesting
This makes the HTML and CSS look more similar in structure. The code snippet below has a nav tag (which functions as a div container, just semantically different) which contains an anchor tag. The SCSS lets a developer nest a CSS property inside of other ones. SCSS will automatically compile to stock CSS in another file. As a visual person, this is extremely helpful because I can now easily see which tags are inside of others as opposed to searching through hundreds of CSS tags.

This is generated:
nav {
background-color: #fff;
padding: 0.5em 0;

a {
margin: 0 1em;
color: #565D64;
}
}

Which puts this into the stock CSS file:
nav {
background-color: #fff;
padding: 0.5em 0; }
nav a {
margin: 0 1em;
color: #565D64; }

And you might be thinking, "Big whoop. That is just as easy to write in CSS!" Well, you might be right, pardner, but as you mentally extend this to a larger framework of a site, it becomes easy to imagine the usefulness of this here technique.

Variables
SCSS allows defined variables to be used throughout the code. I learned about some scenarios today which made this seem like the greatest thing since the wristwatch. For example...

Situation
You are a designer (or an indy developer) dealing with three different main colors on the site you are building. You apply the variable method to your colors like so:
$primaryColor: #bada55;

And you apply it to code like this:
a {
color: red;
background-color: pink;
}

You are building your site and all is fine until one afternoon your client says that she really wants a
deeper shade of green. No sweat if you used the $primaryColor variable. Just go switch the variable at the top of the file and all of the colors switch throughout the layout.

Thankfully, there was also a meetup for ATXSass the very same day that I learned about Sass. What a break! I headed downtown to the
Capital Factory and learned more about Sass from Abby Larner and Una Kravets. More to come about Sass, so stay tuned.


The Iron Yard - Day 03

Day 03

2015-08-26 11.58.21

Today we had engaging lecture and examples over the specificity of CSS selectors. I definitely do not fully have it down, but it is starting to form in my brain matter.

HyperText Markup Language (a.k.a. HTML) is content. It contains everything that you see on the page that is
stuff. The containers that hold text, pictures, and links can be made to look prettier by adding Cascading Style Sheets (henceforth dubbed CSS).

CSS makes use of
selectors to apply a certain style to the content in the HTML page. In best practice, the HTML and CSS code are found in two (or more!) different files which are linked together at the top of each HTML page.

Color, font-size, height, width, and many other values can be added or adjusted to the content of the page using CSS. If you have seen a website, then you have definitely seen this in action. Without the CSS, the page looks like an outline on black text on a white background

CSS Selectors are fun!

Tag selectors are HTML tags (such as <
header>, < body>, <img>, <a>, etc.) that we target in order to style.

Tag selector example in CSS

body {
text-align: center;
font-family: "Roboto Mono", sans serif;
}

Class selectors are custom names that a developer can create to help modify the appearance and behavior or certain attributes.
In the HTML document they take the form <
HTML_element class="class-name">.
In the CSS file they are preceded with a period like so
.class-name {...}.

Class selector example in CSS

.class-name {
display: inline;
margin: 0 auto;
}

ID selectors are unique names that will only apply to a single element on the page (or a set of things, depending on how implemented). For best practice they can only be used one time per HTML document.

ID selector example in CSS

#batman {
background-color: black;
color: black;
}

That was the easy stuff. The fun begins when we try to determine what happens when the selectors are combined. Which one takes precedence? Will my text be blue or red?

Lastly, a
style tag included in the HTML side of things can override any of the CSS selectors from above. It is generally considered a party foul to use style in that context. Styling can be done "inline" in HTML, but this is an activity perfectly suited to CSS.

FUN stuff!!

The Iron Yard - Day 02

Day 02 of The Iron Yard has happened. I lived through it.

After learning several tidbits about CSS tricks and how to use floats and overflow, we had a daunting assignment. We were tasked to recreate the home page of
Wordpress.com in various stages.

Honest Abe, I was a bit stunned at such a complex project.

Copying others is useful to get deeper down into the "how" of any skill. For instance, in my undergraduate music education days, my percussion professor, the illustrious
Dr. Brian West, would require drumset students to listen to a song of our choosing and then transcribe the exact drumset part. We also had to perform it in front of our peers or in front of a panel of percussion teachers. This was time-consuming and difficult…and I loved it. I officially transcribed Max Roach, Art Blakey, and Billy Martin, all of which led me to many others to transcribe on my own.

Other things I learned today:
  • How to use "em" versus "px" (though "rem" will be useful soon)
  • Make boxes "float" left and right like a magnet
  • More study of the CSS Box Model
  • "box-sizing: border-box" (behavior which "turns out" is from very old IE!)
  • Using "git" in the shell to upload projects to GitHub
  • Installing new packages in Sublime Text

I definitely did
not finish the homework by 10:00 PM as expected. I looked up from feverishly typing and hitting - then -R, realized it was 10:00PM and 30 seconds, and then sent my work to GitHub lickety split. Alas, by the time I submitted my GItHub link to our instructor, it was definitely 10:01 PM (at least on my laptop).

Nonetheless, I continued to work on the layouts, and finished what was expected about 12:15 AM. It has been submitted. I can sleep a little.

There were still two spacing issues in my layout where text was out of alignment for about 5px. Annoying, but I will figure it out.

Oh, we also found out that
our instructor likes nutella…perhaps it borders on obsession. Someone left an anonymous gift of a nutella snack-pack for him. Good move!

To Infinity and Beyond!

The Iron Yard - Day 01

Day 01 of coding bootcamp is in the books.

We have seventeen people in our class ranging from checking this out to seasoned developers looking to update their skills or get a better handle on the fundamentals. The story from person to person seems very similar; we are all looking to get into the tech industry and want a career that can be jump-started here at The Iron Yard.

After introductions we got settled in to our classroom in Building K, which is just a little walk from the main Building C. We were promised a fast-paced difficult journey, and they did not disappoint, even on Day 01!

The first material our instructor Aaron covered consisted of command line basics (open, ., /, path, cd, .., ls, ~, mkdir, yo, touch, subl). Then we jumped to HTML and went through the form of the page and the behavior of and
tags. Lastly, CSS basics with a great deal about how to use classes in conjunction with an HTML file. Other goodies: Chrome Inspector (😍) and Digital Color Meter, both very useful tools.

Our assignment was to recreate a page layout using HTML and CSS based on a picture of a layout. At first glance I thought that this was a fairly easy assignment. After spending about
six hours on it, wading through several rookie mistakes, I have a better understanding of the challenges that lie ahead!

[Mike]: Wait… you can put a
inside of a
?? Then, where do I add padding… but I thought that was the margin…

I will learn. We will all learn.

My favorite things I learned on Day 01:
  • The "open" command is useful in the shell (I know it seems obvious!)
  • Digital Color Meter allows me to find any color and replicate it
  • It helps to read all of the directions in the homework… as a former teacher, this should be stock for me!

I did finish
my homework and am excited to see what they cook up for us today!

As they say here at the The Iron Yard… To Infinity and Beyond!

Switching Gears

Well, I am leaving the formal teaching profession to do something completely different. When all of my kiddos and so many friends across the state go back to school in late August, I will also start school. For 12 weeks I will be in an immersive program called The Iron Yard in Austin, Texas. This coding bootcamp is designed to teach me how to graduate with the skills to be a Front-End Developer, which is fancy-talk for someone who makes the parts of websites that everyone can see. When I come up for air around Thanksgiving, I will be taking my skills to a company where I can create cool things and make a difference in my community writ large. My hope is to continue to keep our family in the Dallas area, but we will have to see what happens!

A bit of history leading to this…

My first day of band was in August of 1987 at Sidney Lanier Elementary School in Dallas, Texas. I fell in love with being a musician and especially hitting things to make noise. I spent thousands of hours honing my skills and gaining mastery over various techniques and instruments in the percussion family.

Teaching came as a natural outgrowth of my passion for music learning and performance. Sharing my experiences with others, helping other people have a terrific musical journey, these are things that have been, and continue to be, important to me. So many of my students have been successful both in my presence and further down the road in their musical journey. The entire realm of music has blessed me through performance, teaching, and being around other fantastic humans for so many years. I am certainly thankful to all of my mentors and students and co-workers over the years.

Back to now … the last year has seen me becoming less satisfied with teaching and being around music. For a number of reasons, it stopped being as much fun for me. I was beginning to be annoyed just hearing music on the radio. Car drives were mostly silent. I found myself coming back to a question I had turned over in my mind for several years: "Should I do something else instead of teach music?" I tried unsuccessfully to switch environments to possibly re-create that love of teaching and music. My mind turned to other things.

As I searched through things that I enjoyed doing and learning about, I kept coming back to
computers. My uncle Ricky gave me an old TRS-80 computer when I was about nine or ten years old. The BASIC programming language was like Greek to me, but I continued to plug away at it and learned to make my way around the file system. Later in middle school I had "Computer Literacy" with Mr. Mulkey where we learned to turn the computer on and use the basic programs inside. I was always getting in trouble for being 20 steps ahead of the teacher. In high school I had Mr. Richards for "Computer Science I" where we learned Turbo PASCAL. (I also sat between my future wife and her best friend in this class - a cute distraction to my right!) In 12th grade my "Computer Science II" teacher was an angry lady who became a teacher from what seemed to me like necessity instead of passion. I lost my motivation as a student of computers and threw myself into the music studies that much more.

My music career has been wild - many schools in many types of communities and districts. Some of the best people I have ever known were co-workers at different schools. I have loved it! It has been a lot of fun to be a significant part of so many families' lives. My time spent as a member of the Troopers and Carolina Crown Drum & Bugle Corps was a blast. My time as a performer and conductor with ensembles performing at the Percussive Arts Society International Convention (PASIC) still means so much to me. I will always love music and teaching.

Special thanks to my amazing wife for continuing to support me through this crazy life. She continues to be a devoted and selfless person for our family's needs. My children are interested in coding and have been taking an interest in learning more and more. Like dad, they are endlessly curious about things, constantly reading books and learning. What a blessing to be able to learn new things each day! No matter what, they will be in band. Those are experiences that all children should have! Isaac is already working hard on his french horn skills. Alexis is still deciding which instrument will pick her at the end of this school year. Olivia runs around the house pretending to play every instrument!

You never know … maybe I find a new passion has been ignited that I enjoy and can get paid to do … or maybe I am clicking sticks in front of a drum line in a few years after all! I am always listening and trying to go the right way.

If you feel like supporting a future hacker/coder, then feel free to peruse my
Amazon wish list. Regardless, please drop me a line on Facebook or Twitter. Now, some percussion posts to get to…

And in this corner...

I am Mike Mathew and you have stumbled into my corner of the interwebs. Welcome!

In the case that you don't know me, please go find my
About page and learn more there. If I already know you, then we should probably talk more often. Please send a text that reads, "Hello, Michael!"

For a long, long while I have been meaning to get a space set up to make words appear on the internet.
Here it is.
It has finally arrived.
We have it now.

I foresee many posts forthcoming about both computer programming/coding and music/education and probably just life in general. I would very much appreciate any comments or correspondence you might care to share. As I become a worldwide internet sensation, I cannot guarantee a response in a timely manner. (Actually, I will probably be playing with my kids or reading a documentation file about something!)

I certainly do not purport to know all things, but I have a decent amount of wisdom and experience to share regarding some things. As a percussionist, I have some mastery over most of the domains. As a percussion teacher, I have a literal ton of experience across many skill levels and types of communities. As a coder/hacker, I am a unique wide-eyed newbie!

Let's get down to business. Next up is why I am switching careers…