[請益] 刷題的演算法問題最常應用在那個領域?
其實這問題好奇成份比較大,常看到厲害的公司(特別是軟體)喜歡考刷題,
但又常聽到實際工作幾乎很少用到,如果分類幾個領域,
像是
工具程式 前端/後端
遊戲 前端/後端
系統層
晶片設計? 等等...
那演算法資結這類刷題問題最常在那種產業/領域的程式會被用到呢?
我自己是猜想遊戲產業是不是用到最多?
--
Infra,DB 裡大量複雜的資料結構,分散式之後更複雜,各
種速度跟一致性的取捨,十年前開始的 newsql 用的十幾年
前開始的 LSM 樹,原始的 LSM 樹更是8090 的論文才發表
的,還有 skip list,現在為了跟上 CPU 速度,開始出現
重視快取的資料結構,再來就是老生常談各式各樣 compil
er, 現在 AI 流行於是有了 AI compiler
嵌入式 很常遇到手刻信號量的處理方式
Btree結構會用在硬碟系統 不懂寫不了驅動
我之前電面蝦皮考KMP
搜尋關鍵字的方式怎樣最有效
這樣夠實際了吧!
但是動態規劃我還真的不知道
紅黑樹會用在自己寫CFS完全公平的排程
linked list 很常用啊
dijkstra 可以用在routing table
其實都是書上寫的
謝謝打開我的眼界,前端想碰卻很少碰到XD
前端的話,瀏覽器裡的 js 引擎就用了很多 compiler 的技
術,更別提html css parser,基本上任何 parsing 問題要
有效率都是演算法啦,chrome 裡面鑲了 leveldb 就是 LSM
樹,常用的 Babel 轉譯也是很多編譯器的演算法內容,re
act 裡計算 virtual dom diff 也是演算法
用在面試 (X
CLRS的書有說過topological sort是某位教授在穿衣服的
時候想出來的,還是只是舉例?
影像處理、數位訊號處理、語音
快速傅立葉轉換算是演算法嗎?
convolution也算嗎?
Linux kernel
其實考刷題,滿多還是考 easy 等級,簡單初步篩選而已
是一些明星公司很多求職者,才會去提升難度
刷題那些演算法很多都是經典題,實務上應該早就很多更好
的變形
工作上要寫演算法,通常也是需要先去讀論文看最新的演算
法,不是無腦套教科書的。教科書那些不是不重要,而是被
當成基礎
樓上在說群輝嗎?
例子很多啦,敢考難的通常都是大家擠破頭想進的
考刷題雖然惡名昭彰,但是如果考 easy 你用暴力法寫不出
來就別自稱資深工程師了
state-of-the-art
傻眼~都會用到阿~不過你要先進的去這些公司就是
用在面試
dijkstra 遊戲內自動尋路
用在面試 中肯
未來用在訊號處理,乾脆直接考複雜度為nlogn的dft就好了
刷題的演算法只有在篩選有刷題的面試者有用,其它用處不大
99.99999% 用在面試領域
React virtual DOM就是一棵樹…
這個問題可能要問FAANGer
有一天你真的會碰到
我以為遊戲尋路是用A*,純di太慢惹
應用在篩選非法移民界的coding monkey之王
用在負責出面試題目的工程師
每次討論刷題歪樓還有特定人士會針對刷題留特固定的推
文都讓我笑
之前看影片DP有被google拿來用在搜尋引擎上
工作真的常用到的。尤其是面試人時。
偶爾寫新的演算法時,會用到,但是寫一次,就成為library
重複使用了。
38
Re: [討論] 軟體工作真的有需要刷題嗎?小弟在後端與資料領域打滾過幾年,也刷過上百題 Leetcode 同意大部分演算法題確實工作上不會用到,但仍然有很多潛在價值存在 就來分享一下我覺得刷題真的"有意義"的那部分好了 1. 工程基本功 例如天字第一題,Two Sum,考得就是一個 Hash Table 的基本概念27
Re: [討論] 我就問,刷題強者的實務表現?我親身經驗,刷題非常有用 347 top k frequent elements 23 merge k sorted lists 56 merge intervals 一些基本的工具如 recursion , tree , map , deque ,比較稍微難的像line sweep , biwise19
Re: [請益] 後端工程師是否需具備前端技能就看自己怎麼想 在公司久了會發現 好相處的同事 通常也都不太設限一定要解決哪一端的問題 只在於時間成本的問題8
Re: [討論] 軟體工作真的有需要刷題嗎?我是不知道台灣軟體狀況怎麼樣啦 但在美國不考現場白版題或是現場Coding 你會發現白人和印度人真的很會吹 吹到那種好像 Linux 是他發明的一樣 而且標準很難拿捏 面試官沒有一個行量尺6
Re:[討論] 學校所學有銜接社會嗎基本上我覺得學校教的是理論基礎 + 基本程式(刷題)能力 若有念碩士,則會在某個領域變成專家,以及做研究的能力 以招募者招募新人來說,會期望這個新人至少有基本刷題能力 + 理論基礎 最重要的是自學的能力 其他什麼前端後端,或是 multi-thread,db index,都是基於這些基礎之上4
Re: [討論] 軟體工作真的有需要刷題嗎?我是非本科,以前聽過很多人的說法說刷題甚至資料結構演算法根本只是應付面試用,一點都不重要,進去公司就用不到了 但我必須說這種說法不完全正確。 我在進現在這家公司前,刷了600題,經典的題目大概來回做了10遍 來這家公司後,我接到了一個很複雜的任務,大概是倉儲物料的分派系統,某個物料根據某些邏輯所以被分配到哪個廠區,中間很多特殊需求但我不想講太多 為了讓程式高效能化,我手寫了樹的節點,用BFS和DFS來遍歷(不同用途),節點用priority queue排序,然後也用到deque來資料處理,map就不說了,太常用了4
Re: [討論] 我就問,刷題強者的實務表現?我是真的覺得 刷題這種東西還是很看領域 現在工作是做cloud infrastructure network 一年 沒真的用過什麼困難演算法 頂多實作bitmap tree binary tree linked list這種程度而? 更常用到的是對kernel的理解 能不能對runtime process做效能分析去改善自己的程式(譬 如cache miss) 對multi thread lock或sync的取捨 對network的理解度(不是只是知道tc1
Re: [討論] 軟體工作真的有需要刷題嗎?還是要看在公司做什麼吧 如果是走前端的感覺用到的機會就很小 畢竟前端鮮少的情況需要處理繁雜的資料 接到的資料很多都是後端處理好的 頂多做個排序但也是直接call funtion就解決了- 個人面試經驗認為差別還是在領域 今天面試一個特定領域有經驗的SDE像是kernel programming 我相信正常更會重視該領域相關的知識而不是很難的白板題 如果今天面的是general SDE那當然會很注重演算法刷題 因為domain knowledge 不是重點