我是一個計算機系大二的學生,從大一起就沉迷於 PHP+MySQL 的世界裡了,但是作為大二的學生,學校教的只是皮毛,跟著工作室做政府和企業的外包業務也只是普通網站的開發,接觸不到像人人、Facebook 這種特大型平台的開發與維護,想再朝深入的學習總是找不到方法與方向。

請問一下在大家的學習和工作經歷中,能不能講講技術這一塊的學習經歷?我平時用 PHP 基於框架後台開發,對 MySQL 也沒有特別的優化,我想對分散式計算,還有海量數據下資料庫的優化還有像人人這種特大型網路平台的架構進行深入了解和學習,請問需要學習的具體技術或者推薦書籍或者有什麼好的技術網站嗎?還有,除了 PHP 還有什麼語言需要精通嗎?Java?C++?希望前輩們給出點具體的建議吧。


框架是一個潘多拉盒。看著貌似很好,其實讓初學者失去了摸索,深入的機會。經常你發現問題,然後執行一個函數就搞定了。但你依然不知道為什麼。知其然,不知所以然。

什麼海量數據啊,大訪問量啊,分散式啊。這些都是架構師的問題。按你描述來看,對你來說差了好幾個層次。工作個3,5年的人好些都不夠格去處理這些問題。(也不是絕對,看努力程度和覺悟)

建議安裝個虛擬機、linux安裝下常用服務軟體,然後在這個環境中拋掉框架自己完整的寫一個簡單的企業網站。能寫下來說明你能力還是不錯的。然後再找個測試軟體,做下壓力測試。看看哪個服務軟體出現了問題,再進行優化。當你在單機上做到極致之後再考慮分散式,集群問題。
樓主好高騖遠了,請問mvc很熟悉了嗎?模塊化編程很有體會了嗎?關於前後端的有效粘合很有體會了嗎?對於toy代碼是否考慮過更多的優化?程序架構,伺服器配置都是一個很深入的節點,所以點滴的知識才是牛逼的後盾,加油吧,從你的那些小項目中體會。同時不得不說的是大二有此想法真不錯,同時給你一點糾正,不要崇尚所謂的海量,高並發的技術,那些都是在一個很真實的環境中才可以體會學習的,就算你工作2年都很難接觸到

-----------------------言之過激,唯心善意-------------------------------------------------


大二剛一個學期,先不要急。 把基礎課先學好了,等畢業證沒問題了以後,到公司實習。

答主和我大二時一模一樣啊。

當時也是為了速成入了最好語言PHP的門(現在重歸J2EE),網站後台的話我也是一個個坑踩過來了。

我認為吧要做好後台有幾個階段:

  • 第一階段:這是什麼需求,我要怎麼做
  • 第二階段:這個項目結構好醜,我要重新寫
  • 第三階段:PV沒有上萬不要和我說話

在我看來答主是想要一個通往第三階段的路徑,我站在JAVA系的角度,我的路徑是這樣的:

資料來自互聯網 圖侵刪

有沒有發現,貌似第三階段的那些技術基本是以第一二階段的經驗,需求為標準的。而且所謂的

分散式計算,還有海量數據下資料庫的優化

其本質其實還是你對前兩階段經驗的總結以及復用。

建議嘛可以這麼做(我是這麼做脫坑的):

  1. 做項目
  2. 總結,重構,提升項目性能
  3. goto 1.


「深入網站後台技術」這樣的定義有點泛了,就單獨網站後台來說,程序選型、架構、開發、業務邏輯處理、伺服器維護、webserver維護、資料庫維護……都是「網站後台」的範疇,而且每一個的水都很深,都可以很深入。

如果你對「海量數據的資料庫優化」更感興趣,可以以這個為切入點去研究,但如@Chairo所說,你得加入一個有機會處理這樣數據的公司,如果只是自己玩更多的是盲人摸象(這句話純屬主觀臆斷,因為我也沒有大型網站/資料庫維護經驗)


加入一個有機會處理海量數據的公司吧。別人說的經驗只能當參考,海量數據處理基本都是看業務來操作的。沒有放之皆準的辦法。
有這個想法是好的,做好眼前的事情,一步一步的來,急不來的...
學習的過程就是發現問題,解決問題,來回反覆。大型網站的優化也是如此。任何優化都跟業務有很大關係。同意樓上各位所說的需要有戰地經驗可以學得更快些。建議去可以接觸到這種規模數據的公司實習一下就明白了,也許對自己發展方向的思考也有幫助。
推薦閱讀:
相关文章