2011-09-20

Top Ten Lessons From Steve Jobs

Just read a great post from Eric Jackson.



http://www.forbes.com/sites/ericjackson/2011/09/19/the-top-ten-lessons-steve-jobs-can-teach-us-if-well-listen/

Steve Jobs, one of the great minds of the 21st century and will forever be cherished as one of the world's best CEO... Here are the lessons that Steve Jobs taught us in his active days...

Image Source http://www.21cb.net


1. The most enduring innovations marry art and science – Steve has always pointed out that the biggest difference between Apple and all the other computer (and post-PC) companies through history is that Apple always tried to marry art and science. Jobs pointed out the original team working on the Mac had backgrounds in anthropology, art, history, and poetry. That’s always been important in making Apple’s products stand out. It’s the difference between the iPad and every other tablet computer that came before it or since. It is the look and feel of a product. It is its soul. But it is such a difficult thing for computer scientists or engineers to see that importance, so any company must have a leader that sees that importance.

2. To create the future, you can’t do it through focus groups – There is a school of thought in management theory that — if you’re in the consumer-facing space building products and services — you’ve got to listen to your customer. Steve Jobs was one of the first businessmen to say that was a waste of time. The customers today don’t always know what they want, especially if it’s something they’ve never seen, heard, or touched before. When it became clear that Apple would come out with a tablet, many were skeptical. When people heard the name (iPad), it was a joke in the Twitter-sphere for a day. But when people held one, and used it, it became a ‘must have.’ They didn’t know how they’d previously lived without one. It became the fastest growing Apple product in its history. Jobs (and the Apple team) trusted himself more than others. Picasso and great artists have done that for centuries. Jobs was the first in business.

3. Never fear failure – Jobs was fired by the successor he picked. It was one of the most public embarrassments of the last 30 years in business. Yet, he didn’t become a venture capitalist never to be heard from again. He didn’t start a production company and do a lot of lunches. He picked himself up and got back to work following his passion. Eight years ago, he was diagnosed with pancreatic cancer and told he only had a few weeks to live. As Samuel Johnson said, there’s nothing like your impending death to focus the mind. From Jobs’ 2005 Stanford commencement speech:

No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life’s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.

Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

4. You can’t connect the dots forward – only backward – This is another gem from the 2005 Stanford speech. The idea behind the concept is that, as much as we try to plan our lives ahead in advance, there’s always something that’s completely unpredictable about life. What seems like bitter anguish and defeat in the moment — getting dumped by a girlfriend, not getting that job at McKinsey, “wasting” 4 years of your life on a start-up that didn’t pan out as you wanted — can turn out to sow the seeds of your unimaginable success years from now. You can’t be too attached to how you think your life is supposed to work out and instead trust that all the dots will be connected in the future. This is all part of the plan.

Again, you can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

5. Listen to that voice in the back of your head that tells you if you’re on the right track or not – Most of us don’t hear a voice inside our heads. We’ve simply decided that we’re going to work in finance or be a doctor because that’s what our parents told us we should do or because we wanted to make a lot of money. When we consciously or unconsciously make that decision, we snuff out that little voice in our head. From then on, most of us put it on automatic pilot. We mail it in. You have met these people. They’re nice people. But they’re not changing the world. Jobs has always been a restless soul. A man in a hurry. A man with a plan. His plan isn’t for everyone. It was his plan. He wanted to build computers. Some people have a voice that tells them to fight for democracy. Some have one that tells them to become an expert in miniature spoons. When Jobs first saw an example of a Graphical User Interface — a GUI — he knew this was the future of computing and that he had to create it. That became the Macintosh. Whatever your voice is telling you, you would be smart to listen to it. Even if it tells you to quit your job, or move to China, or leave your partner.

6. Expect a lot from yourself and others – We have heard stories of Steve Jobs yelling or dressing down staff. He’s a control freak, we’ve heard – a perfectionist. The bottom line is that he is in touch with his passion and that little voice in the back of his head. He gives a damn. He wants the best from himself and everyone who works for him. If they don’t give a damn, he doesn’t want them around. And yet — he keeps attracting amazing talent around him. Why? Because talent gives a damn too. There’s a saying: if you’re a “B” player, you’ll hire “C” players below you because you don’t want them to look smarter than you. If you’re an “A” player, you’ll hire “A+” players below you, because you want the best result.

7. Don’t care about being right. Care about succeeding – Jobs used this line in an interview after he was fired by Apple. If you have to steal others’ great ideas to make yours better, do it. You can’t be married to your vision of how a product is going to work out, such that you forget about current reality. When the Apple III came out, it was hot and warped its motherboard even though Jobs had insisted it would be quiet and sleek. If Jobs had stuck with Lisa, Apple would have never developed the Mac.


8. Find the most talented people to surround yourself with – There is a misconception that Apple is Steve Jobs. Everyone else in the company is a faceless minion working to please the all-seeing and all-knowing Jobs. In reality, Jobs has surrounded himself with talent: Phil Schiller, Jony Ive, Peter Oppenheimer, Tim Cook, the former head of stores Ron Johnson. These are all super-talented people who don’t get the credit they deserve. The fact that Apple’s stock price has been so strong since Jobs left as CEO is a credit to the strength of the team. Jobs has hired bad managerial talent before. John Sculley ended up firing Jobs and — according to Jobs — almost killing the company. Give credit to Jobs for learning from this mistake and realizing that he can’t do anything without great talent around him.

9. Stay hungry, stay foolish - Again from the end of Jobs’ memorable Stanford speech:

When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation. It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch. This was in the late 1960′s, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along: it was idealistic, and overflowing with neat tools and great notions.

Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out a final issue. It was the mid-1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Beneath it were the words: “Stay Hungry. Stay Foolish.” It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you.

Stay Hungry. Stay Foolish.

10. Anything is possible through hard work, determination, and a sense of vision – Although he’s the greatest CEO ever and the father of modern computer, at the end of the day, Steve Jobs is just a guy. He’s a husband, a father, a friend — like you and me. We can be just as special as he is — if we learn his lessons and start applying them in our lives. When Jobs returned to Apple in the 1990s, it was was weeks away from bankruptcy. It’s now the biggest company in the world. Anything’s possible in life if you continue to follow the simple lessons laid out above.

2011-09-17

Life As We Know It

As I lie in my bed, I think of all the things that I need to do ... Im excited, yet afraid, terrified, mortified, and stupefied by life!! ♥ ♥

Saving Private Ryan



One reason that we must avoid war at all cost. This is one of the great war movies of all time and is truly excellent, epic and totally a great eye-opener. In times when we look at things in different perspective, watching this movie is just plain awesome..

With a blu-ray copy and a great headset, this movie is a one hell Saturda night treat!

2011-09-13

10 tips to go from a beginner to an intermediate developer






#1: Learn another language

It doesn’t matter which language you learn, but learning another language (regardless of how many you already know) will make you a better developer. Even better is to learn one that is significantly different from what you already use on a regular basis. In other words, if you are a C# developer, learning VB.NET or Java will not help you as much as learning Ruby or Groovy.

And when I say “learn another language,” I mean really learn it. Learning a language consists of three realms of knowledge: the syntax, the built-in operators and libraries, and “how to use it.” The first two are easy; I think that an experienced developer can pick up enough of a language’s syntax to maintain code in 30 minutes to a few hours depending upon the language. The operators and libraries are just a matter of slowly accumulating knowledge and being willing to check reference materials until you memorize what you need to know. But it’s the third item — “how to use it” — that can only be learned over months of working with a language and that’s where the real magic happens. I suggest doing a project that is well suited for that language and doing it in that language’s style.

Truly learn another language, and I promise that your abilities as a developer will start to blossom.

#2: Learn advanced search techniques, tactics, and strategies

More and more, being a good developer is not just about your skill, but your skill at finding information. Simply put, modern languages and development frameworks are too large for most people to remember much of them. As a result, your ability to get work done is often dependent upon your ability to perform research. Unfortunately, knowing how to find accurate, high-quality information is more than just heading to TechRepublic for the answer or typing a few words into your search engine of choice.

“Techniques,” “tactics,” and “strategies” may sound like synonyms, but they are not. The techniques you need to learn are the advanced search systems of your favorite search engine; you need to learn things such as the Boolean operators, how to filter results (negative keywords, domain restrictions, etc.), what role word order plays, and more. So essentially, RTFM.

You should learn tactics such as knowing how to approach any particular search and knowing what you should you actually look for. Errors are easy — just look for the error code — but keyword selection on many searches is much more difficult.

With regard to strategies, you need to learn things such as what search engines to use (hint: general purpose search engines are not always the right answer), which sites to visit before going to a general purpose search engine, and even which message boards to post to for help.

#3: Help others

Teaching others is invariably one of the best ways to learn anything. It is understandable to think that you don’t have much to offer because you are relatively new to the development field. That’s nonsense. Remember, everything you know you learned from someone or somewhere; so try being the someone that another person learns from. Spend a few minutes a day trying to answer the questions on TechRepublic or another site as best you can. You can also learn a lot by reading other members’ answers.

#4: Be patient and keep practicing

Research shows that it takes “about ten years, or ten to twenty thousand hours of deliberate practice” to become an “expert.” That’s a lot of time. Furthermore, becoming an expert does not always mean doing the same task for 10 years; it often means doing a wide variety of tasks within a particular domain for 10 years. It will take a lot of time and energy to become an “expert”; working as a developer for a few years is not enough. Want to become a senior developer in your early 30s? Either start your education/training sooner or be willing to do a lot of work, reading, and practicing in your spare time. I started programming in high school, and I devoted a lot of off-hours to keeping up with the industry, learning new skills, and so on. As a result, I hit the intermediate and senior level developer positions significantly earlier in my career than most of my peers, which translates to an awful lot of money over time.

#5: Leave your dogmas at the door

Time for some brutal honesty: Beginner developers probably don’t know enough to state that there is One Best Way of doing something. It’s fine to respect the opinion of a friend or an authority figure, but until you are more experienced, don’t claim their opinions as your own. The simple fact is, if you don’t know enough to figure these things out on your own, what makes you think that you know which “expert” is right? I know this sounds really harsh, but please believe me; I have met far too many budding developers who had their careers or their growth set back yearsbecause they got hung up on some foolish piece of advice or followed some “expert” who really didn’t know what they were talking about. A great example of this is the abuse of object-oriented architecture. For example, many beginners read some information about OO, and suddenly the class diagrams to their simple applications look like the Eiffel Tower.

#6: Learn a few advanced ideas in-depth

Much of what goes into being an intermediate developer is having a few concepts that you are really good at working with in code. For me, it is multithreading/parallelism, regular expressions, and how to leverage dynamic languages (and the last two are fading as I get farther away from my Perl history). How did this happen? Multithreading and parallel processing came about because I read articles on it, thought it sounded interesting, and figured it out on my own; I keep writing apps that use those techniques. I had a job that used a ton of regular expressions in Perl. Also, I ended up writing my own e-commerce engine with a template processing engine and built-in database system; then I spent nearly two years working on it.

Find something that has you really hooked. It might be image manipulation or maybe database design or whatever. Even if you’re an entry-level developer over all, try to become an expert in at least one area of focus. This will get you into that intermediate level quite quickly, and once there, you will be halfway to expert.

#7: Learn the basic theories underlying your field

It’s one thing to write “Hello World,” but it’s another to understand how the words appear on the screen. By learning the “groundwork” that supports the work you do, you will become much better at it. Why? Because you will understand why things work the way they do, what might be wrong when things are broken, and so on. You will become better by learning what happens at a lower level than your work.

If you are a Web developer, read the HTTP RFC and the HTML spec. If you use a code generator, really look at the code it generates; if you use database tools, take a look at the underlying SQL it generates; and so on.

#8: Look at senior developers’ code

At your job, take a look at the code the senior developers are writing and ask how and why things were done a particular way. If you can, check out open source projects as well. Even if other developers don’t have the best coding habits, you’ll learn a lot about how code is written. Be careful not to pick up bad habits along the way. The idea here isn’t to just blindly imitate what other developers are doing; it’s to get an idea of what works and what makes sense and try to imitate it.

#9: Learn good habits

Nothing marks an inexperienced coder like stupid variable names, poor indentation habits, and other signs of being sloppy. All too often, a developer learned how to program without being taught the less interesting details such as code formatting — and it shows. Even though learning these things will not always make your code better or you a better developer, it will ensure that you are not viewed as an entry-level developer by your peers. Even if someone is a senior developer, when variables are named after their 97 cats or their functions are called “doSomething(),” they look like they do not know what they are doing, and it makes their code harder to maintain in the process.

#10: Have fun

Want to be stuck on the career treadmill? Hate your job. What it takes to move up in this business is not merely dogged determination to bring home an ever growing paycheck but an actual enjoyment of your work. If you do not like your work and you are a junior developer, what makes you think that being an intermediate or senior developer will be any better? Change jobs or change careers. On the other hand, if you love the work you are doing, great! I guarantee that you can become a better developer if you keep at it.