雙非碩士的辛酸求職回憶錄:第 3 篇 談談如何准備開發項目的


1. 雙非碩士的辛酸求職之旅--第3篇:談談如何准備開發項目的

在上一篇文章《雙非碩士的辛酸求職之旅--談談我是如何同時找到 Java、Python、Go 等開發崗和國企銀行的科技崗位Offer》的最后。

我最終是拿到了一家小公司的實習 offer,畢竟准備得晚,只能認了。

作為老學長,我的建議是 3、4 月的時候最好是要有知名公司的實習,這樣在正式秋招為自己增加很多籌碼。可能其他公司一看你的實習經歷,可能就願意給你機會讓你進面試了,甚至直接免筆試,畢竟大廠 buffer 加持,人家就很想了解你在大公司的實習情況。

如果你也像我一樣小公司實習,甚至說你沒找實習。那也不意味着你沒有了機會,我認為暑假這段時間一定要好好把握,做兩個不錯的項目,然后吃透一個!這里強調一下是吃透 1 個項目,為什么呢?

下文再解答...

1.1. 無論我們做什么項目,在面試官眼里都可能是 Low 的?

先說一個可能的殘酷現實:無論我們做什么項目,在面試官眼里都可能是 Low 的。

你可能會反駁我,如果想。我承認你對...

比如秒殺系統,這幾年都強調高並發的經驗,所以大家都做,那些相關技術棧都快成八股文了,網上相關文章也一堆,你會覺得高大上,但是面試官如果問:

  • 你項目上線了嗎?真實情況有人用嗎?沒人用你做成這樣干嘛?
  • 為什么選 Redis 不選 Memcache?
  • 為什么消息隊列選 RabbitMQ,不是其他?
  • 等等一堆你可能想不到的問題

其他項目就更別說了:博客系統、在線聊天工具、XX 爬蟲系統、XX 管理系統...

有些讀者可能會問了:我作為一個學生,那我要是能做出微信、頭條、淘寶這樣的項目,我還用得着來這公司上班?下一個扎克伯格怕不就是我了?

問的好,其實很多企業級項目歸根結底,本質也是這些項目。那為什么我們做不太行呢?

總而言之,我說的 "Low" 不是說項目真的不好,而是想表達項目難做。什么叫難做?

1.2. 做項目不是跟着開源代碼/視頻敲一遍

作為學生,本來大家就不可能做的是企業級項目,所以沒辦法。大家都會選擇一些常見的容易上手的項目來做,這些項目不是不能做,但絕對不會是你跟着開源代碼或者看視頻跟着敲了一遍,就說你做了這個項目。

好好思考一下。你是真的懂背后的原理嗎?比如:

  • 你的項目架構是啥,了解嗎?(我記得面試的時候好多面試官喜歡問,還有線下讓我畫架構圖)
  • 為什么要做這個項目?問對業務邏輯的認識?
  • 項目用的什么數據庫?問 ORM、MyBatis,或者繼續深挖數據庫的知識點
  • 上 Spring 的,問 AOP、IOC;問對 servlet 的理解?
  • 上前后端分離的,問如何解決跨域請求?問 session?
  • 上高並發的,問如何優化使得並發量有提升?
  • 上微服務的,問你微服務怎樣設計?
  • 項目出現什么,就看你會被問什么?

有時候最怕顧此失彼,為了追最新框架、最新技術,往往忘記了對核心的技術原理的理解。

所以項目難做就在於此,你用舊技術他會覺得 low,你用新技術他會覺得你只是單純的套用,又不是真正的懂。

所以針對這樣的情況,我的看法:雖然事實是我的項目其實做的是有點 low,但是小項目也要展現出它的高大上。

那么,如何展現出高大上?

1.3. 讓項目的來源上高大上

項目的來源無非幾個:學校;企業(有實習的同學);網上(開源 or 付費)

1.3.1. 學校或企業做的項目

珍惜每一次鍛煉的機會,用心做好每一次的項目:

  • 課程設計/畢業設計中:雖然我是小 demo ,但是我拿到優秀的項目哦(展現拿到優秀的點)
  • 比賽項目:ACM、互聯網+、挑戰杯、藍橋杯(我這個項目獲獎了,專家評審認可的;沒獲獎也可以高大上,比沒有好對吧)
  • 實習項目:如果這是 BAT 的實習項目呢?(大廠實習雖然可能只是簡單 CRUD,但至少來源就高大上了。)

在 2017 年本科那會,有門課需要做 Java 課程設計,我們大家都做的管理系統,全班只有一個同學做了坦克大戰,然后還可以讓老師體驗玩一下。

你體會一下,如果是你是那門課的老師,你喜歡哪個項目?

1.3.2. 網上學來的、或開源項目達到高大上的效果

如果你覺得學校的課程設計不夠好,免費的項目 GitHub 和 Gitee 上的優秀開源項目很多;付費的牛客和慕課上的針對性項目也挺高大上的。推薦大家學習:

你學了后如何體現你的項目高大上呢?

  • 比如你做的項目開源,得到了2k 以上 star ,高大上吧
  • 你對某個大牛項目有自己的貢獻,發現了啥 bug 也挺高大上
  • 你的項目跟着 mou 前阿里/字節架構師/工程師學的(這個 title 的付費項目一大堆,跟着學比自己亂寫的的確要高大上吧)

或者大家都是本地項目,你的項目部署上線了,然后面試官可以直接訪問,看到你做的項目;比如你做了小程序的項目,打開微信就能體驗,哪個項目高大上?

1.3.3. 對項目的思考要多一點,也很高大上

優秀又好做的項目好多人推薦,那么就有可能大家都做同一個項目(比如秒殺),但是你對項目有自己的思考,就很不一樣的。

如何展示給面試官你的與眾不同?

  • 大家都用 Java 做高並發,你來一個 Go 語言版本的。大家都上框架做 Web 開發,你自己寫了一個 MVC 框架, RPC 框架等等。
  • 之前還看到一本書中的一個觀點,做一些有工具也很有亮點。比如我們每天在 Linux 中都在用的 cat 命令,你有沒有研究過這個命令的實現算法,你來做會怎么做?
  • 代碼重構,項目優化也是很多人不會想的點,極少人做那就是高大上
  • 其他可以思考的點,大家多去網上找找。

最后,做“高大上”只是我的一個技巧而已,而且只是提供一個思路,希望大家都要好好准備一個項目,讓自己吃透,這一點就足夠高大上了。

1.4. 為什么我建議你做兩個項目比較好

以我的經歷來說,2020 年 6 月之前,簡歷上只做了 Python 的項目:一個在線教育平台和一個上線的個人博客。

所以只能投 Python 的崗位,根本不敢去找其他如 Java 的工作,而且投了也沒有什么回饋。為什么呢?

首先,Python 不是一門企業級應用首選的語言,據說是會有一些坑和性能瓶頸,導致用 Python 做后端開發的公司較少。以前用 Python 的公司也都轉 Go 語言了,貌似知乎、字節都是如此。

其次,Python 更多是作為機器學習和數據分析的首先的語言,讀研期間會使用到的框架基本都和 Python 聯系密切,所以找算法和數據崗可能更好一點,所以我拿着 Python 在后端開發方向( Java 和 Go )的簡歷中沒有一點優勢可言。

最后,Python 作為一門簡單的解釋性語言,入門時大多人都會選 Python。隨着學習的深入,個人體會卻是 Python 易學難精,但作為第二語言真的不錯。

所以在 7 月和 8 月份的時候,每天就是惡補 Java 項目。因為感覺再做秒殺系統,我玩不出新花樣了。我選擇了校園微商城項目,而且小程序在那會也不算過時,畢竟時至今日,小程序開發還是很有市場的。

人真的是被逼出來的,如果不逼自己一把,就永遠不知道自己什么時候可以做好。

1.5. Java 和 Python 雙項目真的讓我受益頗多

正因為有 Java + Python,我可以投互聯網公司,可以投銀行,可以投國企。

我還記得有面試官問我對這兩門語言的看法?

(我在想這不是正中下懷嗎?就等你問了)大概是這樣答得:

  • 因為這兩門語言都挺火的,Tiobe 排行都是前幾名,所以我想都學習一下。
  • 再者,就像好的工程師知道用更適合的工具擰相應的螺絲。開發也是如此,編程語言也是工具,有優有劣,用不同的語言做更適合它的項目罷了。
  • 我本科學的就是 Java 做 Web 開發,Python 是在讀研期間學會的。因為機器學習的課程使用,而且好用的機器學習庫都離不開 Python,這時候更適合我的工具就是 Python 了。后面在這個基礎上接觸了 Python 的 Web 開發框架 Django,由此做了我簡歷上的這個項目。

大概就是這樣,吹水還是要會的。

最后我在秋招中,也不限定只投某個具體的編程語言。憑着 Java + Python 的雙項目拿到了 Java 開發工程師、Python 開發、C++ 游戲開發、Go 后端開發工程師的 offer...

C++ 開發那個我是說自己本科學過,但是不咋會;Golang 提的也是我正在學;離譜的是也進入了 Erlang 開發的面試,面試官說如果拿到 offer 可以培養的。

所以,這也是為什么校招中很多公司要求至少一門編程語言但不限於 C/C++、Java、Python、C#、javascript... 的原因吧。

1.6. 總結

關於如何做項目的幾個點終於說完了,也不知道對大家有沒有一點幫助。最后推薦幾個我覺得還不錯的開源項目吧:

1.6.1. 開發項目類

Java 的項目推薦:

  1. 秒殺系統設計與實現
  2. 若依
  3. mall 項目(40k+star)

Go 的項目推薦:

  1. 基於gin+vue搭建的后台管理系統框架
  2. 7 天用 Go 從零實現系列

1.6.2. 知識復習類

  1. 后端架構師技術圖譜
  2. CS-Notes
  3. JavaGuide
  4. JavaFamily
  5. Awesome-interview

如果你還是不知道該做什么,請參考

  1. GitHub 中文排行榜

下一篇講講如何准備算法吧,算法不是我的強項。其實我感覺我對面試的體會還是更多一些,后續也寫文章講講《如何准備面試》
我是宇宙之一粟,熱愛文學和技術,想文理兼修卻還在探索的人。希望看到這里的同學,點個贊或關注一下,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM