Python學習、機器學習(影象處理)、網路滲透、考研雜記
主要有四大類:Python學習、機器學習(影象處理)、網路滲透、考研相關
先來說說Python的學習:
貌似是前段時間用C#寫一個獲取網頁原始碼,並解析得到需要的資訊的工具的時候,網上資料說做爬蟲和網頁解析,Python更適合,又發現Python最近很火,然後就入了Python的坑。大概花費了一、兩天的時間搞定了IDE,一開始準備入手Vim和Gvim,裝好後發現配置好複雜搞不定,而且Vim命令列的工作模式也不太適合我這樣的小白。偶然發現我電腦裡面竟然躺著Pycharm,然後就裝了Pytharm,可以用python列印“Hello world!”了。玩了大概一週的時間,發現Pycharm啟動起來比較慢,還比較臃腫。就切換到了Notepad++,在裡面編寫好程式碼之後在命令列裡除錯、執行,這個配合用起來比較順手。
對於Python直譯器的選擇也糾結了一段時間,網上查了資料,一開始看到資料說2.7版本的比較實用,依賴包比較完善、成熟;但是也說3.6代表未來,更適合現在學習。兩個版本之間,我不知道選擇那個恰當。後面偶然在知乎上面看到一篇講Python能夠做哪些好玩的事情的文章,提到了廖雪峰老師的Python的教程。點進去後,教程上面說2.7已經過時了,應該學習3.6;他的教程也很詳細,然後我就根據教程開始了python3.6的學習。
一開始學習的內容都是比較基礎的東西,比如迴圈、判斷、函式等,因為有C#的基礎,理解起來並不困難。python不需要提前宣告變數型別,用習慣了C家族,很不適應,還有用縮排而不是大括號來表示一塊區域,這點也不是很適應。對著廖雪峰老師的教程,大概學習到了類和多執行緒這裡,後面的web程式設計,因為我沒有那方面的背景知識,看起來比較吃力,也就沒有繼續看下去了。Python特有的東西理解比較深刻的應該是dict、set、list、tuple,其他的感覺沒有學到多少。另外,Python給我的感覺是:要解決某個實際問題的時候,掌握了Python基本的知識外,還應該要去學習具體的關於某個領域的包的用法,光學python基本知識,做不了太多的事情,這點跟大學時候的Matlab很相似。
因為我一開始是想更好的解決網頁抓取和獲取網頁資訊的問題,才開始python的學習的。學習了一段基礎知識後,就想要編寫一個網頁抓取的小工具了。我用的是requests+BeautifulSoup+re包,完成了一個簡單的網頁抓取、解析資訊的工具。基本完成了預期的目標,有意思的是第一次用自己編寫的工具抓取了近三萬張圖片,也改進了之前用c#編寫的那個工具,很有成就感,有機會再寫一篇文章把過程貼出來。
另外,自去年自學了計算機網路基礎後,我一直都想要試驗搭載一個客戶端-伺服器聊天工具。python實現起來比較簡單,用socket幾句程式碼就可以實現,對照著網上的資料加上自己的理解,也實現了這個功能。
比較坑爹的是,被編碼錯誤這個問題坑了不少。獲取到的資料輸出到命令列或寫入檔案的時候經常都是一堆亂碼,往往一個小工具用一兩個小時就把基本的想法變現了,卻不得不花費大半個晚上的時間來解決編碼的問題。
關於python學習的一些參考網址:
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 廖雪峰老師的python基礎教程(比較適合有其他程式語言的新手入門)
http://m.blog.csdn.net/article/details?id=71330834 Python檔案讀取(很全面、淺顯易懂,推薦收藏)
https://github.com/youfou/wxpy Python微信
關於機器學習(影象處理):
python學習中期的時候,加CSDN的python學習群的同時誤加了他們的大資料學習群。裡面有很多熱心的大牛分享了一些大資料機器學習的文章,某個無聊的午後我拿出手機點了進去。感覺發現了新大陸,對機器學習的知識產生了好感。因為平時就對各種科幻電影痴迷,對機器學習、人工智慧自然熟也很容易理解了。另外插一點小插曲,大學快畢業的時候在學校舊書店看到了一篇講神經網路和人工智慧的書,當時只翻了一點,一點也沒看進去,但是它告訴了我,我痴迷的那些科幻鏡頭有變成現實的可能;幾年過去了,還是沒能忘記曾經翻過這本書。
所以又入了機器學習的坑,但是對這塊沒有Python中毒那麼深;畢竟要理解卷積神經網路、邏輯迴歸這樣複雜的演算法,對我這樣工作了的學渣來說確實是一個很大的砍。所以目前僅處於隔岸觀火、瞭解的階段。
為什麼我會再機器學習後面的括號裡面註明“影象處理”呢?是因為前段時間一個博士在讀的朋友推薦了我一款識別花草的神器。對著你想要知道的花草拍張照片,過不了幾秒它就能告訴你花草的名字,而且識別率超高,這引起了我極大的興趣,晚上回宿舍就在網上查了它的實現演算法,用的正是卷積神經網路。這個活生生的例子,讓我見識到了機器學習在影象處理方面的威力。
最近讀了一篇講解機器學習入門的乾貨,提到機器學習有兩個方向,一是自然語言處理,另一個就是影象處理。自然語言處理方面,之前學Python玩微信聊天機器人的時候,呼叫了圖靈機器人的介面,感覺它們的機器人離正常對話還差很多,很多時候回答的都不是想要的。所以目前來說還是影象處理的實用性比較好一些。
機器學習方面,考慮到目前的情況,接下來應該不會再在這上面耗費太多的時間,對於學渣的我來說要搞定那些演算法確實比較難,但是會保持一定的關注。閒暇得空的時候,琢磨一下這方面的經典演算法權當寄託了。
關於機器學習的一些參考網址:
http://study.163.com/course/introduction/1003223001.htm 斯坦福CS231n—深度學習與計算機視覺,Fei Fei Li和兩名助教一起上的課,很不錯
http://m.blog.csdn.net/article/details?id=71915183 簡單粗暴地入門機器學習,上面提到的乾貨
http://m.blog.csdn.net/article/details?id=71079440 機器學習十大常用演算法(一)
http://m.blog.csdn.net/article/details?id=52442636 機器學習十大常用演算法(二)
關於網路滲透:
黑客和網路滲透方面的知識也是我一直想要了解的,去年自學計算機網路,也是有這一方面的原因。可是當我看完一本《計算機網路基礎》後,發現除了瞭解了一些基本的原理知識(現在好像也記不了多少了)外,什麼也做不了。比如我知道可以通過設定網絡卡為混雜模式,接受區域網上的包。但是卻不知道如何去實現,也想要了解TCP的三次握手。網上說用sniffer可以實現,找了一堆都沒有找到能用的,問了一個計算機科班出生的同學,不是從事這方面工作的,也不瞭解,後面也就不了了之了。
前段時間,偶然在網上看到了一個講解黑客技術的視訊,提到了一款叫做Kail的linux發行版。然後在好奇心的驅使下,就給自己的電腦裝了一個。裝好之後,開啟一看。“哇,這不就是我一直想要的工具嗎?”然後又一道新世界的大門向我展開了。知道了Kail以及裡面工具的名稱,再加上去年學的理論知識,以及搜尋引擎的幫助,沒兩天我就實現了之前一直想幹的事情,不過僅僅出於對技術的興趣,沒做壞事。
再往後面,做滲透的試驗的時候,發現對於https的網站,解析軟體就沒法了,然後又研究了一下https的相關內容,目前還沒有理解它的加密機理。感覺和機器學習一樣,滲透方面的坑也是無窮無盡了。
滲透測試和安全方面,既然已經開了一道門,在門外窺探了它的豐富多彩,先埋一顆種子,希望今後更進一步瞭解更多。
關於安全、網路滲透的一些參考網址:
http://www.jianshu.com/p/14c6a57fa5cf Kail linux 映象製作及安裝教程
https://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows 製作U盤啟動項教程
http://www.kanxue.com/ 看雪論壇——國內安全論壇
http://blog.csdn.net/jfmz6oFQMALUmv6f/article/details/51336058 微信擴充套件教程(從抓包分析開始)
最後談一下考研的一些糾結:
高中幾年填鴨式的學習,磨滅了我對學習的興趣,所以大學成了學渣;工作後沒有了大學那麼些同齡的、好玩的小夥伴,對於不抽菸、喝酒打牌的我來說實在是太無聊了。閒暇時間除了睡覺、跑步,大部分時間只能看書、學習聊以自慰了。這樣一個過程下來,漸漸的發現知識還是那麼的有趣,特別是計算機和數學方面,研究的都是解決實際問題的方法,漸漸的培養起了這方面的興趣。也燃起了學習的興趣。所以有了考研的想法,希望能再給自己一次發自內心的、全心全意學習知識的機會。
然後就開始看高等數學了,不過正如開篇提到的那樣,精力和關注的東西有點亂,所以還沒有完全靜下心來往這個方向發力。
最後,希望通過這篇文章的整理,對4、5月接觸的知識有個大體的梳理,告訴自己時間去哪兒了;同時也希望自己把前面的幾點放一放,專心把最後面的這件事情做好。
關於學習和考研的一些連結:
https://www.zhihu.com/question/21068499 考研數學經歷分享
https://www.zhihu.com/question/27952897 公開課大全
2017年05月24日