五次面試,程序員的悲催輪回
01.靜態(tài)網(wǎng)頁時代
張大胖V1.0 畢業(yè)了, 去一家公司面試。
“會做網(wǎng)站嗎?”
“會,我會用Dreamweaver/FrontPage寫HTML頁面,不僅是文字,我還能在里邊添加圖片,JPEG,GIF的都行,比純文字的漂亮多了。奧,不懂這些高深的技術(shù)名詞啊, 沒事,只要你給我提供素材,我就能把網(wǎng)頁做出來,我還會申請?zhí)摂M空間做部署,用一個叫做cuteFTP的軟件就行。”
“行,那你來吧,月薪3000。”
張大胖欣喜若狂 :哇,這么多錢,我要財了!
02.動態(tài)網(wǎng)頁時代
張大胖V2.0 畢業(yè)了,去一個公司面試。
“用ASP寫過網(wǎng)站嗎?”
“寫過啊,我用ASP寫過在線的聊天室!用application對象來存儲聊天記錄,用session保存當前登錄的用戶信息。”
“聊天記錄不保存到數(shù)據(jù)庫嗎?”
“沒有,一般來說,參與聊天的人能看到過去一段時間的聊天記錄就可以了,所以就直接放到內(nèi)存中了,這樣速度很快。”
“那大家都在說話,豈不就沖突了?”
“奧,ASP的那個application對象是可以加鎖的。”
“用戶端是瀏覽器,怎么實現(xiàn)刷新啊?”
“這個不難,加上一個refresh tag 就行, , 像這樣每隔3秒就刷新了。”
......
“嗯,看來有實踐經(jīng)驗,我們公司就缺你這樣的人才,來吧,月薪5000。”
張大胖:“好多錢!再攢幾年就可以買房了!”
03.21世紀初
張大胖V3.0 畢業(yè)了,去一家公司面試。
......
“講講MVC是怎么回事?”
“MVC是Model-View-Controller的簡稱,實現(xiàn)了Web網(wǎng)站各個模塊的職責(zé)分離......”
“說說EJB的生命周期,如何管理事務(wù)的,在WebLogic中部署都需要哪些部署文件......”
“你都用過哪些設(shè)計模式啊,在白板上畫個類圖,詳細地講講。”
“講講Java 集合類。”
“AJAX的原理是什么?jQuery都有哪些選擇器?”
“數(shù)據(jù)庫的事務(wù)是怎么回事?有哪些隔離級別?”
......
“好了,什么時候能上班?月薪8000。”
張大胖:“還行, 北京房價一平米五六千,還是有希望的。”
04.現(xiàn)在
張大胖V4.0 畢業(yè)了,去一家公司面試。
......
“JDK的源碼看過沒有, 先說說HashMap的實現(xiàn)原理吧!”
“JVM類加載的過程是什么?Java的內(nèi)存模型是什么樣的?JVM的垃圾回收算法有哪些?講講Java 鎖的實現(xiàn)原理。”
“比較一下select , poll , epoll 的優(yōu)缺點。”
“TCP和UDP有什么區(qū)別, 為什么TCP要三次握手,四次揮手?TCP如何控制阻塞?HTTP的短連接和長連接是什么意思?”
“Spring的AOP是怎么實現(xiàn)的?ASM是怎么操作字節(jié)碼的?”
“volatile 是怎么回事?CAS呢?ABA問題怎么解決?”
“線程池是怎么回事?有哪些參數(shù)可以設(shè)置?”
“說說MySQL 的InnoDB索引的實現(xiàn)原理。如何有效地利用索引?MVCC是怎么回事?數(shù)據(jù)庫的讀寫分離,表的垂直和水平拆分怎么做?緩存和數(shù)據(jù)庫的一致性怎么處理?”
“講解CAP理論, 最終一致性,BASE的原理。”
“用通俗的語言講解一下Spring Cloud。”
......
張大胖被面得頭暈眼花, 最后得到了一個消息:“你先回去吧,有消息會通知你的。”
05.20年以后
張大胖V5.0 畢業(yè)了,去一家公司面試。
“會寫函數(shù)嗎?”
“函數(shù)?當然會,我還會面向?qū)ο?,設(shè)計模式,分布式架構(gòu),秒殺,分庫分表,集群,負載均衡, 微服務(wù),限流,降級,ServiceMesh,云原生,DevOps .....” 張大胖非常自信。
“打住打住,這些技術(shù)根本用不上,我問你會寫函數(shù)嗎?”
“為啥啊,我都熟練掌握處理三高(高并發(fā)、高性能、高可用)的技術(shù)了!”
“你說的這些技術(shù)已經(jīng)爛大街了,在云端都是基礎(chǔ)設(shè)施了,配置一下就Ok,根本不用你操心,現(xiàn)在公司都有自己的開發(fā)平臺,把一切都封裝好了,你只要把業(yè)務(wù)邏輯寫到函數(shù)里就行。月薪3000,來不來?趕緊的,外邊還有人排隊呢!”
【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號coderising獲取授權(quán)】