Monday, July 30, 2012

Keep calm and stay cool



I have been thinking a while on of what could be the one attitude that would bring me far in life.


"Keep Calm and Stay Cool"


Don't get nervous, don't panic,  don't get stressed or don't let anybody make you angry.
How can we avoid all these emotions?
I believe that great movie directors and script writers have portrayed this character many times. Forget about the action heroes or the flying kung fu fighters. I mean characters that have flesh and bone. Paul Newman in COOL HAND LUKE,  Richard Gere in FIRST KNIGHT Simon Baker in THE MENTALIST. They all show calmness in the face of apocalypse.

Act, don't react!

Many times in uneasy situations we tend to react to the external stimuli.
Don't let the environment dictate your actions. You are not distracted by anything else than the task at hand. Even if you are in deep shit and everybody expects you to shit in your pants. You enter through the door and look calm. You don't have to look joyous or dull. There is something in between where there is no need to show any emotion, simply calm. Staying calm means keeping your life in your own hand. 

Stay calm and react cooly when stakes are high

It has been beautifully articulated in FIRST KNIGHT by the character of Sir Lancelot on how to win sword fights.

1. Study your opponent, so you know what he'll do before he does it.
2. Wait for the critical moment.
3. You can't care about your life.


Embracing the worst case scenario and not getting intimidated by it is the way to go. The one thing that makes you sweat and loose calmness is not the enemy but rather you fearing it is. Dictatorial governments use psychological terrors to intimidate the population and keep the ducks in line. The bullying boss, the abusive partner, the aggressive colleague, they are all afraid of the fearless you. The reason why Mahatma Gandhi was feared by the Mighty British Empire for his disobedience of non-sensical apartheid laws and his path of non-violence (SATYAGRAHA: insistence on truth) or to the sincere smile of His Holiness the Dalai lama by the Chinese government. The weapon these great men have is the conquest over themselves and there fears.

Fearless is not madness or carelessness. It is rather a logical step and a firmer stance to fight back. Leaving fear behind and focusing on the task at hand is the most reasonable action to take. Every tough concept can be broken down into smaller blocks and can be mastered. May we all burn a spark of courage and rise above the tiny fears in our life and have a cool hand like LUKE.





Friday, August 19, 2011

Success: a talk summary by Richard St. John on TED




















  • Success
    • Passion
      • Become driven by passion
      • Do it for love, not for money
    • Work
      • Work hard and enjoy doing it.
    • Focus
      • It all has to do with focusing yourself on one thing
    • Push
      • Yourself
        • Mentally
        • Physically
        • Through
          • Shyness
          • Self doubt
    • Persist
      • It is the No. 1 reason for our success
      • Through
        • Failure
        • CRAP
          • Criticism
          • Rejection
          • Assholes
          • Pressure
    • Ideas
      • Source of creativity & brilliant ideas
        • Listen to people
        • Observe
        • Be curious
        • Ask questions
        • Problem solving attitude
        • Make connections
        • Write it down
    • Serve
      • Others with something of value
    • Good
      • Continuous improvement
        • Practice
        • Practice
        • Practice

Friday, July 1, 2011

Personas of an eLearning System



1. Hans, A 60 year old, Professor that has no previous experience with eLearning platforms. Earlier used to prepare PDFs and upload to a CMS Server for students to download.

2. Jahn, 19 years old,Ist year student. He is very new to the idea of self motivated learning concept: university education. Previously used to strict school system of compulsary education.

3. Mathew, 22 years old, IIIrd year bachelor student of Computer Science. He is self motivated and understands that he has passion for writing elegant, fast, reusable and readable code.

4. Leonard, 30 years old, developer of the eLearning platform. He knows the limitations of the system, constantly tests the system for bugs and is responsible for bug fixing.

5. Laura, 33 years old, Interface & Usability designer of the system. She is keen on understanding how the system is used by students and professors alike. She constantly looks for ways to make the system easy to use.

6. Doris, 45 years old, She has recently enrolled her self into an Adult education program. She has 2 children and has been teaching for 20 years. She has now decided to invest in her own education. She has little experience with web applications and has never used an eLearning system. Her ignorance makes her afraid to use such system.

7. Peter, 50 years old, Manager of the eLearning development team. It was his brain child and mainly all the requirements are set by him.

8. Lorenz, 35 years old, System Administrator. He deals with managing the Database and administration of users on the System (Rights Management).

9. Nina, 22 years old, IInd year economics student. She is active on twitter and facebook. She feels comfortable with web based applications.

10. Albert, 45 years old. He is learning to be a Pilot. He is using the system to prepare himself for the pilot exams. He uses it for filling in the gaps in his knowledge. He does not follow any strict learning path but jumps around the relevant subjects.

11. Nadia, 50 years old. She works in the legal office. She heavily uses the system for referring to laws and amendments in the strict context. She wants fast answer to what she is looking for.

12. Maria, 25 years old. She is secretary at the Faculty of Computer Science. She deals with many unusual situations e.g. Professors and Students from different countries, different contracts and tax payments depending on the country of origin, etc. Every time she faces these unusual cases, it is logged into the system with its solution so that other secretaries can gain from the knowledge/experience.

13. Dr. Zanella, 49 years old, Head researcher at an Horticulture Institute. His group of researchers collect pictures of diseased fruits and vegetables, describing the symptoms and logs them into the system under a category. The system is shared among other researchers around the world. In the case of a solved case: a proven solution is found, the solution is posted below the case and flagged as solved. His focus is on social aspect and collaboration of others knowledge.

14. Minnie, 29 years old, English teacher. She is using it in a teachers training program. Her team intensively uses its communication channels: chats and forum for discussing the assignments and topics.

15. David, 30 years old, Software Engineer. He recently decided its time to learn Design Patterns. He would like to learn patterns that are currently relevant to problems faced at work. He wants to have a liberal learning path, choosing topics he decides to learn.

16. Suraj, 25 years old, Physics Student. He appreciates the hierarchical presentation of the concept where the nature of dependency is reflected in the course structure.
He enjoys that many mechanical parts of the physics problems are also interactive (flash/applet), so that the concepts gets very clear and the problems are easier to imagine.

Thursday, June 30, 2011

Concepts I want to Master


I would like to list here concepts, language specific usage of data structures, algorithms. I believe that to become a Master Craftsman, we need to have deep knowledge of the fundamentals. It is a beauty to arrive at a level where its a choice to see the forest or the tree and interchanging the two effortlessly. My objective is to log here the things I will be learning on my journey.



JavaScript
  • Memoization

Java
  • Concurrency

Python

Data Structures:

Algorithms:

Wednesday, June 29, 2011

Book review: Pragmatic Thinking and Learning

Cover Image For Pragmatic Thinking and Learning
Pragmatic Thinking and Learning: Refactor your wetware
by Andy Hunt 2008
ISBN-10: 1-934356-05-0


Finished Reading on: June 18, 2011

This book aims at a person who would like to excel in his craft. It explains the path one has to take to become a Master Craftsman. It uses Dreyfus Model for defining levels of skill acquisition.

It acknowledges the keys to becoming an expert through harnessing and applying your own experience, understanding context,and harnessing intuition.
In the path to become an expert, “You don’t just “know more” or gain skill. Instead, you experience fundamental differences in how you perceive the world, how you approach problem solving, and the mental models you form and use. How you go about acquiring new skills changes” as observed by Dreyfus Brothers

Novices -> Advanced Beginners ->Competent ->Proficient ->Expert
Novices need rules, should be given clear instructions to follow and provide problems as context free so that they don’t have to worry about the domain.

Advanced Beginners have difficulty troubleshooting. They don’t want the big picture but fast answers.

Competent practitioners can now develop conceptual models of the problem domain and work with those models effectively. They can troubleshoots problems on their own. They can begin to seek out and apply advice from experts and use it effectively. Their work is based more on
deliberate planning and past experience. They can mentor the novices and don’t annoy
the experts overly much.
The practitioners are still not ready to apply agile methods since they lack the ability for reflection and self correction.



Proficient practitioners need the big picture. Proficient practitioners make a major
breakthrough on the Dreyfus model: they can correct previous poor task performance.
They can reflect on how they’ve done and revise their approach to perform better the next time.
Up until this stage, that sort of self-improvement is simply not available. They can learn from experience of others. Along with the capacity to learn from others comes the ability to
understand and apply maxims, which are proverbial, fundamental truths that can be applied to the situation at hand. Maxims are not recipes; they have to be applied within a certain context.
They can apply effectively the software patterns at this level.

Expert source of information and knowledge in the field. Constantly looking for better methods and ways of doing things. Experts work from intuition, not from reason. Although experts can be amazingly intuitive—to the point that it looks like magic to the rest of us—they may be completely inarticulate as to how they arrived at a conclusion. They genuinely don’t know; it just “felt right.”
The expert knows the difference between irrelevant details and the very important details and is very good at targeted, focused pattern matching.

The book warns against second-order incompetence that is, the condition of being unskilled and unaware of it. Better self assessment comes along with knowledge, hence once you truly become an expert, you become painfully aware of just
how little you really know. The sad fact of skill distribution is that many people remain all their lives as advanced beginner “performing the tasks they need and learning new tasks as the need arises but never acquiring a more broad-based, conceptual understanding of the task environment.”

Deliberate practice for 10 years into learning a craft will make you a Master craftsman in your field. Deliberate practice, according to noted cognitive scientist Dr. K. Anderson
Ericsson, requires four conditions:
• You need a well-defined task.
• The task needs to be appropriately difficult—challenging but doable.
• The environment needs to supply informative feedback that you can act on.
• It should also provide opportunities for repetition and correction of errors.

Capture your ideas: Every body has great ideas, capturing those ideas constantly on paper or electronically, reviewing them and acting upon them is the key.

Human Brain:
Linear mode and Rich mode.

Characteristics of L-mode Processing
L-mode processing is comfortable, familiar, geek turf. L-mode gives you these abilities:
Verbal:Using words to name, describe, and define
Analytic: Figuring things out step-by-step and part-by-part
Symbolic: Using a symbol to stand for something
Abstract: Taking out a small bit of information and using it to represent the whole thing
Temporal: Keeping track of time and sequencing one thing after another
Rational: Drawing conclusions based on reason and facts
Digital: Using numbers as in counting
Logical: Drawing conclusions based on logic (theorems, well-stated arguments)
Linear: Thinking in terms of linked ideas, one thought directly following another, often leading to a convergent conclusion

Characteristics of R-mode Processing

This side of the house is nonverbal. It can retrieve language but
can’t create it. It favors learning by synthesis: putting things
together to form wholes. It’s very concrete, in the sense of relating
to things just as they are, in the present moment. It uses analogies
to evaluate relationships between things. It likes a good story and
doesn’t bother with timekeeping. It’s not bound by rationality in
that it does not require a basis of reason or known facts in order to
process input—it’s perfectly willing to suspend judgment.

The R-mode is decidedly holistic and wants to see the whole thing
at once, perceiving the overall patterns and structures. It works
spatially and likes to see where things are in relation to other things
and how parts go together to form a whole. Most important, it’s
intuitive, making leaps of insight, often based on incomplete patterns,
hunches, feelings, or visual images.

Intuition—the hallmark of the expert—is over here.

R-mode Sees Forest; L-mode Sees Trees

Why emphasize R-mode for software developers?

We want to use R-mode more than we have because the R-mode provides intuition, and that’s something we desperately need in order to become experts. We cannot be expert without it.  The Dreyfus model emphasizes the expert’s reliance on tacit knowledge; that’s over here in the R-mode as well. Experts rely on seeing and discriminating patterns; pattern matching is here too.
R-mode’s analogic and holistic thinking styles are very valuable to software architecture and design—that’s the stuff that good designs are made of.
And you might already be reaching for synthetic learning more often than you think. When faced with a difficult design problem, or an elusive bug, good programmers generally have an urge to reach for code and build something that they can learn from.

That’s R-mode synthesis, as opposed to the L-mode analysis. That’s why we like prototypes and independent unit tests. These give us the opportunity to learn by synthesis—by building.

Pair programming
In pair programming, while the driver is locked in verbal mode at a particular level of detail, the navigator is free to engage more nonverbal centers. It’s a way of using R-mode and L-mode together at the same time, using two people.The navigator is free to see these larger relationships and the larger picture. And most of the time, you cannot see these relationships if you’re driving. So if you aren’t pair programming, you definitely need to stop every so often and step away from the keyboard.

White board discussions
When you talk to another person or work hand in hand with someone at a whiteboard or a paper, your thinking tends to get more abstract. You are more likely to discover new abstract patterns, which is what all of us programmers are trying to achieve.

Engage your R-mode:
Add sensory experience to engage more of your brain.
Your brain is always hungry for this kind of additional, novel stimulus. It’s built to constantly adapt to a changing environment. So, change your environment regularly, and feed your brain. Any sort of extrasensory involvement is probably helpful, whether it’s a long walk though crunchy leaves with your dog, opening your window and listening to the day’s weather (and actually smelling some fresh air!), or just walking to the break room or down to the gym (the air there is less fresh, but exercise is also very helpful for better brain function).


Learn Deliberately:
At our current state of technology and culture, your ability to learn may be your most important element of success. It’s what separates getting ahead from just getting by. It’s the constant learning that counts.

SMART: Specific, Measurable, Achievable, Relevant, and Time-boxed

Specific: Goals have to be concrete e.g. I want to weigh 80Kgs, have 20% fat, 40cm arms, 110cm chest and wear 32 inch waist trousers

Measurable:  It’s hard to measure something general and abstract but much easier to measure something concrete and specific—using actual numbers. If you think you can’t measure your objective, then it’s probably not specific enough. But be sure to take small bites and measure steady, incremental progress.
e.g. Measure myself every week

Achievable: A goal or objective that you cannot attain is not a target; it’s just a
maddening, soul-sucking frustration. Some things are just not possible for most people—competing at an Olympic level, for instance. Others are possible, but at a disproportionate commitment of time and resources (say, running in a marathon).
Make each next objective attainable from where you are now.


Relevant: Does it really matter to you? Are you passionate about it? Is it under your control? If not, then it isn’t relevant. It needs to matter and be something that you have control over.
e.g. The above attributes are desirable.

Time-boxed: Giving your self deadline is very important. This way it will not hide under piles of other things to do and daily exigencies. Give your self many attainable small milestones. It gives you motivation and satisfaction on attaining those small goals.

e.g. Every month: loose 2kgs, 1% fat reduction, +1cm arms, +1cm chest, -1cm waist


Pragmatic Investment Plan (PIP)

Have a Concrete Plan use SMART technique in creating a specific plan. It can be short term e.g. Today: learn clojure in javascript or long term i.e. 5 years: be a software architect and Master craftsman

Diversify: When choosing where to invest in, you have to conscious effort to diversify your attention. You want a good mix of languages and environments, techniques, industries, and nontechnical areas (management, public speaking, anthropology, music, art, whatever).

One major difference between knowledge investments and financial investments is
that all knowledge investments have some value. Even if you never use a particular
technology on the job, it will impact the way you think and solve problems.

Active, Not Passive, Investment: Evaluate your goals and judge how it’s going. You may have to revise your objectives or change your goals in the light of new developments.

Invest Regularly: You need to make a commitment to invest a minimum amount of time on a regular basis. Create a ritual, if needed. Escape to your home office in the attic or down to the coffee shop that has free wi-fi. Not all your sessions will be equally productive, but by scheduling them regularly, you will win out in the long run. If instead you wait until you have time or wait for the muse, it will never happen.


Enhanced Learning Techniques

Read Deliberately with SQ3R
• Survey: Scan the table of contents and chapter summaries for an overview.
• Question: Note any questions you have.
• Read: Read in its entirety.
• Recite: Summarize, take notes, and put in your own words.
• Review: Reread, expand notes, and discuss with colleagues.


Visualize Insight with Mind Maps
1. Start with a largish piece of unlined paper.
2. Write the subject title in the center of the page, and draw an
enclosing circle around it.
3. For the major subject subheadings, draw lines out from this
circle, and add a title to each.
4. Recurse for additional hierarchical nodes.
5. For other individual facts or ideas, draw lines out from the
appropriate heading and label them as well.



Learning by teaching: A straight forward and effective way to learn something is to teach it. Teaching also means going to your co worker and explaining your problem in a descriptive way. Many times going to the white board and drawing the connections can lead to the solution popping in your head. It is a great idea to explain an idea to your spouse or to some body who does not share your domain.



Friday, June 24, 2011

Books I have been reading lately

  1. Good Boss, Bad Boss by Robert I. Sutton
  2. Pragmatic Thinking and Learning by Andy Hunt
  3. Coders at Work: Reflections on the Craft of Programming by Peter Seibel
  4. The Passionate Programmer by Chad Fowler
  5. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover
  6.  Rework: A better, easier way to succeed in business by Jason Fried and David Heinemeier Hansson
  7. Joel on Software by Joel 
  8. Being Geek: The Software Developer's Career Handbook by Michael Lopp
  9. Pomodoro Technique: The Easy Way to do more in less time by Staffan Nöteberg
  10. Land the Tech job you love by Andy Lester
  11. 97 Things Every Programmer Should Know,  Edited by Kevlin Henney
  12. Even Faster Web Sites by Steve Sauders



cover

Good Boss, Bad Boss

Bob Sutton's latest book is a great read, and is filled with vivid examples of leaders who do things right, or wrong. Sutton is a talented story teller, and brings bosses to life in his descriptions of real life executives and managers, and also draws on his deep knowledge of psychology to explain, in clear terms, why the actions of bosses are so impactful, for better or for worse, on the people who work for them. This book does what so few management and leadership books are able to- it balances "showing" through real world stories with "telling" through established theories of social psychology. Anyone who has a boss, or is a boss, will benefit from reading this book.

Books I want to read

JavaScript Mastery:
  1. JavaScript: The Good Parts 
  2. Eloquent JavaScript: A Modern Introduction to Programming
Software Development:
  1. Clean Code by Robert C. Martin
  2. Beautiful Code
  3. Head First Design Patterns
  4. The Art of Computer Programming: Donald E. Knuth

Inspirational:
  1. The flight of the creative class by Florida, Richard L.
  2. Leonardo's Laptop by Ben Schneiderman
  3. Thinking Strategically: The Competitive Edge in Business, Politics, and Everyday Life by Avinash et al.
  4. weird ideas that work by Sutton, Robert I.



Honing Programming Skills:
  1. Data Crunching: solve everyday problems using Java, Python, and more
Skills:
  1. Secrets of Mental Math: The Mathemagician's Guide to Lightning Calculation and Amazing Math Tricks by Michael Shermer
  2. Presentation Zen by Guy Kawasaki
Interviews and Resumes: