WARNING! This article doesn’t have anything to do with cocos2d, and you will not learn any programming skills. It only describes why I came to work with cocos2d. It is a personal story, and I doubt that it will interest many. So continue at your own risk.
A while back I read a book called Good to Great. Normally I do not read business books. Even though Good to Great belongs in this genre, I found in it, an interesting insight. In order to be great as individual or company, the book says, you have to have a hedgehog concept. What is that? Here’s a quote from the book
Are you a hedgehog or a fox? In a famous essay ” The Hedgehog and the Fox,” Isaiah Berlin divided the world into hedgehogs and foxes, based upon an ancient Greek parable: “The fox knows many things, but the hedgehog knows one big thing. The fox is a cunning creature, able to devise a myriad of complex strategies for sneak attacks upon the hedgehog. Day in and day out, the fox circles around the hedgehog’s den, waiting for the perfect moment to pounce. Fast, sleek, beautiful, fleet of foot, and crafty- the fox looks like the sure winner. The hedgehog, on the other hand, is a dowdier creature, looking like a genetic mix-up between a porcupine and a small armadillo. He waddles along, going about his simple day, searching for lunch and taking care of his home.
The fox waits in cunning silence at the juncture in the trail. The hedgehog, minding his own business, wanders right into the path of the fox.
“Aha, I’ve got you now!” thinks the fox. He leaps out, bounding across the ground, lightning fast. The little hedgehog, sensing danger, looks up and thinks, “Here we go again. Will he ever learn?” Rolling up into a perfect little ball, the hedgehog becomes a sphere of sharp spikes, pointing outward in all directions. The fox, bounding toward his prey, sees the hedgehog defense and calls off the attack. Retreating back to the forest, the fox begins to calculate a new line of attack. Each day, some version of this battle between the hedgehog and the fox takes place, and despite the greater cunning of the fox, the hedgehog always wins.
Berlin extrapolated from this little parable to divide people into two basic groups: foxes and hedgehogs. Foxes pursue many ends,at the same time and see the complexity. They are “scattered or diffused, moving on many levels,” says Berlin, never integrating their thinking into one overall concept or unifying vision. Hedgehogs,on the other hand, simplify a complex world into a basic principle. It doesn’t matter how complex the world is, a hedgehog reduces all challenges and dilemmas to simple concept that unifies the world into an almost simplistic hedgehog idea. For a hedgehog, anything that does not somehow relate to the hedgehog idea holds no relevance.
What is a hedgehog concept and how do you get one? Another quote: Hedgehog Concept is a simple, crystalline concept that flows from deep understanding about the intersection of the following three circles:
1. What you can be the best in the world at (and, equally important, what you cannot be the best in the world at). This discerning standard goes far beyond core competence. Just because you possess a core competence doesn’t necessarily mean you can be the best in the world at it. Conversely, what you can be the best at might not even be something in which you are currently engaged.
2. What drives your economic engine. All the good-to-great companies attained piercing insight into how to most effectively generate sustained and robust cash flow and profitability. In particular, they discovered the single denominator- profit per x- that had the greatest impact on their economics.
3.What you are deeply passionate about. The good-to-great companies focused on those activities that ignited their passion. The idea here is not to stimulate passion but to discover what makes you passionate.
Is it easy to answer the three questions in these three circles? No it’s not. It is something that usually takes years, although for some people it happens in a moment of great awareness. Another quote
Despite its vital importance (or, rather, because of its vital importance), it would be a terrible mistake to thoughtlessly attempt to jump right to a Hedgehog Concept. You can’t just go off-site for two days, pull out a bunch of flip charts, do breakout discussions, and come up with a deep understanding. Well, you can do that, but you probably won’t get it right. It would be like Einstein saying, “I think it’s time to become a great scientist, so I’m going to go off to the Four Seasons this weekend, pull out the flip charts, and unlock the secrets of the universe.” Insight just doesn’t happen that way. It took Einstein ten years of groping through the fog to get the theory of special relativity,and he was a bright guy. It took about four years on average for the good-to-great companies to clarify their Hedgehog Concepts. Like scientific insight, a Hedgehog Concept simplifies a complex world and makes decisions much easier. But while it has crystalline clarity and elegant simplicity once you have it, getting the concept can be devilishly difficult and takes time. Recognize that getting a Hedgehog Concept is an inherently iterative process, not an event.
Those three quotes is what got me thinking. So the nirvana, is having a hedgehog concept. Exactly what is a hedgehog concept, and how can I get it? It reminded me of Sinichi Suzuki, a man I have admired for a long time. Are you familiar with Suzuki method for teaching children how to play violin and other instruments? Take a look at http://www.youtube.com/watch?v=u1dzQlCWLvY to see Suzuki in action. It is now a world famous method used all over the planet. But how did it happen? On day when Suzuki was 33 years old he made an observation. All Japanese children speak Japanese. Here’s a quote from his book Nurtured by Love.
Oh-why, Japanese children can all speak Japanese! The thought suddenly struck me with amazement. In fact, all children throughout the world speak their native tongues with utmost fluency. Any and every Japanese child – all speak Japanese without difficulty. Does that not show a startling talent? How, by what means, does this come about? I had to control an impulse to shout my joy over this discovery. .. But no one else I mentioned seemed the slightest bit impressed. .. At my excitement, half my listeners were startled, and the other half just thought me absurd. Nevertheless, my discovery actually had great significance; it made me realize that any child is able to display superior abilities if only the correct methods are used in training
From his observation Suzuki created a hedgehog concept which he pursued the rest of his life, with great success. What about the three circles?
1. What you can be the best in the world? Suzuki was excited because he saw that he could teach music using the mother-tounge method to develop the potential in children to a very high level. Few were doing this at the time of his revelation, so yes, he could become best in the world.
2. What drives your economic engine. Suzuki was not driven by money (even though he got money as a side effect), but rather by opening a world of beauty to young children, that they might have greater enjoyment in their lives, and develop their potential. As Suzuki says
Teaching music is not my main purpose. I want to make good citizens, noble human beings. If a child hears fine music from the day of his birth, and learns to play it himself, he develops sensitivity, discipline and endurance. He gets beautiful heart.
3. What you are deeply passionate about. Suzuki was passionate about music and developing the human potential, especially children’s. By developing his method and teaching it to children he could work with his passion full time.
Note that Suzuki’s mother-tounge observation excited him, but not other people. That’s because it had a relevance to his passion in life (music and helping children) together with his background (he was a violin student himself but gave up the studies when he realized that he could not become one of the great violinists). In fact had his passion and background been something else, he probably would not made the observation in the first place. I bet that if you took a close look at his life, a good proportion of it prepared him for making the crucial observation and then manifesting it in the world. Let’s try to formulate Suzuki’s hedgehog concept.
The mother tongue method is perfect for developing children’s potential in music. By mimicking that method we see the importance of the following:
An early start (can be used directly after birth)
The importance of listening to music
The importance of repetition
The importance of motivation
Learning to play before learning to read
The involvement of the parent
Social interaction with other children
A hedgehog concept is very simple to understand and implement, once you have it. But the process of getting to it is everything but simple.
This means that you, have to find your own hedgehog concept, that fits your passion, and your background. You can’t take other people’s hedgehog concept and put full time work at it for the next 70 years like Suzuki did (he lived 100 years). Only your own hedgehog concept will give you the required energy to carry on for decades of persistent joyful and at many times frustrating work.
So what is this hedgehog concept? Is it some kind of the meaning of your life?
No, not at all. According to the book a hedgehog concept is a simple, crystalline concept that flows from deep understanding about the intersection of the three circles:
1. What you can be the best in the world at.
2. What drives your “economic” engine.
3. What you are deeply passionate about.
Thus a hedgehog concept is just a simple model of some part of reality, that resonates within you. Having such a concept can turn you from a fox into a hedgehog. This helps you to channel all your energies on one goal, often without caring so much over the short term results and frustrations.
Mohandas Gandhi who had his revelation when he was thrown out of a train in South Africa, created his hedgehog concept of nonviolent resistance. Having his hedgehog concept transformed him from Mohandas, a second-rate lawyer, to Mahatma, the great spirit. Here’s a quote
He who is ever brooding over result, often loses nerve in the performance of his duty. He becomes impatient and then gives vent to anger and begins to do unworthy things; he jumps from action to action, never remaining faithful to any.
Is it important to find your own hedgehog concept? In a sense yes. Otherwise you might say as Eckart Tolle’s father did when he was 81 years old. He said “I feel that my life hasn’t started yet”. Without it you might live a good life, but not a great life. And the difference is huge.
OK, how do I find my own hedgehog concept?
Ah, that is THE QUESTION! As suggested by the book you find it by answering the three questions:
1. What you can be the best in the world at.
2. What drives your “economic” engine.
3. What you are deeply passionate about.
By looking at the questions it should be obvious, that you yourself must answer these questions. I certainly can’t because I do not know what you are deeply passionate about and what you are good at, and what drives your “economics”. Economics in this context should be understood as that which you value the most. It could be money, but might as well be recognition, health, self development, helping others, understanding how something works, bringing something unique into this world, and so on.
Even though I can’t help you find your hedgehog concept, I will take a journey into finding my own. This might give you some clues. In order to answer the three questions I must get to know myself. What’s the best way to do that? Looking at Amazon I came upon this book: “Do More Great Work: Stop the Busywork. Start the Work That Matters.”, by Michael Bungay Stainer. It looked like a decent book, 92% 5-star reviews and 8% 4-star reviews . It has 15 exercises to help you find out what great work means to you. So, I worked with these exercises and gained some insights.
In one of the exercises Stainer asks the reader to think back and remember three or four peek moments over the course of ones life. You might consider writing about your own peak moments. As you will see, they tell a lot about you, and they help you to answer the three questions.
1. Mental Rehearsal.
In in Elementary School, I had the highest marks in Mathematics. The other students always said that I would be a Mathematics Professor. When I was in high school, I continued with highest marks in Mathematics, Physics and Chemistry, but not when it came to soft subjects like civics, religion, philosophy and history. There was one girl who had higher marks on the tests in those subjects. I didn’t know why, because I was sure to have prepared for longer time. She knew something I didn’t, of that I was sure. I thought about it for the first year, but to no avail. In the second year the same thing. But in the third year I had an idea. When I was preparing I used to write down the important things on the paper. I observed that it took a long time. So instead I changed tactics. I opened one page in the book, observed the important points, closed the page and tried to render the points mentally. Some I managed, but not others. Then I opened the page again, looked at those that I didn’t manage, closed the book, and tried once more. I kept at it until I could render all the important points on a page. Then I continued to the next page. This was a much faster way then trying to write down things. It was much harder work, but in short time an incredible amount could be learned. From that day on, I had the highest grade in soft subjects to. I felt good about myself, as much for beating the girl and getting the high grades, as for inventing an efficient learning method.
2. Fermat’s Little Theorem
One winter when I was 18 years old, I read a book called “Men of Mathematics” by E.T. Bell. In one chapter he mentions Fermat’s little theorem. Any number n raised to the power of any prime number p minus the number n itself is always divisible by p. In other words p divides n^p – n. For instance 3 divides 4^3-4=60. Bell said that any person that can prove the theorem in one month or less, is destined to be a mathematician. I took upon me to prove it, and after much frustration I succeeded after one week. The decisive observation was that n^p can be written as ((n-1)+1)^p and then I could easily prove it using the binomial theorem and induction. I was rather pleased with myself.
3. Hand Terminal
My first job after graduating was at Satt Control, a company of about 300 employees, that made control systems for the industry. The guy whose been responsible for the control system of autoclaves was leaving and I took over his maintenance. The programming was done with in assembler. I was also to embark on a new project, a control system for Sandvik and corresponding info gathering system. But just as the project started one of the customers for autoclaves said that there was some strange behavior with the hand terminal. Hand terminal was a device that you could connect to the control systems of autoclaves. The peculiar behavior only happened once a week or so, and it seemed that the hand terminal sent wrong signals at those times. I’ve looked at the program and after the three days I came to conclusion that the program was not to blame, but it must have something to do with the hardware. My boss came to see why I wasn’t attending the new project, and when I told him, he promised to help me, since I was a new employee. But after spending a couple of hours he saw that the problem was much tougher then he anticipated and left me to work it out on my own. I managed to borrow a logic analyzer and after measuring with it for two days, I saw that the problem was due to a “smart” hardware design that used one wire for two different signals, and sometimes especially when the hand terminal got heated the signals collided causing the problem. The solution was simple. I just added a software delay between the two signals and the problem was solved. I then got involved with the new project and forgot the hand terminal. Much later I learned that the hand terminal was not just used for the control system of the autoclaves, but for all control systems of the company and that the problem with the hand terminal has been known for years but that nobody was able to solve it.
4. Sandvik
After finishing the hand terminal project I started the Sandvik project. My job was to program the main computer. It was connected to a bunch of control systems and gathered data. As I looked at my task, I identified the communication with the control systems as the bottleneck. I started by doing small dummy projects where I learned ins and outs of how the communication worked. When I was satisfied, I turned into programming the information system itself, and it was much easier work. However I continued to do small dummy projects where I tested each difficulty in separation. When the delivery day came, I not only hoped that my program would work, I knew that it would work. The installation was a breeze and I returned home to a new project. After a couple of months my contact person from Sandvik called and said that there was a problem with my program. I knew that he was an amateur programmer so I asked him if he had changed anything in my program. He assured me that it wasn’t the case. After looking for a couple of hours at my program and trying to match it against the problem description, I came to conclusion that my program should work. I phoned to my contact person and asked ask him again, this time with a determined voice, if he had changed anything. “Well I have in one place”, he confessed, “but that can’t have these consequences”. Of course it did have those consequences and when we installed my old program everything worked as it should. And the program did work for several years, without me having to change anything since delivery. I am still proud of it.
Now Stainer asks us to look at the stories and try to find emerging themes. Here are some themes I found:
- I was working alone. Very focused and self reliant.
- I was solving tough problems. It was often painful frustrating work, but I was determined to solve them.
- I worked in a methodical and systematic manner.
- I tried to understand the core of the problem, and went often back to fundamentals.
- I did not jump over difficulties.
These themes, did surprise me. I did not think that it would involve tough problems and frustrating work. I also didn’t expect that working alone was my cup of tea. But that is what the themes say, and if I’m about to find my hedgehog concept, I must take them into account.
1. In the next exercise, Stainer wants us to describe how we are at our best. The first step is to list 20 words that describe us when we are doing great work. I came up with the following list
strategic, continuously improving by small steps, in control, committed, systematic,
thorough, determined, focused, self reliant, analyzing,
making sense of, alone, frustrated, logical, excited,
unstoppable, creative, energetic, well prepared, in flow
2. In the second step Stainer asks us to narrowed down this list to just 10 words that best describe us when we are in the flow. I narrowed the list to
continuously improving by small steps, systematic, thorough, focused, self reliant,
analyzing, making sense of, alone, frustrated, logical, energetic
3. In the third step Stainer asks us to contrast our words with the OK-but-not-great behavior that you recognize to be true about yourself when you’re not at your best. My list now looks as
AT MY BEST, I’M THIS, NOT THAT
continuously improving by small steps, not being chronically impatient.
systematic, not disorganized.
thorough, not being satisfied with understanding just a part of it.
focused, not multitasking.
self reliant, not looking for unmotivated help.
analyzing, not shooting from the hip hoping for the best.
making sense of the problem, seeing the solution in a glance, not immediately jumping off to extinguish the next fire.
alone, not in a senseless meeting.
frustrated, not paralyzed.
logical, not irrational.
energetic, not tired.
Your hedgehog concept must allow you to be mostly in the I’M THIS column and prevent you from being in the NOT THAT column.
I’ll leave the exercises in “Do More Great Work” for the moment and talk about question three; What you are deeply passionate about? In 1918, when Einstein was 39 years old he gave a talk at the Physical Society in Berlin.
In the temple of science are many mansions, and various indeed are they that dwell therein and the motives that have led them thither. Many take to science out of a joyful sense of superior intellectual power; science is their own special sport to which they look for vivid experience and the satisfaction of ambition; many others are to be found in the temple who have offered the products of their brains on this altar for purely utilitarian purposes. Were an angel of the Lord to come and drive all the people belonging to these two categories out of the temple, the assemblage would be seriously depleted, but there would still be some men, of both present and past times, left inside…
I am quite aware that we have just now lightheartedly expelled in imagination many excellent men who are largely, perhaps chiefly, responsible for the buildings of the temple of science; and in many cases our angel would find it a pretty ticklish job to decide. But of one thing I feel sure: if the types we have just expelled were the only types there were, the temple would never have come to be, any more than a forest can grow which consists of nothing but creepers. For these people any sphere of human activity will do, if it comes to a point; whether they become engineers, officers, tradesmen, or scientists depends on circumstances.
Now let us have another look at those who have found favor with the angel. Most of them are somewhat odd, uncommunicative, solitary fellows, really less like each other, in spite of these common characteristics, than the hosts of the rejected. What has brought them to the temple? That is a difficult question and no single answer will cover it.
The state of mind which enables a man to do work of this kind is akin to that of the religious worshiper or the lover; the daily effort comes from no deliberate intention or program, but straight from the heart.
One of the strongest motives that lead men to art and science is escape from everyday life with its painful crudity and hopeless dreariness, from the fetters of one’s own ever-shifting desires. A finely tempered nature longs to escape from the personal life into the world of objective perception and thought. With this negative motive goes a positive one. Man seeks to form for himself, in whatever manner is suitable for him, a simplified and lucid image of the world, and so to overcome the world of experience by striving to replace it to some extent by this image. This is what the painter does, and the poet, the speculative philosopher, the natural scientist, each in his own way. Into this image and its formation, he places the center of gravity of his emotional life, in order to attain the peace and serenity that he cannot find within the narrow confines of swirling personal experience.
The supreme task of the physicist is to arrive at those universal elementary laws from which the cosmos can be built up by pure deduction. There is no logical path to these laws; only intuition, resting on sympathetic understanding of experience, can reach them. In this methodological uncertainty, one might suppose that there were any number of possible systems of theoretical physics all equally well justified; and this opinion is no doubt correct, theoretically. But the development of physics has shown that at any given moment, out of all conceivable constructions, a single one has always proved itself decidedly superior to all the rest.
In this quote Einstein talks of passion, when he says “The state of mind which enables a man to do work of this kind is akin to that of the religious worshiper or the lover; the daily effort comes from no deliberate intention or program, but straight from the heart.” Passion, is not to show off, nor is it to make money.
So, take a look at the work you are doing now, or the work that you have in mind, and ask yourself what the reason is for doing it. If the reason is to show your supremacy, or for making money or good living or some other utilitarian purpose, then know that this is not your true passion. Gandhi’s and Suzuki’s reasons were none of those things. But if the reason is passion, then it resonates in your whole being, and as Einstein says, it comes straight from the heart.
Going back to to the exercises in “Do More Great Work”. In this exercise Stainer ask us to list the people we admire and their characteristics . With this exercise we can tap the power of role models. In fact the people we admire will more then anything, reveal our true passion. Here are my heroes
Einstein, Gandhi, Polya, Suzuki, Pirsig, Tolle, Buddha, Jesus, Gauss, Euler, Newton, Leibnitz, Feynman, Dale Carnegie, Bettger, Franklin, Poincare, Campbell, Steve Jobs, Alan Kay, Bill Atkinson, Knuth, Mother Theresa
I found it interesting to classify them:
Mathematics and Physics: Einstein, Polya, Euler, Newton, Leibnitz, Feynman, Poincare
Spirituality: Gandhi, Tolle, Buddha, Jesus, Campbell, Mother Theresa
Computers and Programming: Steve Jobs, Alan Kay, Bill Atkinson, Knuth
Self Development: Suzuki, Dale Carnegie, Bettger, Franklin
Writing: Pirsig
Just from this list I can see that my 4 great interests are Mathematics, Spirituality, Programming and Self Development.
Now Stainer asks us to pick 5 names that we admire most and to list 4 characteristics of each. My list is
Polya: Masterful teacher. Getting the students to discover for themselves. The best problem collection ever in Mathematics. Exposes the inner thinking patterns of a mathematician and in fact of any rational thinker. Penetrating thoughts.
Gauss: Great experimenter in mathematics, letting the facts lead to discovery. Studying the masters. Working long hours. Seeing the core problem. Deep thoughts.
Jobs: Never giving up. Sleighing more dragons then one can count. Seeing deep, insightful thoughts. Master in marketing.
Suzuki: Patient. Kaizen long before Deming. Helping children. Long term commitment.
Gandhi: Keeping promises to himself. Never giving up. Being the change that he wants to see. Proactive instead of responsive. Patient, having faith in the goodness of people and the world. SImple but powerful thoughts.
Einstein: Seeing deep, powerful thoughts. Getting rid of superfluous concepts. Seeing the human condition clearly. Not afraid to think big.
What are the recurring themes here?
Problem solving. Simple, powerful and insightful thoughts. Understanding the core of the problem. Seeing both the problem and its solution clearly. Experiments and raw facts, no respect for authority. Discovery and thinking to a deep level. Patience and long term commitment. Command over one self, never giving up. Proactive, not afraid of thinking big. These are the characteristics, that I admire and would like to have.
I’ll now turn my attention to the first question: What you can be the best in the world at?
Although we might be good at many things, we should only seek what we are good at within our passion. Since my passion is the four areas mathematics, programming, spirituality and self development, I must look at what I’m good at within those areas.
Spirituality: I’m not especially good here. Not in action and not in teaching it to others. So although I have a passion for spirituality, I can’t be best within this area.
Self-development: I’m rather good in following the self development goals I set up for myself. When it comes to explaining them to others, I’m sometimes successful, but most often not. Although I think that I can be good in the area of self-development I don’t think I can be best at it.
Mathematics: I have a natural gift for mathematics and it comes easy to me. I could have been best within a small area of Mathematics, had I followed the call for it in my youth. Now I very much doubt that I can be best within some area of mathematical research.
Programming: Although I do not have a natural gift for programming, as I do for mathematics, there are a couple of things that work in favor of it. There are a lot of problems and challenges in programming, and you get feedback from the computer almost immediately. I love to connect to the Internet, and when it comes to programming there is a lot of information. Programming is such a huge unexplored area that there is plenty of room for finding your own niche. If I find the right niche, there is a good chance I could be best at it.
One warning. When you evaluate different alternatives, don’t let the two sins (fame and money) bias your evaluation. If you think that your choice will bring you recognition or fame of some sorts, then your choice has been biased, by the first sin. If you think that your choice will bring you money, then your choice has been biased, by the second sin.
I decided to find my hedgehog concept within the area of programming. The niche I’m looking for must be confined to Mac. I have never been interested in PC, but always in Mac. So the programming must be for the Mac, iPhone, iPad, etc.
Learning material: All programs I have created on my own initiative have been aimed for helping people learn. My focus is not speed or entertainment, although I look for elements within games that can be reused in learning material. The end goal is effective learning. I will use the work of Piaget and Bruner and Kay, as theoretical foundation. A quote from Alan Kay: The actual dawn of user interface design first happened when computer designers finally noticed, not just that end users had functioning minds, but that a better understanding of how those minds worked would completely shift the paradigm of interaction.
Subject matter: The subjects are somewhat flexible, but these come immediately to mind: mathematics, physics, programming, language learning and writing.
OK, I have now my general direction, but it’s too early to form a hedgehog concept. However I must take some concrete steps, in order to be able to form a better view of the situation. I know I will use Apples developer tools and maybe some third party tools. Even though I do not need the speed of a game, I do need 2D animations. Since I’m uncertain in this area, I will have to look around what is available. I have heard about these technologies:
Core Animation: You provide the original and final states of an object, and Core Animation creates in-betweens. Mixing the standard GUI components of an existing Cocoa application, with Core Animation is simple.
Quartz2d (aka Core Graphics): Drawing takes place using a Cartesian coordinate system, where text, vectors, or bitmap images are placed. However, drawing output is not sent directly to the output device. Quartz 2D uses something called a graphics contexts. The beauty of a graphics context is that each graphics context defines how the drawing should be presented: in a window, sent to a printer, an OpenGL layer, or off-screen. For example, the same graphics commands can be use by a window context that rasterizes an object to 72 dpi, while a printing context rasterizes the same object to 2400 dpi.
OpenGL (Open Graphics Library) is a standard specification defining a cross-language, cross-platform API for writing applications that produce 3D (and 2D) computer graphics. OpenGL is a low-level, procedural API, and hard to program, but gives top performance, due to it working directly with the graphics card.
Cocos2D for iPhone. A 2d game engine written in Objective C, for iPhone (and also Mac) that’s fast, open source, fairly easy to use and free. It is an in-between between your program and openGL. It gives you the power of openGL without having to learn the tedious low level stuff.
After some reading and some experiments I decided that cocos2d was the road to choose.
It’s time to turn pro. What does that mean? When I was in high school my English teacher always looked up English words she didn’t know, no matter what circumstances she was in. Even at a party, if she heard a new English word she didn’t know, she looked it up immediately in a dictionary. She was a pro.
When working with computers or any other undertaking that you take seriously, if you care enough you will look up any new concept that comes your way. No matter how pressured and stressed you are. And even if you don’t come to understand the concept after a serous effort, you’ll make a note that this issue was not resolved, and you will look at every opportunity that comes your way to finally resolve it. Speed is not the final goal, understanding is. Why? It is well known in software engineering, that the later you catch a bug, the more penalty you have to pay. In fact penalty grows exponentially! It is the same with understanding .
When I was at University, there was a guy called Anders, who had the highest grades in all subjects. He was exceptional, and I thought it was because he was very gifted. One day I sat next to him, when doing the exercises. The teacher had written on the blackboard the exercises we were supposed to do. As I stumbled on a particularly hard problem, I looked to see how Anders was doing. To my surprise he wasn’t doing the exercise that the teacher had written on the blackboard, but another exercise. But, we are not supposed to do that exercise, I said to him. Ah, he answered, I don’t care what the teacher writes, I always do all the exercises. That was a pro! Did he put in more time then the rest of us? Yes, but only initially. In due time his strategy paid off, and he could have higher grades, by putting in the same amount of time and effort.
What do you do after you’ve solved a particular problem? You go on to next? No, if you’re a pro, you analyze your solution and make an analogue of an “exploded drawing, which by the way, was invented in the Renaissance, by Leonardo da Vinci.
Just like an exploded drawing shows the assembly parts and how they fit together, so must you analyze the parts of your solution and how they fit together. Especially important is to pay attention to the main difficulty of the problem and the gotchas. You must move the parts around until they make sense, so that you can picture the whole solution at a glance.
The second question is: What drives your “economic” engine?
This is different for different people. It is the thing that you value most. It could be money, respect, love, health, and so on. When you are working with your hedgehog concept, this is the thing that you want the process to generate. Although many things are good and valuable, usually one or two are more valuable than the rest. This is the things that you want to maximize. In my case it is insight and flow. When I solve a difficult problem I’m often in flow and when I have solved it I get insight and understanding. By analyzing the solution, making “explode drawing” of it, I get still deeper understanding, which I can use to tackle even more difficult problems.
How long time will you have to work at your hedgehog concept until something exceptional comes into being? Hard to tell, but ten years or so is a good guess. And what’s the way to achieve it? By, not being exceptional in your daily work! Trying to be exceptional, is a sure way to failure and misery. As Lyndon Duke says: Always make the difference you can make, not the difference you would prefer to make but can’t.
In my case I started to learn and use Mac development tools. Each day I learn and create something new, but not more than I can master. I’m perfectly satisfied with little gains. Mohandas said: Almost everything you do will seem insignificant, but it is important that you do it.
The real challenge is to do these insignificant things for the next ten years. If you can do it, there’s nothing in the world that can stop you from creating something exceptional. A quote from Shinichi:
“If he or she really goes about it in earnest, anyone can cultivate ability in ten years, I believe. Even in one year, shortcomings can be changed into good points if only we set our aims high enough. Continuing for ten years, we can become outstanding indeed…There is no limit to our shortcomings. Until we die, we should spare no time or effort in changing our weaknesses to merits. To do so can be pleasant and interesting. We can become like the horse that starts last and yet outruns the field, reaching the wire first; it is the same fun.”
and one from Albert: “It’s not that I’m so smart , it’s just that I stay with problems longer.”
So, you should work hard for ten years in order to enjoy the fruits of your effort? No, not at all. Becoming successful is everything, being successful is nothing. It’s the day to day activity, during those ten years that are the real joy. Being successful in the meaning getting recognition, praise, money and so on is nothing. It’s the growing, with all its frustrations, that’s fun. Being big is boring (and dangerous to your physical and mental health).
I couldn’t quite put my fascination with programming into words, until I read the following quote from Buckminster Fuller: “Every time man makes a new experiment he always learns more. He cannot learn less. He may learn that what he thought was true was not true. By the elimination of a false premise, his basic capital wealth…”. To program, more than any other endeavor, is to make new experiments, all the time, which means learning all the time.
Even though I do not yet know my hedgehog concept, I know where to start. I will make a series of cocos2d tutorials. It will help other people, including me, and it will give me a way to express my fascination with learning and programming.
I want to end with a quote from Byron Katie: “There is something better then heaven… it is the eternal.. creative mind… It cannot stop for time or space or even joy. It is so brilliant it will shake what’s left of you into depths of all consuming ecstasy… “.
Thank you for reading.
Great work and great mind.
Your composing reminds me of forgotten passion and attitude about life.
Thanks.
Impressive, I can see why your tutorials are such a pleasure to read!
great guy…proud of you…
You really are a great man!
Not unless all of us are.
Amazing story Bob! Really enjoyed reading every sentence.
Thank you Bob for such wonderful tutorials.
I’m 37 and working in the telecommunications industry. For the last several years, I’ve been coming back to the programming that I loved so much in college. Your videos and your story are a great help in my path to happiness and stability outside of my current job. With your help and many others, I WILL find myself in the future sitting at home, sipping my coffee, and creating apps that will make me and others happy.
Thank you, thank you, thank you!!!!
Wonderfully written, rich account of the many facets of ourselves and experiences that bring us forward in life. A beautiful mix of insights and tools, thank you!
thank you so much!!! reading these thing make my life new!!!
Pingback: 2011 - A Look Back - Hits and Misses
Thank you for your wonderful tutorials and this very inspiring story. Your lessons have played an essential role in helping me discover my hedgehog concept, which is math games designed for children. I am proud to have just launched my first app, and it is something I would have thought impossible just one year ago. Reading these comments, it is obvious that your generosity and goodwill are making a difference in this world. Many, many thanks. If you ever find yourself in Boise, Idaho, I owe you a drink!
Hi Bob,
I have been following your tutorials on Youtube for sometime now. I just wanted to say thank you so much for your tutorials and sharing your knowledge and time with us.
Your efforts do not go unnoticed and are greatly appreciated.
Cheers.
I just love these tutorials! By far the best!
One Again Thank you for the amazing tutorials!
I think easily the best on the web! and thats after looking for quite a while.
Best wishes from a Kiwi living in Switzerland
Well put Bob. Having already founded and grown a software company; I am on to my second one business. I too have fell in love with iOS programming and have had some success with my first one and now I am falling in love with Cocos2d. I am looking to use it to create intuitive, interactive learning apps. Love your tutorials – thanks Sal
Once again, thanks for your great tutorials, thanks for sharing your story that greatly inspired me to become a better programmer!
That’s a very good story Bob! keep up the good work, I’m amazed with your story.
Thank you for the tutorials its a big help to me as a beginner.
I’m a student from Philippines and I’m doing programming on iPhone for my final project.
Bob, what can I say!? Other than thanks for the great Tutorials. I’m a freelance Programmer working on Mobile Technology (iPhone mainly), I often scan around looking to see if I’m doing things right or whether thare’s a better way of dong something etc.. when I stumbled onto your Blog. Your tutorials are fantastic, well described and done at a classroom pace. What also makes your tutorials worth the watch, is your passion for your subject matter and your knowledge in the field. You’re a natural! Keep up the good work my friend
I’m impressed with u Bob, thx again for all your work and your passion to teach people like me :p.
wishes from Spain
Just amazing!
Thank you for this inspirational story! I haven’t yet either found my hedgehog project, but I am learning Cocos2D for much the same reasons as you! I have been programming for many years on the windows platform, and am ready to cut back on my dayjob and switch to iphone/ipad/mac programming, learn new things with renewed passion.
Thank you for the tutorials too, they are great! And I love your accent. Norwegian? I currently live in Australia, but been living in Norway for most of my life.
Best wishes from Sydney!