1. 程式人生 > >30歲零基礎自學程式設計,先學哪種語言最好?

30歲零基礎自學程式設計,先學哪種語言最好?

**說說我自己的經歷。**南京理工大學,光學工程研究生畢業,和程式猿完全不搭邊。

畢業後進了成都某國字頭研究所,在光學行業醉心研究了四年,覺得這行當實在沒啥好鑽研的,瞅來瞅去總不能幹微商吧,還是自學程式設計最合適:成本低,一臺電腦足以;見效快,沒有實體行業的週期流程,馬上就能看到效果。

於是乎就下定決心要學Python,想法很單純,就是把這門語言學好。殊不知這才是一個巨坑的開始。

2017年10月,開始了Python學習。有同學要問了,**為啥是Python?**說來也簡單,因為Python火啊:人工智慧戰勝那誰誰了,Python寫的程式;朋友圈裡有人分享Python的培訓課了,號稱最易學的語言;某程式猿用Python寫了指令碼,爬取100G的羞羞的小圖片…我一個零基礎自學黨,哪經得住這般凶猛的攻勢,**只需要簡單易學這一個理由,**就乖乖臣服在Python的腳下了。

總有技術大神自我感覺良好,覺得Python這也不行、那也不好,不如淘汰了吧。**我覺得你完全是站著說話不腰疼。**一種語言能夠流行,一定有它的歷史定位;就好像國家要發展技術,但也不能所有人都當科學家吧,沒農民伯伯你還要不要吃飯了。

開始時總是痛苦的,即便是最簡單的語言。2017年8月~2018年2月,零零散散的學習了Python的語法、基礎知識。把當時看過的、瀏覽過的、買過的資料羅列一下:

  • Django官方文件:官方文件有一個快速上手的例項,新手可以跟著做一做,但實際上Django的官方文件不太適合完全形態的小白,更適合一定水平之後的查閱。

  • 廖雪峰的官方網站:廖大的教程算是我的Python啟蒙了。完全為小白準備,淺顯易懂,由淺入深,非常推薦新手從這裡起步。

  • 《Python基礎教程》:可以反覆閱讀的入門書籍,但是又比廖大講的要深,要有耐心看。

  • 《Python核心程式設計》:著重點為Web程式設計的基礎教材。是激起我Web開發興趣的一本書。

  • 《流暢的Python》:這本書也很厲害,非常深入的剖析了Python的關鍵特性、底層實現,但是毫不枯燥,甚至讀起來是相當有意思的,幫助開闊視野。

  • 《Python Cookbook》:類似新華字典一樣的存在,需要用到哪個模組,像查字典一樣去查閱本書就可以了,不用通讀。雖然我從來沒去查過。

  • 《笨辦法學Python》:英文名Learn Python the Hard Way,很多人認為是入門聖經的一本書,然而這種只顧結果,不管過程的方法我實在是欣賞不來,最後快速瀏覽完了。見仁見智吧。

  • 《利用Python進行資料分析》:Pandas大佬寫的,肯定對資料分析理解很到位的。稍微有些枯燥,但絕對是學習資料分析的好書。

  • 《Python資料分析與挖掘實戰》:偏重用實際專案進行學習的型別,看著比上面那本要有意思些,適合自律能力不強的同學。

  • 《用Python寫網路爬蟲》:教你如何在網上爬取各種羞羞的小圖片的書…還不錯,需要一定基礎知識。

  • 《Python自然語言處理》:處理自然語言,相當有意思的方向,可惜我時間完全不夠,就看了一點點。

  • 《深度學習》:學習人工智慧的教材書。基本都是統計學的知識,專業度很高。

**那段時期我相當的迷茫,並不清楚應該用Python幹什麼,甚至不知道學了有沒有用處。**直到2018年2月的時候,看到了這本:《跟老齊學Python:Django實戰》,才驚喜的發現原來Web開發才是我的菜:啥資料分析、人工智慧、語言處理,我這種粗人還是不要去碰了。這本書我翻來覆去看了4個月,期間除了正常的生活耗時,幾乎所有空餘時間都在學習。

其他看過的相關資源在這裡:

  • LayUI:**很好用的前端框架。**因為不懂前端,所以需要LayUI這種開箱即用的框架快速開發。與Bootstrap有點類似。

  • 追夢人物的部落格:這位兄弟寫的Django教程非常的實用,適合零基礎學習Django的同學。後來我斗膽在自己的部落格上寫Django教程,也是受了Django先驅們的影響。

  • 《Bootstrap實戰:從入門到精通》《Bootstrap入門經典》:Bootstrap也是後端程式猿的神器。簡單易學,你甚至可以直接在官方文件Copy程式碼,運用到自己的專案中,以至於書籍的作用都不太大了。

  • 《輕量級Django》:*不推薦。*書中知識點很零散,新人看肯定會一頭霧水,老手看又不太有用。

  • 《Django架站的16堂課》:*不推薦。*和上面那本類似的問題,不如老齊那本精闢。

雖說是打算一心奔著Django開發去了,但是一整天都集中精力、只學一種東西是很難的,至少我的毅力支撐不下來。而且當時也有一種奇怪的想法,覺得現在大家都用手機上網,光學個PC端的技術行不行啊,不如學下Swift吧,做個自己的app挺有意思的。

**於是我剛從Python的迷茫中爬起來,又迷茫在程式語言的汪洋大海中了。**學Swift看的書有如下:

心浮氣躁的結果就是Swift根本就沒學好。沒事兒,還有時間繼續學。

好在另一方面,在2018年8月15日,我的個人網站成功上線了:

能夠釋出各類文章,上傳並處理圖片;可以微博登入,也有訊息通知;能建立分享我喜歡的書籍,用到了雷達圖、地圖等視覺化工具;甚至還搗鼓了HTTPS安全連結。老實說我是相當有成就感的,畢竟是自己的孩子一樣,中間的艱辛只有自己懂。

可是當完整的架設個人網站後,才明白自己那點可憐的前端知識太不夠用了。

那怎麼辦,試著學一學唄,學習才是程式猿的天性。但是又實在不想像學習Python一樣從基礎學起,可以說心態已經崩了。考察了一些流行前端框架,最後選擇了Vue.js,還是老原因:**比較容易上手。**於是又陷入了瞎tm看資料的毅種迴圈:

  • Vue.js官方文件:Vue的優點就是中文文件相當的順滑,講得也比較容易懂。英語不好的同學可以放心了。
  • 《Vue.js實戰》:偏實戰的教材,順帶還講了些搭建前端工程的內容。

但是前端哪有那麼容易學的,尤其是我這種門外漢。曾想過用前後端分離的形式重構我的個人網站,因此還學習了Django Restful Framework,搞來搞去還是沒明白如何把Django和Vue揉到一起去,作罷。好在這些知識也不是白學了,瞭解了前端工程、Webpack以及其他一些概念,至少能看懂大佬們在網上罵的是些啥意思了,挺好。

Django暫時夠用,Vue、Swift又學不動,不學點啥又覺得浪費時間,蛋疼。2018年9月的一天清晨,我花了五分鐘時間思考了一下人生:不行,怎麼著還是得學一門靜態語言,不能總被大佬們嘲笑吧。但是要學也得有個動力吧,於是又開始新一輪折騰:學習C#程式設計的Unity3d。總之還是不想學C#基礎,太枯燥了我會吐的,不如直接學Unity吧,跨平臺的特性又滿足了我之前做手機app的追求,多好。

於是從2018年9月至今,我都在看這本:《Unity5實戰:使用C#和Unity開發多平臺遊戲》,同樣是沒日沒夜的學。這本書非常對我的胃口,也是偏重開發專案的,跟著學能做出一個FPS的3D遊戲來,特別有意思。其他還看過、買過的資源還有:

  • Unity官方教程:Unity的官方視訊教程,其中的入門遊戲非常值得一看,可以對Unity有基本的瞭解。

Unity又激起了我學習的樂趣,看著自己寫的指令碼居然能程式設計遊戲執行起來,真是很有意思,如同當時Django一般初戀的感覺。所以我在想程式猿是不是都需要新知識刺激一下,才能保持興奮的頭腦。另外C#也是越寫越喜歡,總有一種嚴謹地做工藝品的感覺。當然我這種不學基礎、逆練武功的做法一定有碰壁的時候,這個時候再回過頭去學習C#的基礎就沒有那麼抵觸了:

花了3天時間就把上面這本書看完了,這在1年前是不可想象的。我終於理解了,原來程式設計真的是不挑語言的,程式設計思想是通用的,之前所有的碰壁,終究變成了內力一樣的存在。期間還順便看了下《node深入淺出》《了不起的node.js》,瞭解一下這個神奇的前後端通吃的語言。

**回過頭來看,1年時間這麼多東西能看完嗎,我是不是有毛病。**但是當我真正被海量資訊瘋狂灌注時,甚至覺得是快樂的,總比不解渴的小水管強吧。有句話說的很對:程式猿就像好奇的貓,追著毛球的線頭玩,最後一個毛球在腦袋裡攪漿糊。可是根據我的親身經歷,當貓也沒什麼不好。

時代變了。程式語言終究只是一個工具,而工具一定要備全才行。先學錘子還是先學剪刀,真的沒有那麼重要。

重要的是你必須時刻保持前行