Turn the Selfishness of Individuals into Good of Public

This was a ancient Chinese story regarding Zeng guofan (曾国藩). Zeng is a military general and Confucian scholar in Qing Dynasty. He has a large group of counselors working for him. But one thing bothers him is that a lot of people leaves after working for a short period. One day, he asked one of his trusted counselors why. The person answered, “It is hard to get promoted working for you because you think people should be selfless, and you only promote people with great contributions. There are other generals promotes people more quickly.”  Zeng then asked “How can we solve it”? The counselor said, “You’ll need to be selfishlessness and turn the Selfishness of Individuals into Good of Public  (合众人之私,成一人之公)”. Zeng took the advice and his counselors team became the best thereafter.

Think about it. Few people are selfless. Ordinary people like us are all working for our self interest. In all the companies I worked, people comes and leaves frequently. For the people who stays, quite a few of them do not have a better option. Few people really enjoys working.

Every company needs to take care of the selfness of the individuals, not just the management team, but everyone. Everyone should be given the opportunity to realize his/her full potential. Otherwise, the guy is going to leave sooner or later. And the company may ends of keeping someone, the ones that don’t have a better choice and don’t enjoy working.

It’s just another set of API

I always remember what my undergrad final year project supervisor said: “it’s just another set of API”. Every time I start to learn a new language, or new platform, his words jump out of my head, and I understand it better every time.

There’re always new technologies, platforms, languages, terminologies in IT industry. People not in this field use it as an execuse not to get into it; people in the IT industry complains about it. Well, not all of them, but also not few.

It’s really not a big deal. Every new language, new platform, or new technologies still follow the same essential stuff. The new syntax, the new library, or new development tools, they’re just new ways to express your ideas into applications.

Take programming language as an example. There’re different programming language paradigm, structural/procedural/imperative programming languages(C/C++, Pascal), Object-Oriented Programming languages (Smalltalk, Objective-C, Object-Pascal, Java, C#), Functional Programming Languages (Scheme, Lisp, F#), Logic Programming Languages (Prolog).

Some of the programming languages may belong to multiple programming paradigm, like C++. It can be counted as imperative language, or OOP language. But the point here is that each programming language paradigm represents a way of express your thoughts in mind.

Imperative language requires you to think from the computer’s angle a lot. OOP simplies thinking by creating objects. Programming languages like Java promotes the idea “everything is an object”. Functional programming language treats computation as evaluation of mathematical function. Logic programming is characterized by programming with relations and inference.

If you have ever learned C and Java hard (one from the imperative paradigm, and the other belongs to OOP), you’ll feel easy to pick up C++, Objective-Pascal, C#. That pretty much covers lots of languages the world is using to build the applications now.

If you learn one language from each of the programming paradigm, get famaliar with the way each paradigm is trying to make you think, you won’t fear to learn most of the new languages.

At the end of it, it’s human thinking that makes computer work. The way (the languages, technologies, platforms) to talk to them is definitely important, but not as important as human thinking itself!

References:

Logic Programming: http://www.emu.edu.tr/aelci/Courses/d-318/D-318-Files/plbook/logic.htm

Correction of Attitudes

Here is a question from Quora,

What are some of the most mind-blowing facts?

And two of the answers make me think.

1. Life < 900 Months

“Your lifespan is likely about 900 months. That’s a 30×30 rectangle of boxes, if you care to draw them. ”

This is a scaring fact. There’re times I imagine myself facing death, and I know deep inside, I will be totally freaked out.

And life is just about 900 months, and I have spent 1/3 of it. 600 months, that’s all I got. I’ve got to be serious about the time I have, and how I spent it. Smile

I wish the day I have to face death, I am smiling with a peaceful heart.

2. Confined Environment is Better for Great Software

“The guidance computer from the Apollo 11 mission ran at 1.024 MHz, about 1/6th of the processing power of a TI-83 calculator, and it took human beings to the moon.”

I’ve got to say, the software used at Apollo 11 must be great!

The software industry has become complicated, fancy and distractive. There’re simply too many platforms, programming languages, development tools, and APIs. We software engineers are getting used to search, copy, paste, and calling yet another set of API to develop software.

Well, we may develop software applications for years, but never know how things really work, buried in new tools, platforms, etc. That’s the success of the big companies providing platforms and tools, but we failed ourselves to become real software engineers and probably lose interest for software along the way.

The computer doesn’t have to be powerful than a modern calculator get human beings on the moon.  Great software engineers doesn’t rely on too many fancy APIs for great software.

I’ve got to learn more low level stuff! And read more, think more, code less!