讀書筆記:《這一生,你想留下什麼?:史丹佛的10堂領導課》

若您覺得文章寫得不錯,請點選網誌上的廣告,來支持小編,謝謝。

底下為筆者閱讀此書的筆記

領導沒有公式。

把你的好名聲當成是你最重要的珠寶,因為聲譽就像一把火,只要點燃,就能一直燒,一但熄滅,卻很難重燃。要獲得美名,最好的方法就是,努力變成你渴望成為的樣子。 據說出自蘇格拉底

第一章 謙卑:高績效領導的基礎
太相信自己的智慧是不智的。我們必須提醒自己:強者也會變得脆弱,智者也會犯錯。 聖雄甘地 (Mahatma Gandhi)

大多數的人只看表面,認為自信是領導力的核心。那自信的核心又是什麼?作者認為真正的自信來自了解自己的技能和個性,也就是源於謙卑,而非自我自信不是假面具,也不是虛張聲勢,最糟的莫過於把自信用錯地方。傲慢讓我們只看到自己的優勢,看不到弱點,忽視他人的長處,因此容易鑄成大錯。唯有謙卑,我們才看得到自己的弱點,知道如何補強。因此謙卑能賦予我們信心。

第二章 真誠與信賴:高績效領導的關鍵
將腳踩在對的地方,然後站穩。林肯總統

保持正直經常是在職業和私人生涯最大的挑戰。比正直更難以每日實踐的是真誠。真誠不只是說話誠實,還要對自己、對他人、對社群和其他所有人都誠實以對,即便遭受批評或是引發爭執,也得堅持到底。真誠是建立信賴的基礎,也是成功領導的關鍵

職涯之路大部分只知道自己今天要往那個方向走,不一定知道終點在哪裡。終點並非固定不變的,是隨著你前進時,不斷創造自我,終點也會跟著改變。

第三章 領導就是服務:了解誰為誰工作
慶祝勝利或是有好事發生時,我們最好站在後面,讓別人在前面。但要是碰到危險,我們則必須站在最前面。】 尼爾森.曼德拉 (Nelson Mandela)

領導人須將「自己是為別人服務」此點謹記在心。當部屬承擔繁重的工作,領導人的任務是讓他們更有效率、提高生產力。

我希望你們能過著真誠的生活,而非汲汲營營於追逐名利。在工作崗位上,你們要兢兢業業,不吝對人伸出援手,對人友好,為失意者加油,永遠遵循恕道、推己及人。Jane Elizabeth Lathrop Stanford 1891.

這些年來,我的腦海裡一直出現這一幕:一百年後,目前所有的考驗已被遺忘,現在活躍的政黨也消失了,物換星移,但這所大學依然屹立。我看到孩子的孩子,從東方、西方、南方、北方來到這裡。Jane Elizabeth Lathrop Stanford 1904.

第四章 同理心:塑造領導人和機構的要素
要真正了解一個人,得從對方的觀點來看......鑽進他的皮膚,在他的體內遊走。出自 哈波.李 (Harper Lee)的小說《梅岡城故事》(To Kill a Mockingbird)

同理心不只是一種情緒反應,也是學習機會。不管你是什麼機構的領導人,大專院校、非營利組織或是公司,不管在任何時候,都可能有很多人想要觸動你的同理心,請你幫忙。對領導人來說,決定何時回應及如何回應,總是個超級難題。你無法滿足所有人的要求,所以,你必須建立一套系統,執行情緒分類,幫助自己決定,該把精力和資源放在哪裡。


第五章 勇氣:為了機構和社群挺身而出
比起害怕做錯事,敢做對的事需要更多的勇氣。 林肯總統 

勇氣是持續不斷的,是果斷和道德方向的基石。勇敢則是經由事件激發出來的,願意在某個必須的時刻,承擔極大風險。

每個人都含有勇氣的性格,只有多寡之分。願意運用多少勇氣,取決於過去活動、訓練它的經驗次數有多少。有勇氣的人和一般人一樣,也會害怕,不過他們知道,採取正確的行動時,如何與恐懼共處。

有時,或許你需要放棄夢想,但是如果你以勇氣來領導,所有的努力都不會白費。所謂塞翁失馬焉知非福,你也許會為自己得到的東西感到驚喜。

第六章 協力與團隊合作:你無法單打獨鬥
聚集是個開端,團結就有進展,合作便能成功。 亨利.福特 (Henry Ford)

你的團隊成員是與你平等的,有些成員的貢獻甚至比你多

破除階級思維並非易事。經驗較多、地位較高的人,比較不願意和階級低的新人分享權威,這是人的天性。然而,科學家與工程師卻樂於看到權威「扁平化」,原因有二:一、在自然科學悠久的歷史上,重要發現多半來自於年輕人,而非長者。二、科學和工程是可以量化的。我們可以客觀衡量、評估某一個想法,也會仔細紀錄實驗。萬一團隊成員抱怨結果,或是為了爭功鬧的不愉快,看證據就可以解決問題了。

第七章 創新:產業與學術界成功之鑰
要成功,光靠計畫不夠,還得臨機應變。 艾薩克.艾西莫夫 (Isaac Asimov)

「唯一不變的就是變化。」由於創新與數位革命,變化的步調愈來愈快。而變化的本質不是單一規律的。

創新環境始於了不起、有創造力的思想者,他們願意冒險,做出前所未有的新東西。

擁抱創新意謂接受失敗,並且從失敗中重新爬起來。要面臨的挑戰,就是盡可能避免失敗,以及快速從失敗中復原。

張大眼睛,改變你的思維,不要只是護衛自己的地盤,想想整個社會以及未來的社會需要什麼。

第八章 求知慾:終身學習的重要性
不要停止發問,永遠別失去神聖的好奇心。 愛因斯坦 

領導人能學習,而且必須學習。研究自身角色和領域有關的主題,以及感興趣的東西,將使你成為面面俱到、知識豐富的人。

承認錯誤並承擔責任是件難事,所以很多領導人才會就此誤入歧途,將失敗歸咎給部屬。這麼做不只有失道德,更會損毀你身為領導人的信譽。

偉大的領導人不會犯相同的錯誤,他們用科學家那樣好奇的眼光看待失敗,並且進行實證分析,了解到底是哪裡出錯?可以改變什麼?如何沿著學習曲線走向成功?

第九章 說故事:溝通願景
不必解釋!先說你怎麼冒險吧,解釋太花時間了。 路易斯.卡洛爾 (Lewis Carroll)《愛麗絲夢遊仙境》(Alice's Adventures in Wonderland)作者

很多偉大的行動,都是從故事開始。我們自稱是理性的生物,因此會對某個概念、想法或計畫進行定量評估,以邏輯為重。然而,真理卻在別處。事實和數據能獲得大腦的認同,但不一定能打動人心。

不必急著把聽到的每一則故事寫下來。重要的是,必須打開耳朵,留心別人講述的軼事、教訓或是有啟發的故事。

第十章 遺澤:這一生,你想留下什麼?
利用生命的最佳方式,就是把時間花在比生命更長久的事情上。 據說出自心理學家威廉.詹姆斯(William James)

做一個有影響力的人,使這個世界變得更好,這似乎是最好的人生策略。
世人是否能記得我們的貢獻,根本無關緊要。重要的是,這一路上,我們能幫助多少人。

太好了,我們不用等待,現在就可立即著手慢慢改變這個世界! 安妮.法蘭克(Anne Frank)《安妮日記附編》(Tales from the Secret Annex)

書是最安靜的朋友,而且永遠陪伴在我們身邊;書是最可親又有智慧的顧問,也是最有耐心的老師。 查爾斯.艾略特(Charles W. Eliot) 前哈佛大學校長,美國大學歷史上在位時間最常的校長

讀書心得:從左手到牽手 是女生真的太無解?還是你老是搞錯問題?不必將就的30堂脫單戀愛課

若您覺得文章寫得不錯,請點選網誌上的廣告,來支持小編,謝謝。



翻完「從左手到牽手 是女生真的太無解?還是你老是搞錯問題?不必將就的30堂脫單戀愛課」這本書後,

來紀錄一下。本人要記錄的就只有LESSON 30:「最後也是最重要的一堂課」(哈哈)。
這一堂所談的是「什麼是成功?不要為自己貼標籤或下註解」。

就來簡短說個故事吧。
===================================================================
友人從小開始就是個喜歡動手做的小孩,看到任何新事物就會想試試,
遇到問題時,也會自己想辦法解決,雖然常常想到的解決方式「都不是長輩們所同意的」
於是,常常惹長輩們生氣,也常被長輩們訓話,但,當時的友人心中在想:
「我就是我!」
「為什麼我得成為你們心中的樣子,當個好學生用功讀書,以後真的會很快樂嗎?」
「我才不要咧!」

於是這位友人,經歷過對師長的不信任,對朋友的不信任,對家人的失望等...
雖然對很多人事物都抱持著懷疑的態度一直生活下去。
但多年後,這位友人卻培養出異於常人的態度以及行事風格:
「絕不隨波逐流,我就是我,他人要怎麼評論我,那是他家的事」。
「因為我是獨一無二的個體,而且不時地享受孤獨感。」
===================================================================
而這位友人有如書中最後的一段話:「不需要做更好的自己,只要更好的做自己!
一直往前進。

「你的人生是由你自己,
思考過、沉思過、掙扎過,而做出的一連串選擇,
這些選擇或許會讓人開心、痛苦、後悔等,
而這種種的人生體驗是他人無法替你自己感受的。」

最後祝看到這些文字的臉書朋友們:
「努力活出你自己!」
「不要為了別人對你的期待而生活!」

註:這兒有個戀愛致命傷測驗可以玩玩喔
https://www.books.com.tw/activity/2018/10/AWEAWE/index.html

怪怪的程式語言名稱:Brainfuck

若您覺得文章寫得不錯,請點選網誌上的廣告,來支持小編,謝謝。

最近在 ptt Gossiping 版的jserv 的一篇回文
https://www.ptt.cc/bbs/Gossiping/M.1555612071.A.14C.html

得知 Brainfuck 也是個程式語言,於是小編自己也來寫一個 Brainfuck interpreter。先來了解 Brainfuck 的指令吧。

Brainfuck指令說明
============底下文字從 https://en.wikipedia.org/wiki/Brainfuck 節錄出來:============
CharacterMeaning
>increment the data pointer (to point to the next cell to the right).
<decrement the data pointer (to point to the next cell to the left).
+increment (increase by one) the byte at the data pointer.
-decrement (decrease by one) the byte at the data pointer.
.output the byte at the data pointer.
,accept one byte of input, storing its value in the byte at the data pointer.
[if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command.
]if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command.
brainfuck指令與C語言對照表:
brainfuck commandC equivalent
(Program Start)char array[30000] = {0};
char *ptr=array;
>++ptr;
<--ptr;
+++*ptr;
---*ptr;
.putchar(*ptr);
,*ptr=getchar();
[while (*ptr) {
]}
============以上文字從 https://en.wikipedia.org/wiki/Brainfuck 節錄出來:============
其中,[ 與 ] 這兩個指令需要注意有巢狀的情況,而測試的 Brainfuck 程式碼如下:

hello.bf (https://github.com/pablojorge/brainfuck/blob/master/programs/hello.bf)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
+++++ +++++             initialize counter (cell #0) to 10
[                       use loop to set the next four cells to 70/100/30/10
    > +++++ ++              add  7 to cell #1
    > +++++ +++++           add 10 to cell #2 
    > +++                   add  3 to cell #3
    > +                     add  1 to cell #4
    <<<< -                  decrement counter (cell #0)
]                   
> ++ .                  print 'H'
> + .                   print 'e'
+++++ ++ .              print 'l'
.                       print 'l'
+++ .                   print 'o'
> ++ .                  print ' '
<< +++++ +++++ +++++ .  print 'W'
> .                     print 'o'
+++ .                   print 'r'
----- - .               print 'l'
----- --- .             print 'd'
> + .                   print '!'
> .                     print '\n'

費式數列 fibonacci.bf (https://github.com/pablojorge/brainfuck/blob/master/programs/fibonacci.bf)
1
2
3
4
5
6
7
8
9
>++++++++++>+>+[
    [+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[
        [-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-
            [>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>
    ]<<<
]
This program doesn't terminate; you will have to kill it.
Daniel B Cristofani (cristofdathevanetdotcom)
http://www.hevanet.com/cristofd/brainfuck/

圓周率 pi.bf (https://copy.sh/brainfuck/prog/yapi.b)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[ yet another pi calculation program in bf

  Just like for pi16.b the accuracy of the result depends on the cellsize:
 
   - using  8 bit cells causes an overflow after 4 digits
   - using 16 bit cells causes an overflow after 537 digits
   - using 32 bit cells causes an overflow after several millions of digits
  
  It's about ~38 times shorter than pi16.b, ~364 times faster and works with
  not-wrapping (bignum) implementations. 
 
  by Felix Nawothnig (felix.nawothnig@t-online.de) ]

>  +++++ +++++ +++++ (15 digits)

[<+>>>>>>>>++++++++++<<<<<<<-]>+++++[<+++++++++>-]+>>>>>>+[<<+++[>>[-<]<[>]<-]>>
[>+>]<[<]>]>[[->>>>+<<<<]>>>+++>-]<[<<<<]<<<<<<<<+[->>>>>>>>>>>>[<+[->>>>+<<<<]>
>>>>]<<<<[>>>>>[<<<<+>>>>-]<<<<<-[<<++++++++++>>-]>>>[<<[<+<<+>>>-]<[>+<-]<++<<+
>>>>>>-]<<[-]<<-<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]>[-]>+<<<-[>>+<<-]<]<<<<+>>>>>>>
>[-]>[<<<+>>>-]<<++++++++++<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]>[-]>+>[<<+<+>>>-]<<<
<+<+>>[-[-[-[-[-[-[-[-[-<->[-<+<->>]]]]]]]]]]<[+++++[<<<++++++++<++++++++>>>>-]<
<<<+<->>>>[>+<<<+++++++++<->>>-]<<<<<[>>+<<-]+<[->-<]>[>>.<<<<[+.[-]]>>-]>[>>.<<
-]>[-]>[-]>>>[>>[<<<<<<<<+>>>>>>>>-]<<-]]>>[-]<<<[-]<<<<<<<<]++++++++++.

自然數 e.bf (http://www.hevanet.com/cristofd/brainfuck/e.b)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[e.b -- compute e
(c) 2016 Daniel B. Cristofani
http://brainfuck.org/]

>>>>++>+>++>+>>++<+[  
  [>[>>[>>>>]<<<<[[>>>>+<<<<-]<<<<]>>>>>>]+<]>-
  >>--[+[+++<<<<--]++>>>>--]+[>>>>]<<<<[<<+<+<]<<[
    >>>>>>[[<<<<+>>>>-]>>>>]<<<<<<<<[<<<<]
    >>-[<<+>>-]+<<[->>>>[-[+>>>>-]-<<-[>>>>-]++>>+[-<<<<+]+>>>>]<<<<[<<<<]]
    >[-[<+>-]]+<[->>>>[-[+>>>>-]-<<<-[>>>>-]++>>>+[-<<<<+]+>>>>]<<<<[<<<<]]<<
  ]>>>+[>>>>]-[+<<<<--]++[<<<<]>>>+[
    >-[
      >>[--[++>>+>>--]-<[-[-[+++<<<<-]+>>>>-]]++>+[-<<<<+]++>>+>>]
      <<[>[<-<<<]+<]>->>>
    ]+>[>>>>]-[+<<<<--]++<[
      [>>>>]<<<<[
        -[+>[<->-]++<[[>-<-]++[<<<<]+>>+>>-]++<<<<-]
        >-[+[<+[<<<<]>]<+>]+<[->->>>[-]]+<<<<
      ]
    ]>[<<<<]>[
      -[
        -[
          +++++[>++++++++<-]>-.>>>-[<<<----.<]<[<<]>>[-]>->>+[
            [>>>>]+[-[->>>>+>>>>>>>>-[-[+++<<<<[-]]+>>>>-]++[<<<<]]+<<<<]>>>
          ]+<+<<
        ]>[
          -[
            ->[--[++>>>>--]->[-[-[+++<<<<-]+>>>>-]]++<+[-<<<<+]++>>>>]
            <<<<[>[<<<<]+<]>->>
          ]<
        ]>>>>[--[++>>>>--]-<--[+++>>>>--]+>+[-<<<<+]++>>>>]<<<<<[<<<<]<
      ]>[>+<<++<]<
    ]>[+>[--[++>>>>--]->--[+++>>>>--]+<+[-<<<<+]++>>>>]<<<[<<<<]]>>
  ]>
]

This program computes the transcendental number e, in decimal. Because this is
infinitely long, this program doesn't terminate on its own; you will have to
kill it. The fact that it doesn't output any linefeeds may also give certain
implementations trouble, including some of mine.

C語言程式碼:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdlib.h>
#include <stdio.h>

static int cells[30000] = {0};
unsigned int dp = 0;      // data pointer

void bfExe(char *cmds)
{
    int i, nestedLoop, curCmd;

    for(i = 0; cmds[i] != 0; i++)
    {
        curCmd = cmds[i];
        switch(curCmd)
        {
        case '>':
            ++dp;
            break;
        case '<':
            --dp;
            break;
        case '+':
            ++cells[dp];
            break;
        case '-':
            --cells[dp];
            break;
        case '.':
            putchar(cells[dp]);
            break;
        case ',':
            cells[dp] = getchar();
            break;
        case '[':
            if(!cells[dp])
            {
                nestedLoop = 1;
                while(nestedLoop)
                {
                    i++;
                    if(cmds[i] == '[') nestedLoop++;
                    if(cmds[i] == ']') nestedLoop--;
                }
            }
            break;
        case ']':
            if(cells[dp])
            {
                nestedLoop = 1;
                while(nestedLoop)
                {
                    i--;
                    if(cmds[i] == ']') nestedLoop++;
                    if(cmds[i] == '[') nestedLoop--;
                }
            }
            break;
        }
    }
}

int main(int argc, char* argv[]) {
    if(argc < 2) exit(1);
    FILE *f = fopen(argv[1], "r");
    fseek(f, 0, SEEK_END);
    long fsize = ftell(f);
    fseek(f, 0, SEEK_SET);

    int *bfCmd = malloc(fsize + 1);
    fread(bfCmd, 1, fsize, f);
    fclose(f);
    bfCmd[fsize] = 0;

    bfExe(bfCmd);
    return 0;
}

而在 stackoverflow 上有高手寫了底下的C程式碼(https://stackoverflow.com/questions/9147357/brainfuck-interpreter):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include <stdlib.h>
char m[9999], *n[99], *r = m, *p = m + 5000, **s = n, d, c;
main()
{
   for (read(0, r, 4000); c = *r; r++)
          c - ']' || (d > 1 ||
          (r = *p ? *s : (--s, r)), !d || d--), c - '[' || d++ ||
          (*++s = r), d || (*p += c == '+', *p -= c == '-', p += c == '>',
          p -= c == '<', c - '.' || write(2, p, 1), c - ',' || read(2, p, 1));
}

C語言果然很特別!!!

底下為其他語言實作出來的 brainfuck interpreters 與模擬實驗資料。
https://github.com/pablojorge/brainfuck