//下栽のke:chaoxingit.com/2028/
成為Python全能工程師:打造多面手的技能組合
Python已經(jīng)成為當今軟件開發(fā)領(lǐng)域的瑰寶,其簡潔而強大的語法、豐富的庫和生態(tài)系統(tǒng),以及廣泛的應(yīng)用范圍,使得它成為了許多開發(fā)者心目中的首選語言之一。然而,要成為一名真正的Python全能工程師,并不僅僅意味著精通Python語言本身,還需要掌握一系列相關(guān)技能和工具,以應(yīng)對不同的需求和挑戰(zhàn)。
首先,作為一名Python全能工程師,你需要對Python語言的核心概念和特性有深入的理解。這包括但不限于:
Python在數(shù)據(jù)科學和分析領(lǐng)域有著廣泛的應(yīng)用,因此作為一名Python全能工程師,你需要具備一定的數(shù)據(jù)科學和分析能力。這包括:
隨著人工智能和機器學習的快速發(fā)展,掌握相關(guān)技能已經(jīng)成為Python全能工程師的重要組成部分。這包括:
除了數(shù)據(jù)科學和機器學習,Python在Web開發(fā)領(lǐng)域也有著豐富的應(yīng)用,因此掌握相關(guān)的Web開發(fā)技能也是一名Python全能工程師必備的能力之一。這包括:
最后,作為一名Python全能工程師,你還需要具備一定的自動化和腳本編程能力,以提高工作效率和生產(chǎn)力。這包括:
成為一名Python全能工程師并不是一蹴而就的,它需要持續(xù)的學習和實踐,不斷地拓展和提升自己的技能和能力。然而,一旦你掌握了這些關(guān)鍵技能,你將能夠在各種領(lǐng)域和項目中游刃有余地應(yīng)對挑戰(zhàn),成為行業(yè)中的佼佼者。
1. 編程環(huán)境:
2. 數(shù)據(jù)科學與分析環(huán)境:
3. 機器學習與人工智能環(huán)境:
4. Web開發(fā)環(huán)境:
5. 自動化與腳本編程環(huán)境:
6. 版本控制與團隊協(xié)作環(huán)境:
7. 學習資源與社區(qū)支持:
. Python基礎(chǔ)知識:
2. 數(shù)據(jù)科學與分析:
3. 機器學習:
4. Web開發(fā):
5. 版本控制與團隊協(xié)作:
6. 自動化與腳本編程:
7. 持續(xù)學習與社區(qū)參與:
. 深入理解Python語言:
2. 數(shù)據(jù)科學與機器學習:
3. Web開發(fā)與微服務(wù)架構(gòu):
4. 大數(shù)據(jù)處理與分布式系統(tǒng):
5. 軟件工程與團隊協(xié)作:
6. 持續(xù)學習與實踐:
成為一名Python全能工程師是一個持續(xù)學習和進步的過程,需要不斷地投入時間和精力,不斷提升自己的技術(shù)能力和綜合素質(zhì)。
秘下架,無人發(fā)聲
2017年8月28日,晚上十二點半,在德勤工作的Echo剛剛下班,她已經(jīng)在這個項目上忙了快一個月,基本每天都要在這個時候才能下班。
在回家的出租車上,她打開了很久沒打開的無秘,但是刷新之后,發(fā)現(xiàn)頁面一直顯示“系統(tǒng)維護,暫停服務(wù)”。
但無秘那段時間已經(jīng)時常不再穩(wěn)定,她也沒太在意。四天后,當她再次打開無秘,發(fā)現(xiàn)依然無法使用時,這才想起去無秘官微看看到底發(fā)生了什么。
這才發(fā)現(xiàn)官微已經(jīng)在9月1日正式發(fā)了聲明,而且并未表明恢復服務(wù)的日期。那之后至今,已經(jīng)過去了整整兩個月,無秘這款國內(nèi)最火的匿名社交應(yīng)用,再也沒有能恢復服務(wù),并且已經(jīng)無聲無息地從app store 下架了。
與這種無聲無息的下架相比,更奇怪的是,無秘的擁有一千六百萬用戶并為對此事發(fā)表過多看法。在各大社交網(wǎng)絡(luò)上,你只能看到零星的吐槽與牢騷,而未能看到太多用戶維護它、懷念它,甚至為它的復出而作出努力。
同樣都是滿足用戶灰色需求的應(yīng)用,快播的下架就曾經(jīng)引起了軒然大波,甚至引起大眾關(guān)于“技術(shù)無罪”的熱烈討論。大量用戶維護快播,并為之發(fā)聲,認為某巨頭舉報快播是極為下作的競爭行為。
兩相對比,我們就能看到其中的微妙之處:
迄今為止,無秘下架兩個月,卻無人為它發(fā)聲,它的火熱與用戶仿佛一夜之間就全都銷聲匿跡了。
永遠沒有下班時間的年輕人們
在德勤工作的Echo學姐是無秘最早一批用戶,2014年剛一上線她就已經(jīng)安裝了。
那時候無秘還單純只是一個匿名說心事的平臺,很多人在上面說著自己無法跟他人說的往事、焦慮和痛苦。
當時無秘的爆料基本還是圍繞著每個用戶內(nèi)心深處的秘密,偶爾會有一些倫理邊緣的小故事,也大多都是能讓人找到共鳴和釋放的內(nèi)容。
在德勤的工作本就繁忙而枯燥,工作之余 Echo 就會常常登陸無秘,看看大家心中的秘密,有時也會把自己不便告訴他人的心事寫在上面。
那時候,無秘確實能夠讓人感覺很放松,是你一天里最沒有壓力的時刻,圈子功能推出后,還能看到很多業(yè)內(nèi)八卦。
Echo這樣說。
這是Echo一天里最為放松的時刻,她的工作已經(jīng)有太多焦慮和壓力,無法宣泄,也無處宣泄,最初,無秘很好地填補了這一塊空白。
無秘的誕生和火爆所迎合的其實就是當下城市年輕人無處發(fā)泄的負面能量。
他們每天都在被一個又一個deadline追著跑,永遠背不完的鍋,永遠兌現(xiàn)不了的空頭支票,永遠加不完的班,積蓄下來的負面情緒根本無處發(fā)泄。所以,每次只要有“發(fā)泄”主題的城市活動,絕對都能引起一時熱議。
GQ實驗室曾經(jīng)做過一次“職場表情包破譯科”,每個emoji背后都有其嶄新含義,“鼓掌”背后的含義是“那你很棒棒哦,給你鼓鼓掌!(諷刺)”,“涂指甲油”的emoji則意味著“老娘懶得理你”。儼然已經(jīng)形成一種亞文化。
在上海,網(wǎng)易新聞辦了一個與工作焦慮有關(guān)的藝術(shù)展,名字帶著幾分網(wǎng)絡(luò)化,“心靈復蘇大保健”。其中媒體品牌GQ、好奇心研究所;在社交網(wǎng)絡(luò)上紅極一時的彩虹合唱團、漫畫家Tango以及《奇葩說》辯手姜思達等10個內(nèi)容方,每個都展出了一種不同的工作焦慮。
姜思達的展叫“You Da Boss”。比起靜止裝置這更像一場行為藝術(shù):員工模樣的男子坐在電腦前摸魚,一會兒看視頻一會兒打游戲,但只要有觀眾走到身后,他就會立刻切換到Word頁面(假裝)認真工作,切屏手速驚人。
姜思達的“You Da Boss”
今年6月,在上海新天地世界大丸百貨舉報過一場“魔都減壓展”,內(nèi)場提供了枕頭大戰(zhàn)、摔碗、冥想、撕假鈔票等減壓選項。但其實活動流程設(shè)計很一般,你真去了也不會參與到什么減壓活動。可門口的年輕人們依然排起了長隊。
這些承載年輕人負面情緒并為之提供發(fā)泄方式的事物,都曾經(jīng)火熱一時,但它們也有一個共同點:迅速火熱,然后迅速消失。表情包也好,《感覺身體被掏空》也好,魔都減壓展也好,能夠讓年輕人追捧一時,然后被迅速忘記。
因為它們只能發(fā)泄,而無法解決任何問題。狂歡之后,焦慮還在,壓力還在,生活還在繼續(xù),周一還要面對。所以,它們只能流行一時。
而無秘,對于年輕人來說,正是這樣“流行一時、迅速忘記”的存在。
“我選擇卸載”
不止如此,因為無秘對其平臺負面的內(nèi)容不作為之后,無秘內(nèi)部的文化氛圍開始變得極為黑暗,這種黑暗氛圍在著名的“陸家嘴事件”后達到了頂峰。
露骨、造謠、抹黑等等內(nèi)容開始大量涌現(xiàn),并且無秘平臺本身對此幾乎秉承著置之不理的態(tài)度。
這些內(nèi)容不僅不會讓用戶得到放松,反而會讓其心情更加沉重。
說出來可能有點難以相信,我的好朋友之所以從上一家公司跳槽到現(xiàn)在的公司,就是因為無秘。
她在上一家公司里兢兢業(yè)業(yè)地工作,在外跑業(yè)務(wù)、對身邊的工作也盡心盡力。
無秘在他們公司盛行,無論是老板、還是同事們都熱衷于在上面匿名地分享自己的小秘密、吐吐苦水。在這樣的環(huán)境下,朋友在一次被老板表揚并promote后,在無秘上遭到了圍攻,甚至公開點名說她靠裙帶關(guān)系上位,她崩潰了。
其實無秘就是這樣,什么人都在上面,魚龍混雜得很,他們什么難聽的話都敢說,反正又沒人能知道他們到底是誰。
指名道姓地在無秘上這樣說,而說這些話的人卻全都躲在匿名ID后面。
沒過多久,她也離開了那家公司,然后卸載了無秘。
她受不了一個熱愛無秘、還相信無秘的老板,也受不了一群把無秘當成辦公室政治斗爭工具的同事。
而這只是無秘平臺所滋生出的黑暗文化的一小部分而已。
與無秘上的亂相相似,快手上也活躍著大量游走在法律邊緣的視頻內(nèi)容,但一旦被平臺發(fā)現(xiàn),快手就會立刻處理,從不手軟。比如,剛剛發(fā)生的快手上的“未成年孕婦”事件。
不管怎樣,快手的即時處理沒有讓事情發(fā)展得更為可怕,但是無秘卻幾乎從未對平臺下內(nèi)容做過任何疏導與管理,任由其黑暗文化滋生、成長。匿名帶來自由,匿名也帶來放肆與陰暗,由此便生發(fā)而出的黑暗文化在無形中消耗著用戶對它的忠誠度和好感度。
成也蕭何、敗也蕭何
歸根到底,用戶對無秘沒有感情、沒有情懷,有的只是不想承認、無法承認的黑暗面,這就是無秘匿名的意義。
這是它最初火熱的原因,也是它如今無人為之哀悼的原因所在,正所謂“成也蕭何,敗也蕭何”。
匿名帶來了其平臺的黑暗文化氛圍,平臺又沒有對其加以控制,使之走向了最終的失控。平臺被沉重的情緒填滿,使用戶再也不想要登陸上去,更不要說為之發(fā)聲了。
所以無秘的下架也就理所當然地沒有引起大范圍的懷念與哀悼。
無秘就像那些轉(zhuǎn)瞬即逝的解壓活動、宣泄方式,只能宣泄一時,而無法徹底解決焦慮與恐慌。
樹洞只是樹洞,壞了,那換個新的就是,沒人會為樹洞大哭一場。
我們永遠需要樹洞,我們永遠需要釋放壓力。
但這樹洞不會永遠是無秘。
圖片/來源網(wǎng)絡(luò)
-END-
//xia栽ke:chaoxingit.com/2441/
很多初學者開始接觸Java EE的時候,都會略有些迷茫,搞不太懂Java EE與Java之間的關(guān)系,也不太清楚各個框架都是干嘛的,名詞也多,內(nèi)容也復雜,不知道從哪個地方開始入手。因此,我們這篇文章就為給大詳細解讀一下Java EE到底是什么,包括哪些方面,應(yīng)該怎樣學習。
一、Java EE到底是什么?
Java EE實際上是Java語言和API的集合。官方說法叫企業(yè)級開發(fā),實際上最多的就是做Web應(yīng)用開發(fā),這里面的Web應(yīng)用和單獨一個網(wǎng)站還是有很大區(qū)別的,例如單獨開發(fā)一個靜態(tài)頁面,很多工具很快就可以完成了。而Web應(yīng)用,更多的是指在網(wǎng)絡(luò)上,以看起來像網(wǎng)站形式提供服務(wù)的一個復雜應(yīng)用。例如說Google,網(wǎng)頁上看著非常簡單,就一個框,實際上,后面有大量的數(shù)據(jù)庫,有大量的推薦算法、查詢算法,有廣告推薦服務(wù),有排名服務(wù)等等,可能這些服務(wù),在網(wǎng)頁上最終顯示出來的就一句話,但是背后的業(yè)務(wù)程序卻非常復雜。
像淘寶、京東這些購物網(wǎng)站的后臺,都是Java寫的。背后要處理的東西非常多。比如說下一個訂單,就要考慮庫存狀態(tài)、訂單的存儲和備份、后臺的訂單處理、狀態(tài)變更、出庫入庫、支付系統(tǒng)、結(jié)算系統(tǒng)、對賬系統(tǒng),等等。
而這么復雜的一個系統(tǒng),Java EE把它分為三層,分別是表示層、中間層、數(shù)據(jù)層。C#中的三層分別是表示層,業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,只是不一樣的說法,但表達的是同一個意思。如下圖所示:
所以對于一個簡單的系統(tǒng),比如說圖書管理系統(tǒng)來說,按上圖從左到右,就分成五個部分。
1、瀏覽器:負責輸入要查詢的圖書,以及把查詢的圖書展示在瀏覽器里供人查看。
2、視圖展示層:把瀏覽器里輸入的內(nèi)容包裝一下,發(fā)給業(yè)務(wù)處理層。比如說瀏覽器里輸入的是“紅樓夢”,它輸入給業(yè)務(wù)處理層的內(nèi)容可能是{“bookname”:“紅樓夢”,“type”:“Query”},告訴業(yè)務(wù)處理層,這人要查詢一本叫紅樓夢的書。同時業(yè)務(wù)處理層查完了,查到一本紅樓夢,作者曹雪芹,朝代清朝,頁數(shù)1563頁,出版社清華大學出版社,返回給它之后,它再給包裝一下,什么名字大寫,圖片放在右邊,作者放下下面之類。然后給瀏覽器一顯示,用戶就看到了。
3、業(yè)務(wù)邏輯層:處理一下業(yè)務(wù)邏輯,比如說判斷一下,前端傳來是,是要查詢,還是要刪除這本書,或者是要查詢相似的書,等等。要查詢這本書,他就去查一下,看這本書庫里有沒有,給持久層一個查詢指令。要刪除這本書,他就先看一下,發(fā)請求的這個人有沒有權(quán)限,這本書庫里有沒有,刪除這本書這個事要不要記錄在日志里等等,確定要刪除了,就給持久層發(fā)一個刪除這本書的指令,發(fā)現(xiàn)這個人不能刪除這本書,就返回給視圖展示層說警告,你的權(quán)限不足,刪不了。
4、持久層:用來操作數(shù)據(jù)庫的,把四面八方來的數(shù)據(jù)庫增刪改查指令都收集到它這里,一起處理,至于他是開一個數(shù)據(jù)庫連接還是一百個連接查詢,那就是他自己的事了。
5、數(shù)據(jù)庫:那就老老實實執(zhí)行,持久層給他什么指令他就干什么。
所以可以說,Java EE,就是實現(xiàn)上面這樣的系統(tǒng),需要的一系列技術(shù)的集合。
二、Java EE與Java語言之間的關(guān)系
Java EE是以Java語言為基礎(chǔ)的,可以認為Java語言是漢字,而Java EE則是不同類型的文章。會寫漢字,并不代表會寫論文、公文。而會寫論文也不代表會寫公文。
三、Java EE包括哪些技術(shù)
通常來講,Java EE包括13項核心技術(shù)。
1、JDBC(Java DataBase Connectivity):用來連數(shù)據(jù)庫的。
2、JNDI(Java Naming and Directory Interfaces) :給當前服務(wù)器管理的所有資源一個統(tǒng)一的標識,換句話說通過這服務(wù)能找到服務(wù)器管理的任何資源并使用。比如說數(shù)據(jù)庫、網(wǎng)頁、文件、連接池等。
3、EJB(Enterprise JavaBean):實際給企業(yè)干活的組件,企業(yè)自己寫完注冊在服務(wù)器上,服務(wù)器給他一個統(tǒng)一的標識,就JNDI管那個,然后應(yīng)用服務(wù)就可以調(diào)用了。在這里面,Java EE是提供了部署和使用這些組件的平臺和標準。按這個標準寫的組件就可以用了。
4、RMI (Remote Method Invoke):遠程方法調(diào)用,它提供了一種方法,可以遠程調(diào)用另一個Java虛擬機上的對象中的方法。
5、JSP(Java Server Pages):生成Html給瀏覽器展示用的。JSP頁面由HTML代碼和嵌入其中的Java代碼組成。服務(wù)器在頁面端所請求以后,對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
6、Java servlet:一種小型Java程序,它擴展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當被請求時開始執(zhí)行。Servlet提供的功能大多與JSP類似,不過實現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而Servlet全部由Java寫成并生成HTML。
7、XML(Extensible Markup Language):可擴展標記語言。大家都見過。
8、JMS(Java Message Service) :Java消息服務(wù),消息中間件規(guī)范。JMS的客戶端之間可以通過JMS服務(wù)進行異步的消息傳輸。JMS用于和面對面對消息的中間件相互通信的應(yīng)用程序接口(API)。既支持點對點的域,又支持發(fā)布/訂閱(publish/subscribe)類型的域。常用的消息中間件如ActiveMQ都支持完整的JMS標準。
9、Java IDL (Interface Description Language) /CORBA (Common Object Broke Architecture) Java:接口定義語言/公用對象請求代理程序體系結(jié)構(gòu)。IDL是用來描述軟件組件接口的一種計算機語言。IDL通過一種中立的方式來描述接口,使得在不同平臺上運行的對象和用不同語言編寫的程序可以相互通信交流。
10、JTS (Java Transaction Service) :是一個組件事務(wù)監(jiān)視器。規(guī)定了事務(wù)管理器的實現(xiàn)方式。
JTS事務(wù)管理器為應(yīng)用服務(wù)器,資源管理器,獨立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。
11、JTA(Java Transaction API):和JTA一起為J2EE平臺提供了分布式事務(wù)服務(wù)(distributed transaction)。就是在一堆業(yè)務(wù)和數(shù)據(jù)源里,保證了用戶操作不會操作到一半出問題后半新半舊的情況,要么全操作完,要么操作失敗回到原始狀態(tài)。
12、JavaMail:顧名思義,存取郵件服務(wù)器的API,支持郵件發(fā)送服務(wù)器SMTP,接收服務(wù)器POP3、IMap等。但是其API不怎么好用,底層很強大。所以Spring提供了mail包,封閉了javax.mail,比原生的好用很多。
13、JAF (JavaBean Activation Framework):是一個專用的數(shù)據(jù)處理框架,它用于封裝數(shù)據(jù),并為應(yīng)用程序提供訪問和操作數(shù)據(jù)的接口。JAF的主要作用在于讓java應(yīng)用程序知道如何對一個數(shù)據(jù)源進行查看、編輯和打印等操作。就是那個大家經(jīng)常見到的activation.jar。
(此處已添加書籍卡片,請到客戶端查看)
四、各類框架與Java EE的關(guān)系
提到Java EE,就不得不提到各種輕量級框架,Java EE相關(guān)的框架又多又復雜,很多人搞不清楚都是干嘛的。但是其實很簡單,Java EE提供的原生功能,很多都不怎么好用,所以程序員們,在基于原生功能基礎(chǔ)上,做了很多封裝,就是把原生的不怎么好用的功能包起來,用更人性的方式讓你使用,然后它再費勁巴拉的去調(diào)用原生的框架或者拐個彎實現(xiàn)要用的功能。
1、表現(xiàn)層框架:表現(xiàn)層框架是用來替代JSP和Servlet的,主要有Struts1、Struts2和Spring MVC。說白了就是JSP和Servlet不太用戶友好,用這兩個框架幫忙給弄得用戶友好些。目前Spring MVC已經(jīng)成為了主流框架,Struts已經(jīng)基本沒什么人用了,而隨著前后端分離的快速流行,Spring MVC提供接口,VUE/React等提供展現(xiàn)的開發(fā)模式已經(jīng)越來越流行了。
2、持久層框架:用來代替原生JDBC,主要有Hibernate、MyBatis/Plus、Spring Data JPA等。他們能讓操作數(shù)據(jù)庫,數(shù)據(jù)庫表與實體類的映射,數(shù)據(jù)庫查詢結(jié)果與前端的展現(xiàn)融合變得非常簡單。而不是像JDBC返回一堆數(shù)據(jù)自己再處理。
3、全棧式框架:在三層結(jié)構(gòu)的各個部分進行優(yōu)化。主流即為Spring,以IOC(Inverse Of Control 反轉(zhuǎn)控制)和AOP(Aspect Oriented Programming 面向切面編程)為內(nèi)核,提供了表現(xiàn)層MVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級應(yīng)用技術(shù),還能整合眾多著名的開源第三方框架和類庫,逐漸成為使用最多的JavaEE企業(yè)應(yīng)用開源框架。換句話說,Java EE提供的三層功能,該框架及其容納進來的各種類庫都能給實現(xiàn)了,所以人們現(xiàn)在基本上都只用它。而Spring Boot是在Spring框架基礎(chǔ)上,進行了進一步封裝,變得更加好用了。總結(jié)起來,這些框架在Java EE三層結(jié)構(gòu)中的代替關(guān)系如下圖所示。
五、小結(jié)
綜上所述,Java EE的整個技術(shù)棧,包括很多種內(nèi)容,其中最為核心的,就是完全一個企業(yè)級應(yīng)用所需要的展現(xiàn)、業(yè)務(wù)處理、和數(shù)據(jù)存儲三層功能。而學習Java EE最基礎(chǔ)的,是在了解其技術(shù)源流的基礎(chǔ)上,學習一個能實現(xiàn)企業(yè)業(yè)務(wù)功能的最小技術(shù)集。
這個最小集在多年以前以SSH(Struts、Spring、Hibernate)較為流行,后來升級為Struts2,到后來Struts2漸漸被SpringMVC替換掉,變成了Spring + SpringMVC + Hibernate/ibatis架構(gòu)。
之后Hibernate配置維護需要的人力成本大而慢慢被ibatis代替,后來MyBatis出現(xiàn)了,從iBatis到MyBatis,MyBatis提供了更為強大的功能,同時并沒有損失其易用性,就變成為了Spring+SpringMVC+Mybatis,這是很多公司比較流行的框架。
目前,隨著SpringBoot的流行,開始向SpringBoot+Mybatis/plus架構(gòu)轉(zhuǎn)變,而Spring Data Jpa,又在持久層逐漸占領(lǐng)Mybatis/plus的市場。同時隨著微服務(wù)的流行,基于SpringBoot的SpringCloud微服務(wù)框架開始成為前沿框架。
總之,對于一名軟件從業(yè)人員來說,要掌握一套完整的開發(fā)技術(shù)棧,然后不斷地嘗試新的前沿技術(shù),從而使自己不被時代所淘汰。