Wednesday, June 29, 2016

Ask question the smart way

Excerpt from E. S. Raymond's website http://www.catb.org/esr/faqs/smart-questions.html

  1. Hackers like challenging, thought-provoking questions
  2. People unwilling to think or do their homework are time sinks. They take without giving back.
  3. Different people have different important things to do. We focus on what interests us most, otherwise we would become less effective  at the things we do best.
  4. We filter the time-sinker ruthlessly, in particularly who appear to be losers. If you can't live with this discrimination, you 'd better pay for a paid support instead of asking hacker to donate help.
  5. Before asking a technical question, do your homework by searching the web, reading the manual or FAQ, asking a skilled friend or find a answer by reading source code. Display the fact that you have done these things first.

  • How to become a hacker
  1. Hackers build things, crackers break them.
  2. The fun of being a hacker takes lots of effort and motivation. Otherwise, your hacking energy is sapped by distractions like sex, money, and social approval.
  3. There are so many fascinating new problems waiting out there, we shouldn't waste time re-invent the wheel.
  4. Attitude is a must, but is no substitute for competence. Competence at demanding skills that involve mental acuteness, craft, and concentration is best.
  5. First learn Python, then C, Perl and Lisp. Java is not recommended as first language. Because a good tool for production can be a bad one for learning. However, C is low-level language that is complex and bug-prone. We had better use machine time less efficiently but use our time more efficiently. 
  6. Most of the best hackers are self-taught and learn by practice. (a) reading code; (b) writing code.
  7. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... 

Tuesday, June 28, 2016

life is too short for bullshit

Paul Graham, who is the godfather of silicon valley, funded many startups like dropbox and airbnb. His website has many useful articles: http://www.paulgraham.com/articles.html

Life is too short for bullshit

  • Unnecessary meetings, pointless disputes, bureaucracy, posturing, dealing with other people’s mistakes, traffic jams, addictive but unrewarding pastimes.
  • this kind of bullshit either forced on you or it tricks you.
  • The amount of time you have to spend on bullshit varies between employers. If you consciously prioritize bullshit avoidance over money, prestige, etc., you can can probably find employers that will waste less of your time.
  • If you fire or avoid toxic customers, you can decrease the amount of bullshit in your life by more than you decrease your income.
  • while some amount of bullshit is inevitably forced on you, the bullshit that sneaks into your life by tricking you is no one’s fault but your own. And yet the bullshit you choose may be harder to eliminate than the bullshit that’s forced on you.Things that lure you into wasting your time on them have to be really good at tricking you. An example is arguing online.Your instinct when attacked is to defend yourself.Although counterintuitive, it’s better not to waste time to defend yourself. Otherwise these people are literally taking your life.
  • One byproduct of technology advancement is things we like tend to becomemore addictive, we need to make conscious effort to stand outside and ask ourself, “is this how I want to spend my time?”
  • The lucky a few realize that they love math or something and spend a lot of time doing it. But most people start out with a life that’s a mix of things that matter and things that don’t, and only gradually learn to distinguish between them.
  • For the young especially, much of this confusion is induced by the artificial situations they find themselves in. In middle school and high school, what the other kids think of you seems the most important thing in the world. But when you ask adults what they got wrong at that age, nearly all say they cared too much what other kids thought of them.
  • One heuristic for distinguishing stuff that matters is to ask yourself whether you’ll care about it in the future. Fake stuff that matters usually has a sharp peak of seeming to matter. That’s how it tricks you. The area under the curve is small, but its shape jabs into your consciousness like a pin.
  • The things that matter aren’t necessarily the ones people would call “important.” Having coffee with a friend matters. You won’t feel later like that was a waste of time.
  • One great thing about having small children is that they make you spend time on things that matter: them. They grab your sleeve as you’re staring at your phone and say “will you play with me?” And odds are that is in fact the bullshit-minimizing option.
  • If life is short, we should expect its shortness to take us by surprise. And that is just what tends to happen. You take things for granted, and then they’re gone. You think you can always write that book, or climb that mountain, or whatever, and then you realize the window has closed. The saddest windows close when other people die. Their lives are short too. After my mother died, I wished I’d spent more time with her. I lived as if she’d always be there. And in her typical quiet way she encouraged that illusion. But an illusion it was. I think a lot of people make the same mistake I did.
  • Cultivate a habit of impatience about the things you most want to do. Don’t wait before climbing that mountain or writing that book or visiting your mother. You don’t need to be constantly reminding yourself why you shouldn’t wait. Just don’t wait.
  • I can think of two more things one does when one doesn’t have much of something: try to get more of it, and savor what one has. Both make sense here.
  • How you live affects how long you live.
  • The “flow” that imaginative people love so much has a darker cousin that prevents you from pausing to savor life amid the daily slurry of errands and alarms. One of the most striking things I’ve read was not in a book, but the title of one: James Salter’s Burning the Days.
  • It does help too to feel that you’ve squeezed everything out of some experience. The reason I’m sad about my mother is not just that I miss her but that I think of all the things we could have done that we didn’t. My oldest son will be 7 soon. And while I miss the 3-year-old version of him, I at least don’t have any regrets over what might have been. We had the best time a daddy and a 3-year-old ever had.
  • Relentlessly prune bullshit, don’t wait to do things that matter, and savor the time you have. That’s what you do when life is short.

Xiaolai: share, don't argue

Last week, I recommended Xiaolai's book "make friends with time".

I would like to make notes here what I learned from his blog, tweet or any writing.


  • hard skill vs soft skill, which person lives a better life link
For a salesman, soft skill is actually the basic skill. Because in the market, the demand for everyone is transparent: everyone wants to get more. The winner in a deal is happy, and the loser is unhappy. If a deal is a win-win, then others will praise you as a good dealer or a good leader.

A great leader is someone that can see through the unseen demand of others.

How to achieve win-win
Share.
Don't argue.

  • why I give up arguing? link
  1. difference in basic concepts. "double-blind trials" is incompatible with "China-west medical mixture".
  2. not clear what's important and non-important
  3. different value system
  4. different standpoint/perspective.  You always speak for what you belong to.
  5. no verdict. Except in a court where we have clear rules and we all listen to the judge. But no verdict in life or work. They only take a short cut--follow the important/famous person.
  6. the motivation of argue is because we are weak and easy to get angry
the goal of discussion is to organize your thought and clear your mind;
the goal of argument is to persuade others, to defeat others, to win your face
The surprising result of giving up arguing is away from the chain of contempt.


  • How to foster patience link
  1. plant trees and flowers with kids. Pets are not good because they are instantaneously responsive.
  2. do things everyone has spend relatively equal time to do it.
  3. do things that require accumulations
  4. dare to learn
  5. dare to share, share can help us grow, share is an effective social
  • Never save money this way link
  1. books that help you grow
  2. tools that improve your efficiency and productiviy
  3. safety equipment. Like rescue set, car radar
  4. ultimate experience:  falling in love when young, etc
  5. intellectual property
  • The marshmallow test link
  1. poor will make the temptation larger, bigger and harder to resist
  2. change your focus is a effective strategy.
  3. kids appear more self-control in a more reliable environment 
  • Advice for girls to look for a spouse link
  1. boyfriend's parents are still happy together
  2. how he apologize, words and action
  3. strong curiosity
  4. be-good type or be-better type
  5. personality. The cold fact is the bad guy is easier to success, and they know how to identify the good one by the first sight

Sunday, June 26, 2016

Mac bug or trick

Sometimes, Mac bugs just drive me crazy. The solution tricks are listed below for memo.
Always 1 unread notification in the mailbox.
add a URL to dock
change default app
delete all ipad photoes from Mac
spotlight-> image capture

Thursday, June 23, 2016

what's full-stack developer?

[update on 2016-6-26] I just learned that Udacity already offer this course since 2016-1. It cost 200 hours in total and $200 per month. I think it's pretty worth it.

Accidentally, I saw a full-stack program offered by codeup.com that costs $17.5k /4 months and promise you to get a job within 6 months. The syllabus is mainly on HTML, CSS, JavaScript, Laravel, jQuery, which can serve as a study plan.

I actually first heard of the term "full-stack developer" only a few days ago, when I was reading Xiaolai's blog due to his fascinating book "make friends with the time". He just announced his training plan of 2 months, and had caused a lot of controversy in internet. Nevertheless, I highly recommend his book and blog because he is really teaching the very essence of knowledge.

I didn't know what's full-stack developer until today when I looked into Zhihu. This concept can be best illustrated by the following graph. So full-stack developer is a full-fledge web developer who can take over the whole process of IT development. This person will be the most demanded one for a start-up or a small company.




I also found this genius guy, Phodal, who learned to code even before college. He selfless shared his knowledge on How to be a full-stack developer: https://github.com/phodal/growth-ebook. I spend several hours reading this book. Although I can't understand the technical part of web-development, I found some how-to-learn strategy really useful. For example, the best way to learn is to teach others. The second best way is to practice.

He also explained why he wants to be a full-stack developer:

  1. The world is full of mysteries, but I only want to tackle what interests me most
  2. no exploration, no true love. How do you know it’s your favorite part if you haven’t fully explored the world?
He also has a good point here:  People don’t lack of willpower to learn, they just don’t know what to learn. 

There are some interesting and informative graphs: 2 learning styles and 2 learning curves:



I also love the idea of MVP: minimum viable product. Just get it started! Don't need to be perfect.


The popularity of programming languages:

This makes me really like to be a full-stack developer. So much to learn, so exciting!


To be a programmer, seriously; learning plan



In a TEDxNYU talk by Ashley Gavin, she showed a startling difference (above) between the available job positions and college majors. It doesn't mean that all students should learn computer science. But if your goal is to get a job, you should be serious to acquire these skills.

This article is not for the talent people who are pursuing their passions in other majors and other industries. I love the world with various levels of diversity. This article is for the people who want to learn CS but didn't get a chance to really learn CS due to various reasons (the talk by Gavin well explained this point).

The simple study plan for the transferring majors was provided by Warald, Founder of 1point3acres, on Feb.14,2013. The original link is here. I summarize it below.

recommend 2 free online course website: udacity.com and coursera.org

level 1:
udacity CS101. (use python)

level 2:

  1. Java. 
  • books: "head first Java", "Data Structure and algorithms in Java"
  • videos: UC Berkely Jonathon (course material, youtube link),  or Princeton Robert (coursera link)
  • homework and practice is a must!
  • further study: Thinking in Java, Programming Interview Exposed
2. SQL. "A first course in database systems" by Jeffrey D. Ullman

level 3:
  • career cup
  • leetcode
  • continue online learning on  machine learning and artificial intelligence
  • other courses depending on your interests (data management/mobile/web front-end
a blogger on leetcode http://fisherlei.blogspot.com/  

Monday, June 20, 2016

Life is short. Take the risk. Try it.

I couldn't help laughing when I saw these verses in Chapter 11: exception handling of "head first Java".  It's from a dialog:

Dear compiler:
I know. I'm taking a risk here, but don't you think it's worth it? What should I do? ...

Dear geek,
Life is short (especially on the heap). Take the risk. Try it. But just in case things don't work out, be sure to catch any problems before all hell breaks loose...


The "try-catch-finally" strategy is actually very helpful in human life.  People play safe because they are too lazy to think about the risks. The risk-taking consumes quite a lot of willpower and may be too complicated if you don't have an efficient approach.


I am seriously considering to keep writing blogger as a training and organizing my thoughts.  I think this blog is a perfect place for me regarding the following aspects:

  1. Compared to writing a private diary in a secret place,  an open blog will enable me to think more positive and constructive, instead of focusing on the outlet of a bad mood. This is actually good for my mental health. Only the facts and truth will last. Sooner the bad mood fade away, the better.
  2. Compared to Sina blog, QQ zone and WeChat timeline,  I more enjoy the quite and undisturbed place here. I will stick to writing in English. So I can use English more and somewhat get rid of the Chinese thinking for a while. 
  3. Keeping a permanent record what I have learned is a very encouraging practice.  No one is born as an expert or know anything.  Admit I need to learn is a way to step out of your comfort zone and stay re-energized. 
In the next few days, I may address some interesting topics such as time management. Not need to hurry. Keep your pace.



Saturday, June 18, 2016

try everything, build a website

update on 2016-7-10: I bought a domain name: Yuchao.us and redirect to this blogger.

I am trying to build a website these days.

Steps for non-business personal website:

  1. The specialized website will suffice. Save tons of time, either construct from scratch or maintain to keep it updated. Why not just throw your photos in wechat timeline or facebook, handcraft your professional image on linked-in or google scholar?  Save your time for more creative things or have more fun.
  2. Some free webhost is also a good option. It's like hitchhike in popular website, but you still enjoy the freedom to customize your layout and add some featured links, photos, attachment, label, and so on. Examples of providers are blogger.com, wix.com, weebly.com, wordpress.com. You will get upgraded service if you pay. 
Steps for business or organization website,which you get ultimate independece:
  1. buy domain name as soon as possible. They are actually very cheap if you are running a business. unoccupied domain name is only $10/year. Some fancy name cost more. Domain name registrar are domains.google.com, godaddy.com, namepal.com. A guide by thesitewizard.com is here. Alibaba also sells domain name and provide more information of who owns the domain to when.  https://wanwang.aliyun.com/
  2. choose reliable webhost. Examples are futurequest.net, justhost.com. Some are as cheap as $4/month.
  3. built your website. I will explore some detailed knowledge in the future.
  4. make your website searchable by google. 

To conclude what I learned: don't blindly try everything. My time is limited. Ask myself, is the thing at my hand or fly in my mind important or necessary? If not, set it aside, I need to focus on the important things I have planned ahead.