點擊上方藍色“ 網路冷眼” 可以訂閱哦!
你知道我真的很討厭什么嗎?
針對程序員的技術文章,解釋了 為什么 你應該做的事情,可是作者一點不談及 任何個人經驗 。
講真 - 你怎么能相信一個從來沒有蹲過戰(zhàn)壕,開過槍,掛過彩而凱旋而歸的人?
我把一個不同的方法放在一起這篇文章,寫了一些我相信其他程序員喜歡自己想聽到:
我不在這里為Python傳播福音。
我不在這里告訴你Python是“最好的編程語言”(無論什么意思)。
我甚至不會告訴你“嘗試”用Python構建你的下一個項目,因為我不知道你的下一個項目到底是什么,還有Python是否會是一個很好的選擇。
相反,我的目標是作為一個與你相關程序員,我將分享一些作為程序員的職業(yè)生涯中的個人故事,并希望你能看到自己的一些部分影子。
如果你堅持閱讀本文的其余部分,我想你會得到我?guī)啄昵暗耐瑯拥慕Y論 -無論你是否意識到,Python將會影響你的未來。那么為什么不學Python呢?
言歸正傳,讓我們深入了解選擇Python 的理由吧。
#1 第一次做程序員?快速學會Python
我記得我第一次拿起一本程序設計書那是在15年前。
那時我只是一個孩子,可能最多是13歲。
Andrew ,我的一個發(fā)小,把我領入到了計算機世界。他向我展示了電腦不只是連接到互聯(lián)網和訪問網站,還有七七八八的功能。
他向我展示了HTML的基礎知識,以及如何使用“標簽”以及基本標記語言真正 構建 網站。
從那時候起,我一直沉迷其中,不能自拔。
肆無忌憚的控制水平、創(chuàng)作者任意揮灑的自由、藝術家魔術般的畫布。這一切,讓我感覺是一個正在創(chuàng)造奇跡的程序員。
第二天早上,我懇求我的媽媽帶我去當?shù)氐膱D書館,如此我可以更多地了解計算機編程。
也許不奇怪,目光所及第一本書的標題中有“ BASIC ”一詞。對于初學者,這個名字一定會吸引你。
整個夏天(和安德魯?shù)膸椭拢?,我使用這本書來學習編程的基礎知識,基本的控制結構,以及如何組織一個程序。
但在將要結束的某一天,我感到非常失望 – 隨著秋季學期的到來,我?guī)缀醴艞壛司幊獭?/strong>
咋回事呢?
原來我不能用BASIC做任何超“ 酷 ”的東西出來 - 這種語言的本質是非常有限和礙手礙腳(這是莫大的諷刺,因為我現(xiàn)在使用的Python,就是以在吃之前擠壓并破壞所捕獲獵物的蛇:snake:命名的)。
我無法訪問低級系統(tǒng)資源。
我無法加載和操作圖像。
我無法做任何類型的統(tǒng)計或計算分析?
忘掉它吧!
盡管我花了所有的時間 學習如何編程 ,但我不能展現(xiàn)任何東西。
所有的說,我向前走。我意識到我的編程“生涯”不必在BASIC 止步。
在我高中的一年級期間,我轉向學習C / C ++。這是一個更難的語言,花了我一段時間來精通它。我真的喜歡C給了我的自由,即使這意味著有時是搬起石頭砸自己的腳。
在學習C / C ++之后,我轉向學習Java和面向對象的編程。這很有趣,但感覺它做任何事情都想獲得 永垂不朽 。
在大高二學年結束時,我第一次嘗試了腳本語言:具體來說,Python!
那時寶寶都驚呆了,竟然有這么棒的語言!
代碼 可讀性超好 - 幾乎像寫初級英語或簡單的抽象數(shù)學那樣輕松自如。
對代碼本身而言也具有面向對象的風格。Python 不是像Java一樣的極端,一點即通,如老友重逢。
也許最令人驚訝的是我的代碼看起來多么 優(yōu)雅!
使用空格保證了我的代碼被整齊地組織成整齊的小塊。通過遵循基本編碼標準和建議,第一天結束時我使用語言就寫了漂亮的、易于維護的代碼。
回想起來,我多么希望我使用Python 開始學習編程的。
當然,BASIC教給我基本的編程,但以相同的、簡單的方式,Python照樣能夠完成同樣的任務。
如果時光能夠倒流,我會毫不猶豫跳過BASIC完全走向Python 的學習。我會享受更多愉快的體驗,獲得了更好的時間投資回報,并更好地準備學習C/ C + +和Java。
#2 Python用于Web開發(fā)
我承認:
當我第一次開始編寫Web應用程序時,我并沒有使用Python - 我使用了PHP。
事實上,那時我對PHP 情有獨鐘,我甚至不會考慮應用另一種編程語言可能對Web開發(fā)更好的可能性。
但是我錯了。
徹徹底底地錯死了。
直到我的朋友Patrick告訴我Python網絡框架Django,我的心才變好了。
在PHP中花費了 數(shù)個小時 的時間的任務可以使用Python 分分鐘 搞定。
更不用說,事實上,我的代碼是更快、更穩(wěn)定了。
Django 之后,我轉向學習Flask,另一個Web 框架,雖然微小,但具有很強的構建可定制性。
一旦我開始使用Django和Flask,我從來沒有回頭再使用PHP。
雖然大多數(shù)網站仍然運行在PHP之上,但許多 新的 Web應用程序正在使用Python來構建。
如果你打算做任何Web應用程序開發(fā),嘗試Python和Django / Flask 吧。 我想你會印象深刻,感覺良好。
#3 Python 驅動創(chuàng)業(yè)公司成功
創(chuàng)業(yè)公司要想成功絕非一夜之功。
相反,它來自一系列 迭代過程 ,通常看起來像這樣子的:
了解(潛在)客戶的需求。
構建最小可行產品(即,解決客戶問題的 最小 可能的功能集)。
向客戶軟件。
重復此過程,直到客戶滿意。
這個過程允許創(chuàng)業(yè)公司“邁向”成功之路。從一個想法開始,然后細化想法和產品,直到最后“成功了”。
在網絡世界中,Python是這個過程的理想選擇。
該語言允許您 快速編碼 ,使用最少的代碼行(比Java小5倍,比C ++少10倍)來構建復雜應用程序。
迅速從 創(chuàng)意到實現(xiàn) 是創(chuàng)業(yè)世界獲得成功的 關鍵 ,所以如果你有興趣與創(chuàng)業(yè)公司合作,我強烈建議你學習Python。
就我個人而言,我從18歲開始就在創(chuàng)業(yè)公司工作。
無論特定的產品是基于網絡,移動或企業(yè)的,作為核心產品的一部分或作為支持實用程序,Python 最終 都找到了進入公司的路徑。我毫不懷疑這種趨勢在未來仍將繼續(xù)。
#4 想要高薪嗎?成為一個Python程序員吧!
在由Indeed.com創(chuàng)建并由codementor.io發(fā)布的2016年開發(fā)人員薪水研究中,發(fā)現(xiàn)Python開發(fā)人員的平均工資是107,000美元:
基于這項研究,Swift,Python,Ruby,C ++和Java將讓你賺更多的錢(PHP墊底)。
考慮到移動應用程序的貨幣化,也許Swift高居榜首并不奇怪,因為它通常用于開發(fā)iOS和macOS應用程序。
但Swift下面緊隨其后就是Python和Ruby:前五個中只有兩種腳本語言。
雖然Ruby是一種通用編程語言,適用于許多應用程序,但是當輪詢一組Ruby開發(fā)人員時,會發(fā)現(xiàn)他們正在使用Ruby進行Web開發(fā)。
Python在另一方面是不同的: 它更多樣化 。
不要誤會我,你會毫無疑問地看到許多程序員使用Python進行Web開發(fā),但 你也會看到Python為科學應用程序提供動力 。
根據(jù)我個人的經驗,我可以告訴你,我認同這個薪酬排行榜。
當我作為一個PHP開發(fā)人員工作時,我在我的職業(yè)生涯中賺到錢最少。
然后我轉向Java和企業(yè)開發(fā)時,我撞上了大運。
但是,直到我開始在計算機科學Python社區(qū)工作時,才發(fā)生 真正的變化 。
雖然是道聽途說,但是我 真的相信 Python比Ruby打開更多的門, 特別是從科學的立場上看 。
我的預測是,鑒于Python不僅是一種通用的編程語言,而且也是一門 科學的編程語言 ,我們很快就會看到Python在更高的薪水方面接管了Ruby ,掙得更多。
#5 想進入安全領域嗎?先進入 Python 世界吧
五個月前,我的一個一起健身的朋友介紹我認識他的兒子Sean。
Sean剛剛從高中畢業(yè),并在秋季學期前往芝加哥大學上學。
我對他的專業(yè)產生了好奇,我問Sean他計劃學習哪些課程。
他回答說是網絡安全。
網絡安全是一個超棒的領域,多金,可以掙得盆滿缽滿。
想想看 - 網絡安全的運營與一個圍繞停尸房和殯儀館設計的業(yè)務有許多相似之處。
這可能是可怕的,但人們會繼續(xù)死亡;除非我們神奇地找到生命的靈丹妙藥,否則殯儀館商業(yè)機不會停滯。
同樣,從來不缺少網絡攻擊。甚至有人猜測,下一次世界大戰(zhàn)將在網絡空間中打得你死我活,而不是通過部隊在真實世界里真槍實彈的開戰(zhàn)。
Sean告訴我關于他的高中的編程課程,他如何兩年的時間里學習Java、面向對象的編程和軟件設計。
雖然我印象深刻,他的培訓甚至 有 兩年的程序設計課程,但是當我聽到他們沒有教授任何腳本語言,我感到有點難過。
在圣誕節(jié)休息期間,我碰到了 Sean,問他如何享受芝加哥大學的快樂時光的。
他做得很好。
他正在與他所有的計算機科學課程翩翩起舞。
他加入了學校的網絡安全團隊...
我咧嘴笑了,因為我已經知道答案,我問他:“什么讓你學習Python?
他回答說:“這很容易,人!你可以用Python做任何事情啊。當我第一次加入網絡安全團隊時,我使用Java編寫滲透測試程序。我花了幾個小時寫的程序,而我的同行分分鐘搞定?!?/p>
Sean 認識到了腳本語言的力量。
雖然你可能犧牲一些執(zhí)行速度,但你獲得了更多的靈活性,編寫代碼的設施,最重要的是, 具有快速實驗的能力 。
我的觀點是,Python包括所有這些世界中最好的東西。如果你還沒有嘗試過,那么你真的應該試一試。
#6 Python是AI和機器學習的未來
Python編程語言目前正在推動科學編程普及,但原來的情況并非總是如此。
多年來 ,學者和私人研究人員一直使用MATLAB語言進行科學研究。
這一切都開始隨著Python數(shù)值計算引擎(如NumPy和SciPy)的發(fā)布而改變,允許通過單個“import”語句后跟一個函數(shù)調用來完成復雜的計算。
雖慢但確實,Python開始接管作為計算機科學研究的首選語言。
事實上,我用Python編寫了我的博士論文中 所有 用于收集結果的代碼。
當我畢業(yè)獲得學士學位時,即使非計算機科學的學生已經開始自學 Python 和使用它來推動自己的研究。你將看到非計算機科學家利用Python,
,計算生物學是一個很好的例子。
這些天我花更多的時間編寫科學的Python代碼比任何語言都多,所以雖然我明顯有失偏頗,但我還是可以告訴你:
考慮到語言的靈活性,其速度以及提供的機器學習功能庫(如scikit-learn,Keras和TensorFlow),我們將繼續(xù)看到Python在機器學習領域占據(jù)主導地位。
在我心中毫無疑問:如果你對計算機科學研究 甚感興趣 , 你應該學習Python 。
#7 不做只會一招半式的碼農
在這個過去的夏天,我設置了我的第一個美國401k養(yǎng)老金計劃。
我和我的財務顧問聊了多次天,討論各種投資工具和策略,以及分配我的投資組合的不同方法。
不管對話如何開始,但最后都指向同一個地方:
在投資界,這簡單歸結為“不把你的所有雞蛋放在同一個籃子里。”如果你掉下籃子,那么所有的雞蛋都摔破了。
因此,你的目標是多樣化:把一大塊錢投入大公司股票,將另一塊(較?。┑膲K投入小/中型公司股票,然后將另一塊投入債券,最后剩余的金額進入國外市場,貴金屬,等等領域。
有意義,對吧?
如果你把 所有 的錢放入股票,市場再次碰到像2008年那樣的經濟危機,那么你的退休投資組合將被完全粉碎。通過多樣化,您將風險降至最低。
無論相信或不相信,編程世界并沒有什么不同。
在過去的十年中,盡管擁有編程專業(yè)化技能變得越來越有價值,但是你必須小心不要把自己當作“那個做Java 的家伙”或“那個做C ++的家伙”。
例如,我是一個程序員,我 專門 從事計算機視覺和機器學習。
但是,我 不 只是一個“做Python的家伙”或“做OpenCV的家伙”。
我使用Java來構建大規(guī)模的企業(yè)和政府應用程序。
我使用C ++工作在實時應用程序。
我甚至定制PHP應用程序,以擴展到成千上萬的用戶。
我的觀點就是: 讓簡歷更加豐富多彩 。
盡管我有一個利基,知道我的利基,但我也可以承擔任何其他任務。
如果你沒有Python在手,考慮把它添加到你的劇目,并增加作為一個程序員所需的多元化和市場意思。
現(xiàn)在怎么辦?
所以,你準備好學習Python, 但是你怎么開始?
我會在下個月回來回答這個問題,并提供我最喜歡的學習Python編程語言的資源。
回頭見!
參考:
7 Reasons Why You Should Learn Python RightNow
https://simpleprogrammer.com/2017/01/18/7-reasons-why-you-should-learn-python/
長按二維碼可以關注“網路冷眼”
聯(lián)系客服