每個月IT摘錄201811

技術

1.打牢基礎,從會使用-瞭解原理-瞭解思想一步一步來,最怕基礎很弱但卻以什麼都用過爲榮的人,這樣的人我招進來也只是初級而已,工做年限再多也沒有用。少林裏面,有功和拳之分,如蛇拳猴拳是拳,馬步功石鎖功是功,你以爲你練會了蛇拳就能打人?一樣,編碼之路,分清什麼是功什麼是拳,一開始80%事件花在練功上,而不是練拳。練武不練功,到老一場空。前端

2.《深刻理解計算機系統》比較適合一直從事Java Web開發和APP後端開發工做的人羣。《tcp/ip詳解 卷1、2、三》比較適合作網絡編程的人羣,好比你使用netty去開發的話,那麼就要對TCP/IP有更深刻的瞭解。而《數據結構與算法》這本書,則比較適合作計算研究工做的人,好比剛纔提到的分佈式計算。
另外,這裏所說的適合,並非其它兩本對你就沒有用。好比你作Java Web和APP後端開發,《tcp/ip詳解 卷1、2、三》這本書對你的做用也是很大的。這裏只是分出個主次關係而已,你要是時間足夠的話,能把三本都精讀那固然最好不過了。但若是時間有限的話,那麼就先挑對你幫助最大的書去讀。
理論上來說,這一年你能把這三本其中一本精讀下來,就已經很是厲害了。有了基礎,有了前面的工做經驗,你就能夠去開拓屬於你的領域了。java

4.學框架必須理解原理。面試時,若是會用dubbo他們就問你計算機網絡,網絡編程,rpc,netty,會用zookeeper他們就問你分佈式原理,怎麼保證一致性balalala。mysql

5.reactor設計模式,是一種基於事件驅動的設計模式。nio中採用了reactor設計模式。
在事件驅動的應用中,將一個或多個客戶的服務請求分離(demultiplex)和調度(dispatch)給應用程序。在事件驅動的應用中,同步地、有序地處理同時接收的多個服務請求。
6.PHP 、 Python,都適合快速開發不太複雜的 Web系統。可是大型複雜的商業系統開發仍是用 Java合適。react

 7.一個RPC框架大體須要動態代理、序列化、網絡請求、網絡請求接受(netty實現)、動態加載、反射這些知識點。
如今開源及各公司本身造的RPC框架層出不窮,惟有掌握原理是一勞永逸的。
8.掌握原理最好的方法除了閱讀源碼,本身動手寫是最快的。android

9.使用Hystrix進行熔斷和降級。ios

好比,積分服務掛了能夠來個降級:每次調用積分服務,你就在數據庫裏記錄一條消息,說給某某用戶增長了多少積分,由於積分服務掛了,致使沒增長成功!這樣等積分服務恢復了,你能夠根據這些記錄手工加一下積分。這個過程,就是所謂的降級。nginx

 10.通常微服務架構中都必然會設計一個網關在裏面,像android、ios、pc前端、微信小程序、H5等等,不用去關心後端有幾百個服務,就知道有一個網關,全部請求都往網關走,網關會根據請求中的一些特徵,將請求轉發給後端的各個服務。並且有一個網關以後,還有不少好處,好比能夠作統一的降級、限流、認證受權、安全,等等
 11.微服務架構中,發起請求是經過Hystrix的線程池來走的,不一樣的服務走不一樣的線程池,實現了不一樣服務調用的隔離,避免了服務雪崩的問題。
 12.redis 哨兵的做用是監控主從,主從切換的。能夠是一主多從,不過數據都是冗餘存儲的,每一個主從節點存儲的數據都是同樣的。
而集羣是將數據分片存儲,每一個節點存儲一部分數據,從而達到分佈式集羣的目的。
 13.經過2018年的面試題來看,能夠看出目前大型互聯網公司面試考點爲:
  • 性能調優、算法數據機構
  • 高併發下數據安全、接口冪等性、原子性等
  • 分佈式下協同、已經鎖的處理
  • 數據庫的分庫分表、項目之間的垂直拆分
出現頻率高的技術點有:HashMap、JVM、Dubbo、Mybatis、Zookeeper、http tcp/ip
14.數據結構和計算機基礎>Java基礎>其餘開源框架。
少看點亂七八糟的開源框架吧。工做上要用時再學來得及的。老老實實天天學點經典源碼我以爲進步速度就賊快了。
15.互聯網公司面試常常會考察的點:HashMap、JVM、Dubbo、Mybatis、Zookeeper、http tcp/ip
16.若是是長遠的後端開發,那就要全面深刻的發展,首先是語言,沒有哪一種語言,是和後端或者 web 開發劃等號的,Java 要想深刻,不要過多的搞設計模式。語言知識你要掌握的知識的一部分,如下多個方面你都要掌握,記住,當你有能力掌握這麼多知識的時候,你的學習能力有具有了,具有了學習能力,什麼具體的 java 技術、後端技術,都不是什麼問題,哪怕下一次技術更新,你還能依靠你的學習能力,繼續保持技術先進性。
  • 1. JVM 深刻了解,Tomcat 深刻了解,多看 Java 庫的源碼
  • 2. 計算機網絡深刻理解,物理層、數據鏈路層,能夠不用深究,可是網際層、會話層、應用層的概念要熟悉,IP 協議、HTTP 協議要熟悉,基於 IP 協議的子網劃分,要熟知
  • 3. 操做系統,這是不管哪方便開發都要熟悉的,不管是前端、移動端、後端、數據庫、運維,只要是搞計算機的,都要有紮實的計算機操做系統的功底,操做系統的體系結構、運行機制,Linux 內核、帳戶管理、安全,多用戶多進程模式、內存管理、進程管理、進程間通信等等,《深刻理解計算機原理》,《 Linux 入門到精通》等等,要多學多練習,可使用 Java 去調用操做系統的底層 API,試試,若是想不明白的,可使用 C 多去研究一下
  • 4. 數據庫方面,SQL 與 NoSQL,SQL 要注意 SQL 語言的範式模型,從邏輯上理解究竟什麼是 SQL,SQL 語句爲何能標識數據查詢,SQL 能作到什麼,不能作到什麼,而後就是 SQL 數據的實現,mysql、oracle、postgresql,深刻理解數據引擎,遊標這些東西
  • 5. 有了上述基礎,再去學習一些理論知識,比方說馬丁大叔提出的 IOC 理論、Roy Thomas Fielding 提出的 Rest 理論,SOA 的提出和發展、微服務的提出和發展,充實對現代分佈式計算架構的理解
  • 6. 嘗試本身實現一套 IOC、SOA、微服務框架,鍛鍊本身經過理論去進行實踐的能力,固然這點不是要求你造輪子,只是爲了可以讓你到達,可以經過理論,造輪子的程度
17.Nginx是Web服務器(Http Server)。能夠進行負載均衡、反向代理。
Tomcat是應用服務器(Application Server),是一個能夠運行Servlet/Jsp應用的容器。
18.SpringMVC 它的思想是所有請求統一用一個 Servlet 去作請求轉發與控制,這個 Servlet 叫 DispatcherServlet。
19. 你們每週完成一個 ARTS:每週至少作一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。
(也就是 Algorithm、Review、Tip、Share 簡稱 ARTS)須要堅持至少一年。

20.RPC(Remote Procedure Call)--遠程過程調用。程序員

一個RPC框架大體須要動態代理、序列化、網絡請求、網絡請求接受(netty實現)、動態加載、反射這些知識點。web

21.整個碼農界有10%作底層、中間件就不錯了。剩餘90%都是業務開發,目標是商業的變現,取決於你對業務的深入理解,對市場、產品、運營等知識的瞭解。也並無那麼多人作高尖端技術產品,即便這些人,可能也就精通本身的領域知識,搞人工智能的不須要懂JVM,搞JVM可能也不懂數據庫,搞數據庫的可能也沒去看jdk源碼。面試

22.zookeeper分佈式鎖。
客戶端想要加鎖,都是先在zookeeper中一個鎖節點下建立一個接一個的臨時順序節點。
若是本身不是第一個節點,就對本身上一個節點加監聽器。
只要上一個節點釋放鎖,本身就排到前面了並取得鎖,至關因而一個排隊機制。
並且用臨時順序節點的另一個用意就是,若是某個客戶端建立臨時順序節點以後,不當心本身宕機了也不要緊,zk感知到那個客戶端宕機,會自動刪除對應的臨時順序節點,至關於自動釋放鎖,或者是自動取消本身的排隊。
23.所謂的"沒有銀彈"是指沒有任何一項技術或方法可以使軟件工程的生產力在十年內提升十倍。(1987年提出)

在軟件開發過程裏是沒有萬能的終殺性武器的,只有各類方法綜合運用,纔是解決之道。

 24:TDD:Test Driven Develop  測試驅動開發

      DDD:Domain Driven Develop  領域驅動開發

25.分佈式session共享,有多種方案解決。能夠選擇使用Redis存儲session。用nginx負載均衡,而後tomcat集羣從redis中獲取session。

 

工做

1.保證充足的睡眠並保持健康。若是你疲倦了或者生病了,就更難保持專一,更易分心走神。

2.在工做和生活中,若是記性很差,就慢慢想;
若是問題很差解決,就慢慢解決;
若是一次不成,就作兩次;
既然跑不快,那就不如慢點跑,好好看看風景。

3.跳出圈子,多接觸別的圈子,最好是比你層次高的圈子,那最好不過了,你的思惟與認知會在不知不覺中發生變化。
若是你是程序員,沒事多跟公司的產品經理、設計師們聊聊,多接觸下外面更多、更牛的圈子,那你就很容易跳出這種思惟的定式,你所看到的,你所想到的,可能都會大不同。

4.作得越多,出的故障越多。除非你啥也不作,可是出的故障越多,你的成長才會越大。因此我仍是跟你們說,趁着年輕,多犯錯誤。由於你如今犯的錯誤都還好,只有人犯過錯誤了,你纔會有那種深入的理解,對這個東西,你會有更深的理解,不犯錯誤的人你是不會成長的。

5.IT行業的人最好按期更新簡歷,而後面試一圈,一則看是否有更好的機會,二則瞭解市場行情與技術動向,也做爲本身下一年努力的方向。

6.寫代碼是一項實踐性的工做,不進入生產環境,不少東西本身是搞不懂也不會接觸到的。但願各位自學編程的人,都能早日找到工做,快速學習和成長,不斷進化和突破,最終超越本身。

學習

1.學習要一步一步來,不要急。

2.與其憑空焦慮,咱們仍是腳踏實地地學習吧!

 3.貪多嚼不爛,欲速則不達。
4. 看Demo中的代碼,先看懂了,而後再盲敲,按照本身的理解琢磨着敲。在本身敲不動的時候,思路卡頓的時候,再去翻書或者看視頻,看他們是怎麼寫的?這樣你就會記憶深入,你同時也得思考,我爲何會在這裏卡住?是否是我對這個知識點沒有理解透?而後再熟悉一下,繼續本身敲。直到本身完整的敲出來。周而復始,一點一點的鍛鍊,你的能力就敲出來了。
5.我始終把這些學習網站提供的或免費或付費的視頻看成快速瞭解的渠道,經過視頻的方式確實比較節省時間,由於講的是別人總結完的,挑出來的那一部分,講的過程當中有時也會想對的解釋一些額外的背景知識,但也相對的,這樣的知識始終以爲不夠體系,通常我喜歡經過視頻快速瞭解一個知識點後,有必要深刻在結合其餘書籍文檔等材料深刻學習。因此我以爲知識付費是可取的,但不能一昧,花的錢對的起你節省的時間就行
6.好比我推薦你們讀英文刊物,他們讀着會有點痛苦,可是慢慢讀,咬着牙讀上一段時間,他們會以爲那些英文文章都仍是讓他們比較開腦洞。由於英文文章裏面會有英文的關健詞,你讀英文關健詞的的時候,你就會,這個關健詞什麼?一方面學英文,另一方面你會用這個關健詞去搜索,你會獲得更多的知識源,你就不須要聽那個二手貨,或者三手,四手的,相似這樣。
7.用你所掌握的技術作一個我的的小項目,設計一些簡單的功能而且實現他們。毫無疑問,你會遇到不少的絆腳石,當遇到它們的時候,在StackOverflow或者Google上面搜索之,解決之。你已經踏上一條成爲某一領域專家的旅程,遇到的困難挫折越多,你會變得越睿智。有句老話說得好,「專家是犯錯最多的人」,這意味着他們嘗試了不少瘋狂的事情來探索這門技術的極限,最後,對於這門技術是如何運做的就能夠知根知底。

互聯網

 1.雙十一不買東西的緣由:

  • 討厭被營銷,產生焦慮感。
  • 不肯囤貨,拒絕雞肋。
  • 商家噱頭太多,誠意不足。
  • 商品不必定是最低價

 

社會

1.中美兩國本科生近十年的畢業率數據發現,美國大學本科畢業率約爲50%,不一樣類型、不一樣競爭力的大學,乃至相同類型、相同競爭力的大學本科畢業率都存在明顯差別;中國大學本科畢業率則超過90%,不一樣類型、不一樣競爭力的大學本科畢業率無明顯差別。他認爲,這種反差,反映了高等教育在人才培養上是「嚴進寬出」仍是「寬進嚴出」的選擇問題。

高校的教師評價機制,更多看發表了多少論文、作出了多少學術成果,而教學尤爲是本科教學質量,權重極小,這樣的「指揮棒」下,不少老師對教學沒有積極性,敷衍了事。老師講課質量不高,除了部分自學能力強的學生,大多數學生天然也沒法學好。而高校出於追求畢業率等目標,對畢業的要求通常比較寬。
2.迂腐狹隘的人,不須要知道電子競技是什麼,他們只須要一個背鍋俠,一個能夠掩蓋家庭教育失敗、學校教育失敗、社會教育失敗的東西。如今他叫遊戲,十五年前它是早戀,二十年前它是偶像,三十年前它是香港電影,三十五年前它是武俠小說。

生活

 1.當你的身體不舒服,老是得去醫院的時候,什麼月薪2萬,3萬都是浮雲。。好好愛惜本身的身體吧。2.不只是「生育自由」,咱們還須要「戀愛自由」、「婚姻自由」、「產檢自由」、「坐月子自由」、「餵奶自由」、「教育自由」、「二胎自由」、「節育自由」!

相關文章
相關標籤/搜索