Re: [心得] AmazingTalker/台灣樂天市場 面試心得
AmazingTalker CTO 回覆面試心得
(此為 AmazingTalker 人資部門代為轉發)
感謝版友分享在AmazingTalker的面試心得,也感謝各位大大的關心。
在招募過程中,我們一直檢討,並作出相應調整和改善。
當天面試過程不著墨太多。
這個Po文主要希望跟大家交流我們為什麼會這麼設計技術面試,
希望如果大大們有更好的建議,不吝指教。
也期待抱有相同理念的大大來應徵,互相交流成長。
(文末附上面試題目,還有CTO的程式碼,歡迎跟各位大大交流)
============================
《我們正面對的技術難題》
新創的開發週期往往十分短,要在人員有限下完成pd的想法,一直是個挑戰
所以如果程式碼寫的不乾淨,開發的時間與品質就很難控管得好
具體的實例:
* 程式碼如果沒有從根源處理,散落出去後會很複雜
-> 舉例: 後端api拿到data沒有先轉好格式,render component就要做很多判斷
* 程式碼如果寫的太定型,所有的案例都會像特例
-> 舉例: 第三方登入雖然很相似,但每個卻拆開成獨立邏輯
* 程式碼如果沒有針對獨立事件去做拆分,內聚會下降
-> 舉例: 商業邏輯層就像傳統的god object,因為namespace很廣泛,導致task object一直往裡面擺
因為我們希望達到的敏捷開發的宗旨「不預測未來,但適應未來」
所以我們必須上修clean code的重要性
============================
《Clean Code 是一種心法》
有大大提到會專有名詞不代表會 Clean Code,CTO是完全認同
Clean Code是一種感覺,沒有既定的呈現化方式
從知道定義,到理解和內化,進而可以寫出來不是一件簡單的事
就好像寫作一樣
即使掌握了單字,文法,排版,也不一定能寫出一篇動人的文章
為了要維持很快的開發速度,盡量避免技術債的產生
我們必須要在實務上對 Clean Code 有很強堅持,而不希望只是形式上的Clean Code
============================
《招募心得分享》
我們的面試是為了解決以上難題而設計
我們透過 Leetcode 考題和受試者提交的程式碼
判斷他們對 Clean Code 的理解有沒有乎合我們的預期
而對 Clean Code 的掌握度,不是指要背某個專有名詞的定義
而是對 Clean Code 概念有融會貫通的理解,並在日常開發中實踐出來
============================
《最後跟大家分享面試題目》
只有文字不好想象,還是直接抓一題,用程式碼來說話
題目
https://leetcode.com/problems/alphabet-board-path
我們請受試者針對clean code的方式去做答
(如果有興趣者,也可以先自己先寫過一遍)
然後面試的過程中會出一版test.js針對解耦為主,但命名和寫作皆有點隨性的版本
了解受試者對該段程式的看法
感謝閱讀
* 面試考題 test.js
https://drive.google.com/open?id=111BSeF1dWMoNEjKz1U0aMDdaE4rPR3Wh
* 我們的clean code範例 demo.js
https://drive.google.com/open?id=1-zMWbkza2tzY5DMwAFA8QBq596ZBOEM1
--
其實大家都知道你只是想問面試者DP跟clean code的理解而已
這個youtuber去你們那 半年就閃了?
這沒有什麼的 但建議就是下次面試 單純問你們想問的 面試
者怎麼回答 你們就點點頭說了解了就好 不用酸面試者
或甚至當場為了電面試者就開始教育面試者正確觀念
工程師多半都心高氣傲 玻璃心得很 不用直接點破 直接下面
一位給感謝函就好 <--- 這很重要 不給感謝函 很多人玻璃心
也會碎滿地 XDDDDD
你拋名詞 對方不懂 你就心裡默默打分數就好 放他一個人在
那邊尷尬 他如果問 你就再說明一下問題就好 不用給解答
有壓日期就該遵守,這基本的吧
先說我沒有在說原PO喔 我是說原PO底下一堆推文 XDDDD
這些氣pupu的推文 被面試時如果被電 就會跑上來公審企業XD
好奇大家覺得CTO的範例的clean程度如何呢@@?
推 長知識 謝謝
如果很在意clean code 為什麼要用js這種弱型別的語言呢?
看了重構後的例子還是無法看懂要做什麼
啊拍謝我沒看題目
就說是方便溝通就好。排球校隊隨便都扣得到籃,跑去問人
家知不知道什麼是入樽是在哈囉,隨便練一個月就吃爆你
反正都要問名詞定義了 不如直接出個設計題吧
還是一堆人無法理解到底是怎麼回事耶 XD
企業面試 問什麼 當然是問企業所需要的人材阿 XDDD
你反問面試官你又如何如何 何不自己開一間公司好了?
他只多做了一件事 就是評論面試者的回答 然後原PO很在意
企業面試不是聯考 不用給正確答案的 也不用告知面試者成績
只需要讓面試者知道有沒有錄取即可
我覺得這範例只能看出coding style 還看不出系統層級的
重構 可能要從架構設計考DP會比較有鑑別度
唉我怎麼不能理解,我又不是沒跟年輕的面試過,不同師字
輩的也都有自己的行話,就事論事你最後一關噹人家就是搞
笑而已
13樓正解XD
選擇而已還公審勒 XD 公司選人 人也在選公司 企業會
因為鄉民怎麼說就改變做法嗎? hahaha 話說對程序有
追求的人不用clean code也會寫好 說到底這還是個派別
某人以前的發文再次了證明當元老的重要 點不一樣而已
後人再傲也傲不過前人 可以自己解決何須請人? 如某
這程式碼還蠻優美的 寫得比我的短的很多 有CTO水準
人所說確實有些人不留口德
推 cto 願意花時間分享
我還查了一下cleanCode
名詞是真的不知道,可是正在重構之前工程師寫爛的系統
不太懂寫得別人看不懂有什麼意義
寫這麼多是有講到問題點嗎?
還好之前面的那個沒問啥名詞
那個人
做熟了啥都沒想的在工作……畢竟程式語言嘛,就跟講話一
樣
一直被問要不要轉正,可是我喜歡派遣的一些特色
我討厭責任制
紅的明顯,這篇還是沒有說明「為什麼要糾結名詞而不是名
詞背後的內涵?」
樓上因為他應該也知道這樣不合適吧XD
相信這篇所講的道理大家都能理解,不能理解的是這個奇
怪的點。
說真的,我覺得13樓的大大是有點超譯,公司想怎麼考是
它的自由,那鄉民怎麼評斷不也是我們的自由嗎,難道說句
我覺得這樣考不合理也不行XD
剛畢業的人我是能理解,但是要老工也記這些東西太痛苦了
所以討厭面試是真的……
另外原文底下的回文;應該沒有「大大提到會專有名詞不代
表會 Clean Code」而是有大部分版友認為「會Composites
不代表一定會知道這樣做叫Composites 」。然後Composit
e 沒有代表Clean code,真要說跟DP比較有關XD
請CTO試想:在面試時要你講clean code的extract & override
你做何感想??你面試應徵者 也就是讓大眾知道你的風格
根本問題就是面試官的面試能力有待加強,不知道怎麼問才
有公司會問全台灣有幾個加油站 也有公司強調不問這種問題
能問出他想要的信號,結果就變成問名詞解釋
有分享跟滅火是好事啦,只是重點錯了,可能版友很難改觀
問的太偏門 你找人就是碰運氣 碰到剛好考前讀過的工程師
給的待遇好 當然會有一群好的人才任你選 反之 就運氣運氣
樓上 我的看法不同,給的pay好表示可以聚集人才,但並
不代表你能在聚集來的人中挑到最優秀的人才,挑法不對
甚至也可能挑到差的
樓上當然 但這是機率問題 我直覺這CTO就是在往一個坑跳
就像考leetcode也一樣 刷題最厲害的人是最優秀的人嗎?
忘了說那範例只秀出coding style而非架構式的重構
你考composite不如考factory與DI repository....
請面試者把自己過往寫過的架構畫出uml,然後再給變化需
求請他重構,也是有蠻有鑑別度的
講這麼多實際上還是主觀與不尊重專業
招募初期phone interview出題問搭船到巴西需要幾天
習慣這樣寫的人, 也不一定會特別去記這種名詞
會自我要求的工程師本來就會越寫越簡潔
要不要考慮換golang 看起來舒服乾淨
史達林說得有理
史達林中肯XDDD,公司真的不用對面試者教育觀念,自己心
裡默默打分數就好
領英查了一下前CTO離職去趨勢當工程師
不過沒查到現任CTO的,不知道現任CTO多久後會出去找工作
,山水有相逢啦,有一天你也會變面試者
樓上其實還有上一個CTO, 是個PHP熱愛者XD
其實就是去改進面試流程跟面對面試者的態度即可
解釋說為什麼要考這個考那個 意義不大
不認同 strlen 的說法 好的面試是雙向的 你在面試求
職者的時候求職者也在面試公司 最好的情況是雙方都
能在交流中互相了解到該了解的資訊 那段留言明顯就
公司角度而已
對 js 的 clean code 沒有概念,但檔名我就覺得不 clean 啊
推
1樓真的是很好笑 再強的高手我也能事先準備好技術名詞電他
公司面試的流程和態度不佳 就怪別人"玻璃心"?
面試本來就是對等的,互相的,像1樓這樣覺得公司高高在上
真的是可笑,還公審勒
可以不要用 js 示範嗎...
重點是抓專有名詞去噹人吧,誰管你多在乎clean code?
更不說clean code還分流派可以戰到天荒地老的
你家面試內容出大問題了啦,有沒有抓到重點?
根本沒解釋到什麼啊XDD 我猜你們大概也認為自己沒錯
先酸面試者不懂專有名詞 再來說
“不是指要背某個專有名詞的定義
而是對 Clean Code 概念有融會貫通的理解”
這不是自打嘴巴?
架構跟coding style定義好~再來說啦!不要倒果為因
CTO把重點放在clean code 會不會太微觀管理
這種文還有這麼多推喔? 根本沒滅到火啊
為什麼ㄧ直有人在強調youtuber的事情,不懂是要証明什
麼,youtuber的選擇很重要嗎?好公司也是有人1個月就
離職,不好的也有人待幾十年
為了只有Clean Code嗚嗚 Code Complete錯了嗎XDD
為何
120樓 +1
你們clean code範例就這樣?
自己都不過如此了還要拿名詞洗臉別人
好笑耶
我還以為你們自己多厲害的說
strlen("玻璃心")
老實說這篇完全沒滅火吧
覺得人與人之間的溝通比這東西重要...
一個很強的clean code高手,跟一個願意花時間討論的
溝通一句話,可能省下寫幾百行代碼...
如果一個人反感,可能是個人問題。一群人反感呢?
單純對後端轉格式做回應,轉不轉要看情況, 轉了就會
提高耦合性,能調用的端點會縮減。有時在client處理
資料,也可降低Server效能。所以不是轉資料就是好事。
^^^^ 降低Server耗能,抱歉打錯
那個youtube在哪一段提到啊,影片有夠長看不完XD
問題你原本的論點在於不知道專有名詞->不了解,這篇
的理解內化也沒有包含知道專有名詞的必要性啊,所以
試問有支持到原論點嗎? 可以回答的符合你們CTO要求的
高邏輯水平一點嗎?
原本交了作業之後被拒絕, 心裡還會很好奇想說 “哇
~ clean code的版本到底可以多clean啊” 看完CTO的
版本我也稍微釋懷了﴿
原本的被噓的原因就不是你們面試流程跟題目設計,重
點是原po提到的,他可能有碰過相關的知識,但可能沒
有聽過該專業名詞,卻被認為沒有邏輯的這個點,要出
來解釋也是解釋這點吧
對chatnoir認同 其實很多strategy都是一體兩面沒有絕對
像:要不要在儲存前先escape使用者輸入的字元 就有不同答案
看你是要在ApplicationLevel才做處理或直接存乾淨資料在db
你確定demo.js這個版本的命名會比較好懂?
回這麼多沒回到大家在意的點上 cto不會抓重點?
有解釋給推
通篇只是在回應空氣 根本沒去處理那篇的主要論點
說真的那個原po就面jr而已 寫過什麼超大型的項目的
機率也不高 問他拆分大型架構什麼也問不了多深 所以
問cleancode是還好 只是這種東西有必要cto自己來問
嗎 而且還那麼糾集名詞定義... 這篇丟出ㄧ個leetcod
e出來給人看codestyle 也是有點奇怪 就感覺有點降ct
o的格調 感覺從頭到尾都比較像資深工程師做的事情
CTO就是自己也沒幾把刷子
讀過基本的design pattern就以為學到
絕世武功 覺得可以拿名詞出來秀
不知道CTO位子怎麼騙到手的
我倒覺得直接丟出clean code這本書會蠻無聊的
又不是每個人都看過這本書
事實上junior本身經驗就是不夠了,看clean code
我不覺得對於吸收有多大幫助
當然,如果應娉需求直接開"具有良好clean code"知識
那我覺得另當別論,公司自由
我其實不太認同上面否定leetcode的價值
我不曉得各位怎麼看 但於我來說 clean code首重觀念清晰
易於可讀擴充維護 但每家公司做的東西和方式不同 code的
風格也有影響 根本不存在經過商業決策變換過還clean的
這造就了所謂的clean 其概念根本隨產品/公司case by case
要戰這個詞 遠不如討論實踐思路 著重名詞解釋就更奇怪了
當然,會寫出來leetcode不代表就是開發上經驗如何
但是如果公司覺得想要具備基本資料結構/算法能力的
各位又何來干涉呢?
就像是會考試上台大醬料的不代表他是好醫生啊
人家醫學院就是要這樣的人各位管得著?
就別論北美FANNG的刷題要求的難度了
也沒看上面批評刷題的人在靠北
給樓上E大,我是覺得CTO如果第一關就拿clean code
丟出來,我是覺得有點強人所難
不過這個行業本來就是有人重心法有人重內功
Clean Code當然好,但是實際上能實踐的其實有難度在
實際上產品品質好會是比較偏向clean code
但我覺得如果能拿實際範例去在面試中間討論確實比
直接丟出Clean Code問你會不會來更加實際
剛剛看到徵才網站有要求clean code 那我覺得面這些
沒啥問題
好久沒看到公司在軟體版紅了,神串留名
如果你認同問實際範例 又覺得clean code問jr不大對
那找jr來面不就很奇怪? lol
核心思想依舊是“我覺得這樣寫不大好 可以改成...”
只是那個clean會上升到SA的層級去而已 但找來面的就不是
那考同一系統下的基礎功比較實在吧 我是這麼想的
先前問說Composite 是什麼,現在說不是指要被被專有名
詞的定義?
欣賞這種毫無檢討的檢討 以及說人沒有邏輯的邏輯
問clean code還不如問design pattern
笑
答非所問 你給自己的這篇文打幾分?
這篇是要證明CTO說一套做一套嗎XDDDD
Clean code跟語言又沒關係..js為什麼不行 要 go?
CTO 很年輕感覺是個很厲害的人
個人偏好 碰了幾種語言 如果純web 用go下限比js高 寫起
來容易比較乾淨
這就是為什麼google面試的重點: 讓面試者覺得很自在
哈哈哈 真的是工程師 每一個性格都被說中 XDDDDD
CTO看到沒有 工程師就是這樣的一群人 懂了吧?下次面試注
意用詞就好 連考什麼東西問什麼東西都要干涉XDDD
其實只要是有關專業上的「任何問題」 都是可以問的
我說的任何問題 就是任何問題 什麼有沒有鑑別度 問這個好
不好 其實都不關面試者的事
呵...用這個角度看的話 這裡是論壇 討論公司和面試是這個
板的主要功能 同樣不關面試官的事 不是嗎?
有人好氣喔,難道是本人?
其實我覺得問什麼都在這邊都能被靠北
就算問一個簡單二元樹DFS問題,也會被說我寫程式也
不會自幹binary tree
反之亦然,設計模式/Clean code/ SOLID
不過我覺得他們徵才網站就有寫要熟悉Clean Code,不
覺得問出來有什麼問題,公司自由
當然,什麼樣的面試方法或是問題會更有鑑別度,大家
本來就可以討論(公審?),不過也沒必要對CTO做人
身攻擊就是了
樓上要護航幾次 大家的重點是問的方式在糾結名詞 這
種方式討論不出實際能力 這跟老師叫學生死背然後考
填空差在哪?
他當然可以這樣考 但大家討論就是覺得這考法並不是
個找好工程師的最好解阿XD
我覺得大部分人沒在公審啦
lol,別激動
事實上專有名詞可以延伸到的很多,舉例設計模式中的
proxy, facade, composite pattern, 都能被推類到’
專有名詞‘吧
說真的,這些東西對某些人來說是專有名詞,對某些人
來說是日常不過的東西。CTO就是要找會後者的人,就
算他招進來的人只會背書,能力跟不上,也是他們自己
承擔的,對吧
並非認同他們公司的招聘方法為最合適,但是人家就是
要這樣的人,也寫在網頁上了,面試不會也沒什麼好批
評的
雖然我是覺得對於jr職位,比起clean不clean還有更多
東西可以考,不過可能這本書對CTO就是很聖經、軟工1
01的
越看越有趣,從來沒有人說不能依照公司喜好出題面試,
還扯工程師性格。我只看到一直在點出考名詞這件事對實作
能力的鑑別度很差。護航的還要硬ㄠ怎麼鑑別是公司自由?
等等!這不就變成一個「啊我就爛>_0」的態度嗎,還是說
不是工程師的都這樣性格?
身為工程師最討厭答非所問
會實作比會講專有名詞還重要吧...難道您要的是一位只
會用嘴巴工作的工程師?
說到嘴巴實作上次我公司來個十年經驗的,結果叫他實作
都做不出來 只會出一張嘴一直講而已
我覺得 知道問題在哪裡 這一步,比cleancode 重要啦
,你說是吧 cto 大大
卡
我推文都是在回給CTO大大 有人說了嘛 這裡論壇 我愛回誰就
回誰不是嗎?XDDDD
你喜歡給一堆建議就給阿 我也是給我的建議嘛
我的建議就是 工程師都玻璃心 被問倒氣pupu 反問為什麼要
問這個 因為你下評語或試著教導面試者 XD
面試者不是你的學生 不是你的員工 弄清楚了就知道該用什麼
方式應對了 至於專業上 問什麼問題 完全由你決定
不用理會這邊一堆質疑問名詞幹三洨的意見 你今天問個OOP是
什麼可否簡單解釋 都沒有任何問題
面試者回答後默默評分 下一題
「當天面試過程不著墨太多」,我覺得其實公司方已經知道
這樣的問法不適當,但又拉不下臉直認不是,又不好不回文
,只好轉移重點。公司當然有自由選擇他們想要的面試方式
,找到符合他們文化的人;論壇在不涉及惡意辱罵前提,自
然也有自由討論對流程的意見,公司可以不甩,頂多是少了
一些人去面試,開得夠高就不怕,買賣市場本來就很開放
既然上來這個論壇徵才,自然會被論壇上的潛在應徵者們評
論好壞
就一個小公司lead在那邊想裝逼的感覺
說實在的用這個月表示clean code應該是看不出什麼東西..
.
說實話看不出 demo clean 在哪,說難聽點一點也不 clean
45
[問卦] 寫程式到底要不要買書?我最近買了幾本二手書: clean code 精簡的程式碼 資料結構 使用C語言 Python自動化的樂趣 C++程式設計解題入門37
[心得] 機械轉軟體工程師經驗分享# 前言 想分享一下當初從進公司幾乎不會寫程式 到現在負責做軟體的porting to Linux的經歷 如果你想轉軟體工程師,最好先進到願意讓你寫程式的公司 但是這不一定辦得到,我底下分享一些自己做的功課31
[心得] 2020/07 iOS工程師 面試心得分享前公司離職原因:資金不足,裁員,故非自願離職。 扔履歷途徑:104, linkedin獵人,人力資源公司。 人力資源公司的部分,特別感謝碩誠國際股份有限公司。 在找工作以及面試前中後的過程,都非常大力幫忙。 其他幾間人力公司也感謝,但我有印象的只有碩誠。31
[心得] 台積 IT SRE 面試心得分享一下近期在台積電不錯的面試經驗。 人資主動邀請面試。面試一共會有專業項目三關 + 人資一關,由於主管希望面試者能有較 充足的準備,因此專業項目每一關的間隔時間預定是兩個禮拜,如果有需求需要加快面試 速度也是可以調整時程。現在疫情期間,除了測驗要去廠區之外,其他面試一率都是視訊 面試。21
Fw: [心得] 機械轉軟體工程師經驗分享作者: wulouise (在線上!=在電腦前) 看板: Tech_Job 標題: [心得] 機械轉軟體工程師經驗分享 時間: Thu Jan 21 20:45:46 2021 # 前言 想分享一下當初從進公司幾乎不會寫程式16
Re: [請益] 什麼程度才能在履歷上說自己會某個語言?有些人會說語言定義、語言features之類的,以我的經驗 C++ 上下天花板非常大,理 由是這個語言太複雜了,通常非面試場合有自信說:"我精通C++" 不是真的大神就是 達克效應驅使。 比方說,C++的metaprogramming,如果你的同事不知道你用的paradigm甚至是你用的 技術是什麼,可能會造成只有你能維護的窘境。 或者是根本沒在追新標準、沒用boost13
[心得] Correct/Changeable/Clean Code;行為科學Correct/Changeable/Clean Code 與行為科學 > "I know it when I see it." 「我看到時就會知道」這句話可用在以下情形: 某人在試著去定義一件事,但那件事本身是主觀的、沒有明確的定義;那個人就可 以說「 (我不知道該如何去定義那件事,但) 我看到時就會知道」。8
[討論] 面試筆試進行最近在找工作 有面試了許多公司 其中有些事討論過往經驗跟技術雙方都討論 的還不錯 也都有拿到offer 最不能接受就是現場直接用手寫程式碼的方式 現在工具大部分都自動填字 不然就是網路上都有相關文件5
Re: [心得] Paypay Android面試分享我自己是覺得 考作業也很難看出一個人的coding習慣 例如他commit message寫很完整 有做unit test 也有符合物件導向原則 clean code等等的 但實際上工時通通都沒做到呢?2
[問卦] 看Clean code前要注意什麼?如題 Clean code全名為《Clean Code: A Handbook of Agile Software Craftsmanship》 中文名為《無瑕的程式碼:敏捷軟體開發技巧守則》 因為小弟覺得自己寫的扣像屎一樣,連自己都不想看 所以打算來看看Clean code,來增進程式內功