滴~ 近段時間,因為工作專案的原因,阿菌要重拾起python這門語言了,所以順勢寫一門python教程,精心的編排,配上漫畫和視訊,希望能幫助更多想接觸程式設計的同學入門,課程將從基礎語法開始講起,和大家分享規範實用的程式設計技巧,一點點建立起程式設計的思維。最後希望大家能通過python這門技能,更好地提升自己的工作和學習效率。
鄭重宣告:阿菌往後的所有教程,不管是實用的還是不實用的,都是免費滴~如果哪天哪門教程恰好對各位同學有幫助,通過文末那排按鈕給阿菌一點點鼓勵就好啦,當然來評論區對線就更歡迎啦。
阿菌只是一壞小子,沒有顯赫的背景,在網易遊戲當一顆飯堂毒瘤。要說阿菌的教程有啥優勢,大概就是:他會把他學習程式語言和工作中的各種沙雕事件分享給大家,幫助大家在學習程式設計的路上減少踩坑。市面上可能還沒有這麼邪魅的入門教程,也沒有太大的想法,不坑人,把想入門的同學教會就行。
本章的視訊版教程地址如下(可通過文末的閱讀原文按鈕進行跳轉):
教程的開頭總是要先作介紹,阿菌先和大家簡單說一下Python學習的誤區。
我們經常能看到許多培訓機構的廣告,告訴大家學了Python能處理Excel,圖表,搞人工智慧,資料分析,等等。
這些說法說對也對,說不對也不對。
首先,先說為什麼不對。阿菌舉個最簡單的例子:想處理好Excel,首先我們得去深入學習Excel這個軟體,把這個軟體學透了之後,然後才能運用工具將它處理好。而Python,只是眾多處理Excel表格工具中的一種,也許是比較好用的一種。
但大家要明確一個前提:我們得先學好Excel,然後才能用Python去實現我們處理Excel的邏輯。
其他也是一樣的,比如資料分析,做好資料分析的關鍵不在於學Python,而在於良好的數學功底,我們得先根據實際情況把數學模型提出來,然後再通過計算機進行表達(通過Python告訴計算機),把問題交給計算機處理。Python只起到了一個工具的作用,或許是比較好用的一種工具。
人工智慧就更別提了,數學要好。總的來說,Python只是語言,只是方便我們表達,把問題告訴計算機,至於問題怎麼解決,這個得靠我們自己,Python幫不了我們。
就像擰螺絲,相比起用手擰,螺絲刀能幫助我們擰得更輕鬆;但是,想把螺絲擰緊,具體得擰哪個方向,螺絲刀是不會告訴我們的,得我們自己判斷。
總的來說,Python就是一門程式語言,藉助它,我們能和計算機進行交流。具體的操作是:把我們的想法,轉換成Python程式碼,交給計算機執行。
舉個例子:想和歪果仁打交道,比如美國人,我們得用英語(他們能聽懂的語言),至於我們是想問候他還是想“問候”他,那取決於我們,和語言無關。
在現實生活中,大概會有三類人學習程式語言:
-
一種是未來想把程式設計作為職業的人
-
一種是因為學校課程設定而被迫學習的人
-
最後一種是純粹希望學習一門技能,以方便自己的工作和學習
由於我們著重教基礎語法,所以,這門課程,三類入門的同學都適合學習哦,著重是想給大家培養一個程式設計的思維,有利於大家將來通過程式設計去解決生活中的問題。
但是,如果你是突擊學程式設計,想要短期內找一份程式設計的工作,我們不建議你先學Python,因為Python相對來說不好就業。這裡的不好就業不是說它用的少,而是專職的Python崗位很少(除非是面大廠,大廠不太看中語言,中小型公司是比較看中語言的,因為他們想招來的人立馬就能幹活,大廠會給一定的學習培訓時間,很少有人會在課程裡說反話,但阿菌得提前告訴大家這是真實情況),專門的Java崗位倒是挺多的,如果是突擊就業,首推還是Java,Java比較適合做工業級專案。
呃,反過來,也正因為Java適合做工業級專案,所以入門會難一些,相比起Python會沉重一些,沒有Python靈活。如果不是想從事程式設計相關工作,只是想學習程式設計這項技能,那絕對首推Python,它能處理的東西比Java多一些,而且處理得更方便一些。比如說開頭提到的人工智慧,大資料,Excel,圖表等。
只能說,不同的語言適用於不同的領域啦~
另外,阿菌還想提一點:假設這套課程你能完全跟下來,能通過Python提高自己的學習、工作效率,也請一定保持謙卑,因為Python是一門易入門,難精通的語言。它誕生於1990年,經過了多年迭代,憑藉著人工智慧和大資料處理的風口火了起來。現實社會中,能用Python做的事情簡直數不勝數,站在這樣一個巨人面前,你我皆是孩子,有無限的東西等著我們去學習,去探索......
呃,和其他教程不一樣,我們先講python的缺點,再講它的優點,醜話說在前面嘛。
Python被詬病最多的就是速度慢......
呃,其實大多數噴Python速度慢的人,都是聽別人說Python慢,於是跟著別人說:Python很慢。
出來工作你會發現,大佬們根本不屑於,也不會花時間去討論這個問題。
python慢不慢其實是要和其他語言對比的,而且從不同維度進行比較能得出不同的結論。比如說拿python和c/c++對比,c/c++是編譯執行的,python是解釋執行的,那執行起來肯定是c/c++快點。但是開發同一個web專案,用python的開發效率肯定高於用c/c++開發,c/c++開發要用三天,python可能不足一天就可以啦。
另外提一個重要的點:程式執行的快不快,實際取決於我們的程式設計,資料結構和演算法邏輯設計,決定了程式的快慢。比如說兩個人同時寫一個搜尋程式,一個用所謂的快語言寫了個暴力遍歷,一個用所謂的慢語言寫了個二分查詢,後者的執行速度絕對是碾壓前者的呀。
加上現在機器效能越來越好了,程式語言層面上,程式執行效率之間的差異或許幾乎可以忽略不計了......
當然阿菌的意思不是說python比c/c++強,各個語言都有他們的優缺點,c/c++就很適用於偏底層的開發工作,Java就比較適合開發工業級大專案(生態很完善)等等......
在公司裡做專案也不會侷限於一種語言,當我們想要開發一個專案或者模組時,會進行評審,這個專案適合用python,就上python;下一個模組適合用go,就用go,綜合發揮各個語言的長處,服務於我們的業務。
本門教程是python教程,接下來就不得不開始說python的好處啦!
python這門語言能做的事情太多啦,又要反覆提及開頭說的東西了,幾乎沒有它不能做的,什麼人工智慧吖,大資料吖,爬蟲吖,自動化運維吖,等等......
阿菌希望大家學完python後,能達到這樣一種境界:生活中發現一個小問題,不太好解決,於是用python編寫一個程式幫助自己解決。說不定哪天你的軟體解決了大家的某個痛點,很多人用,然後越來越多人用,然後就......
咳咳咳,這大概就是學程式設計的樂趣所在吧,人們總說:我有一個偉大的想法,就差一個程式設計師了......
為何不自己成為程式設計師呢?
你可以不當程式設計師,但是可以學會程式設計師的技能嘛!
介紹完python的優缺點後,阿菌就簡單介紹一下自己的這門課程。
這門課程的核心是要教會大家python的基礎語法,配套一些有趣的小案例。不管大家學的是人類語言還是計算機程式語言,基礎語法都是很重要的。這個基礎一定要打紮實,基礎紮實後,再去實現功能就得心應手啦!
除了教大家基礎語法外,阿菌也會努力教大家如何寫出風格優美,效能高效的python程式碼。python有其獨特的程式設計風格,創始人堅信:Simple is better than complex,既然選擇了這門語言,我們就努力融入它的文化,寫出pythonic的程式碼!
相信看這門教程的同學,很多都還處於學習階段,未進入職場。阿菌和大家提個小建議:如果大家未來在職場從事程式設計工作,寫程式碼又得遵循另一種原則,就是:先把功能實現,再談程式碼美感。工作有別於學習,程式碼寫得再美,工作沒完成好,只會被領導噴死。先把功能完成好,然後迭代優化程式碼,工作會順利很多的。有時候產品提的需求可能會破壞我們的程式碼結構,破壞了我們自認為的美感,建議不要胡亂鬥氣。因為在公司裡寫程式碼是要服務於業務的,我們要有服務意識......
但是,平時學習的時候要往好的學,希望有朝一日,熟練到一出手就是好程式碼,這也是阿菌的目標了。
如果你還在糾結不知道該學哪門語言比較好,不如就跟著阿菌一起把python學好吧~學好一門語言後,再學其他語言會很快的,畢竟同類事物總是有許多相通的東西。
最後感謝大家的支援,明天更新第二集歐!