1. 程式人生 > >我們都在努力向上,我的程式設計學習之路分享

我們都在努力向上,我的程式設計學習之路分享

零、改名啦

是的,公眾號改名了,從 極簡XksA 改名為  簡說Python。

1.極簡XksA 來源

極簡一直是我所追求的,生活/工作/學習都做到極致的簡單,這是我對極簡的理解與定義,我大一的時候就想打造一個極致簡單的學習交流/資源分享平臺,奈何,有想法,一個人,沒有行動的動力,和堅持的恆心,後來註冊了公眾號,最開始在公眾號釋出一些老師講的題自己的理解,有圖文的,有視訊的,有數學的,有物理的,我都沒刪,後來覺得c,java基礎也可以記錄一下,也記錄過一段時間,但終究沒有成型,直到學了Python,自己也定了方向:資料分析與資料探勘,後面會說一下的程式設計學習之路。

XksA,是中文 蕭克生啊 的拼音縮寫,蕭克生是我曾經還是個風華翩翩的少年時自己給自己取的筆名,是的“天上的白雲真白啊”這種詩我也寫過,命運不如烏青那麼好,廢話詩的代表,我,還是我,翩翩少年到少年,後面加個 啊,表示感嘆,也可能是淡然。

2.簡說Python 來源
很明顯,對於現在的我,主要學習中心肯定是Python,而之前的公眾號名稱不能很好的說明這一點,以上是必然原因,當然也不缺乏很多做技術的就堅持用自己的姓名或者某些特別含義的詞做名稱,但我,屈服了,想公眾號再發展好一點,想自己辛辛苦苦花了大量時間寫的東西能被更多的人看到,想你誇我一句“老表,你很棒”,想在經濟上獨立,想認識更多朋友,想和大佬說話的時候更有底氣···每個人都會想很多,很多,所以名稱改成了 簡說Pytho,比極簡更簡的簡,還有一個原因,《成為簡·奧斯汀》這部電影,加深了我對簡這個字的記憶與喜歡,安妮·海瑟薇太美麗了。

一、我的程式設計之路

我,綽號老表(好像不是很重要),大學之前沒有自己的電腦,沒接觸過程式設計,高考結果也不是特別好,不過也好在,現在的學校也挺好的,下面簡單的說一下我的程式設計學習之路。

大一上學了C語言,譚浩強老師的書,上學期期末實訓需要電腦,在學長推薦下買了華碩頑石第四代,一直到現在用著還是特別舒服,中間沒有任何大故障出現(小故障有一些些),程式設計吃雞無障礙(大二玩過一段時間荒野行動),大一C語言實訓做了貪吃蛇遊戲,知識點我沒記住多少,會了程式碼邏輯流程圖繪製,給我最大的感受就是,很多人遇見錯誤Bug不知道怎麼修改,我知道一點點,在幫助同學的同時我不僅自己知識程式設計能力得到了一定提升,更重要的是和同學關係打好了,同時,也經常和老師交流,也打好了老師的關係。要知道,大學這個小社會,要是人脈廣一點,生活學習上都會便利舒服許多~

大一上學期:貪吃蛇

大一下學了Java

,不要驚歎,就是這麼6(開個玩笑),Java學的也比較淺,楊樹林老師的書(剛剛特意叫同學拿的書看的),同樣的,學起來沒太大難度(就自己而言),不過也的確是基礎,最高階到GUI,期末實訓一樣做了一個專案---RSS訂閱系統,同樣在改Bug中我有點天賦,同時學會了功能需求分析,幫了不少同學,除了這些,我實在想不到我學到了些什麼~

大一下學期:RSS訂閱系統

大二上學期學了資料結構,嚴蔚敏老師的,用c語言描述的,大一上學過C語言,所以學起來,還算順利,主要涉及到演算法的時候就有點頭疼,不過資料結構太重要了(現在才發現),什麼遞迴啊,什麼二叉樹啊,什麼深度廣度啊,什麼尤拉圖啊···都太重要了,悔不當初,沒更深刻的學習,同樣的期末實訓做了一個醫療監護系統,比較簡單,因為重在資料結構的設計與處理,執行介面如下圖。


插一則廣告:這個時候我就開始自己摸索學習javaweb了,進了學校的實驗室,web,前端都在學(!沒有堅持下來!),怎麼學:網上找資源,圖書館借書(因為借書,我還賠了100多,因為借的書放了三個多月一直沒看,等還書的時候找不到了~所以勸大家,圖書館借書需謹慎,保管好,記得還)。

大二上學期:病人監護系統

大二下學期學了資料庫,那個老師的書,配套實驗使用的是sqlserver2005,學習過程中感覺和之前學c,java沒太大差別,多練,多記,多問,多百度,我的學習“四多”原則,不說別的,基本的使用者許可權,觸發器,增刪查改我都記得,至少在目前我覺得夠了,甚至還多了(對我來說)~期末實訓做了智慧公交系統(IB),主要是資料庫設計,java寫的後臺,GUI,mysql做資料庫,明明學的sqlserver,為什麼用mysql,沒別的,比較簡單,易搭配。

大二下學期:智慧公交系統

大三上學期,也就是現在了,因為沒堅持住,javaweb的路上半途而廢了,但學習的過程中好在還是有很多收穫,這些不順利的學習過程,讓我現在學Python,格外舒服,我相信現在關注我的讀者裡60%都是轉型想學Python的,至少經常問我問題的幾個讀者朋友是這樣,非計算機專業想跳到計算機領域,我不得不說Python是一個很好的選擇,雖然現在我的資歷尚淺,但就我看到的,瞭解到的,Python學起來確實比較容易上手,這也是為什麼Python能進入小學生課本的原因,無論是語法,書寫,還是可讀性(這個也考驗書寫程式碼的人),都要比其他語言好一些,至少我覺得比C和Java好,在實用性上,現在Python在資料科學,深度學習,機器學習,人工智慧等方面都有很大發展空間和使用空間,除此外,Python在爬蟲、WEB等方面都有多應用。

我第一次接觸Python是在今年1月份吧,當時有個百萬英雄的答題抽獎節目,最開始我和室友還是誠誠懇懇的答題,“甲,秦兵馬俑是那一年被發現的?快快,A還是B?”“丙,這題選C,我打包票~”“丁,這什麼鬼題目,娘子坡去不去?”···幾天後,隔壁同學說有指令碼,可以自動答題,對,就是Python寫的,找同學拿到程式碼,對的。

大三上學期:開始python之旅

二話不說,拿到程式碼,百度“Python該用什麼ide?”下載好Pycharm,匯入程式碼,就開始“擼”,花了四五天的時間把程式碼跑起來了,程式碼功能簡單和大家說一下,連線手機,獲取手機螢幕內容(圖片形式),擷取指定區域內容,利用百度AI的文字識別,然後圖片上問題轉文字問題,再呼叫百度介面,查詢文字問題,統計百度該問題出現的每個答案的次數,按出現次數大小先後順序排列,預設,出現最多的為正確答案,然後利用Python裡的安卓模組模擬點選,完成整個獲取題目,查詢題目,答題的過程,後面有時間把具體程式碼分享給大家學習。

這是我和Python的第一次遇見,直接上手專案程式碼,一點不浮誇,之前沒有任何人和我說過,你可以學學Python看,我想這都得益我之前的程式設計學習經歷吧,不順利,但足夠精彩,後面開始正式的決心學好Python,最先看的是廖雪峰老師的教程,視訊是看的小甲魚老師的教程,基礎學習了一個月左右(也沒有天天堅持),然後學習web,入門框架是Django(看的某某教育的直播課,覺得不錯,我自己現在也有想法做直播課),比較基礎,然後後面學長建議從Flask框架開始學習,想想的確Django學起來有點複雜,於是開始學習Flask框架,跟著騰訊視訊的黃勇老師,免費的,學起來不錯,從基礎,到模組介紹練習,同時看了慕課上面的一些課程,付費的,戳重點說一下知識付費的時代,為自己投資是免不了的,框架學完做了些小專案,mysql資料可簡單互動介面,電影下載平臺,部落格網站,有興趣的可以加我私聊。

web差不多了,這個時候我厚著臉皮打電話給之前組織網際網路+大賽認識的老師,說我現在學Python,web學了一些,可不可以進老師的實驗室,胡扯了一圈(我這個人大學別的沒學到,與人交流學到了不少,特別是我想別人幫我的時候),老師答應了,順利進入實驗室,老師安排我繼續學習web,之前有一個學長畢設用的爬蟲+web,web用的flask_appbuilder,一個基於flask框架的衍生,老師讓我把英文取名小程式的後臺資料視覺化成果用網站顯示出來,方便團隊每個人檢視,我第一次接觸起來覺得和Django有點像,所有的東西都給你寫好了,你只需要修改或者新增,比如介面顏色啥的,這個資料比較少,我是完全看網上文件和官方文件學的,有前面基礎,也不是特別難(一時搞不了,就花時間堆),也是這個時候我開始接觸pyecharts這個模組(說到這裡,我不得不說,昨天我有幸認識到了pyecharts的原作者,也是個大三學生,所以我不厲害,他可能也不算厲害,更厲害的人多的是~),也是做完這個讓我認識到資料分析與視覺化的力量之大,能讓我們漸漸的看到資料背後的東西,再之後,爬蟲和資料分析一起學,因為搞分析得要資料,要資料得爬,要爬得學···要推薦書籍或學習視訊的可以私聊。

flask_appbuilder框架效果

最後,給剛剛開始學習的Python的讀者一些建議:

(1)如果你一點程式設計基礎都沒有,請老老實實從基礎開始學習,推薦小甲魚課程。

(2)如果你有一些基礎,建議好好想一下,你到底想學什麼,web,爬蟲,還是人工智慧,我必須提醒大家Python目前不好找工作,除非學歷夠高。

(3)學習過程中不要害羞,多找人交流,身邊朋友,老師,或是網友,交流群,多問,但注意方法,禮貌,問題說清楚,別人說的不理解先百度,不要打斷等等。

(4)知識付費時代無論是大學生還是工作的讀者朋友,不要吝嗇或不捨那麼幾百元,該買的書要買,覺得不錯的課程狠下心來買了學,為現在的自己投資,才有更好的以後。

以上只是我個人的學習歷程和建議,大家不喜勿噴,謝謝

二、教點小技能

學習的小詹學長的推文程式碼,如何把圖片轉換成動圖。

(1)安裝模組

pip install imageio

(2)例項程式碼

import imageio

def create_gif(image_list, gif_name, duration=1):
    """
    生成 gif 檔案,原始圖片僅支援 png 格式
    gif_name : 字串,所生成的 gif 檔名,帶 .gif 字尾
    path : 需要合成為 gif 的圖片所在路徑
    duration :  gif 影象時間間隔, 這預設設定為 1 s
    """

    frames = []
    # 把圖片 append 進列表
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    # 儲存為 gif 圖
    imageio.mimsave(gif_name, frames, 'GIF', duration=duration)

    return


def main():
    # 這裡放自己想轉換成動圖的所以圖片
    # 按先後順序
    image_list = ['01.png', '02.png', '03.png', '04.png']
    gif_name = 'new.gif'
    # 相鄰兩張圖片時間間隔(s)
    duration = 1.8
    create_gif(image_list, gif_name,duration)


if __name__ == "__main__":
    main()

需要注意的是,最後生成動圖的尺寸只和第一張圖片有關,所以建議大家把每張圖大小設定成一樣,避免出現不完美的情況。

實現起來很方便,我這篇推文的開頭動圖就是這個實現的,動手試試吧~

堅持和努力:終有所獲。

關注我的個人公眾號,獲取更多資訊