short coding 和 time management

28
Group Meeting 20090224 賣飛機

Upload: yi-hsiang-huang

Post on 09-Jul-2015

653 views

Category:

Education


3 download

TRANSCRIPT

Page 1: short coding 和 time management

Group Meeting

20090224 賣飛機

Page 2: short coding 和 time management

Outline

讀書心得 1

讀書心得 2

Page 3: short coding 和 time management
Page 4: short coding 和 time management

Short Coding 寫出簡捷好程式

- 短碼達人的心得技法

作者:Ozy 著,yaneurao 監修

譯者:鄧瑋敦、博碩文化

出版社:博碩

Page 5: short coding 和 time management

Short Coding ???????????????

寫很短的 Code 要幹嘛 … ?

官方答案是 …

我們可以在探討 code 可以縮到多短的情況下

研究資料結構、演算法、執行環境的特性等

我的答案是 …

原來這世界上神經病這麼多 …

程式的一些 side effect 或者

一些關於語言本身的規則真的要好好注意

____________________________________

短碼魂 !!

Page 6: short coding 和 time management

交代一下背景吧 ~

1.討論的語言是 C(以下的 code 都有在我電腦上跑過)

2. 時間有限所以不討論演算法的部份

3. 不打算介紹走火入魔的 code …

(本書是在某個叫做 POJ 的環境下測試)

PKU Judge Online

Page 7: short coding 和 time management

先從簡單的開始

輸入兩個數字請輸出其和

#include <stdio.h>

int main(){

int a, b;

scanf("%d%d",&a,&b);

printf("%d",a+b);

return 0;

}

main(a,b){

scanf("%d%d",&a,&b);

printf("%d",a+b);

}

其實可以不 includemain 沒 type 也沒差耶 ~

這邊可以宣告變數

不 return 也沒人會咬你

Page 8: short coding 和 time management

接下來是關於讀取

讀取 12 個數字並算平均#include <stdio.h>

float a, b=0;

int main(){

for(;scanf("%f",&a)!=EOF){

b+=a;

}

printf("%f",b/12);

return 0;

}

float a, b;

main(){

for(;scanf("%f" ,&a)!=-1;)

b+=a;

printf(“%f“,b/12);

}

初始值會是 0

EOF 就是 -1

所以 …

這樣寫應該也對囉scanf("%f" ,&a)+1

其實也可以這樣~scanf("%f",&a)

Page 9: short coding 和 time management

bitbitbitbitbit …

猜猜猜猜猜 …

~k ->

-~k ->

~-~k ->

-~k/n ->

~-k/n ->

~k*~-~k ->

-(k+1)

(k+1)

-(k+2)

(k+1)/n

(k-1)/n

(k+1)(k+2)

Page 10: short coding 和 time management

main() 的變數宣告

這其實是為寫法但也可以過 …

int main(a){

a = "sailplane";

printf("%s %d\n",a,sizeof(a));

}

結果是 … sailplane 4

Page 11: short coding 和 time management

main 的遞迴

來算個最大公因數吧 !

#include <stdio.h>

int gcd(int a, int b){

if(b==0) return a;

else return gcd(b,a%b);

}

int main(){

int a, b;

scanf("%d%d",&a,&b);

printf("%d\n",gcd(a,b));

return 0;

}

c;

main(a,b){

c++?:scanf("%d%d",&a,&b);

b?main(b,a%b):printf("%d\n",a);

}

Page 12: short coding 和 time management

Quine

按照計算理論 …

存在可以描述自己的程式 …

main(a){

printf(a,34,a="main(a){

printf(a,34,a=%c%s%c,34);}",34);

}

Page 13: short coding 和 time management
Page 14: short coding 和 time management

Time Management for System Administrators

作者: Thomas A. Limoncelli

出版社:O’REILLY

Page 15: short coding 和 time management

時間管理- 給系統管理者

譯者:陳建勳

出版社:學貫

Page 16: short coding 和 time management

給自己的一封信

Dear 賣飛機:記得備份一下實驗室那台電腦,工作站的也要

備份一下。中華電信那個計畫 meeting 這週要上台,投影片做完之後記得跟威言討論一下。最近體能有點糟糕,去游泳去游泳 ~ 有空的話去看個膝蓋,最近他又不乖了。飯局飯局 !!! 前幾天社團的說要約吃飯別忘記了。還有還有,有空的話想想網站怎樣改善,醜死了 ! 另外就是記得跟笙歌討教幾招,剛毅木訥害羞內向是很吃虧的 ! 要是還有時間的話唸點書,考試一直炸是在炸辛酸還是炸流行的 !

by 賣飛機(我想應該只有這些吧)

Page 17: short coding 和 time management

大多數的 SA 是 …

特徵 1 :

特徵 2 :

所以 …

頑強的問題解決者 !

樂於助人 ! 以國家興亡為己任 !!!

沒救了

請重新 compile 你的生活

Page 18: short coding 和 time management

時間管理原則

首要是設置干擾捕手 !

SA 的美麗與哀愁 …

1.我們的問題不同

2.我們的解決方案不同

3.我們缺乏良好的顧問老師

Page 19: short coding 和 time management

時間管理原則 (cont.)

所以用我們的術語來看看

1.用筆記紀錄時間管理的資訊資料庫

2.腦力留給重要的事情節省記憶體

3.開發例行公事並持之以恆程式碼函式庫的再利用

4.開發習慣與信念寫程式前就先預想結果而非 run time 才驗證

5.保持專心 !除非有 interrupt 不然別受影響

6.以工作管理的方式管理社交生活社交生活並不是一個選項而是必做

Page 20: short coding 和 time management

讓干擾遠離你

我們是 event-driven 的生物 ~

找出適合自己的工作 pattern !

Page 21: short coding 和 time management

例行公事

有些事情想到就該做不要浪費時間考慮

什麼事情適合變成例行公事 ???

1. 沒有常規的2. 定期維護3. 人際關係4. 可能會耽擱太久的5. 經常會忘記的6. 低優先權的事情(不能總是被忽略)7. 開發新的技能和持續更新

Page 22: short coding 和 time management

循環系統

別信賴你的大腦

所以我們該把事情都紀錄在筆記(ㄅㄨㄣˇ)上但是請注意

內容應該要有

1. 可攜性2. 可靠性3. 可管理大量內容

1. 行事曆2. 人生目標清單3. 每日事項

a. 以重要性排序b. 以時間排序

Page 23: short coding 和 time management

循環系統 (cont.)

但人非聖賢,一個不小心 delay 的話 …

1. 低優先權的移到明天2. 解決掉今天的大部分3. 設法簡化工作4. 修改預估時間5. 用請神符 … 找人協助吧6. 請上司替你安排7. 延遲約會或討論等接下來的活動8. 加班加班加班加班加班加班加班加班加班加班

Page 24: short coding 和 time management

循環系統 (cont.)

事業和社交生活可以共用一份行事曆

找出屬於你和屬於你所處環境的節奏 !

大腦留著做更重要的事情 !!

學著管理你的上司 ~

Page 25: short coding 和 time management

壓力管理

休息是為了走更長遠的路

舒壓的方法有很多種

1. 去睡覺吧 !2. 渡假,出去走走3. 瑜伽冥想按摩 <- 作者說的

Page 26: short coding 和 time management

排除浪費時間的工作

時間就像 xx 擠一擠還是有的

常見的浪費時間的事情有1. 工作表內的垃圾事項

ex. 20:00 看民視八點檔大戲「娘家」2. 電子佈告欄

ex. ptt, ptt23. 太多的 RSS

ex. 癮科技, mobile 01

4. 聊天系統ex. msn

5. 順道拜訪式的 social6. 重複做可以用 tool 取代的事情

Page 27: short coding 和 time management

自動化

善用工具,不要事事親力親為

以 script 來幫助你完成複雜的工作

Page 28: short coding 和 time management

多出來的時間

為天地立心,

為生民立命,

為往聖繼絶學,

為萬世開太平。

張載