※ 引述《TonyQ (心存善念盡力而為)》之銘言:
: ※ 引述《splitline (嘉中廢文王)》之銘言:
其實我是真的很懶得好好寫文章,特別是職場的部分。
因為太多變因,說實在話很難寫,
而且寫出來還要面對一些其實沒進入狀況的不同意見跟誤解。
但這也就是討論的一環,我試著寫一寫好了。
我先說我的語氣不管是讓誰覺得悲壯還是嗆,我都不在乎。lol
因為對我來說,這些題目不過是從我過去的生命中,
抽出一部分的經驗出來寫而已,他當然不會是什麼標準答案,
但我只打算對我自己的經驗負責。
前言就寫這麼長了,我們來接著談談學生跟接案這個題目吧。
===
在進入主題之前,我想先提醒大家。
2000 年左右的接案市場(靜態內容網站、視窗應用程式),
我當初所在的 2004-2008 的接案市場(傳統廠商 E 化第一波、flash 等),
還有後面的 2008 - 2012 的接案市場(互動性網站設計、app)。
再到現在相對又更百花爭鳴的接案市場(我稱之為平台競合市場)。
不同市場的樣態、發案者、技術需要,是完全的兩碼子事。
我現在一個禮拜還會排一天晚上回母校跟大學生聊技術,
陪他們作他們自己想做專案,我不覺得自己真的脫節多少。
說實在話,我還能猜到或理解這波大學生(大三大四),
他們畢業的時候的市場樣態。
但我是完全不覺得自己能預測我們今天討論的這個人,也就是高中生,
他們大學畢業時的市場樣態會怎麼樣。
所以如果要討論的是他現在該學什麼,畢業才會比較好,
坦白說我自己一點都不想給答案、也不想猜。
沒有根據盲目的猜測,比沒有意見更可怕。
不過既然他談的是現在的接案市場,我們只需要考慮「現在」就好。
那我就從我前面那四個問題,自己延伸一下來寫我自己當初的答案吧,
然後再寫些那些沒有隨時空改變的事情,寫寫我對這個產業的論說文。
我多少有點是借題發揮,但這本來就該這麼談。
======
1. 解決至少一個真實世界你碰到的問題
2. 描述這個問題
3. 描述你怎麼解決這個問題
4. 想像你還能解決什麼問題、怎麼解決
回到 2004 年,約十二年前。
我第一次「正式」學習寫程式。
(非正式的部分大概小學到高中陸續玩過,但大概只到能過破冰門檻而已)
那時候市場動態是以靜態網頁為主,但資料庫已經慢慢進場,
算是「網站還不那麼強調使用者互動跟註冊」,主要專攻呈現的部分。
技術點來說的話,
就是網頁剛被重視、css 還沒普及只有table layout 、
多數內容網站就是商品櫥窗,blog 文化跟相簿才剛剛被無名帶起來而已。
那時候我最一開始擁有的技術內容,
是 vb6 寫過樂透程式(random()) 跟基本視窗應用。
小學時代自修的 html 4.0 tag 。
(我還記得 font tag 要怎麼用,請記得那個年代沒 style 。XD)
還有 Java 基本 IO /array/for ,沒學過資料庫、資料結構。
我跟你的困境一樣,我不知道我能做什麼跟接什麼案子,
但商業市場很可怕,對要收別人錢、怎麼收,別人會怎麼要求我很沒信心。
那我想,我就當我自己的案主吧。
自產自銷,成本只有時間,覺得划算。
(這是我這輩子少數幾次覺得自己做不用錢最划算的時候,
但這是大錯特錯,這也是必踩的雷之一,吃飯成本、時間成本很貴的。)
寫個遊戲是我的人生小小夢想之一,
我開始正式寫了程式之後,第一個想法就是想寫個遊戲。
我大一上的時候自己寫了個人對電腦的 5x5 賓果遊戲,
後來隔了幾年我把他變成一個學生教案並且重構,程式碼在這。
https://github.com/tony1223/bingo
完成之後,覺得有點空虛,所以需要點虛榮感,
就開始研究怎麼讓他 applet 化讓其他人看到之類的。
但還是很空虛。
我最早的問題是我自己設定的,一個我自己覺得有趣可以殺時間的簡易遊戲。
我完成了他。
那時候我只停留在答案的第三點,我只解決了問題,
但我沒有去想還能怎麼解決問題。
事實上一樣的程式可以在不同平台上有不同表現態,
像我可以把他在 web 上重寫,就會有更好的表現。(applet 還是很不方便)
但我當時受限於自己只會 java ,所以限制了我自己的表達。
====
我自己之所以需要接案子的理由,
也不是什麼假掰的想瞭解業界,還是什麼想增加自己的實力,
是因為我真的窮到沒錢過日子,所以有案子我就得接,初期幾乎沒得選。
大概前三年我都處於不把眼前的案子接回來,
我就會活不下去的程度。
但當然我的情況是極端值,我也碰過就算接了案子都活不下去的情況。
====
我的第二個案子,是歐亞書局(某國內最大的原文書代理商)。
他們來 codejob 發案,發案內容寫得非常語焉不詳。
後來發現是案主自己都不熟、沒把握,
總之是他們系統上一個用來協調內部物流的一個行事曆跑不出來,
有 javascript error 。
我大概用了半天幫他們 debug ,那時候我還不熟 js ,
不過基本常識有,花點時間總是做得到的。
半天進帳 6000 台幣。
作為第一個正式收費的案子還挺划算的。
後來我變成他們常駐的外包工程師,幫他們解決了幾個業務上的大問題,
不過後來他們資訊主管跟我的窗口一起閃人(該公司資訊環境蠻爛的),
我就跟著斷了聯繫。
不過那半年大概幫我陸陸續續賺了四五萬塊,
時薪大概都在六百到一千多之間不等。
就我當時的情況還算蠻不錯了。
===
第三個案子比較像是義務幫忙,我因為接案收入不穩定,
另外在校內科室打工(一般工讀,當時基本時薪 80 ),
有天單位有個大姊臨時需要一個活動報名系統問我資訊本科能不能幫忙,
我就幫忙用兩小時寫了一個非常簡易的版本。
(asp/vb6 , access db. )
可以 key 學號,系級聯絡方式電話,會檢查學號有無重複。
沒想到作為學校第一次線上活動報名,那個系統一炮而紅,
讓學生參與率提升了有 500% 有,
學務長指定以後都要這麼做,所以作為原始作者的我,
只好又用了三小時加做了簡易後台,而這套系統,在校內就活了四年。
累計總校園報名人數四萬多人次。
後來碰到元智的學弟妹,我都還會開玩笑拿那個系統出來,
問問看他們有沒有用過。
不過這是個 bad case ,因為沒賺到錢。
只是如果你從另一個角度來看,這個系統幫我打了不少當時的校內知名度。
我當時在學校的時候,用 urmap* 寫過校園內的美食景點評價登記。
有過一天幾百人上千人用,對當時的知名度影響幫助很大。
(註:類似現在的 google map ,當年還沒 google map。)
校園內專案基本上獲利低是真的,而且跟我那時候時空背景不一樣,
那時候是寫些簡單應用就能結案,現在考慮各種複雜 framework,
更多天馬行空的功能,要謹慎,但接不接,還是要整體思考。
===
第二年的專案有不少都挺有意思的,像是寫手機遊戲(j2me),
寫成語接龍,所以我很早就寫過 app 了(笑)。
一個案子我寫了一個月,概略估算工時的話大概是 6*22 、收兩萬,
不過其實時間花比較多再做需求訪談,需求訪談工時大概是 6*4 ,
但那時候老是忘了把談需求的時間成本算進去(也不敢算),
所以實際算起來時薪都低的可憐。(這也是必踩的地雷)
不過我還有印象,
當時發生過電腦當機整個程式碼消失的窘境。
從那之後就比較積極做程式碼管理。
(當然,當時 svn or git 也不像現在這麼概念普及,
幹,我怎麼邊寫邊覺得我一直在講當年有多原始。XD )
另外第二、三年我碰過幾次發案者跑路的,(必踩雷典之三)
我印象中最深刻的是有一個銘傳資管請我做畢製還跑人的,
本來不想找人麻煩,而且也才一兩千塊而已,
不過我跟他說如果是我做的不好就直說,還是他有什麼困難,
我未必要收這個錢。
不過他直接消失不給我答案,我直接殺去他們班版找人,
他才被逼著要出來面對,後來付錢了事。(攤手)
我還有個上游包商碰到一個詐欺犯,他做了系統、結果對方跑路。
所以為什麼要預收兩到三成訂金,有道理的。我是從這些案子學到的。
===
後面還有幾個案子,比方說中央大學某工管所 lab ,
非常精實的系統模擬演算法計算,
我連續兩年都接到他們 lab 的案子(教授允許外包)。
共同的特色是,我們都是必須要從案主的角度出發,
他語言平台是什麼,我們就遷就什麼。
既有的系統長什麼樣子,我們通常就是接手給規劃,
有時候可以砍掉重練、有時候不行,時間有時候多有時候少。
碰到完全不會的平台或語言是常有的事情,
但就是看看案主能承受的風險程度。
這個市場極度不信任學生,他們認為學生裡面有便宜寶藏,
所以他們願意把一部分案子給學生,但更多的時候他們預期會失敗。
(不好意思的說,我還是大三時,
就全權主持過日 PV 15 萬流量的網站的系統架構,
大四就花我一整年的時間在設計一個社群網站,
大五我在幫網路銀行的資安外包商,
設計一套虛擬的、資訊混淆過的網頁注音鍵盤,還支援 css 自訂 layout。
頁面按鍵全部用圖檔、打亂,key都 hash過
而且我拿的薪水還遠比不上業界起薪,我很有自信我就是那個寶藏。
所以這是當事人視角發言。)
所以有人說要不要說自己是學生,我覺得有經驗的可以不說,
但沒經驗的,用學生身份當免死金牌也不錯。
累積夠經驗或卡到位就可以主從易位了。
只是,一旦你有自信你真的是比較好的,
該上牌桌打牌的時候要記得上牌桌打牌。
我離開這個蹲低的階段之後,
從 36k 起,平均每年加薪幅度都超過 20% ,有幾年甚至有 40% 的加薪。
====
我用三年到四年的時間看過了這個業界的各種專案,
我甚至還做過 embed 的軟硬整合案子。
小從學生作業大到社群大流量平台,
能在幾年間通通做過,而且留下戰果也是挺難得的。
當時如果我沒有學生身份,其實不太容易做到這麼多事情,
當然這跟我當年得選擇好好掙扎在業界活下去有關係。
你不是學生,就是個新鮮人,跟你一起競爭的新鮮人有很多。
但你是個學生,就表示你還有很多時間可以 survey 研究,
而且我們比較樂意培植學生,這是這個國家對於學生的慣性。
(有人可能會問,資訊科新鮮人無技能所以失業的一堆,為什麼不培植他們,
不好意思我做社群的時候看多了,我做社群本意也就是想照顧這群人,
我也盡力了,但有些裡面的人出社會還要幫忙的,
扣掉家境困難跟身心條件不好的以外,
多數從學生時代就是失去目標不知道自己要做什麼的伸手牌,
神仙難救無命客,他們不自己想清楚,外人已經很難救他們了。
一樣要救伸手牌,我寧願救希望大的在校生。
最糟糕的是這些無命客有時還會拿他們自己的想法污染在校生,
有時我甚至激進的覺得讓他們成功等於找自己麻煩。
改變在校生才能打破迴圈。
對不起我離題了。)
大家條件不一樣,學生就會變成一個有趣的特點。
至於學生是不是便宜。
坦白說,這個要回頭來呼籲業界自己人啦,
我們要多鼓勵有薪實習,接案對學生來講多少還是有點辛苦。
帶薪實習比較能達到雙贏。
==
我自己大學時代係上的校外專業實習,校外廠商都會提供我們有薪實習機會,
牌價大概是一週三天,一個月一萬六左右。好一點的可以到兩萬多。
我 2012 年在呼叫師傅(某 o2o 裝修 service)時,
當時我是公司技術主管,公司政策是找學生實習,
我當時是在預算範圍爭取到 200/hr ,
一週來兩天、一天 8 hr 不加班。
有加班我都會跟他算清楚,我自己就是苦過來的,
我不希望複製自己過去的經驗在別人身上。
而且來都有安排跟工作結合的基礎訓練課程,
第一個任務是純粹的建置環境跟基本的訓練課程,
不是那種直接上工逼著做的。
==
最近某我自己正在擔任顧問的新媒體也被我遊說要找實習生,
我自己覺得媒體要有不同世代的意見才能多元,所以優先考慮學生實習。
也是因為該系統本來就是我在間歇維護,只是我自己本業越來越忙,
所以找個實習生來幫我分攤我自己工作的一部分,也讓他有更多實戰經驗。
開 220/hr 一週兩天半左右,約一週 20 小時(配合他的課表)。
不過這個專案因為我自己也是顧問性質,就教育成分比較低,
來的人也特別找那些比較具有基礎的人。
我們也是一邊藉由系統運作,一邊盡量把我們所知道的工作方法教給他。
(但當然,我只是一個普通人,我沒辦法照顧"所有"學生都找到工作。)
======
接案前要提醒跟能做的,我寫在這幾篇,我也建議原作者可以看一看,
這是六年前寫的,時空背景當然有變,但這些原則還是沒什麼變化的。
[討論] 接案原則
#1BIE1vUj (CodeJob)
https://www.ptt.cc/bbs/CodeJob/M.1263067257.A.7AD.html
[分享] 接案原則 (續)
#1IffXxdy (CodeJob)
https://www.ptt.cc/bbs/CodeJob/M.1386649723.A.9FC.html
我過去某年的一個案件糾紛情況,
內容 focus 在接案接手別人程式時要注意的可能踩地雷雷點。
https://www.ptt.cc/bbs/CodeJob/M.1274282057.A.65F.html
===
這是我知道的現況。
我知道很多地方的確對學生有差別待遇。
我知道很多地方還是用各種話術誘騙學生去無薪實習。
(對,我就是要用這個字,我覺得無薪實習超無恥,
為了表達這個意見,要我得罪多少人都沒問題。 )
我知道這個業界對很多不要說學生或新鮮人啦,
甚至資深從業人員來講,條件都很糟糕的地方。
沒打算美化什麼,但也沒打算去漠視什麼。
我只能告訴你我怎麼想、我怎麼做,
試著要你去思考你能怎麼想,你能怎麼做。
你為什麼這麼想,為什麼這麼做。
有些人可能會覺得我這篇有點異常嚴肅,但我這篇寫的,
可是 2004 ~ 2005 年的 TonyQ ,在他人生的一次巨大賭博,
我不會拿自己的慘烈經驗開這種玩笑。
我這麼認真嚴肅的回應這篇的理由,
是因為我大二那年也問過類似的問題,雖然我覺得我寫的更詳細一點。
當時很多人回應我,他們有些人給了我很深刻的洞見,
讓我後來能夠有許多參考,也能在有自己意見的情況底下走到現在。
現在,輪到我來把我們的經驗跟下一代說我們的想法,
然後倡議我們這一代該怎麼對下一代友善了。
我認為這業界很多規則該改變了,我會不斷的寫,
與此同時,我不去問別人改變了沒,
我從我自己身邊改變起跟證明起就是了。