Saturday, May 30, 2015

What Monkey's Teach Us About Problem Solving

Prior to the proliferation of the University system, the primary means of passing down knowledge was through apprenticeships. The mentor--usually someone currently practicing a craft or skill--would take someone on as an apprentice and through this relationship the mentor would receive help and labor and the apprentice would learn the craft. Many have argued that this was the most efficient and effective method for passing down information and teaching ever devised. Modern science has started to back that up.

In the 1980's and 90's, researches at the University of Parma, Italy were running tests on the macaque monkey and accidentally discovered what has come to be known as "mirror neurons". They noticed that the brain activity responsible for kinesthetic control not only showed up in the primates that were performing a particular function--say, grasping for some food--but also showed up in the primates watching the action being done. Essentially, the exact same neuron patterns fire when we watch someone else doing a task as the ones that fire when performing a task. Scientists have postulated that this neuron mirroring allows us to learn how to do something by observation. It is by careful observation of someone actually doing something and then doing it ourselves that we learn with the greatest comprehension and retention. So much for lecture. . .

The difficulty with teaching problem solving (mathematical, coding, or otherwise) is that the process is mental and therefore not overtly displayable. A keen mind may look at the work of another and discern his/her solution and even perhaps steps to solving the problem along the way, but this is through reasoning and deduction rather than mirroring actions in real time. The question becomes, is their a method whereby a mentor can teach the process of problem solving to a student?

How does one display the mental process of solving a problem? Clojure inventor Rich Rickey suggests that most problem solving happens at the unconscious level with the conscious mind playing skeptic to flush out its validity. Most of us have experienced unexplained bursts of insight when attempting to resolve something. But, can you teach people to be inspired?

Ultimately a problem is merely a question, and when broken down, a sum of many questions each with small answers discovered through previous knowledge and micro-inspirations. The core of solving new problems is solving old ones. Breaking problems into pieces and auxiliary problems by identifying the conditions, data, and unknowns circumscribes all problem solving. So on to teaching.

Consciously or subconsciously we are asking ourselves small questions throughout the process of solution finding. So to display this process to a student, the core tool is the socratic method. It is by asking successive questions to the student that we teach him/her how to ask themselves the key questions needed to solve all problems. By successively deconstructing a problem into simpler and simpler pieces and asking corollary questions we find a piece of the puzzle that they can solve. When you find that you've gotten down to the basest level and they can't answer the question you have ascertained a hole in the students knowledge that can then be filled through explanation and demonstration. The student now has an activity to mirror. If the process is continued often enough, the student will begin to ask themselves the questions without prompting.

There are many other parts and nuances to effectively teaching people how to solve problems. And like any complicated skill, it must be repeated by both student and teacher in order to gain proficiency. But at the core effectively teaching any skill requires the demonstration of both the seen and unseen parts. From this point we can proceed and add to our pedagogy.

The methodical application and practice of these basic principles will help a mentor teach his students problem solving skills rather than merely making them memorize steps to finish a puzzle. By teaching steps to a predetermined process we reduce the portability of the knowledge we are giving and ensure their long term dependents on our presence. By teaching the skills of solution finding we ensure that the student can then go about autonomously in a manner of self-teaching and solving.

Wednesday, May 6, 2015

Why You Hate Algebra

I recall being in a college algebra course several years ago while our instructor struggled to teach a complicated mathematical concept. Born of frustration, one of the students made the banal statement we've all heard and possibly said in some mathematics course; "When am I ever going to use this! I'm a (insert major here) major! And I'll NEVER use thaaaatt!!!"

Somewhere between learning long-division and intro calculus someone inserted a mental virus that replicated and persisted until you found yourself justifying your  D+ in math by mindlessly repeating the idea that math is not useful or needed in your career as a DJ/Event promoter. (In case you're wondering, I never got above a C+ in math from seventh grade until I learned that I loved it in a college.)

Wait! Don't stop reading! I know you think you know where this is going. I'm not going to list all the ways/professions in which math is used heavily with fantastic salaries. Nor am I going to give some contrived reason that learning to calculate P values will help you balance your checkbook. Rather, I'd like to articulate how math is a vehicle for a more important skill set: problem solving.

The process of solving a problem is one that can be taught and learned and it is the real skill to be learned through math. You see, somewhere in the process of attempting to fit a curriculum to fit all students, public education lost the teaching of math as a process of solving problems and developing critical thinking skills and reduced it to repeating steps given to us by an instructor.

By doing this, we have been robbed of the opportunity and pleasure of learning concepts, applying them to problems, and seeing results. We haven't learned to ask the crucial questions and methodically evaluate problems in order to solve them. Noted mathematician and professor George Polya wrote in his book "How to Solve It":
The worst may happen if the student embarks on computations or constructions without having understood the problem. It is generally useless to carry out the details without having seen the main connection or having made a sort of plan.

I can't think of a more perfect description of why math seemed tedious rather than interesting to me growing up. Rather than seeing the course of solving a problem to be exciting and stimulating (as I do now as a programmer) I felt as though I was learning a complex set of directions to a destination without description; a contest without context; a job with no satisfaction, like digging a hole only to fill it up again.

When it comes to professional and personal success, being capable of solving problems others can see will make you appreciated and valuable while solving problems that people don't even know exist will make you truly exceptional. Exceptional people have the exceptional ability to identify and clearly define problems that others don't see, and then work to solve them.

So how to develop this? Successful strategies may range from finding fun math word problems to solve, to picking up programming, to gamifying math through competitions. Once you begin to train you mind to see things as collections of knowns, unknowns and missing pieces, the process become transferable and replicable.

A note on the philosophical side:

The truth is, that regardless of whether you intend to be an entrepreneur, figure skater, programmer or stay at home parent, your day to day life will be filled with problems. Those who understand and undertake life's problems will feel empowered rather than victimized by life. They will find that their greatest accomplishments come from solving their biggest problems. It is our mandate as inheritors of this earth to overcome.

The payout of victimhood and being a product of our environments is meager, but the task is easy. True happiness and fulfillment comes at the high price of realizing our personal power through trial, tribulation, and triumph.

Monday, July 7, 2014

NSA and the Nature of Power

The alleged reasons for needing a mass surveillance state via the NSA are heavily contested by privacy advocates. While the official story is that all the snooping revealed to us by Edward Snowden is needed in an age of terrorism in order to have the security we desire, the majority of the claims in favor of these programs don't hold water. There has yet to be an actual shred of evidence that shows that mass surveillance has stopped even a single terrorist attack.

It doesn't take too much looking to see that there are many good arguments against programs like Prism and dragnet metadata collection that include the right to privacy guaranteed in the constitution, the cost and effort inefficiencies that come from such a running such a leviathan, the nearly impossible task of sorting through the ocean of data collected in a way that will actually be useful, and so on. While all of those arguments are well founded, I'm choosing to focus on what I believe to be the highest concern in the hierarchy of issues facing the NSA; the concentration of power.

“Power tends to corrupt and absolute power corrupts absolutely."
-Lord Acton

Fredrick Douglas struggled for years trying to figure out why blacks were slaves to whites. He eventually came to the profound conclusion that white people had enslaved black people because they had the power to do so and blacks did not have the power to stop them. While a very simple explanation, it describes the very real psychology of power itself. Often when one is able to express great power without consequence you will find that person suddenly willing to do so. One only needs to casually peruse internet comments sections to see how the power of anonymity has greatly increased the lack of civility. So it is with all forms of power, particularly the power of violence. When it becomes concentrated and without parallel under an individual or oligarchic power structure, those holding this power will insist on things staying that way and use all forms of persuasion, deception, and force to convince the common man that it is, in fact, in their best interest to support and uphold the very power structure that forges their shackles. The United States and the constitution was built on this understanding.

As we can see, this is the exact argument we're hearing today by the powers that be. They insist that the information they have is so sensitive that even revealing self-legitimizing evidence is too risky in the fight against the 21st century boogey-man.  In effect, we're expected to believe the words of people that have operated under the silken shroud of government secrecy and liberal use of public deception. Sounds peachy.

Their primary tactic in luring the masses to worship at the alter of state power is unfortunately--and yet naturally effectively--the method of fear-mongering. It is the use of this very primal and totally anti-rational emotion through which they seek to motivate the public into unquestionable obedience. 

There is a very real likelihood that NSA has little, if any, intention of stopping terrorists. Glenn Greenwald is hopefully not far from revealing the names of specific NSA targets which he says will shock the public, even going so far as to compare it to the snooping done on civil rights activists in the 60's, like Martin Luther King Jr. If we do indeed find out that NSA targets are not actually terrorists but rather the politically dissident, then it is clear that regardless of the initial intention of starting these programs, the absolute power of total surveillance has begun to corrupt absolutely. This should be no surprise given the recent revelations about how the IRS has been used to target conservative and libertarian groups to minimize their impact. The wheels turn, but nothing is new.

It is the duty of the tech community to contribute in whatever way they can in fighting against the ignorance and propaganda of those who claim that tyranny is necessary. There are many ways to contribute. The tech community responded effectively to the false notion that collecting metadata was a harmless act that revealed nothing about individuals. Many dedicated individuals are working on various open source projects that assist the individual in protecting their privacy and fight big brother. 

"I prayed for freedom for twenty years, but received no answer until I prayed with my legs." -Frederick Douglas

Their is still more to be done. Information and programming knowledge are the legs we need to free ourselves from the oppression of concentrated power. The tech community, armed with the tools we use in our day to day act of making a living, is uniquely poised to solve this problem and fight back. This problem will not resolve itself.  It is essential that we understand the imperative nature of this task.




Tuesday, July 1, 2014

The Bricoleur: Why You Should Indulge Your Diverse Interests

Some of the greatest achievements in technology, art, science, and the humanities are the result of mixing seemingly disconnected things. While the majority of academia are focused on break-throughs, the real innovators, trend-setters, and advancers of the human race are focused on bricolage; the mixing of multiple disciplines to create fantastic outcomes.

If you go to a University and choose a major with a career path you are choosing to be funneled into something that someone else has already created. You may bring your own talents and flavor to a field and you might even be exceptional at it. But chances are you won't make anything particularly new.
A person who mixes multiple fields of expertise to create something new is the bricoleur, or translated, the tinkerer.

Bricoleurs are multi-disciplinarians. In his youth, Michelangelo spent hours studying botany and human anatomy and making details drawings of various plants, animals, and cadavers. It was his knowledge of biology and anatomy that allowed him to be an exceptional artist. He was able to draw humans with a new level of realism. He could draw angels with wings that looked organic and natural. In addition to anatomy he was trained in architecture and metal-working. He pioneered a method for working with brass that allowed the construction of a life-size elephant. He was endlessly creative and used his natural curiosity that made him study many fields to make some of the most fantastic artistic pieces in history.

As a modern and possibly cliche example, think of Apple. When I was growing up in Utah in the early 90's my dad owned a computer training program for children and teenagers called Future Kids. I remember attending a course where a touch screen was demonstrated on a desktop computer. It was so clunky and difficult to use, I remember thinking, "why on earth would anybody want to use this over a mouse?" During the same period my father also had a brick sized cell phone that struggled to get reception and costed a fortune.

A little more than a decade later Apple released a much improved application to the touchscreen I had seen as a kid called the iPhone. Apple didn't invent cell phones. They didn't invent touchscreen technology. They didn't even invent the idea that a phone could browse the internet or send emails. But they did greatly improve the user experience of all those things while making it affordable for the average user. That invention has forever changed our uses for computers.

Technology has brought a new and exciting medium for the bricoleur. Virtually any field can be expressed or enhanced though the field of software. The most exciting element of software as a medium or tool is that it is dynamic. It allows a clever programmer to cheaply replicate their own innovation for the use of others.

The potential combinations and uses of software are endless. Whatever fields of interest--personal or professional--that you have, learning to intelligently code can give you the opportunity to share your particular genius. 

Tuesday, June 24, 2014

CS Degree or Bootcamp?

After a few short weeks of our coding bootcamp it's clear that there is a different perspective on coding between those of us who go through a course like this and those who chose to go through a CS program at a University. There are definitely advantages and disadvantages to both approaches and it's clear that the market has adapted a need for bootcamp coders along with CS majors based on their proliferation in Silicon Valley as well as here in Silicon Slopes.

But how do the different approaches alter marketability? Or career options? Or even the fundamental way in which one looks at code itself?

The immediately obvious difference between the two options is the pedagogy. While both aim to teach coding skills, they start from opposite ends of the spectrum. CS majors start by learning the underlying elements of coding languages, hardware, and computing and eventually work up to a potentially cursory overview of high level languages and cutting edge technology that will be immediately useful in the market. Bootcamp style learning, on the other hand, starts from the opposite end of that spectrum. We immediately start with cutting edge technology and high-level languages to dive into actually building modern applications with little windows into deeper principles.

One of the common themes during our lectures is the power of languages like Python. It seems that our CS Major instructors have a deep appreciation for what can get done in just a few lines of code or import. This is most likely a result of miring through semesters of machine code, C, and less readable texts like Perl. Like a grandfather explaining that he had to wake-up at 4am to milk the cows everyday, CS majors attempt to explain our spoiled position of learning in an incredibly readable and powerful language with many built-in functions, libraries, and frameworks, all available to help us quicken production.

While some employers only a few year ago complained that boot camp graduates don't have the deeper knowledge required to solve more complex problems, others have gladly hired them on the basis of their extremely practical skill set. The trade off seems to be depth of knowledge for market practicality. Whether they hire a CS Major or a boot camper, employers will need to be willing to invest in their new-hires continued education in order to make them functional.

It may seem from the description that given time and money investment, bootcamp might seem like the obvious option as long as it's coupled with continued study and experience on the behalf of the individual. That may be true for some cases, but there are limits.

There are some companies like Google and Microsoft that won't even look at you if don't have a CS degree. If you're intention is to work for one of the big companies, chances are non-traditional paths to a career in programming will count you out.

Regardless of how you get into programming, the important thing is that you create a plan to continue your education through your job experience and personal study. Having a beginners mindset, being willing and flexible for change and new technologies, and broadening and deepening your skill set will serve you well. No programmer should ever think that they've arrived or that they are beyond improvement.

As part of my experience here, I will be creating a post boot camp graduation self-development plan that I intend to implement in my spare time to hit the ground running.

Monday, June 16, 2014

Evaluating Individuals with Software

If we understand that 88% of exceptional companies all have the dual characteristics of great execution and great environment for the employees, it becomes our task to figure out how to do both. As with other forms of employee optimization software, software that focuses on improving the environment of the workplace to make it more desirable requires data. After all, employee culture depends a great deal on the nature of the business they belong to and therefore naturally differs from business to business and department to department and even from one individual to the next.

The task of responding to the needs of your employees as a whole is a difficult one, let alone the needs of the individuals. And yet it doesn't take much in the way of observation to see that people can be vastly different in their perspectives or talents in the workplace. Public accolades and recognition may do fine for most of your employees, but there will likely be a few that would prefer monetary compensation or private expressions of gratitude rather than having their name in lights. You'll notice that some are motivated by group participation and participating to the collective goal while others will be more inclined to perform at their peak based solely on their own interests.

You may have also noticed that they will bring something different to their respectively positions. Some may assist in proceduralizing and regulating their department or work flow to ensure consistency and efficient logistical management. Others will bring a creative or innovative approach to getting the job done that has not been previously considered. Still others will be great at creating a harmonious conflict free environments or be capable of seizing opportunities others don't even recognize to advance the immediate position of the company of their department.

It's easy to view these differences as 'wrong' or 'inappropriate'. Managers will attempt to engage in a pygmalion project wherein they attempt to fashion their employees in their own image, rather than appreciating them for the respective strengths. Not only will you drive employees away by doing this, but you'll miss out on diverse talents that will add richness to your work ecosystem, and at the very least cause your employees to disengage.

But knowing how to respond to, motivate, or use the strengths of others can be an art in an of itself.  It is possible, particularly with the aid of employee management software that includes a method for discovering, storing, and using such information to engage and motivate employees to excel all while avoiding the inherent pitfalls.

At the core of such software would be a system of psychological profiling known as temperament theory. Temperament Theory attempts to get at the core of how the brain operates on a level that is inherited. It is at this level that we can understand motivations by looking at the four neuro-chemical profiles that people fit into.

In my next post I'll go over the four Temperaments and how software can be used to identify and manage each group.



Saturday, June 7, 2014

2 Technologies That Will Make Your Company Exceptional

Since the beginning of the personal computing revolution, the application of software to improve efficiency and powerful execution in business has been fundamental to its success. Starting with VisiCalc and moving onto the complex task management, work automation, and real time, networked reporting tools of today, SaaS model businesses have been heavily focused on increasing the productivity of individuals, departments, and leadership in business.

With the decline of our manufacturing base in the U.S., jobs have progressively shifted towards the service industry with SaaS being a main player. In reality, much of the prosperity of the United States over the last two or three decades is the result of this increased ability to simply get things done provided by computing.

Zenger-Folkman et al recently did a study evaluating qualities of exceptional companies. They looked at two primary factors:

  1.  Effective Execution: They attempted to look at the organizations ability to get things done effectively and quickly without waste, inefficiencies, or heavy bureaucratic impediments.
  2.  Positive Work Environment: They looked at job satisfaction rates, group harmony, whether the employees felt they were adequately compensated, and so on. Essentially all the things that would make a work environment enjoyable and harmonious.


They discovered that businesses that are great at effectively executing work have a 9% chance of being an exceptional company, while companies that are great at creating a positive work environment have a 4% chance of being exceptional. We would naturally expect that combining the ability to execute effectively and the existence of a positive work environment would give us the greatest chance of being exceptional. So what did Zenger-Folkman et all discover about companies that have both qualities?

Organizations that have both the ability to effectively execute and have a positive work environment have an 88% chance of being exceptional.

The whole truly is greater than the sum of its parts. In fact, given this data, that sounds like an understatement. I would submit that all organizational optimization fit into these two categories. 

As mentioned before, technology has primarily focused on creating effective execution, while the need for a positive work environment has largely been skipped over.  Don't get me wrong, a great deal of research, management training, and employee engagement software is deeply rooted in attempting to create a place where employees enjoy being. While there is plenty of information in the form of books, articles, seminars, webinars, consultancy and workshops, there are few, if any, actual tools that evaluate the core values, motivations, and particular Intelligence of the individual.

Just like in any effective execution improvement models, feedback is crucial to progress in creating a positive work environment and ultimately an exceptional company. This is where software comes into play. Simply gathering random feedback is not very helpful. A concise method for determining how and what information is gathered, what actions are taken to improve workplace environment based on ongoing feedback, and continual progress tracking would really be the meat and potatoes of such a system.

As an integral part of Positive Work Environment software, the understanding and documentation of the strengths, skills, and motivations of individuals within an organization would be a crucial part of how I imagine that type of system working to create an exceptional company.

In my next post I'll discuss the essential nature of understanding people, and how discovering and documenting your employees fundamental dispositions and temperament attributes can lead to great management; satisfied, creative, and productive employees; and organizational excellence.