Python 適合初學編程的人學嗎?
有些C語言的語法基礎
非常適合。我覺得剛開始學編程,負擔越少越好,應該儘快能做出東西來。剛開始學編程,最重要的是了解語言特性而不是去了解底層的細節,還有更重要的是養成好的編碼風格,了解怎麼用編程解決問題。
Python是很友好的語言,非常易學,你需要關心的東西很少,但是它的功能很強大拓展很廣。具體可以參考我之前在豆瓣寫的這篇日誌,直接跳到Python那一段去,我簡單舉了一個例子,還提供了 幾個學習Python的資料。
我該怎麼開始學習編程?
Python的代碼幾乎接近偽碼,這對你研究演算法也會有幫助。Python是個很好的入門語言,前面那位說「你看有哪個學校會拿Python當入門教材的」,真是哭笑不得,也不知道是不是釣魚……
隨便 Google 一下 SICP Python :
我初學編程的語言是Pascal,後來學過C,有一段工作用的是Java,最近一年大多用Python。
自己感覺在以上幾種語言中,比較適合入門編程的,就是python了。
所謂適合入門,我對它的定義是「能夠讓一個完全沒有接觸過任何高級程序語言的人可以儘快的用這種語言來完成自己的目的」
Python有其簡單的一方面,可以讓初學者迅速的理解變數、表達式、賦值、條件和循環等等概念。獲取它很方便,*nix系統自帶,win上面則是跟安裝軟體一樣雙擊。
Python的命令行模式可以很方便的讓初學者對什麼是編程語言有一個感性的認識,然後跨平台的編譯器+記事本就能上手寫很簡單的函數。不需要在學習語言的時候還去接觸一個陌生的IDE。
同時也有其嚴謹的一面,能讓初學者慢慢接觸到面向對象的幾個特徵,深入了解其背後的運行機制。
總體來說,Python是一個上手簡單,同時又不失嚴謹的適合入門的語言。
MIT就在最近將起最經典的SICP課程換成了Python教學(以前是Scheme)接觸Python後,我對網遊都沒興趣了
我推薦學習Python來戒除網癮.
相信對於每個人而言,知道編程和學習編程這件事,出發點是不同的。湯哥在北京接觸編程的時間是2013年,那個時候還在一個二線城市上大學,還沒有這麼多各種融資,各種互聯網創業的氛圍,大家想的更多的是一些線下的:發個傳單、開個小店、進個大企業的思維。
第一次感受到互聯網神奇的時候是2013年底,一個學長畢業後進入一家互聯網企業,一個月收入快1.5萬,雖然現在看來不高,但是當時對於一個在二線城市的大學生而言,這樣的收入和公司,是可望而不可及的。
當然此時也是我開始了解編程並研究編程的,故事就不多說了,我們來開始正解!
一、什麼樣子的人適合學習編程?
在大眾周圍,總是充斥著各種如何學習編程的聲音。許多人已經對於是否「每個人都應該學習編程」發表了自己的觀點。開句玩笑話:如果那些認為每個人都需要學習編程的作者自己會編程的話,就不會出現程序員緊缺的現象了!
其實編程這個事情,很多人有計算機專業相關和非計算機相關的區分,雖然確實有基礎底蘊的差別,但是在努力的共性上還是一致的,有以下幾個共性,你可以看一看:
1. 對編程求知慾,喜歡自己動手探索一些數據或者編程的東西。很多人入行都是聽說程序員很賺錢就進來了,不過對程序並沒有特別的興趣,這類人在經歷了短暫的培訓之後,還是可以基本入行,但是他們基本還是在初級階段,向中級晉陞一般都需要主動性。有興趣,並且有基礎的才會比其他人更進一步。
2.善於發現程序問題,並且自己想辦法解決。編程最難的一點是找Bug,任何程序出現問題是正常的,關鍵是你具備發現問題和解決問題的能力。如果你對Bug問題解決能力很強,那麼你像優秀程序員的進階就會很快,
3.對編程學習有持久和自學的耐心。很多人說編程跟武功一樣,一日不練,武功全廢。不能光憑藉一時間的興趣,簡單的玩一下,然後問題很多,就問人。這種學習的過程是不科學的,問是可以的,但是最好需要有基本的解決。
上面說的是一些通過習慣,有了上面的基礎,然後再有英語基礎、數學還不錯、還是計算機專業,那就非常完美了。
二、編程語言有哪些?到底Python作為編程入門語言合適嗎?
如果你計劃開發軟體、硬體、甚至操作系統,那麼你或許想學習C語言。C語言剛出現的時候是一種偉大的語言,因為很多其他的語言都直接或間接來源於C語言,其中包括 Java、JavaScript、C++、Python、PHP 和 Per。
編程初學者應該先寫 c 還是Java還是Python?C語言。java我建議做第二個學習的語言,java是面向對象的語言,更貼近人的思考,很多底層幫你封裝好了,你不用太關注底層實現。
不同語言門檻不同,Python& python的靈魂不在於語言本身,而在於其諸多優秀的庫。Python有能運行的偽代碼之稱,是最適合初學者學習的語言,是程序員的啟蒙語言。當初Guido設計Python的時候,就是為了要設計一種簡單易用,能適合教學的編程語言。所以Python的語法簡潔清晰,並且在語法中強制性地植入了編程風格。 還有一些其他的好評如下:
接近英語的簡單語法;
開發環境簡單,能打字就能寫代碼;
眾多的第三方庫;
解釋執行,不需要編譯;
跨平台,方便移植;
python是現代語言,具有足夠的抽象性,適合教學一些純數據結構、演算法的抽象知識。此外,Python的許多思想都能適用於其他主流的編程語言。因此學通Python,有助於你掌握Java,C#, C++, C等主流的工業編程語言。
結論是:作為首選語言沒有問題,其他語言還得學。
沒有最好的語言,只有最合適的語言。
沒有糟糕的語言,只有糟糕的程序員。
沒有一種語言是萬能的,只會一種語言是萬萬不能的。
用什麼語言不重要,最重要的是效率:開發效率和執行效率。
不過最後,我想告訴大家。第一門編程語言的學習過程永遠是痛苦的。選擇Python儘管可以讓這個過程變得輕鬆一些,但是你仍然得克服一系列困難。
做為一個程序員,是應該去選取不同思路的語言去學習的,而且當然要選擇最有代表性的語言,在編程的世界裡,主流的思路其實就兩種,一是結構化編程,一是函數化編程,面向對象只是結構化編程進化的一個階段而已,其他各種各樣的思路大多數是這兩個的分支。
對於非程序員來說,碼代碼是用來解決問題的,不用糾結底層的東西,能短平快解決問題才是最關鍵。
三、現在都有哪些人在學Python,為什麼學?
目前在很多行業中都在越來越多的應用Python,這也是很多行業學習Python的原因,Python主要的應用領域有哪些呢?我們來看一看:
目前來學的人群分為以下幾類:
第一類:入行編程新手:大學剛畢業或者其他行業轉崗,想從事編程開發的工作,目前認為Python比較火,想入行;
第二類:Linux系統運維人員:Linux運維以繁雜著稱,對人員系統掌握知識的能力要求非常高,那麼也就需要一個編程語言能解決自動化的問題,Python開發運維工作是首選,Python運維工資的薪資普遍比Linux運維人員的工資高。
第三類:做數據分析或者人工智慧:不管是常見的大數據分析或者一般的金融分析、科學分析都比較大程度的應用了數據分析,人工智慧的一些常見應用也使用了Python的一些技術。
第四類:在職程序員轉Python開發:平常只關注div+css這些頁面技術,很多時候其實需要與後端開發人員進行交互的,現在有很多Java程序在轉到Python語言,他們都被Python代碼的優美和開發效率所折服
第五類:其他:一些工程師以前在做很多SEO優化的時候,苦於不會編程,一些程序上面的問題,得不到解決,只能做做簡單的頁面優化。 現在學會Python之後,你和我一樣都可以編寫一些查詢收錄,排名,自動生成網路地圖的程序,解決棘手的SEO問題
當然,這裡總結的只是常見的一些情況,關於職業和崗位,之前寫過一個內容介紹:
四、學習Python編程,我們應該如何學?大概的學習內容包括哪些?
我想可能很多網友和我有著相似的學習背景,學習Python會有以下的問題:
從零開始,不知道如何下手開始學?
被基本的數據結構、設計模式等計算機常識問題難住
看了一陣,前面的又忘記了
遇到問題不知道怎麼如何尋找解決方案
學習Python編程語言,動手實踐是一件非常愉快的事情,遇到了程序上的問題,經常自己思考研究,從而解決問題,自己的技術水平和解決問題的能力都得到了大大的提升。
但是,如果是你零基礎起步,自己一點點照著書本學習,遇到困難,得不到解決,長期下去,會對學習編程產生厭惡,最終放棄學習。
經歷這個Python後,我認為像Python這樣的語言確實有學習的必要,因此把我的Python學習筆記貼出來,不過前面部分寫的過於基礎了。
1、第一個Python腳本: hello world 2、Python語言與傳統的C++/Java語言顯著不同的地方 3、Python語言的控制結構 4、變數聲明和定義 5、函數 6、列表、字典、元組 7、字元串處理 8、面向對象編程:封裝、繼承、虛擬函數、介面、多繼承、模板 9、面向對象編程:異常處理
最後給想學習Python編程的朋友,一些小建議:
1、先買一本自學用的Python書籍,不要看電子書。選擇合適的教程。有些書很經典,但未必適合你,書籍有:《Python核心編程》《Python基礎編程》《Python學習手冊》《Head First Python》《Python編程入門》《Python開發實戰》《Python編程初學者指南》。
2.對Python基礎數據類型有一個了解,學會各種類型的操作方法,了解函數和類的概念。
3、學會查官方文檔,用好搜索引擎和開發者社區。不但要學寫代碼,還要學會看代碼,更要會調試代碼。讀懂你自己程序的報錯信息。再去找些github上的程序,讀懂別人的代碼。
4、動手實踐,找小項目練習。前面幾個階段要快,都是為這個階段做鋪墊,,這時可能遇到各種困難,這時回頭複習參考書上對應知識點,同時去谷歌百度,如果自己寫不出來也可以參考別人的項目去做點事情,過一陣子對python了解後自己就知道該學啥了,是web開發,還是爬蟲,或者數據分析,機器學習。
5.除了學習編程語言,也兼顧補一點計算機基礎,和英語。
以上是關於學習編程和Python入門的一個建議,歡迎大家拍磚和討論。
你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Python自動化全能開發從入門到精通》筆記全放送
Python是個很好的入門語言 ,非常適合,我覺得剛開始學習編程負擔越少越好,最重要是了解語言的特性而不是去了解底層的細節,還有更重要養成良好的編程風格,了解怎樣用編程解決問題。
Python 是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專註於解決問題而不是去搞明白語言本身。Python 極其容易上手,因為Python有極其簡單的說明文檔。Python 的底層是用C語言寫的,很多標準庫和第三方庫也都是用C寫的,運行速度非常快。用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層 細節。Python不會教你非常基礎的知識,但它的確可以教給你一些有用的東西,比如代碼縮進、模塊化,以及命名規範的重要性,可以在你學習或者使用其它 編程語 言時幫到你。Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。
學好python你需要一個良好的環境,一個優質的開發交流群,群里都是那種相互幫助的人才是可以的,我有建立一個python學習交流群,在群里我們相互幫助,相互關心,相互分享內容,這樣出問題幫助你的人就比較多,群號是301,還有056,最後是051,這樣就可以找到大神聚合的群,如果你只願意別人幫助你,不願意分享或者幫助別人,那就請不要加了,你把你會的告訴別人這是一種分享。
學習是對自己最好的投資,而機會屬於有準備的人,這是一個看臉的時代,但最終拼的是實力。人和人之間的差距不在於智商,而在於如何利用業餘時間,所以沒有等出來的輝煌,只有干出來的精彩。其實只要你想學習,什麼時候開始都不晚,不要擔心這擔心那,你只需努力,剩下的交給時間,而你之所以還沒有變強,只因你還不夠努力,要記得付出不亞於任何人的努力。
適合,非計算機專業,16年年初接觸Python,一個月就能寫玩具。
littlecodersh (LittleCoder) · GitHub
不明白為什麼那麼多人說支持入門
我還是推薦嚴謹一些的語言,例如C
如果PYTHON入門的話,到後面會有很多基礎底層的概念混亂。
==================================================
補充一下
很多人說PYTHON簡便,語法簡單,功能強大,這一點我並不否認。
但是說這種話的人明顯都是了解其他相對來說比較繁瑣的語言的程序猿,他們之所以能這麼描述PYTHON是因為他們了解PYTHO省略的哪些繁瑣的過程。
你要知道,他們使用PYTHON的時候雖然手上打的是相對於C/C++更簡單的代碼
但是他們腦子裡已經考慮遠遠更多,而他們腦子裡考慮的東西正是那些細枝末節。
所以PYTHON代碼簡單,並不能說明你編程的時候不用去考慮繁瑣的問題。
而嚴謹一些的語言往往更能讓你了解那些基礎的概念,對以後會有很大的幫助。
MIT已經把Python作為計算機編程課程入門入門語言教授,網路有6 week教程,找不到給我留言。
我自己編程學習的大致路子是C,繼而MATLAB,繼而Perl,繼而Python,繼而C#,繼而Java,繼而Go。其實,如果想後面的路子走得順一些我還是推薦咬緊牙關、死纏爛打跟C語言死磕一陣子。直到你能夠在C的領域中行雲流水般解決一些問題之後,其他的編程語言會多少順利一些。比如Perl,Java等。
單純就了解計算機編程,單純為了體會軟體思想的話那又有些不一樣了。如果是那樣,從Python入手還是很好的選擇的的。腳本語言在學習成本上比起需要編譯的靜態語言來說優勢很明顯,在PC機上,初級的學習程序速度上基本上不會有什麼感覺上的差異。倒是編譯、調試會耗費大量的時間。從這個意義上講,選擇Python沒錯。
我從Perl,或者C到了Python再回去也會帶來不少習慣性問題,少了分號啊,多了冒號啊等等。不過,初學者學習,應該暫時不需要考慮這種問題。Python的語法還是很清晰明了的,不像Perl那麼多的預設或者抽象符號,Python的可讀性確實不錯。有人把Python的縮進什麼的作為代碼風格上的宣傳優勢,我覺得算不上,因為不管哪種語言我們編程初期的學習一般也都會接觸相應的代碼風格規範的思想,而這部分學習也並不費時間。
最後,我覺得有必要提一下的是我們自己的成長規劃。學完Python之後,你是否會一直在Python 的世界中不再出去了呢?假如學完Python,你轉頭需要扎入到手機行業做個安卓開發或者是進入控制領域做個嵌入式開發你又該怎麼辦?實際上,除了搜索、web等互聯網行業Python比較容易滲入之外其他行業Python更多地是為你的工作降低重複度,完成部分自動化或者數據處理。更多時候,我們用到的C,C++,C#,Java,Perl等跟C的風格還是有著很大的相似度的。而重學那些編程語言,除了編程的思想以及部分演算法的積累,在Python時代積累的那些學習儲備很難成為你新技術學習的推動力。反過來,從C,Java等開始再到Python肯定不會有這樣的感覺。
算不上是什麼有理有據的分析,以上只是我自己學習、工作中的個人體驗。Python是否適合初學編程的人,在很大程度上取決於個人興趣。Python基於清晰的語法和直觀的問題解決方案還有其強大的跨平台GUI工具,相信也是激起許多初學者興趣的重要條件。
如果題主想要認真學習Python,個人推薦一些學習資源。
- Coursera上的Python入門課程:Learn to Program: The Fundamentals,個人感覺這課程非常適合初學者。
- 課程中用到的程序可視化工具,能夠深入的理解程序到底是怎樣執行的:The Python Visualizer。
- 如果題主使用iOS的話,強烈推薦這款Python編譯器:Pythonista。在學習過程中,邊學邊動手寫寫程序對學習編程是很重要的,可以隨時將學到的實例在這隨身編譯器里去演示看看運行結果。此外這編譯器里還附帶一些小程序,比如計算器、時鐘、秒錶、鋼琴等等,玩起來很有意思。
- Python教材是必備的,推薦這本書:
這本書是上述Coursera課程中用到的參考書。
Ps.學習編程,要儘可能多地探索感興趣的語言。多嘗試了解不同語言的特性,去實際解決生活學習中的一些問題,你就會發現哪一門語言適合自己,適合初學,這樣題主的問題就不再是問題。
樓上的回答都是適合,而我卻要唱一回反調。我見過太多一開始沒學其他語言只是學py的,結果基礎奇差,思維很亂。我認為py並不適合初學者,裡面的很多特性很多pythonic的思路都是必須有很多的其他語言的編程經驗才可以體會到。所以,路還是一步步走,飯一口口吃,學c才是能夠鍛煉自己的一個征程。
我是做計算的。。。僅僅從我們這個領域來看適合。Py的語法比C簡單無數倍,讓你專註於演算法本身而不是語法的細枝末節。有大量的庫幫你能先做出一些東西,避免了初學者的挫敗感。基本上很少會寫一個非常大的程序,所以Java C++也用不上,Py算是正好。等以後要做比較底層的優化了再上C Fortran也不遲。
完全適合,當前Python 是很火的編程語言,值得投入時間學習。
適合初學編程者快速入門。
https://zhuanlan.zhihu.com/p/21331144
黃哥談學習Python編程的學習方法:
- 如何訓練自己的編程思路
- 黃哥Python提醒:學習編程有三種壞習慣
- 為何很多人認為Python 很簡單,而你不能入門?
- 飽漢不知餓漢飢、會編程的不懂初學者的苦。
- 開發項目「狗咬刺蝟」無從下手,問題出在哪兒?
- Python程序員學習路線圖
黃哥談工作的問題:
- 昨天又接到喜報 一個學員在北京找到程序員工作。程序員提升書大全。
- 黃哥Python細說,學到什麼程度可以找到工作?
- 黃哥Python提醒:不會編程,程序員工作和你沒有半毛錢關係。
- 黃哥新錄製的視頻:談轉行當程序員的事
- 幾個凡是,與Python 學習者共享
- 為啥別人能找到工作,而你不能?
- 為啥水平不高的Python 初級程序員,企業還願意招聘。
- 只要真的會編程,找到Python職位不是問題。
- 他們走過的路,你可以模仿。
- 參加編程培訓(Python、Java)面授到底值不值?
- 對一些盲目想從事大數據的朋友的警示。
入門最難的是什麼呢?
我個人覺得最麻煩的是配置。
比如你想搞個網站,如果用Java,要搞Jar包,要下框架,有現成的輪子還好,沒有還要各種配置文件,又或者安裝個什麼IDE各種插件。
進一步的,當你過了初期,變數函數類作用域都理解一些了,心血來潮想要做個什麼東西。你又遇到各種不同語言的解決方案又產生了難易的複雜度。
python給我的感覺友好在於。
- 配置簡單,org官網下載安裝,完了IDEL就可以寫代碼了。上來看下ifwhile怎麼寫,三五行就可以解決小數學問題了。
- 標準庫可以解決大多數問題。擴展庫從Easysetup/pip安裝方便。可以說從文件,到網路,從圖像,到視頻。沒有什麼盲區
- 語法簡單。相比Java的syso,我反正更喜歡print
而且python的縮進,應該可以給新人建立很好的編程世界觀吧。
但是這個東西,還是講緣分的。我就是喜歡javascript,我不知道為什麼,我就是喜歡prototype,喜歡construcor,喜歡function打完了顏色變成了紫色,還有callback,看慣了})之後,真的感覺這個表達非常的美好。
所以還是要找到自己的最愛我覺得大家的回答有點不負責任。
總得來說,python的語法的直觀程度和嚴謹程度確實比較均衡,但是我們是否還是要看提問者的具體需求而論呢?
本人掌握的語言c,c++,matlab,python。因為本人不是應用程序猿,而主要做科學計算,但是也對應用編寫有些興趣,所以我主要對需求角度來回答。
題主說自己有c的基礎,那麼很好,如果c學得不錯,那麼接觸現在流行的語言都不會有太大的困難,所以關鍵在於你的真正的需求,或者是預期需求是什麼。
如果你現在是工科或者是有科學計算需求的人,我還是建議你先學matlab,matlab在中國很流行,資料非常多,並且matlab的語法更加腳本化,更簡單明了;且由於是商業軟體,有些配套比較傻瓜,很容易使用;並且matlab體系更加緊湊(這個見仁見智),做模擬是強項。至於python的可以做更快,開源什麼的,當然有它的優勢 (這也是我最近在轉python的原因,現在科學界也很流行python),但是初學做科學計算我還是建議從matlab入手。(P.S 關於matlab和mathematica我就不在這裡提及了,相關討論比較多)
至於如果同學你將來要做應用,那我還是建議你直接從徹底的面向對象的語言入手,如java,c#。因為python不太能使你徹底了解面向對象的一些精髓。誠然現在python也能做一些大工程,但是現在比起java,c#,甚至c++來說應用面還比較局限。
再如如果你要學網頁或是ios編程,那麼就還有一些特定的語言我就不贅述了。
很適合,也很不適合。一般來說,還是先學C。讓你知道編程是個什麼東西。接著來學python,可以幹活。
Python不錯,亦菜亦牛。
菜到連我13歲的侄兒都覺得簡單。
牛到最早豆瓣就是Boyang一個人在咖啡廳裡面用python寫的。對於沒有學過程序的人來說,python是很好的入門級語言。
特點有:簡單,直接,見效快,療效好。
和用C入門相比,他可以越過很多類似內存管理等本質上和業務邏輯沒關係的玩意兒直接作出目標軟體。而這一點,對新人來說,是相當重要的。
一個新人花在理解include &
這是用python入門的優點。
對於已經有基礎的程序員來說。
學c吧。c是個幾乎需要程序員自己解決所有問題的程序。恩,基本上是自己解決。所以,對於提升對程序的理解和各種技能等級這方面,無語言能出其右。
小眾語言我們就不要拿出來說了好么?什麼lisp這種東西我想一定會有人出來裝一下b的。
我覺得python入門很好,有的細節不是一開始就要掌握的,到了高級階段再看也不遲。初級階段是掌握編程思想,做出作品有成就感有興趣繼續不斷學習實踐最重要好嗎。做事分清主次。也不要想著一步到位什麼都弄清。先入門培養興趣再說。
看你要拿來幹什麼了,如果只是為了「會編程」,那學Python吧,高度精簡,絕對快速入門,成就感剛剛的。但如果你真是想做程序猿,那麼你需要了解Python到底在後台為你做了哪些事情,才能確保程序的穩定性,也有更好的程序思維。雖然老掉牙了,我還是建議先學C,再學java。建立好的編程思維不容易,但一旦你掌握了,高度精簡的語言自然拿上手就用。(咳咳,雖然被小夥伴批鬥過無數次,沒學過Python直接拿上手發揮不出Python的最大效率)上手就學手動擋的人,自動擋手到擒來。只學過自動擋的人,要開手動擋就不像反過來那麼簡單了。在Python統治編程工具界之前,還是一步一個腳印的好。
推薦閱讀:
※優秀的程序員都應該常接觸電腦,但為什麼有些牛 X 程序員卻沒有近視?
※如果出現《我是程序員》這樣的節目,你覺得有什麼看點?
※C++ 如何進階?
※徒手碼一千行以上代碼是一種怎樣的體驗?
※如何系統地學習 C++ 語言?