iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 1
3
Modern Web

完美 Camp 進化論系列 第 1

一開始,我也是學員

2017 年的春天過年剛結束沒多久的 2/17,在一個天氣很涼爽的早晨,我早上八點就在前往好想的路上。
那一天,天空很藍,雲很白,也因為 Howard 跟我說早上十點之後才有人,那時再來。
還有兩個小時的時間,才開始我的 Training 第一天....

Training 之前我做什麼?

那時的我,已經從學校畢業七年。
學校最後的時光,是用 C 語言做演算法,再使用 Verilog 寫在 FPGA 實現演算法的碩論
在這期間,對於 Verilog 的學習,除了到 CIC 上課學之外,我自己的習慣也是買一本 Verilog HDL 回來 K,所以後來有了一篇心得[心得] verilog code 語法心分享 Sun Apr 17 16:48:37 2011

第一份工作,在光電代工的工廠工作,擔任 EE 的 RD。
主要的工作就是每一年到中國出差做明年即將上市的電視機種,代工的品牌是全球知名的電視機品牌。
除此之外,還有負責一項軟體相關的工作,配合彩色分析議 CA-210 開發 OQC 使用的量測軟體,在每批出貨的電視模組,要抽檢幾台起來檢驗它的亮色度..等。

這個作品做了兩次 (《人月神話》提到的二次系統效應,就是麼回事)
第一代有留程式碼
第二代有作品 blog程式碼

第一代熟悉標準 C++ 語法,並且亂用框架將想法盡可能的寫成了標準 C++ 。
第二代就將 MFC 這套微軟的古老 C++ 框架,用正確的使用方式與界面設計彙,將軟體再重新打造一次。

「K 聖經本」開始自學 C++

這份工作,我做了四年,也是我自學寫程式的開始。
當時我不會寫 C++ ,也沒有人告訴我要怎麼學,所以就照著傳說中的「先學 C,再學 C++ 」的路線走。

一開始,也不知道要買什麼書,只是我覺得買書的錢不可以亂花,所以對於挑書就很注重。(果然買書的錢也是要小心使用的呀),就在 ptt 的 C_Cpp 版的精華區,看到的這一個書單

先買一本 K&R2 的中文本 (C 語言聖經本),從第一個字看到最後一個字。

有記錄的是
2011年3月19日 星期六 K&R2心得//C語言概述 ~ 2011年5月13日 星期五 K&R2心得//小筆記

這之間插播一段,我買書的瘋狂行徑 2011年3月22日 星期二 絕版書~入手!

買了一本 Windows 程式設計,還有它的姊妹作 MFC 篇。
Windows 程式設計 是 C 語言的書,教你用 C 語言呼叫 Win32API
我記得還有一篇 Win32 api看視窗運作 的分享

為了多了解 C 語言的前置處理器,再去看 C 程式設計藝術 (C How To Program) 這本教科書等級的工具書回來 K

之中的前置處理器章節就介紹了很多不常見,但是存在的語法。也算是 K&R 之後才有的吧?(我猜)

看完之後就看 Primer C++ 4 (C++ 語言聖經本)
這期間只有練習書裡的 sample code ,當時並不會 git,所以沒有上傳到 github,而且後來在整理電腦時,也沒有留下來。

文章記錄
[分享] 書籍分享 2011/04/23 18:41:32
[閒聊] C++ Primer 4/e 讀到ch8的心得 Wed May 18 23:13:42 2011
2011年5月29日 星期日 .RAW的Smooth
這個文章應該是基本的語法掌握得差不多了,包含引用都已經改成 C++ style 了。

而學了的語言就要寫一些熟悉的題目,來練練語法。
這是一個不錯的驗證學習的方式哦!

在這,要提醒想學 C++ 的朋友們
要學 C++ 直接學就好了,和 C 語言無關。

「將 C 和 C++ 視為兩種語言,才是正確的認識」

[問題] C++ Primer 4/e ch14問題 9年前 (2011/08/11 14:53)

軟體 IC 的物件導向

Brad J. Cox 倡導 軟體也應該設計成一個個模組式的軟體IC
-- 物件導向程式設計 從 C 到 C++ 物件導向革命 丁德榮 彰化師大 資訊工程系

老實說,我自學「物件導向」,看了三本書

  1. 《由C到C++物件導向革命》
  2. 《從C到C++入門進階》
  3. 《世紀末軟體革命復刻版》

看完還是沒有很懂,一直到有一天,我試著把 C++ 的 class 當作 Verilog 寫 IC (它是一種用於設計 IC 的硬體描述語言,我的碩論使用這個語言實現某個演算法)

寫一次,我就懂了!體會到「物件導向」是在物件什麼了!
那種神奇的感覺,真的很神奇!

然後就開始領悟物件導向的路

2012年2月20日 星期一 物件導向之回傳this
已經學習了較建立 Class

2012年9月13日 星期四 虛擬函數+動態連結

虛擬函數+動態連結 這個東西,已經算是物件導向的奧義了。
要懂這個,才能了解 Design Pattern 在語言操作上的精巧之處。

圖形化程式複雜度

由於部門是 EE 部門,而主管都不懂軟體,所以看了這麼多書用了這麼多的技術,還是要報告給主管知道,我到底在做什麼,所以研究了一下怎麼把圖形化程式複雜度,給不懂軟體的人看

2013年1月30日 星期三 寫給C++程式設計師的UML實務手冊//讀書心得

這本書讓我在圖形化理解 class 上非常有幫助,使用 sequence diagram 更能理解物件導向風格的程式語言運作。

厲害的書單

程式設計師應讀的十本好書

這一段時間,除了一些語法書之外,也看了影響我很深的經典之作。

  1. 人月神話
  2. 軟體建構之道 2/e (Code Complete2)
  3. 大話設計模式

在工作離職之前,我與同事分享了如何寫好程式,希望有在寫程式的同事可以一起進步。而沒有辦法分享太多的語言技術細節

出道!到軟體公司工作

2014年6月23日 星期一 C++之可怕,在於它可以反映人心
[心得] 幾本讓我成長很多的書 Sat Sep 20 00:32:49 2014
[心得] 幾本讓我成長很多的書(MFC篇) Sat Sep 20 11:18:48 2014

到軟體公司上班,還是不忘之前工作用到的技術要先把它們整理一下,做個收尾。讓之後遇到類似決定的人,參考看看是不是要踏上相同的路,或者也許我的選書會有幫助

到第二份工作,原本是要學 C# 的,但是因為 C++ team 負責的軟體(用來寫後端) 需要開發一個新的 Server ,臨時找不到人,找來我們 team (前端 team),我看了一下同事們,我最熟 C++ ,不如就我來吧!保證可以最快歸隊!

結果後端 team 炸了!

因為我花了三週除了邊做邊學 ORM、資料庫串接和公司提供的 component,也完成一個完整服務的 API 開發,還把整個 server 的架構重新翻新成 MVC 架構,解決了之前 Server 架構中的種種問題,包含超過 128 個 if-else 會編譯不過、使用無數個 MACRO 的問題......通通在這三週之內解決掉了。(回想起來,真是不可思議)

用管理方式增進程式碼品質

在這個公司導入各種系統工具,包含 git、bug tracker、jenkins
用於知識管理的 wiki
用 jenkins 實戰 CD/CI

最後,我成為公司產品開發部門的主力後端。

一份四十幾萬行的程式碼,加入了單元測試與 Mock 之後,變成了八十幾萬行。
但是,編譯時間卻大幅降低,從原本的 40 分鐘左右,變成了 15 分鐘左右。

推薦看這一本 C++ API 設計
書中有提到執行效能與編譯效能上的提昇方式
還有許多專為「開 API」討論的議題。

在 CD/CI 的支持之下,將 UnitTest 導入 C++ 後端專案中。

2014年7月26日 星期六 C++單元測試(1) - 下載CppUnit
2015年12月4日 星期五 C++單元測試(11) - OpenCppCoverage可視化單元測試的覆蓋率, Jenkins顯示Report

這段期間,對於敏捷開發法很好奇,就看了一本國內大神的大作笑談軟體工程:敏捷開發法的逆襲,還有他的 blog 相當的營養很有料。

這本書相當的厲害,精準而詳盡的記載了 Scrum 的步驟與注意事項。
而且還有詳盡的介紹 Kanban 方法,因為過去待在工廠的關係,所以完全明白這一套的管理方法在管什麼。
最重要的是了解了 Story,以及程式碼就是文件的觀念,以此為出發點了解敏捷開發如何面對「需求變更」提出更適合的管理方法

整理先前工作的內容,將能分享的技術辦了一場在好想工作室
不過也因為技術不同的關係,這一場沒有人來聽!XDDD

當時還是全台南有在跑社群,並且有在寫 C++ 的其它兩位朋友來捧場。
Cppunit下載、編譯、使用與困難排除 Published on Jan 9, 2016

來好想工作室

之後選擇 JavaScript ,其實是這幾年都有參加 MOPCON,看著主流技術的進步與討論
也在工作上,遇見 C# 和 C++ 遇到的非同步問題遲遲無法解決,而主流技術早已解決的問題
總是想著,走在這一條非主流技術,不如換成主流技術,會是較不寂寞的道路
而且,C++ 能運用的就業市場,總覺得是 JavaScript 較大,至少前端的就業市場很好找。

要安全,也有 Rust
要體積小,也有 C 語言

就在這樣對網路技術不熟,並且對 HTML/CSS 很陌生也不知道 JavaScript 為何物的情況,問 Howard

「我過年之後,去你那 Training 可以嗎?」

他說「好哇」

2017/2/17 Training 第一天......
這個在台南發生的故事,才有了後續


下一篇
教、學、習
系列文
完美 Camp 進化論30

1 則留言

1
CathyShen
iT邦新手 5 級 ‧ 2020-09-16 09:54:33

鮮蝦挺!
恭喜已經超完美的 chris 正式開賽~ ✧*。٩(ˊᗜˋ*)و✧*。

mangoSu iT邦新手 5 級 ‧ 2020-09-23 17:28:39 檢舉

我要留言

立即登入留言