PTT推薦

Re: [討論] 我就問,刷題強者的實務表現?

看板Soft_Job標題Re: [討論] 我就問,刷題強者的實務表現?作者
Hsins
(迅雷不及掩耳盜鈴)
時間推噓24 推:25 噓:1 →:117

: 推 strlen: 哪有什麼不能左右?智力測驗都立法不準考了 鬧一鬧以後白 10/05 11:28: → strlen: 板題也是智力測驗的一種 也立法除非職務有需求不然不準考 10/05 11:28: → strlen: 也是很合理的啊?我跟你說喇99.99%的程式職缺根本就都用不 10/05 11:29: → strlen: 到那些拉機白板題 在現實中一點用處都沒有 10/05 11:29: → strlen: 沒用的東西大家拼命刷 用力刷 這他X的跟古代考八股文有87% 10/05 11:29: → strlen: 像 這不就是智力測驗的變形而已?腦殘公司才會在那邊通通 10/05 11:30: → strlen: 考白板 就只是便宜行事而已 10/05 11:30
現實生活中也不少人用不到微積分,你看
看有多少大專院校科系把它列為基礎必修
科目?

我也同意絕大多數的白板面試考題,你在
現實開發場景中幾乎遇不到一模一樣的題
目。但不代表他背後考核的東西,沒有測
驗的價值,也不代表他背後考核的東西,
在現實開發場景中沒有用處。這個我想之
前有版友分享過了:

Re: [討論] 軟體工作真的有需要刷題嗎?
https://hhp.li/BDCnO

所以舉「99.99%的程式職缺根本就用不到
那些拉基白板題」做為反對白板面試的篩
選機制,說真的有點好笑;我想這可能也
是很多反對刷題仔的一些誤區:

(1) 題目要刷夠多?

實際上不是,題目可能背後考的是同一個
思想,有些人練習的題目數量是別人的十
分之一,但卻花心思從中看出了「套路」
可以取一反三寫出其他題。在 Educative
上面有一門很知名的課程有總結這些所謂
的刷題套路(pattern):

Grokking the Coding Interview
: Patterns for Coding Questions
https://hhp.li/8cucv

(2) 面試上遇到題目就是要給出最佳解?

實際上可以說是,也可以說不是。有些題
目考核的是你的熟悉度,這種可能就是面
試官希望你能夠一上來就拿出一個複雜度
低的解法;但有些題目考核的是你的溝通
能力與思考過程,這種不用一上來就端出
最佳解,而是一步步在互動過程中完善解
答,甚至有時候你即使這題沒有 AC 也能
拿到比那些背誦給出 AC 的人更高的分數


(所以即使你刷過一題,可以直接給出最
佳解,有時候藏拙裝笨會比直接端出最佳
解更好。)

大廠的不同關卡通常會有給定的時間限制
,可能會預設說這關要出幾題 easy、幾
題 medium、幾題 hard。如果今天預設這
一關要測 2 easy, 1 medium 結果你的時
間只答出 1 easy 那就掰了;如果今天預
設要測 2 hard,結果你直接給最佳解,
省略那些溝通過程,只能出更多 hard。

有些東西是要有一些「感覺」的,要能夠
猜出對方想要測驗什麼,這其實不論刷不
刷題都很重要。

(3) 白板面試測驗到底好不好?

說真的就是「見仁見智」,如同上一篇說
的,他可能只是面試多個關卡中的其中一
個環節;有些大廠還是會考,有些大廠則
有其他選才機制。

我認為他有存在的必要,而且的確是滿適
合作為篩選機制,其中:

> 如果給出對方沒見過的題目,能夠考察
對方對於文義的理解,還有能不能在題目
敘述完畢後,額外再來問我一些沒提到的
限制條件或是資料狀況?

舉個比較淺顯易懂的例子,今天題目中有
個操作是需要排序,對方會不會注意原始
資料是不是已經基本有序?會不會問有沒
有記憶體的限制要做額外處理?

> 能不能適當地把題目要實作的內容,選
擇適當的資料結構,把問題「抽象化」,
有了適當的資料結構再來設計演算法?

最簡單的就是同樣都是線性結構,可以使
用 Linked List 儲存也可以用 Array 儲
存,為什麼要選其中一個?是根據哪個考
量?為什麼?

> 實作過程中有沒有考慮邊界條件,提前
不符合就返回,避免冗贅的計算或是處理
了本身題目就不會進來的條件。

有位教師經常舉因為程式錯誤導致飛機失
事的例子,來說明工程師的重要性。練習
的過程中,會不由自主地去想到這些,當
然這也包含在前面兩點中,有沒有空值?
有沒有負數?有沒有重複值?是不是整數
值?

> 有沒有良好的開發習慣?命名習慣?單
元測試?

會不會出現神奇的 a, aa, b, dd 變數名
稱?會不會適當地將操作封裝成函數?

後者的習慣讓我在實際開發上有不小的收
穫,一來是除錯時方便定位,二來是會對
程式更有一種掌控感。中國大陸有一名臉
書離職的員工跑去開了所謂的刷題課,雖
然課程內容我不覺得有多好,但他最一開
始有個導論介紹他怎麼寫題目,收穫算是
頗豐。

他提到他曾經的主管,會在釐清問題之後
先寫下過程中要實作的函數,而不是全部
都寫完邏輯之後再拆分成函數。這種「自
頂向下」的開發方式,會有一種提綱挈領
的用處。

(而且這種習慣,搭配 GitHub Copilot
面對實務中那種常見的 CRUD 寫起來根本
超級無腦……)

---

對了,在 Educative 上還有一門課,介
紹那些「真實世界的例子」:

Decode the Coding Interview in Java
: Real-World Examples
https://hhp.li/HpG0D

不一定要買課程,但可以直接看看目錄,
想想看這些「真實世界的問題」,你會怎
麼解?是不是真的刷題對於這些問題沒有
任何幫助?

---

除了刷題之外,坊間也流傳不少所謂的面
經(面試經驗)和解答,前陣子我一名學
弟跑來問我,順便問問我題目要怎麼回答
比較好。我看了他分享給我的文章之後,
直接跟他說這種文章少看,你可以看題目
自己整理答案消化,但不要拿他的解答去
回答。為什麼呢?其中有一題是這樣的:

> Python2 和 Python3 有什麼差異?

絕大多數的解答,會跟你提到那個輸入還
有輸出的差異 input(), print()

難道這個問題想要考察的就只有這樣嗎?
我跟他講說,如果我是面試官,問出這題
之後,想要知道的是:

(1) 對方知不知道這兩個版本有差?
(2) 對方知不知道改進了什麼?為什麼?
(3) 對方知不知道在開發上有什麼影響?
(4) [延伸] 為什麼不少系統內建 2.7?
(5) [延伸] 要怎麼處理版本差異?

我想聽到的不會是 print 加不加括號這
件事,而是他能不能跟我說一個是函數、
一個是陳述式,為什麼?有什麼差別?我
想知道更進一步的回答,是 import 改成
以絕對路徑處理,還有預設編碼從 ASCII
換成了 UTF8 編碼,還有這兩個版本在處
理表示文字序列的類型時,在 bytes 和
str 的操作上需要考慮什麼?

而不是網路上看了題目,回答那種解答,
那才叫八股。

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.109.67 (臺灣)
PTT 網址

abccbaandy10/05 13:06既然幫助這麼大,那如果FANG不考刷題,你還會刷嗎?

你這問題有點好笑,在 LeetCode 還沒流 行的時候,那時候就不少人會寫 UVa OJ 作為練習了……除了 LeetCode 之外,還 有很多適合練習的地方;比如對 TDD 應 該或多或少聽過 Coding Dojo/Kata 這個 詞,這也是一種練習還有磨練自己開發能 力的方式,你也可以去 Codewars 上面練 習呀。 除此之外,你如果覺得 LeetCode 千篇一 律很無聊,有些有趣的東西呀:

> Advent of Code

從 2015 開始,每年十二月的時候一天一 題直到 25 題完成剛好過聖誕節。自己在 網路上搜一下不少老外都有在玩,有的還 會給自己下一些規則,比如每一天都用不 同的程式語言。

> Euler Project

同時練習開發還有鍛鍊數學思考,裡面的 難度跨幅有點大,討論區裡面很多大佬( LeetCode 的討論區也很棒啦)

peter9810/05 13:101樓有不少實務經驗 我想問為什麼大同電鍋煮的米飯比電子

peter9810/05 13:10鍋好吃?我在美國不能沒有大同電鍋 想了解

chatnoir10/05 13:14我很愛大同電鍋, 但日本電子鍋煮的飯比較好吃 (亂入

alihue10/05 13:21真的比較好吃嗎?有做過盲測?

Dven10/05 13:45這篇專業

MoonCode10/05 14:29

Ericz700010/05 14:32

josephroyal10/05 14:38認同這篇的觀點 反刷題仔很喜歡說面試官能力不夠才只

josephroyal10/05 14:38能考刷題 但很多面試官更在乎的是面試過程中溝通表達

josephroyal10/05 14:38還有思考的過程

Firstshadow10/05 14:41做大同電鍋的人有刷題嗎==

ohmylove34710/05 14:50微積分算是大學裡的加減乘除吧,列必修蠻合理的

superpandal10/05 14:51你這是解題思維 現實是完成需求的思維 而且套路通常

superpandal10/05 14:52不多 多數人都是寫的快堆屎山 大系統能不動就不動

你講這個自己都不覺得有趣嗎?現實裡那 些早早進去卡位的,是要找人進來寫更多 屎?還是希望新的東西不要那麼屎?還是 希望進來的人有能力可以清一下陳年硬屎 ? 都知道舊有系統是坨屎,不能挑一下人讓 這坨屎香一點?

superpandal10/05 14:54我都會想怎麼做更好 XD

所以沒毛病啊,現實已經有很多屎,但不 想找人進來只會拉屎。用可以量化的方式 找人,合理吧?

superpandal10/05 15:00現實是多數老屁股覺得這屎山很香 不要動 只有新的需

superpandal10/05 15:01求才可能交給新來的人 重構機會不是很多 就算給你機

superpandal10/05 15:02會重構還要被檢討 屎山都是可以搞人論kpi的

那個…你確定要這樣繼續說下去?會打到 很多反刷題仔的臉耶,意指那些實作仔寫 的不過就是屎山而已,沒什麼好吹噓的…

superpandal10/05 15:04這也是內卷現象 大公司靠入職前一堆門檻擋人 小公司

superpandal10/05 15:04靠一些說不清的標準擋人

superpandal10/05 15:06當然應該有公司都有以上兩者 都可以理解 但如果遇到

superpandal10/05 15:07了會很不爽就是 我相信他們可以做的更好 但是他們可

superpandal10/05 15:08能見過一堆公司而且家裡有子女才整天搞這個的 我都

superpandal10/05 15:08覺得要就要不要就不要 不需要再搞什麼優越

當然要有門檻啊,不然阿貓阿狗都進去喔 ?現在這種機制已經很和善了,真的要給 你門檻,先看你學歷再看你 GPA再看經歷 是不是同等級公司,那才叫做搞優越。

superpandal10/05 15:10我沒說不需要有門檻...

superpandal10/05 15:14我贊成的事應該讓不同標準門檻存在 具有多樣性

superpandal10/05 15:14

superpandal10/05 15:19現在這一串討論一堆人意圖使自己擅長的獨大 你死我活

superpandal10/05 15:20的節奏

superpandal10/05 15:31而且如果大家都刷題 中小企業的情況會在大公司出現

superpandal10/05 15:32因為人總是喜歡凸顯自己的高大上

Ericz700010/05 16:24笑死 刷個題講的像是什麼不得了的東西,還多樣性勒,

Ericz700010/05 16:24有底子的一般人隨便準備一個月就綽綽有餘了吧,又不是

Ericz700010/05 16:24什麼多專業的技能,人家重點是放在溝通又不是刷題本身

qwer33885910/05 17:07這篇滿中肯

baobomb10/05 17:11一樣米養百樣人啦 面試官分兩種 一種想看你怎麼思考跟溝

baobomb10/05 17:11通 通常不在乎你能不能直接給出最優解 而是看你怎麼作為

baobomb10/05 17:11一個Problem resolving Leader去Drive solution. 另一

baobomb10/05 17:11種就是沒時間或懶或是自己也根本實力不太夠 就只想看你5

baobomb10/05 17:11分鐘給最優解沒有就給no hire. 同樣面試者也是 一種不反

baobomb10/05 17:11對這種考法 單純是給一個環境去思考以及解決問題 一種是

baobomb10/05 17:11覺得反正我硬背也行 考這種屎有什麼用 這就是為什麼我

baobomb10/05 17:11們說面試很大成分看運氣 硬背的面試者遇到重溝通的面試官

baobomb10/05 17:11一定掛 但遇到第二種自己也是背進去的面試官就拿hire 同

baobomb10/05 17:11樣第一種重思考過程的面試者遇到第二種背進去面試官就掛

baobomb10/05 17:11 因為你花超過五分鐘在溝通思考 他就直接把你掛no hire然

baobomb10/05 17:11後開始做自己的事了

baobomb10/05 17:11所以不管是硬背還是真的了解解題核心 都還是看運氣 看你

baobomb10/05 17:11碰到怎麼樣的面試官

baobomb10/05 17:13考演算法只是給個環境 至於你的表現面試官愛不愛那完全

baobomb10/05 17:13看你運氣遇到怎麼樣的面試官

不管什麼事件,都還是有一定的機率需要 考慮到運氣。不否認有些人運氣好,有些 人運氣差,在怎樣能做到的事情就是「盡 人事,聽天命」,在自己能掌控的範圍內 做到最好。才不會每次失敗的時候替自己 找的藉口是「差一點」和「早知道」… 我上面也說了,要做得好的話,可以把題 目量衝多一點,然後面試時見機行事,適 當藏拙或是表現自己。 這就像是測驗考試,有人剛好考前練習的 章節都考了出來,有人剛好準備的都沒考 出來,失常。但有些人總是不論失不失常 都能有穩定的表現。

superpandal10/05 17:23還可以腦補別人覺得是什麼不得了的東西 本來就不贊同

superpandal10/05 17:24刷題作為全部公司統一的標準 原因也講過了 你想準備

superpandal10/05 17:27就準備 別人不準備你要勉強別人? 刷題就刷題 就算

superpandal10/05 17:29給你比較到 也不代表真的溝通情況 而且一票人刷題最

superpandal10/05 17:30好是每個都仔細分析 想多了

superpandal10/05 17:31想不想刷與刷題難易本來就不同 不用混在一起講 而且

superpandal10/05 17:32你這只是主觀看法

superpandal10/05 17:33因為你覺得刷題沒什麼 所以應該要刷 不想刷的bla bla

superpandal10/05 17:34bla

superpandal10/05 17:42當然一間公司要不要刷外人管不著 是"全部公司"

superpandal10/05 17:48樓上說的對 刷題也要運氣 但刷不刷都是要運氣 除非家

superpandal10/05 17:49族企業或彼此較為了解

superpandal10/05 18:11真的魔怔到要進行強關聯其實都可以細分 技能溝通、業

superpandal10/05 18:12務溝通、行為溝通... 愛怎麼分析都可以

Belieeve10/05 19:23好文推推

strlen10/05 19:24工地裡每個工人都要去考試都要拿建築師執照嗎? 你們這些

strlen10/05 19:24刷題仔真走火入魔耶...還微積分勒 大學本來就不是人人都可

strlen10/05 19:25以上 是台灣畸型教育體系搞得變基礎學歷 但課程還是走以前

strlen10/05 19:25學術體系 所以才會一堆老人在那邊臭大學讀完出來啥屁都不

strlen10/05 19:26會 要刷題拜託你們高大上尖牙灣區你要怎刷就怎刷好嗎

你這比喻不倫不類的,建築師就是建築師, 工人就是工人;建築師要執業本來就要考取 建築師執照。大廠的軟體工程師,依照他們 的要求列出考核標準,你要符合才有機會錄 取,有何不可?今天難道是行政人員要入職 大廠也被考 Two Sum? 公司待遇差又錄取標準線很高,那有誰會進 去?同樣是一小時要解好幾題 hard 的話, 當然會選擇待遇好的呀。

strlen10/05 19:26現在已經走火入魔人人刷 你開個月薪三萬PHP也在那要白板

strlen10/05 19:27刷題歪風就尖牙搞出來的 公司沒那需求沒那條件考考九九乘

strlen10/05 19:27法表就好了喇 笑死耶

這我同意呀,小廟容不了大佛,待遇差的公 司就就不用畫虎不成反類犬。他想出垃圾價 找免洗,自然會有免洗的去,你如果自認這 種公司不屑去面試,久而久之找不到人就會 改變標準了,不然幹嘛去被羞辱咧? 我支持遇到這種 boon sur 公司就貼出名字 啦~ 另外呼籲那些刷題破千,遇到題目能秒 解的大神,千萬不要去月薪三萬的 PHP公司 ,真的不要耶…

https://i.imgur.com/CuPd5lW.gif

圖 我就問,刷題強者的實務表現?
https://i.imgur.com/1FBWYdp.gif

圖 我就問,刷題強者的實務表現?

strlen10/05 19:28還一堆在那邊刷題好棒棒 不想考白板你可以去別間 講這種垃

strlen10/05 19:28圾話 跟慣老闆一鼻孔出氣 下次就說不爽加班你去別間啊 結

strlen10/05 19:29果每間都加班 每間都責任制 每間都學尖牙 明天叫你滾就滾

strlen10/05 19:29不爽不要接受阿 好啊 那幹麻搞勞基法?全廢了讓市場自由決

strlen10/05 19:29定啊?你不知道資方有多機掰

不想考白板不就去別間?這怎麼會算垃圾話 咧?你去市場買菜買肉,高級雪花你出夜市 牛排的價格,人家可以選擇不賣你呀。

Hsins10/05 19:31好氣ㄛ

hank5566310/05 19:47我懷疑有人在反串反刷題 不要把反刷題的人搞的那麼沒料

abc1268910/05 19:59推 H大

leolarrel10/05 20:18Hsins擺明就刷題至上,花時間跟他辯不如回家嚕貓.你們不

leolarrel10/05 20:19會以為辯到他啞口無言後他想法就改了吧

哪裡看得出我覺得刷題至上呀~ 能不刷躺著 進大廠誰不想?再說好像也不是我啞口無言 吧!我也說了歡迎 A 大跟 S 大出個實作題 給我呀~

AudiA4Avant10/05 20:48不覺得在面試時藏拙反而更好是件很詭異的事情嗎?

Re: [問卦] leetcode medium看完答案還是寫不出來

https://hhp.li/fl1Q1

「你是不是背的 我問就問得出來

一些人一上來看到我出原題好開心

討論都不討論 直接最佳解寫出來

結果問裡頭的邏輯 開始吱吱嗚嗚

那就是一個No Hire」

藏拙的意思是不要一看到寫過的題目就直接 甩出最佳解,還是要一步一步胸有成足地引 導優化… 說的比較白話一點,比如考兩題 hard 如果 滿分是十分,你直接給出最佳解很有可能是 直接當題不算,另外考兩題,結果你完全沒 見過,緊張之下可能只拿三分;相較之下, 藏拙慢慢回答搞不好拿八分,而且還是你有 把握的狀態。

superpandal10/05 20:48怎麼又講到php... php要寫都可以很厲害的 基本一堆功

superpandal10/05 20:49能要寫都可以 也都不一定需要多線程 多進程都是一個

superpandal10/05 20:49選項 畢竟一個進程效能都會觸頂

你跟那位很森氣氣的標準庫函數說啊= =

※ 編輯: Hsins (223.141.109.67 臺灣), 10/05/2022 21:04:20

superpandal10/05 21:00原來是講到月薪3萬的php公司... 那個差不多apache

superpandal10/05 21:00nginx弄一弄就可以了

superpandal10/05 21:32看到了... 不過我相信不只php會這麼慘 年薪不到70都

superpandal10/05 21:32一堆

lukelove10/05 21:57前面幾樓的觀點我不同意

lukelove10/05 21:57電子鍋的米飯怎麼可能輸大同電鍋

Hsins10/05 21:58各有風味啦, 電子鍋的米飯吃起來口感比較好, 但大同電鍋就

Hsins10/05 21:58有種記憶裡熟悉的味道...

OnlyRD10/05 22:21以前的人根本不刷題,都在刷open source,為什麼不

OnlyRD10/05 22:21把時間拿去刷o

OnlyRD10/05 22:21pen source?刷題就是為刷而刷,不要再找藉口了。

Hsins10/05 22:34以前的人也不用臉書、抖音,除了批踢踢之外還會上不良牛和

Hsins10/05 22:35盈月繁星你怎麼不說?

daddy2910/05 23:01真的看場合 垃圾公司說實話有沒有刷題都沒差 就缺一個工

daddy2910/05 23:02大廠為啥要刷題 因為最快能認識你跟篩選人選 策略不同

daddy2910/05 23:02你今天真的夠牛homebrew自己文章也寫了 他化學畢業

daddy2910/05 23:03但他自認很會寫code 股歌的面試官也沒為難他 就出了道轉

daddy2910/05 23:03樹 這超簡單的有認真準備面試的穩過 誰知道他還真不會

daddy2910/05 23:03那面試官真tm雖小 想直接讓你pass你都能翻車

daddy2910/05 23:04如果真的覺得刷題沒有用 可以去面試那種不用刷題的公司

jj032110/05 23:04PHP臭了嗎

daddy2910/05 23:04為啥還來這邊吵呢 還是剛好大廠90%以上都要刷題打擊到你

daddy2910/05 23:05們自尊心了? 考LEETCODE真的有這麼難嗎?

daddy2910/05 23:05但凡大學有上過演算法課程的 認真點幾乎都能夠處理

Belieeve10/05 23:05戰電鍋戰起來!啊不是…戰刷題才是…

peter9810/05 23:27大同電鍋煮出來的米飯並不會比較好吃 但是因為你知道這一

peter9810/05 23:28點 所以你會特別在煮飯之前泡米泡個30分鐘 煮米的時候直

peter9810/05 23:28接用40-50度的水煮 煮完後還會放一會燜個5-10分鐘 做軟

peter9810/05 23:29體也一樣 你拿到一個好的code repo你可以隨便改改 別改壞

peter9810/05 23:29的情況下他依然很好 如果拿到一個壞的code repo 你就要

peter9810/05 23:29花更多心力去維護他以達到同樣的效果 好好維護說不定比好

peter9810/05 23:30code repo還好 生活實務跟軟體實務都是同一個概念 這沒

peter9810/05 23:30有標準答案 如果你對我的答案嗤之以鼻 那就是問實務經驗

peter9810/05 23:30並沒有用 只是某個號稱實務能力很重要的人卻沒有答案

peter9810/05 23:44然後問完大概又要戰面試這又不一定懂大同電鍋或煮飯 變成

peter9810/05 23:44要公司只問面試者會的實務經驗 然後又憑甚麼規定公司只

peter9810/05 23:45能問自己會的 面試者好大權力

peter9810/05 23:49然後又要戰公司工作內容又不包含煮飯 噗

peter9810/05 23:51所以最好問工作會用到然後面試者又懂得 比如安裝python

peter9810/05 23:51lib XD

viper970910/05 23:53原來大同電鍋煮飯不好吃[email protected]@

abc5310/06 01:07

peter9s3b10/06 06:50都用動物牌電子鍋煮飯,大同我不太會用常有鍋巴

leolarrel10/06 09:27抱歉,我個人吃過最好吃的白飯要用砂鍋直火煮,但是難度

leolarrel10/06 09:28很高,我常常弄到翻車,但要是運氣好成功的話,那飯吃起來

leolarrel10/06 09:29無法形容的好吃.

leolarrel10/06 09:31另外想起,傳統香港煲仔飯煮飯的作法也是用砂鍋.但現在

leolarrel10/06 09:31香港的煲仔飯變質了.為了出餐快,飯都先煮七分熟,垃圾

hellomotogg10/06 14:14朋友去面助工java缺考leetcode 進出之後都在寫vue

Belieeve10/06 23:49大同電鍋煮只是人為因素佔比較多而已,技術好的來煮一

Belieeve10/06 23:49樣好吃吧

Appleaday10/07 09:21就是 你連刷都不刷 那就不要進來了

angerD10/08 19:02python版本差異這段寫的不錯