2018上半年生活心得雜記

若有想成就一些事情,就要敢被指責,
拿掉要討別人喜歡的心態。

公司若有個討厭鬼,也算是無形催促人進步。
因要比他優秀才能電他,要一直確保在公司上的位置能一直電他。

不需要去乞求一份工作。
把時間花在賞識你的人身上
卑鄙的雇主只會讓人懷疑人生。
多花點時間找尋真正看得出你才華的人。
去一個值得、被重視的地方,在那釋放出工作的熱情。

一些老人老觀念,認為換工作,代表這人穩定性差,
叫我來面試的應該是你們人資吧?人來了又在說,我好像蠻常換工作。
好像人若做到屎缺,就得一輩子認份這樣。
衰小困在屎坑中就要說服自己–其實這樣也算快樂。
說這種什麼年輕人穩定性差的話,已經代表這是屎缺了,
這職缺能釋出十之八九也是之前的人受夠了這屎缺,才從這裡離開。
感謝在對話中無形中透露出應該盡早結束這面試談話了,好好珍惜彼此時間。

提前做好,反而加派更多工作,所以得假裝還在忙,
於是就慢慢做吧!被公司認為平庸也無訪,
已經完成,也要說,我還在測試喔。

要求下班來面試的人是低能無誤,
有提供下班面試的公司,代表就是加班頻率很高,才能下班時間還可接待求職者。
竟還敢來面試,這是蠢到什麼程度了。
提這種要求,也代表是蠢蛋,公司是找來在幹嘛。
反正兩邊都在發蠢。

當別人在創造,有些人在嘴炮。
當別人在努力,有些人出張嘴,酸別人、嘲諷別人做出的成績。
說幹話是這些人的專業。

如果公司有人能持續把問題解決,沒讓公司損失,
公司不會覺悟它的行為與決策在破壞產品,
公司不會因損失人而有所領悟,再多人離職也是無感,
而是因為有實際損失到錢,
POC時,一堆問題,因人員流動率大,造成沒有工程師有時間去現場,
若有派工程師去現場,回報的問題,也沒有人可以解掉問題。
但若有能人一直能把問題解掉,公司就會一直做一些垃圾專案。
甚至覺得決策相當正確。

人對別人有惡意想法,
是因為先對自己有惡意。

講道說:神沒義務讓人生活舒服,
但人信奉一個宗教應該是為了過的舒服吧。
信的痛苦何必信呢?

讀書多了,容顏自然改變,許多時候,以為許多看過的書都成過眼煙雲,不復記憶。
其實它們仍是潛在氣質裡,在談吐上,在胸襟中,當然也可能顯露在生活和文字中 — 三毛

一切「恨」都是根源於「自我憎恨」。
每天都能在脫口秀、新聞或各種媒體上看到類似悲劇,
把內疚投射到別人身上,也投射到自己身上。
學童在學校裡老愛相互桃釁、結黨造勢、飲負弱小等等。
這一切,都是想把潛意識的內疚投射到別人身上,
證明別人錯誤,讓別人成為壞人。
總有各式各樣因素將人分別高下,
讓某一群人感到優越而另一群人則一文不值。

創造太多東西就表示得想辦法擺脫它們,而這很浪費時間與能量。
話說太多,人就越累。

我相當肯定耶穌有一項超能力或說是神蹟—原諒。
主啊!赦免他們,因為他們所做的,他們不知道。

感恩不是人類天生德性
人是以"將來可預期利益"在計算,
而不是目前或曾所受的恩惠在計算。

A great talker is a great liar
說大話者多謊言。

健康即是財富。
健康是家庭的"財政"問題,健康完全跟錢有關!
日本人研究若中風開始躺在病床上,直到死掉通常還要過七年以上。
所以保護自己健康就是替家人賺錢
在乎自己健康才是對家人公平。

萬事是籍著"祂"造。
但有時,我覺得在祢所造的世界,會讓人覺得這裡是地獄第一層。
我在祢所造的世界中,只能平庸度日。

父啊!為何離棄我,連耶穌自己都質疑了。

人常常都是哭著喊著要譴責騙子,
其實這種人知道自己也是騙子,
只是希望他人要誠實。

薪水是權力讓渡

日子持續過,欲望應該更少才對,
為什麼總覺得要買的東西好多。
每一個煩惱,對應到一個欲望。

因這裡是台灣,面試時都要假設那份工作是屎缺,
應該是面試官去說服求職者他為什麼要在屎缺上盡力。

沒有神會從天而降說:
走這一條路,把履歷丟這家公司。

心智弱化現象之一:
把別人課題變成自己課題

神啊!北韓有個金正恩,自比以為神。
在這世界中,有人企圖搶奪祢神地位。
但看來祢比較在乎這世界有沒有同性戀。

有時覺得家庭宛如行動監獄
有時放了幾天連假,但哪天是滿足我自己需求?
一下他們要去哪玩…一下他們要買什麼…blabla。s
生命像牢寵一樣,
公司困住了星期一到五,像擠奶般擠乾了生命能量
孩子與教會活動,則困住了星期六日,
教會真的有提供安息日嗎?

西遊記中孫悟空有七十二變,為何悟空不直接飛到天竺呢?,
可能因為會錯過這段路程上該有的課題。
人只會珍惜那很困難得到的事物,包含得到智慧也是如此,

廣告

我個人的方法與變數取名經驗

少用Filter這方法名稱,是Filter掉什麼?留下什麼?
Filter約定成俗,常見是有保留的意思。
其實可以用其它單字,如select等等。
避免用filter
filter(year>2011)
是選取還是排除?常代表的是選取比較多
如果是選取,可以用select,如果是排除,可以用exclude

閉區間的方法or變數:用first,end來取名
半開放區間的方法or變數:用begin,end來取名
區間,如一個方法叫getRange(2,4)
到底是會抓出2,3,4,還是2,3?
通常若是抓出2,3,4的,叫閉區間 ,會用first與end
若是2,3,叫半開放區間 ,會用begin與end, 表示有起點,而不會含終點

來Size取名不好,是指什麼的大小?
delay可以改成delay_secs
size可以改成size_mb
limit可以改成max_kbps
時間最好加上單位,大小最好加上mb,kb,bytes等

像gettime,到底回傳是秒還是毫秒?
gettime_ms就又更好

password,可以改成plainttext_password
html_utf8,有編碼
但不應該所有的變數都要補上_utf8,在容易被誤解的地方補上。

我曾見過
avail,valid充滿了整個class,
當這兩個單字放在同一class,真的容易誤解。

無意義的縮寫
BackEndManager改取作BEManager,
Workspace縮寫成WS只縮寫成這樣可以減少它的困擾嗎?
連函數都不註解。自己發明一些奇怪的縮寫,
讓程式看起來神密兮兮的用處是什麼
讓別人覺得自己很厲害?
這些程式設計師背後的心態是什麼?

快速區分出是成員變數還是全域、區域變數。
成員變數的前綴字可以補個m,或是_

未處理的補上raw

一字多義。
!right是代表?不對,還是不是左邊?

clip(string str,int length)
到底是從尾端刪除length還是
只留最尾端的資料?

length到底是bytes數量,還是字元數量?還是單字數量?

有邊界的值,如你限定超過十項要有警告。
就要寫好max_xxx。
讓人一清楚看見此變數有極值。

布林值前面可用前綴字
is, has,can,should

bool read_pawword=true;
到底是需要讀,還是已讀完?

避免否定敘述
如 bool disable_ssl
而該用bool use_ssl=true。

通常人會預期get與size是輕量級的方法,應該幾秒鐘就回覆。
c++在非常早期的list容器有個關於size的問題。
當時size調用時,並不是個常數。
而真的把list串列整個走完。
當不是個常數時,應該要加上動詞,如寫成countsize,
現在的c++的list的size的複雜度現在已經是O(1)

—————註解—————–

好程式> 壞程式+註解

讓變數名稱本身就是註解。
變數名字取好就不用註解。

程式的文化是會漫延的,不註解,大小寫隨便,一堆val。
但漂亮的程式碼會有啟發性,還會激發別人去改善自己的程式碼

註解:想像讀者需要知道的東西。
註解要有價值。不要註解能很快從程式碼知道的事實。
有些不要註解,直接改掉名稱。
不要用註解補救不好的名稱。
函數名稱就要說明函數的意圖,self-documenting。
好的函數名稱比好的註解更為重要

導演評註:director commentary。
記下寫程式時重要的想法

少了註解,讀者可能會害怕改動雜亂的程式碼。

FIXME,已知的問題
HACK:承認解法方式不夠優雅
XXX:危險
TODO:作者未處理的部份
todo:小寫,小問題

註解常數為何會是特定數值的原因
設了一個莫明奇妙的常數在其中,卻沒有說明
//經實測多次調整,這效果最好
image_quality =0.72
應該要這樣註解,
而不是莫明一個常數在那裡

我自己的寫Code美學_Part2

只提供給User一條路徑而不是三四條捷徑選擇。

風格之美、和諧、優雅與節奏取決於簡約。
code要有難以琢磨的美感,美感則是來自於"簡約"。
美麗的程式碼有許多相同特性,首要共通點就是簡單、簡約。
美,在簡單之中誕生,在簡單之中發現。
優雅解法,代表需要創造力。
漂亮的程式碼,應該是賞心悅目的。
寫程式比較多的時間是花在讀碼上,能越快讀懂,就越容易使用。
讓程式碼"美觀",做這件事的同時,常常不單只有改善表面,也會改善整個程式結構。
是一種編排的美感,與一致性。

只寫需要的功能。
可讀性最高的程式碼—就是完全沒有任何程式碼。

就算原本程式碼很醜,它也已經通過了測試與審查,
留住舊程式碼有其必要性,有些已歷經數年的測試,
隨便改寫,可能會造成莫明的bug出現。
不要未經考慮就拋棄"舊"程式碼。
結構與風格、自以為寫的比前一位好、新技術的出現都不該是重構的理由。

除非新的語言與框架可以顯著的提升功能,可維護性或生產效率,否則保持原狀。
新的程式碼不一定比舊的好,舊的也不一定落後。

隱藏不重要的細節。
程式設計師說話若太瑣碎,就是太多細節。

若參數是數值就要考慮到邊界值,負值,極大值,極小值,兩個相同值,0

“醜" 的程式碼。
要能辨別"醜"的程式碼與能跑的程式碼,
醜的code通常帶有隱藏的問題。

開發時間寶貴,讓code可讀性高一點是對別人的體貼。
程式碼在於"可讀性","易於理解"。
“縮短理解時間"是重點
而這個別人常常也是半年後的自己。

先解決問題,再改善效能,
優化都是放最後才在做的事。

無法用口語說明遇見的問題或是設計,
可能就是有遺漏某些東西,或是有問題還未定義。

程式設計師常高估自己的能力,低估bug處理的時間。

常見一些程式碼那種寫出來感覺就沒有打算要後續維護。

園丁常會修剪枝芽讓植物更加著壯更有生命力,
修剪用不到的程式碼也會持續影響後續的程式碼。

我曾經看過有一般的應用程式試圖在處理記憶體不足,
那應該是OS要處理的才是吧!
一般寫應用程式的為什麼要處理?
應該要直接顯示messagebox,優雅的讓程式關閉。
加了一堆code,試圖從ram不足中恢復,但恢復後呢?
實際上還是不足啊。

花時間研究一下git for win,可以免除蠻多需要撰寫程式碼的時候。

一個方法解一個問題。若一個方法在解兩個問題,另一個要抽離成為獨立方法。
這是為了讓程式碼重複利用。

等需求確定才開始動作,因為需求常再變。
倒是可以先寫那些需求怎樣變,都一定會用到的底層方法。

複雜的迴圈、大量的變數,都會增加心理負擔,需要更多思考,記憶更多變數才能理解。
當有大量心理負擔的程式碼,代表更易忽略其中的bug,更難以修改。

? : 三元運算子,看情形用,有時反讓程式碼難讀。
要把全部塞同一行。
而且也難以在除錯器中單步執行。

少弄do while,因為讓讀碼順序變的詭異,
讀碼是由上讀到下的。
“條件式"應該列在最前面,
若非必要避免使用do while。

方法盡早return。可以讓程式碼更簡單。
迴圈的話,就盡早continue;

太大塊的程式碼,{ }應該是一個螢幕的範圍。
因人一次只能思考三到四種東西。程式碼越大塊,越難消化。

Don’t repeat yourself。

減少全域變數。變數存活範圍越大,就必須記得越久。
變數越常"改變",越難記得目前數值。
若是常數就用常數,因為不可變的比較少風險。

100行可讀性佳的程式碼,比50行混亂艱澀難懂的code還好
縮短其它人理解程式所需的時間,比減少程式碼行數還好,
比較短的code不一定比較好。

理解程式碼,別人才能修改,找bug,快速知道它是怎樣與其它程式碼互動。
但多數的程式設計師的心態是,不在乎別人懂不懂,我是唯一用的人。

說明變數的目的,可以更容易抓到蟲

如果程式某個地方以ABC順序描述,
在另一個地方,若改以BCA順序描述這會造成困擾。

我自己的寫Code美學_Part1

一些新技術像是深度學習或是BigData,
一堆公司就跟青少年在宣稱他們的性經驗一樣,
每個人都在談,每個人都宣稱自己做了。

要成為一個專家要花一萬個小時,
但要沈浸進入心流的才算,頻繁中斷的時間要在這一萬個小時的範圍中剔除。
魔術數字,一萬個小時。
每天8小時是
10000/8
Ans = 1250
Ans/365
Ans = 3.424657534
快4年,而且是專注且有效的練習。
是"自己"練習。而不是丟給前輩叫他們解。
不只重覆一遍又一遍,還要嘗試做出超出當前能力的任務,
事後分析自己的表達,並修正錯誤。
練習不單是做擅長的事,還有做自己不擅長的事。

程式碼的壞味道,寫到一定程度就會有這感覺。
壞掉的程式碼是有異味的。

過度複雜與高度耦合的區段,都是一個個骯髒的程式碼炸彈。
炸開後,犧牲品就是時程。
當意外遇見骯髒的程式碼要估出合理的時程將會變的異常困難。
而超出時程付出的代價是信譽。
公司輕視信譽,哀哉,這是台灣軟體業的通痛。

刪code是不是寫程式的一種?
寫的少,維護的也就少,出現bug的地方也就少。
多寫出來的東西,別人都要花時間讀,應該要刪除。
留住能夠剛好把工作完成的code。
額外多出的變數要刪除
刪掉那些用不著的全域變數。
簡單是因為刪簡。

是誰把糟糕的程式設計師找進來?
良好的程式碼並不會憑空冒出來。
差強人意的程式設計師與偉大的設計師之間的差異是:態度。
與心態有關。
假如你不關心同事,也就懶的在程式碼中寫下清楚的註解。
同事是看你的code來決定對你的看法。
不在乎別人對你的看法?
原來是讀了阿德勒被討厭的勇氣,而打算實作啊!

不要寫只看似能運作的程式碼
但若要趕時程就都是那種code的型態。

無論何時,接觸到一塊code,
要盡所能在離開這區段時,讓它變得比當初發現它時還要來的更好。
更好的結構,更好的命名,更好理解。

寫出code那些省下來的時間,
是為了讓我可以更多時間陪孩子,
或做我自己想做的事。
結果…又在休息時間寫code。
假鬼假怪的自己。

奮力解決一個難題,以為別人應該要連讀程式碼時也該這麼難理解與難維護。
甚至是讀的人是六個月後的自己。
不是這東西困難。
而是寫的人沒有在替後來讀碼的人想。
所花費心思所寫的每一行程式碼,都代表給一封將來給其它人看的訊息。
解釋給另一個聰明的人聽,說明是怎樣解決這棘手的問題。
在未來,有人看見這段code說,太棒了,我完全可以理解這code所完成的事情,
它是設計是如此優雅,充滿了解題的美感。

如果連簡單的事情都做不好,拼字錯誤,按鈕設計錯誤。
人家還信賴這軟體嗎?

如果code需要註解來解釋,請考慮重構到它不需要註解。
註解只註高階意圖。

單位上的錯誤。
1999年火星氣候衛星,軟體錯誤。
基地的軟體以磅為單位,但太空船使用牛頓。

限定user輸入範圍,以及預設值,避免錯誤。

有時候,解決問題的方法是放下滑鼠出去走走

要加強程式設計能力,實在用不著多讀一本書,而是去讀source code。

從中"犯錯",從錯誤中吸取經驗,得到比閱讀技術書籍所無法傳遞的體會。

看完航海相關電影不代表你就會航海了

有些程式碼留住的話,
會導致那些細小怪異的程式碼缺乏清楚的目標。

不能用一個按鈕評估事件複雜度。
google首頁只有一個按鈕。

手中的工作完成度有90%,但無盡的卡在10%的除錯。擁有的進度並不是90%,而是沒有完成。
除錯可以學習,但整個專案沒有進度。
修bug沒有進度,提升只有你自己。
沒有"能見度"的進度,等於沒有進度
我曾遇到開發報表不填的。
故意不填開發進度,讓它不可見。
隱藏自己的能力不足,避免被人知道超時了。
不填時間管理,就可以不讓別人or自己,知道逾時了。

每次Code Review時,一定讓它比之前好一點。
每次把檔案開啟來,多少要改善程式碼
或許只是改變數名稱,或是將過長的方法拆成兩個。
只是像上完廁所要洗手,垃圾要丟垃圾筒一樣的好習慣而已。

不要拿自己的時間去證明 , svn會出錯,編譯器會出錯,
不如好好找出自己程式上的錯誤
去除那些不可能發生的,剩下的即使再不尋常,那也是真相。
曾遇見一個菜鳥,三不五時就在擔心svn會出錯。
其它人已經開始動作寫程式了,他還在把專案另外複製出一份來,
只敢寫在另外複製出來的那一份,等自己覺得沒問題時,再合併程式碼…
我制止他這種浪費時間的開發方式,他回說:他這是謹慎。
…你弄出的bug遠遠還比svn多。
公司不是有筆試有面試嗎?誰面試這傢伙且又讓他進來的?

花在讀code的時間比寫code的時間多
要花時間取好命名,因為它才能清楚表達出它的行為。
上一個花括號{與下一個},要在一個螢幕的距離內,
腦海裡可以保存更少的狀態。
程式碼方法,行數的上限是一個螢幕的距離。
這與人的認知能力有關。

盡量避免全域變數。
方法的參數的上限是4個,多的話,盡量整合成一個物件。
傳遞資訊越少,需要推論的也越少

避免先叫getter,再做物件工作。
物件應該本身自己判斷。
直接要求物件工作,而不是先幫物件判斷。

程式碼,應該是對下一個接手的程式設計師表達它自己。
可以把很難的東西簡化才是高手。
把難的東西寫的很醜,不是高手,這是在假冒高手。
這行因平庸的居多,為了不想承認自己的平庸,
面試時只會出了一些怪題目想考倒別人。
寫程式時,連註解也不寫。
面試官啊!誰又是你當時的面試官?

何時不寫註解也是技巧
程式碼已經說出的,用自然語言再說一遍不會增加事情的正確性與真實感。
註解掉的程式碼也不能執行,為何還要放在其上
應該把註解當程式碼,每段註解,都要給閱讀者價值,
沒有價值,就是浪費,應該刪除or重寫
註解應該說出程式碼表達不了的
與其為糟糕的class or方法註解,不如直接更名。
與其為一個函數中的大區段註解,不如抽出成獨立的方法。

如果方法中有And要注意。
因為你合併了兩個事。
這應該要拆開。

有些例外是客戶端設計師的錯,破壞了方法的合約,
是呼叫者自己要檢查的,合理的回應,就是拋出例外。

對於自己的東西,不要怕弄壞。
別人的東西,則要小心別弄壞 。最好別去重構別人的東西。
不要自大到認為你比他厲害。
若這人還在公司,就別重構他的東西。
你可以做的事絕對很多,因畢竟那已穩定運行了。
只能改自己的程式,
不然弄壞了還要想辦法救回別人的程式。

懶惰,但是是聰明的懶惰,不寫垃圾。

從遠處看任何事都很簡單。
沒有開發經驗的經理會認為程式設計師的工作很簡單
沒有管理經驗的程式設計師也會認為經理做的事很簡單
沒有積極參與開發的事,你就會以為事情很簡單。
像魔法一般的完成,且魔法持續在發生。
不要低估別人要做的事。
也不要低估程式的困難度。

寫程式最困難的部份是"思考",最難被人看見。
思考看起來與發呆同表情。

DRY。Don’t repeat yourself。
DRY若是在DB的話,就是正規化
開發人員辨別出有程式碼在重複用,這就是經驗了。
清除重覆的程式碼,可以讓你得到經驗。
重覆就是在浪費,因為每一行都需要維護,
重覆只是毫無必要的膨脹了程式碼,當未來有bug時,每個都要修一次。
增加了複雜度。

只給User少數選擇。
開出來的選擇與功能,都是將來要去維護的。

靠魔法coding的程式設計師,怎麼壞的不知道,壞了也不會修,
有遇見過有程式設計師連何謂好,什麼叫有執行正確也不知道。

大量的if then else
之所以會大量產生是因為封裝被破壞了!

浮點數不是實數!
實數是連續不斷、沒有縫隙,而浮點數"精度有限",所以浮點數不是實數
浮點數彼此間的分佈也不是均勻的
浮點數會有捨入誤差
浮點數是用在科學運算,不是在用金融運算。
金融c#要用decimal
二進位沒有辦法精確表示小數,所以才會有"不同精度"的浮點數型別

當API暴露自己,違反了封裝原則,重構就也痛苦。
API若讓User能繼承就會很麻煩,有些物件不能由外部建立物件。

菜鳥亂問問題,提問題時也不說自己的測試路徑與當時的使用情境,
期待一個魔法師出現。

高手是多年來專注於學習與"精煉思維"的過程。
高手其實就是擁有無窮好奇心的聰明人
跟比你聰明的人共事的時候,做好打雜的工作,提供充份的"情境脈絡",
讓他有效率的發揮技巧。
但要庸材承認另一個人比他聰明是困難的,庸材反倒有著更多的驕傲。

在程式領域,有些人努力加班,僅是欺騙自己與同事,
讓人相信花了很長時間在辦公室,就代表為專案做了許多貢獻。
事實上,少做一點貢獻度可能更高,不可能坐滿8小時後,還能思考複雜的東西。
與其3個小時的加班,說不定早點回家,休息一下,明天早上可能只花1小時就解決了。
八小時之後已經沒有什麼生產力了。
努力過頭反而是成效不彰。
寫code不是短期衝剌。
但老板卻認為加班才是認真。
腦外科醫生每周60小時都在開刀,飛行員每週飛六十小時?
工作前的準備與教育還是他們職業的核心。
尋找聰明的工作方法。超過每周60小時,代表你沒生產力。
但在台灣?既然被叫鬼島是名符其實的。

除非是開發嵌入式,不然我自己認為學vim,
真的是蠻假鬼假怪的一種行為。
用vi耶!啊不就好棒棒。

你是程式設計師,不是使用者,不要假裝你是使用者

先懷疑client端的設定

在自己寫的範圍中別怕弄壞東西,別人已寫好,正常運作的,
不要自大的想替他重構。

下班不開機

在做好與快速做完之間選擇,一堆擱置下來的問題,就成了技術債
儘快償還技術債,否則將因"草率的行為"嘗到苦果。

神要試驗他們,使他們覺得自己不過像獸一樣

詩篇 1:1 不從惡人的計謀、不站罪人的道路、不坐褻慢人的座位、
因著這句話,我從上家公司離職。
但…
今天所尋的,往往變成明天所逃避的;
今天所希冀的,往往成了明天所害怕的。
找到了新工作,結果卻是屎缺。

——————加班——————
我心裡說、這乃為世人的緣故、是 神要試驗他們、使他們覺得自己不過像獸一樣。–傳道書 3:18

在時常加班,幹話不斷,碼農格局公司上班,
RD明明是用腦力而不是用體力,但這碼農格局的公司卻希望榨乾人的體力。
最後…就可以理解傳道書所說:使他們覺得自己不過像獸一樣。

最近看見一家鱔魚意麵有排隊人潮,猜想可能真的很好吃,所以也跟著去排。
結果才發現是老板手腳很慢,點完到實際拿到餐點要三十分鐘以上。
因老板一次只會煮一位客人,單執行緒,不會多位客人點一樣的,就同時煮。
加班文化也常是如此,那做事沒方法的人,導致要加班,
但若只光看表面看起來就很認真。
人潮 == 好吃。
加班 == 認真。

每家公司文化不同。有些不加班,貼的標籤是不努力。
有些加班則說是工作能力不足。說上班是不是在玩,看非相關網頁,才得加班。
不管說什麼,立場都是公司對。
這兩個標籤在不同公司我都被貼過,因著加班或是不加班,
都有過貼過很努力,也被貼過能力不足的標籤。

公司開會時間常訂在快下班的時間,
然後再說開會不能報加班、不能報補休。
若是這樣,代表認為開會沒有價值與沒有生產力。
既無生產力,卻又常在召開,拉一堆不相甘的人進會議室。

讓菜鳥羞愧於報加班,暗示之所以加班是能力不足,
這是在玩政治,還是在寫程式?
明明看見菜鳥有加班,但主管加班單沒有簽到,也是算了。
既然這個菜鳥不敢報,那就算了。
讓實際寫code的人覺得虧欠。
明明一套軟體賣百萬以上。
卻要用暗示與貶低來控制下屬,讓他覺得自己沒有貢獻度,
以致於不敢要求,讓他覺得不配得。

準時走,不幫忙別人就暗示這樣很自私?
每次開發新功能都要用到XML序列化。
竟有人不會,這是閃過多少次開發。
開發時常都讓這個人閃過,不幫忙這種懶惰鬼,反而是自私了。

許多code的困難點是我去突破,
卻要因菜鳥開發太慢,我不願一起加班,要讓我自覺慚愧,
一些模糊指責加在我身,說我們是一組,為什麼他常在加班。
並希望我因此感到愧疚,讓我被無意義的念頭糾纏。
我得加班是因為這個人在加班,這是什麼道理。

——————考試——————
面試考試考非常難,還拿google出過的題目來出。
然後進去後,發現寫的code像大學生在寫作業。
寫出浪費別人時間閱讀的程式碼,不註解,亂命名,亂縮寫,以此自得其樂。
寫了能跑的code,而不是易讀的code。

考試可以考出一個人的工作能力?責任感,配合度,進取心,對coding的執著?
考的出這人是寫出能跑的code還是可讀性的code?
考的出對掌握專案時間的能力?
考的出面對bug的態度?
考的出知道自己在做旁枝未節的事,而不做嗎?

因著出題者本身的平庸,所以出一些難題,以展現自己很厲害。
平庸工程師比較多,code不重視可讀性,以為讓別人讀不懂,自己才算是厲害。
甚至根本也不在乎別人易不易讀。

——————菜鳥——————
我問菜鳥上家公司離職原因,他說公司都沒指派他寫程式。
當時猜想他可能是希望自己能突破,要成長,才離職。
若只聽表象,就會覺得這個人應該是很認真學習。
不給寫程式就離職了。
相處久了才知道…讓這人寫code,維護與教的人,都會很痛苦。
因是個連google都懶的用的人。

一個善書之人,提筆剛寫了幾筆,旁邊便有一頑童來捉他筆桿,
拉他手臂,教他始終沒法好好寫一個字。
菜鳥不斷打斷高手在做事,雞毛蒜皮的事不google就再亂問。
讓高手時間被肢解,專注力被弄破碎,
菜鳥生出屎尿般無止盡的小事來中斷高手當前工作。
擴散問題,每件事都重要,
做事毫無脈絡可尋,
寫個code像報告班長,請示上廁所。
寫個code要問abc三個人才敢寫,有時三個人給不同答案,
但到最後一個也不採用。

code裡面是有一個"道"在其中。
沒有辦法提升別人寫code的"道"。
這必須自己去嘗試。
但這裡是碼農程度的公司,都是在抄學習與寫code的捷徑。
Survey是最另人厭惡的一種行為。

菜鳥因沒有相對能力,變成假鬼假怪,
有時會用星期六、日也主動加班或是中餐不吃,
來表示自己很認真,沒有功勞也有苦勞。

寫一段code可以看見背後心態。
不註解、亂縮寫、幾百行被註解掉的程式碼也commit上去。

我用Visual Studio2008開發很久,菜鳥當時還笑說:現在有什麼linq,許多新技巧。
好像沒用過這些,是我比較菜。
但其實重劍無鋒,大巧不工。
基本code邏輯與態度不好,再多花招也都無用,
這code職場裝神弄鬼的人多。

除錯通常佔據開發者大部分時間,而掌握技巧需要一輩子投入
技術是可練,但態度卻是要經歷許多事才能養成。

——————主管與公司文化——————

不要以為寫程式會帶來理性。這前提是錯誤的。

押不合理的開發時間。
有些功能主管隨意就押個二天就能開發完成,
這代表就是亂測與亂寫。認真就輸了。

主管十點交待一次,我回答好,有在處理了。
十一點又透過別人交待一次同樣的東西。
以為多說幾遍bug就解了

我看大部份104上都希望程式設計師要能獨立做事,
這家公司最妙,有問題不要自己嘗試解,不要自己找答案。
這真的很妙,麻煩跟我說一下那本小說、那個電玩的結局,因只要知道結局就好了。
我自己認為重點是找答案的過程,
不然那看一部電影就快散場時再進去好了。

有天一個主管加班,電腦主機有狀況,結果解法是出去買乖乖,
主管負責買乖乖,這種主管還真容易當。
把乖乖放上主機,只是羞辱自己而已。
看出一個人時間利用與價值觀。

擴散問題,每件事都重要,
下周要釋出,這周還再加新功能。
剩二天要到客戶端poc,還要加功能,
請他決定,加了還要時間測,可能會有bug,
含糊不清,怕做決策,解釋一堆摸不著邊際的東西。
怕做決策,因為決策要承擔責任。

不停中斷別人這種文化不制止,
不停製造噪音讓人難以工作。整個辦公室鬧哄哄的。
這公司花太多時間說話,誰都能中斷你目前的工作。
不尊重自己與別人的時間。
因為只在追求開發速度要快,但這樣就失去了深度。
趕快說完,趕快做事。
程式碼能跑就好。
抄近路,求速成,菜鳥在隨意拿些屎尿般的小事中斷人卻不能喝止。
縱容這種瑣碎事的文化。
這家公司文化,會帶走創造力
充滿死亡味道的Code文化
沒有辦法從寫code中找到樂子
願意待那邊的人,是沒有志氣之人。
屈辱高手的人,怎麼可能自己是高手。
這些人應沒有體驗過何謂寫程式的心流。

寫程式環境中有高手,那是一種看不見的引導,讓人想與之看齊。
但這裡沒有,抬頭舉目只見演員。

籍由創造得到快樂,但沒有提供這些。
推理與解謎,也沒有這些。
我應該要以完成的事而自豪,這裡沒有。
我應該以code能力感到自豪,對,這問題只能我能解。
但在這,卻害怕被別人知道進度超前,因只會加更多工作,而不是得到休息。
這裡….越夜越美麗。
一到下班時間,一群人就high起來。

104上這公司應該要打找奴材與娘們性格。
三大特質,能力強,奴性強,娘們性格
能力強不會有另兩種特質。
這是互斥。
高手不為奴,願為奴不會是高手。
好像寫code技能很容易掌握,才會這麼廉價。
充滿創造力的人,將在這環境中,扼殺掉自己的才華。

上位者求問交鬼與問咒的,怎期望有智慧與謀略。
我大概可以理解為何選擇偶像的人是可憎恨的。
用乖乖來解電腦問題。應該要列入大學的必修課。

不重家庭關係的主管,必也不重視員工,
但員工是花錢請來的,重視個屁。
沒有產值就是bye了

低估別人所寫程式的價值。
有些東西只是看起來表面簡單。
像許多軟體自己若沒有編譯過,或自己寫過,
用幻想的,想說應該很簡單。
幻想隨便從網路上抓了開源軟體,只要1小時,就可以編譯完成。
像我自己曾編譯一個開源軟體,Vistual Studio跳了四百多個錯誤,
一堆細部參數要調整,才知道原來這麼複雜。
若一個人經常做的事簡單,有時就會覺得別人做的事也一樣簡單。

碼農自己花了七天做,當說出來的時候,卻假裝只花七分鐘。
當類似的項目別人預計要花三天做時,
碼農跳出來說,花太多時間了。

笑傲江湖中的風清揚:世上最厲害的招數,不在武功之中,而是陰謀詭計、機關陷井。
倘若落入了別人巧妙安排的陷井,
憑多高明的武功招數,那也全然用不著了。
風清揚被騙去取妻…,以致劍宗全滅…
我則被騙去把專案完成,浪費了許多時間與好心情..

怒氣

意識到自己心理的長期狀態竟是"生氣"

比較多的時候是充滿了怒氣,
因為…時間不為我掌控。
要去哪,不為我掌控。
在家裡,想看個書、想看個電影不停被中斷。
一部影片要分4次看,要融入電影中情感時又被中斷。
不想參加的家庭聚餐得參加。
工作上,也不停被中斷,連個google都不想用的菜鳥,
也都可以輕易中斷我手邊的工作。
時間不停被拿走,留給自己的時間是這麼少。
因為時間一直被拿走,而充滿怒氣,
想要有更多自己時間所以晚睡。
但越晚睡,越是莫明的怒氣油然而生。
那些怒氣,又無從發洩。
隱而未現,無從疏通的怒氣,導致我自己想跟自己為難。

下坡請打低速檔

下阿里山一路上都有這下坡請打低速檔的標誌。
每台車低速檔的英文代碼都不一樣吧!
我怎知低速檔對應我的車縮寫是DS?
低速檔到底是哪一檔啊!我都開自排了,代表我開車技術普普,
也不是很想了解那麼複雜的東西。
其實可以多寫一下坡打空檔可能會害死你
差點用生命記下下坡請打低速檔是指DS。