先說個人經歷,如果不寫的話很多同學看了這篇部落格可能會覺得有些奇怪,首先介紹一下,筆者畢業後參加了三次考研,但是很不幸,因為種種原因,三次考研均以全軍覆沒而告終,因此在找工作前,除了考研的幾門專業課,筆者其實在程式設計方面的能力已經是一片沼澤之地,曾經僅能拿得出手的幾門學科也隨著時間化為烏有,所以筆者在參加工作前能力可能還遠不如在座在上學的同學
因此筆者找工作的時候抱的心態是不破不立,一切從頭開始。借用一首歌的內容,昨天所有的榮譽,已變成遙遠的回憶。所以很多同學會奇怪,為什麼筆者寫的很多東西都這麼基礎,因為筆者並不是在以一個前輩的心態來給大家上課,筆者自己技術也很一般,也要從頭開始學習,所以筆者是以一個學生的姿態來和大家討論
我看到昨天評論區裡有同學現在是大三迷茫期,所以筆者看到了對他有幫助,心裡也很感慨
同時筆者也提醒大家:
在之前的部落格里,筆者已經提到了關於如何把做專案和學技術結合起來,筆者在學技術的時候發現,似乎只是做成一個專案,並不需要太多的技術。就拿Redis來說,幾乎是所有面試中的重頭戲,但是筆者發現只是為了做一個完整的專案的話,他的作用其實真沒多大,畢竟你的個人專案除非刻意製造,否則不可能有這麼多存取量要處理。
事實上,就筆者學的僅有的一些基礎,已經可以做一個專案出來了。Spring框架筆者不止一次去翻過書了,第一章講的都是IOC和AOP,當然不是說這兩個概念不重要,非常重要,但是作為初學者在專案中直接的體現真的不大。
筆者在之前的部落格中也提到,筆者在工作後接了一個前端專案,那個時候前端零基礎,花了三個多月的時間學習前端,把專案做出來,很多同學可能會說筆者學習能力很凶悍,自己跟不上,事實上現在筆者回到專案中,如果說把用到了哪些知識點全部寫出來,兩三篇部落格最多了。要做一個完整的專案用到的技術真的不多。從這個角度來說,筆者的學習速度其實只有慢了。
筆者一直期望著能做一個像若依一樣的專案,所以曾經也痴迷於學技術,但是筆者發現技術看似學了很多,但是也僅限於知道了,想把這些技術統統堆積到專案裡著實是一件短期內做不到的事情。但是技術如果不用到專案裡那就毫無意義了
結論:同學們不要把做專案的難度妖魔化,說真的要做一個完整的專案「三腳貓」功夫足夠了
關於這個問題筆者是想在面試關卡里介紹,但是現在發現好像放到這裡更合適,我想看到這裡這個問題的答案大家應該明白了吧,圖書管理系統一般是什麼時候做的,沒錯,是大家上了一個學期的課,最後可能作為一個期末作業或者實踐周的時候做的。
所以大家容易有一種錯覺,我做這個專案用到了一個學期整個學科學到的知識,甚至還有同學認為我用到了更多,用到了資料庫Mysql,用到了Vue,這是結合了幾門學科做出來的東西,所以技術難度很高。那真的是這樣嘛
事實上就拿Mysql舉例,同學們回想一下,真的用的是Mysql嘛?同學們回想一下你的程式碼裡除了Mysql和Spring框架的整合,還有select,update,insert,delete這些關鍵詞以外還有別的東西嗎?
所以用到的不是mysql,只是mysql中的sql語言,而sql語言只是mysql中的一個單元而已,而且增刪改查也只是sql語言的基礎,你對於一門學科中的一個單元才剛剛用了基礎,結果把這些東西放到簡歷上,硬說自己精通這門學科,那誰會信呢
結論:圖書管理系統從業務上還是技術上用到的都是「三腳貓」功夫,難度較小,因此難登大雅之堂
那從上面一個問題來看,圖書管理系統難道一點用都沒有,我要追求更高精尖的專案嘛?當然不是,再高精尖不也得從基礎做起嘛,不知道同學們平時在玩遊戲或者下載軟體的時候有沒有發現一個東西叫做版本號,事實上往往很多專案如果回退到最早的版本號,他們做的東西也很簡單,也是一點點優化的,筆者在此可以給大家舉一個跨行的例子,大家可以去B站搜一下中國曆代疆域變化系列,目前已經做到了第十三版,大家回到第一版再看看那簡直是一堆破爛。
所以這也印證了筆者想做一個類似若依的專案,一開始其實技術棧很簡單,隨著筆者越學越深,再逐漸把他做大。如果同學們想效仿的話我個人不建議再拿圖書管理系統,畢竟這個偏見確實太大了。當然如果作為練習也不是不行,從一個簡單的圖書管理系統做起,然後新增更多的業務,例如可能喜歡的書籍推薦,人工客服,讀書交流會,相似讀者匹配等等。。。。
結論:不要一味追求高精尖專案,再複雜的專案都是從基礎做起的
那麼說了半天,大家肯定期待一個解決方法,其實說到這裡我想大家應該已經明白了,如果這個時候你是一個完全零基礎的同學,那麼建議大家只需要去學好基礎技術,然後嘗試著做專案,當然如果完全沒有基礎做專案可能會吃力,這個時候大家可以去嘗試著b站搜尋一些培訓班專案視訊,給大家增加點感覺,跟著做完以後,學著自己再從頭做,為什麼筆者一定要你從頭做,因為當你熟悉一個專案的時候,其實你要擴充是很簡單的事情,但是之前的很多坑,是別人拉著你走的,你不能簡單的認為這是自己的功勞,一定要學著什麼幫助都沒有的情況下,自己走一遍。如果這個時候走通了,那麼可以進入下一個階段,碎片化地學習技術,這也是筆者一直以來寫部落格的風格,專案不是一個短期工程,一個複雜的專案,週期可能要個一年半載都是很正常的。同學們碎片化地學習技術,一點點整合到你的專案裡去,最後把專案變得複雜度足夠高。
當然筆者這裡的碎片化不要簡單的認為是東打一槍,西打一槍,學習是一個系統化過程,筆者只是希望同學們不要幻想著一錘子買賣,學完一門學科就企圖一勞永逸地扔進專案裡,專案裡用到的任何學科的技術都是一點點碎片化地加進去的,哪怕他們是同一學科
如果同學這個時候有一定基礎,那麼其實已經可以去做專案了,後續的內容和零基礎的同學一樣
結論:順序:學習基礎技術——做基礎專案——碎片化學習複雜技術整合到專案中
那麼今天呢就暫時和大家討論到這裡,希望大家經過一段時間後再回到這裡已經做出了一個完整的專案,如果是在校同學,當你成功做出一個完整複雜的專案,你可以把他寫到簡歷上,這是你求職的一大籌碼,如果是工作的同學,那麼經歷過這麼一次以後,相信你的技術也會有很大的提升,筆者接下來會更加努力的工作,給大家帶來更多的經驗分享,希望同學們工作順利,早日升職加薪、當上總經理、出任CEO、迎娶白富美、走上人生巔峰,想想是不是還有點小激動呢