栽入程式大宇宙

紀錄一下超過 6 個月的程式學習經驗,目前也持續修練當中!

前言

自學程式高強度學習,加上實戰經驗後的 ALPHA Camp 全端開發心得。

原本想法很簡單:只要認真學,肯定能學會吧

當初作為一個軟體 PM,因為在與工程師的來回溝通中發現:高達 60%的溝通上都是工程師在跟我解釋技術細節,我心想:「我的天啊,如果工程師不用多花時間解釋這些細節,我專案速度早就飛上天了」。

於是,抱著這樣的心態,我選擇走工程師過的路、看工程師看過的風景、上工程師上過的課,徹徹底底地把自己從 PM 抽出,試著成為一名工程師。

天啊,有不難的課堂嗎

原本有一些前端基礎概念的我,想著要上手應該可以比別人快。原本在學期一的課程中「剛開始」也有這樣的感覺,相信一切都在計畫中。結果信心滿滿的報了第二學期後,我才發現「那時的我太天真了」如大學第一次聽到微積分的恐懼感席捲而來,每堂課深怕錯失進度、作業也需要助教救援。

全英文的文件早已把我的恐懼拉到 90%。特別是遇見與三角形相關的邏輯題,都讓我以為是高斯跟蘇格拉底從墳中爬出來打擊我的信心,你問我說高斯就算了,為什麼有蘇格拉底的份?因為他讓我打擊了我的人生的第一哲學 — 別碰數學。

我試著找到自己的定位

當信心完全瓦解,我心想:「天那,到底為什麼我要學程式」甚至開始懷疑自己能否勝任軟體 PM。但頭也洗一半了,第三學期也報了,只好試著想想自己在這個軟體世界的定位會是什麼。而在這時我遇到了一個最為複雜但卻讓我看見一絲轉機的任務 — Twitter 專案。

在這專案中我是組長,一部分是我是整理控、喜歡讓每件事情有條理的 on board,另一方面是我幾乎無法接受被比我糟的人領導,既然如此就讓我來拋磚引玉吧!而事實也果不其然的,除了與後端溝通上遇到溝通錯誤外、就連自己前端的夥伴溝通上也會偶爾出錯。每個人都是花錢來學習的、每個人都有自己的目的,而這些目的一開始讓我覺得毫無頭緒:想著怎麼帶領團隊。

當程式運行的那一刻

我會有每天睡前反省自己一天之中哪些溝通可以更好的習慣,而在有一天我突然發現:那些我在跟成員溝通的東西,為什麼他們都不用特別解釋些什麼,或是我們竟然可以很直覺的用技術語言溝通。等等,這半年來我怎麼都沒發現這天殺的變化?我在冥冥之中完成了我當初的目標了:不用讓工程師跟我解釋技術內容,因為我能靠自己看懂了。

既然已經超越當初的目標,那現在開始每走一步都是超越,帶著這樣的樂觀,我開始想出自己的定位:我適合整合跟確認需求。因為我是商學院畢業的,我更能知道何謂結合、商業價值在哪、也知道怎麼開口去問真的該問的問題、卻又能拿捏好分寸。而我在意識到這些後,我明白了我的課題中就是要作為技術人員的支持者,因此不論是我寫的程式、還是我參與溝通的程式,當程式順利運行的那一刻,對,每一刻,都是打從心底的興奮。

比起 0 分,我好歹有 20 分

或許比起多半的工程師來說,我的技術能力遠遠不到能獨立開發的等級,但比起上課前的我來說,我卻已經超乎自己的預期;我能平心靜氣地看著自己的技術還沒成熟,卻也不卑不亢的處理需求,兵來將擋、水來土淹。

在學期之末甚至也能開始執行一些公司需要的串接或小套件開發需求,其實我是可以的!比起大神或成熟的工程師雖然路還漫長,但我不是毫無前進,若真要用 0~100 的數字來說自己的程度,那我會說我自己是 20 分,這 20 分來自於我把自己抽離、從別人角度來看看自己能開發的技術,我會給這個人(自己)20 分,而這也正是我給予自己的評價 — 有成長空間卻也有在前進。而給自己的期許也很簡單,那就是「看懂程式碼」這聽起來很平凡,但你想想:如果真的能做到世界上多半的程式碼都能一看就懂,這不也是種卓越的技術嗎?米其林美食家不一定要很會做菜,很會品菜也是一種技術。而回到程式碼來說,這個技術不外乎三個重點:英文、debug、開發。

英文是讓我們認識別人心血的機會,寫部落格紀錄 debug 是讓我們認識自己的心血的機會,開發網頁、程式則是讓我們把心血轉變出商業價值,發給全世界的機會。