Most of us are Programmers Today Because

Clean Coder: A code of conduct by Professional Programmers  by Robert C. Martin

Bob talks about the responsibility and the honor of being a professional programmer. A few gems:

Professionals spend time caring for their profession (making a case for spending time on improving your skills)

Professionalism is a loaded term. Certainly it is a badge of honor and pride, but it is also a marker of responsibility and accountability.

Most of us are programmers today because we got something to work once and we want that feeling again.

Treat software the sculptor treats clay – continuously shape and mold it.

Bob feels that you should know a sizable chunk of your field, if you want to be a professional:

Do you know what a Nassi-Schneiderman chart is? If not, why not? Do you know the difference between a Mealy and a Moore state machine? You should.  Could you write a quicksort without looking it up? Do you know what the term “Transform Analysis” means? Could you perform a functional decomposition
with Data Flow Diagrams? What does the term “Tramp Data” mean? Have you heard the term “Conascence”? What is a Parnas Table?

A wealth of ideas, disciplines, techniques, tools, and terminologies decorate the last fifty years of our field. How much of this do you know? If you want to be a professional, you should know a sizable chunk of it and constantly be increasing the size of that chunk.

Except for Nassi-Scneiderman and Data Flow Diagrams, I had to look up most of the others – kind of a rude awakening of being out of touch.

Meta:

I stumbled into this book when I was reading a blog post on “Code Like a Chef”. This book was one of the suggested readings. I just got started.

Going Gaga Over Tablets

I had a nephew, who at a young age, could give out phenomenal stats on cricket. He would rattle cricket facts off at a fast clip, and required little encouragement from us.  It was his immense interest in a sport that got him to go and acquire all that knowledge. When he was doing his act, he was in his zone.

There is an interesting pattern. I have found similar knowledge about video games, mobile games, music, spelling, science facts and trivia in kids. How do they get so much knowledge while getting them to study their subjects, is such a challenge?

We pick things that interest us and go into a deep dive. We work hard without even realizing that we do. That is why we find college students who are great hackers but get poor grades. It is nothing to do with their intelligence or abilities. It has to do with their interest and where they like to spend their time. I think it is a good thing.

We spent some time with 5th and 7th graders and we found them to be gadget lovers. In our sessions when any one pulled out a smart phone, the kids were all over them. They pick it up from you, figure out how to use the camera, find games in a jiffy. I even had 5 year old changing the wall paper on my mobile and a 12 year old trying to record an interview using the microphone.  I have heard stories from a friend whose 3 year old was willing to swap dad’s big phone for his small phone (ipad for iphone).

This gadget love, seems to be a universal phenomenon. Here  is an infographic on how kids go ga-ga over tablets. Why am I not surprised?

A Few Thoughts Provoked by an Article on Online Learning

I was a little surprised to see the tone of this article on Online Education, especially the title.

Commodified, one-size-fits-all education is indeed a solution to many problems, including crushingly high tuition, college selectivity, state budget problems and the mania for credentialing. Unfortunately, it is not a solution to the major problem facing America today: teaching people how to think for themselves.

This article is worth a read because it raises a few questions about the effectiveness of online learning. I have mixed feeling about online learning both as a student and a teacher.  Here are some obvious differences between online and class room (face-to-face) based training.

  • Online courses are scalable. Classroom based courses are not. While a Coursera or Udacity course can train hundreds of thousands of students (across the world) , a class room cannot handle even a fraction of those.
  • Because of the very nature and size of these online classes, it is difficult to provide a good interaction model in online training. Online training is not interactive in the same sense of classroom based lectures. In a classroom if you ask a question, the teacher can try to give you an answer in a different way or with a different example. That is difficult to do with online lectures. (It is, however, possible to take questions through chat rooms and email and have a bank of teaching assistants answer them).
  • Online training is self-paced. Some students can learn faster and others can learn slower. In a face-to-face classroom this would be difficult to handle. You need to carry the students with you. The pace may be too fast for some students and slow for others.

So what are our choices? Let us assume that we do need to educate a large number of people. There seem to be currently over 50 million teachers around the world over a billion students – according to Wolfram Alpha.

So how can we solve this problem?  There may some approaches that may work. I am not an educator or work for government. So my thoughts may be just based on some common sense reasoning.

1. Blended learning may solve part of the problem.

2. Students as teachers may solve another part of the problem

3. Peer based learning may work to some extent expanding the pool of teachers and altering the teacher/student ratio.

4. Students from higher classes teaching students from lower classes may work (for example high school students teaching middle or elementary school students). We are experimenting with a model where some of the college students can teach school students on week ends. While a limited approach, in its current mode, with a few changes it can be made more effective.

5. Self-learning may be one of the most scalable models. In this model, you teach students fairly early how to learn on their own and then shift the role of a teacher to a guide. This may not work with very young students but will certainly work with older students.

In the end, we may need to modify how we educate – the model, the duration and the content. I spent about 5 years in an engineering college learning over 30-40 subjects. I used none of them in my life. That was a one size fits all education.  The only thing that experience did for me was that I learned how to learn.

I am sure several educators are thinking about the problem from different view points. It will be interesting to find innovations in this space around the world.

Product Conclave – An Agenda That Will Blow Your Mind

I love the tag line. Product Conclave – for product folk, by product folk with product folk. First I thought it was a bit cheesy but thinking a bit about it, every bit of it is true. If you don’t believe me, take a look at this agenda (I shamelessly copied from the site).

Some of the Sessions to watch out for…

  • Techniques to get early adopters for Your Product
  • Scaling Up – How crowd-sourcing and co-creation are proving their worth
  • App Monetization: Show Me The Money. Session update…
  • Confluence of Mobile & Retail
  • The Need, Process and Impact of Pivoting!
  • Opportunities in Big Data & Internet of Things
  • Content Marketing – Is this weapon missing from your Marketing Arsenal?
  • Responsive Design For Web + Mobile Apps
  • How to build user experiences for non-technical users?
  • Doing It The Sri Sri Way: The Art of Hiring & Managing An Inside Sales Team – Mukund Mohan
  • “Don’t bombard your prospects, nurture them before they are ready to Buy!”
  • “When and How to Hire Your First Sales Lead……..and Mistakes to Avoid”
  • Putting together a investor pitch deck – what are the key ingredients?
  • Sizing the Indian Market

This is just a little peek. There is more coming.

I won’t miss this event. The thought of rubbing shoulders with all those product folks is kind of appealing .  Are you going to be there? If so check out  this site.

The Spirit of Free Inquiry

The ingenuity and inventiveness of the Chinese, which have given so much to mankind silk, tea, porcelain, paper, printing, and more would no doubt have enriched China further and probably brought it to the threshold of modern industry, had it not been for this stifling state control. It is the State that kills technological progress in China. Not only in the sense that it nips in the bud anything that goes against
or seems to go against its interests, but also by the customs implanted inexorably by the raison d’État. The atmosphere of routine, of traditionalism, and of immobility, which makes any innovation suspect, any
initiative that is not commanded and sanctioned in advance, is unfavorableto the spirit of free inquiry.
“Etienne Balazs (1968)1

from the document Policies and Institutions Underpinning Country Innovation: Results from the Innovation Capacity Index

The spirit of free enquiry – what does it take to cultivate it? Certainly something to mull over.

Neil Armstrong, An Inspiration

We (a few engineering students from CEG) sat huddled in N.Kumar’s house. I think there were four of us (Kumar, me, R.K. Viswanath and Visweswaran). We were listening to the radio broadcast on the first moon landing. There was a lot of static. We knew that there was a last minute glitch with the computer. There was a bit of confusion and then we heard the announcement of landing. It was one of the memorable moments in my life.

I can’t believe that Neil Armstrong is no more. Can’t believe that he was 82, either. How time passes!

He was described as “stoic, self-controlled, dedicated, earnest, hardworking and honest.”

His own description of himself would warm every nerd’s heart – “I am, and ever will be, a white-sock, pocket-protector, nerdy engineer.”

When I read the news, my mind went back to those times when a few of us used to sit and talk about NASA’s missions, science fiction and how engineers can change the world. I used to frequently visit USIS and borrow books about NASA and read about the missions.

Much later, after reading Norman Mailer’s “Of a Fire On the Moon”, I understood a lot more about that mission that changed the world.

His quote “That’s one small step for man; one giant leap for mankind” is a reflection of the culture at NASA. They continue to do amazing thing and make many giant leaps.  Neil’s mission to land on the moon was a big spark that ignited the whole world and inspired many countries to start space programs.

Neil Armstrong in the News.

A Prototype- Science Teacher Robot

One of the ideas we are discussing in a small group at KCG is to build a minimal prototype of a Science Teacher robot.

Here are some thoughts about the first iteration of the prototype:

  1. We will restrict the domain of discourse to Science.
  2. A student can ask simple questions like “Who is…”, “What is..”, “How does X work”
  3. The application will take voice input and may support English and one local language (initially Tamil)
  4. We will use Wikipedia as the knowledge base
  5. We will first build it as a tablet application but later may move to other platforms that support touch
  6. The output may be voice, images, video
  7. If students are comfortable and it works reasonably well, we may put it inside a more friendly humanoid robot

Something like this may already be there. Here is what I already know:

  1. With the Apple Siri and other similar competitive products in other platforms, we may not need this effort. But I will wait till I see APIs for these natural agents.
  2. We can move from the simple language to full natural language. We wanted to restrict the language to simple constructs to reduce the front end parsing and understanding the question.
  3. At a very simple level it is speech recognizer, question translator (into some canonical form), a look up in a  specially constructed knowledge base derived from Wikipedia, a speech synthesizer and display (if the output is other than text).
  4. Plan to look at Cyc and a couple of other similar technologies
  5. Plan to look at UIMA
  6. Plan to look at sources other than Wikipedia – YouTube, Vimeo, HowStuff Works and some Science books may be  some of the next set of sources.
  7. We need to build a higher level semantic layer on top of the sources. This may be simple LinkedData (as Debpedia does on top of Wikipedia)

Thoughts, questions, pointers and suggestions are welcome.

Steven Johnson – Where Good Ideas Come From

Some observations and good advice from Steven Johnson, the author of “Where Good Ideas Come From”:

most good ideas (whether they’re ideas for narrative structure, a particular twist in the argument, or a broader topic) come into our minds as hunches: small fragments of a larger idea, hints and intimations. Many of these ideas sit around for months or years before they coalesce into something useful, often by colliding with another hunch. (I wrote a chapter about this phenomenon in my last book, Where Good Ideas Come From.)

The problem with hunches is that it’s incredibly easy to forget them, precisely because they’re not fully-baked ideas. You’re reading an article, and a little spark of an idea pops into your head, but by the time you’ve finished the article, you’re checking your email, or responding to some urgent request from your colleague, and the next thing you know, you’ve forgotten the hunch for good.

I call mine Idea Log. Today, it is in Evernote but it was in several places including some blog posts, desktop wikis, documents and email messages to self. Steven describes the motivation for keeping this spark file.

the most interesting part of the experience, which is the feeling of reading through your own words describing new ideas as they are occurring to you for the first time.

There is nothing to match that feeling. It is also amazing to see how many others have had similar ideas and how some of them even turned them into successful products.

Links:

Where Good Ideas Come From – Videos

Where Good Ideas Come From Book

“Inspired” by Marty Cagan – How to Create Products Customers Love

This book is almost everything you wanted to know about building products. Not everything. Every essential thing. This book demystifies product discovery, opportunity assessment and how you can build great products. It covers the essence of a great product culture.

I just loved it.  Every product entrepreneur and product team should buy a copy. I think I will read mine several times. Thanks to Sriram (my son) for suggesting it.

Here are snippets from the book (I may have to do this as a series of posts). Let us start with a few.

It does not matter how good your engineering team is if they are not given something worthwhile to build.

It is not enough to do a good job engineering a product. At least as important is discovering a product that is valuable, usable and feasible.

There is a tremendous difference between how the best companies produced products and how most companies produced products.

Examples of opportunity assessments, product principles, product strategies, product roadmaps, product specs, prototypes, personas and prototype testing and tasks.

Is it Too Good to be True?

Some times when I hear a pitch for a product or service, I ask myself this question – Is this too good to be true?

Why does that happen? And why with only a few of the pitches? Thought about it a bit and I have a few hypotheses:

  1. When I hear the end result of what the product claims to do, I should like it. That is the first step. If it does not, I turn off my attention engine.
  2. If I like the concept, the critic in me, however, asks a few questions – Where is the evidence? Does this team seem capable? What kind of problems they may run into? Do I know enough about the Science to validate their claims?
  3. Pitches are hard. First you need to be clear in communication. Next you need to take the audience along with you – step by step. In each step, you reveal a bit and take them to the next step. One misstep and you lose the audience.
  4. You need to consider that your audience may be diverse. Some may look at the Science behind the product. Others the feasibility of your team implementing it. Others may look at the chances of it going from concept to reality. Almost every one will look at whether it solves a real pain and if it does, whether you have the capability to reach that market.
  5. The convincing pitches are those that remove this uncertainty. You have a working prototype and a few paying customers. Both these things, boost your chance in getting the attention of the audience.

So my advice to all those who pitch – treat the audience like students. Assume nothing and explain carefully how you are going to do what you claim to do. Wait for the questions, listen carefully and answer. It takes time to develop this skill so practice like hell.