小學(xué)就開始學(xué)編程了,恐怖如斯!
大家好,我是魚皮,前幾天給大家分享了 星球 里一位小伙伴的真實(shí)經(jīng)歷:小學(xué)就自學(xué)編程,順手黑了學(xué)校廣播系統(tǒng)?
當(dāng)時(shí)有同學(xué)還不相信,結(jié)果昨天又有一位小伙伴分享了自己的經(jīng)歷。我一看,好家伙,又是一位從小學(xué)就開始編程的大佬,而且后來竟然還通過寫腳本當(dāng)上了 QQ 群的龍王哈哈。

給大家分享一下他的學(xué)習(xí)經(jīng)歷吧。
我的編程學(xué)習(xí)之路
大家好,我是魚皮 知識星球 中的小伙伴 99 ,正在浙江某雙非一本就讀,愛好計(jì)算機(jī)與音樂。
關(guān)于我從小就學(xué)編程這件事,首先要感謝我開明的父母,沒有認(rèn)為學(xué)習(xí)技術(shù)熱愛技術(shù)是一種不務(wù)正業(yè)的行為。其次感謝我的世界這款游戲,讓我對技術(shù)產(chǎn)生了濃厚的興趣。
小學(xué)暑假(2015)
我最早接觸的編程語言是 C++,為什么一來就接觸 C++ 呢?其實(shí)就是隨便找了 “你好世界” 的代碼,覺得 CPP 的最好看,就決定學(xué)他了。

果不其然,我實(shí)力不足,感覺很難。當(dāng)時(shí)下了個(gè) vc6,對,就是那個(gè)很落后的、連自動補(bǔ)全都不完善的一個(gè)編輯器。迷迷糊糊創(chuàng)建了一個(gè)MFC 程序,然而我對 MFC 一竅不通,基礎(chǔ)的東西問大佬們,大佬們也沒有太多耐心回答,所以基本上就直接放棄了。
然后我又在百度的過程中了解到了易語言 —— 中文編程,對于那個(gè)時(shí)候英語水平拉胯的我來說,簡直就是救贖,然后我就玩了一年易語言,在這一年里快速建立了寫程序的框架思維,以及問題解決的方法(這就是所謂的目標(biāo)與興趣導(dǎo)向型學(xué)習(xí)吧)。但同時(shí)為了我以后在技術(shù)的道路上走的更遠(yuǎn),我還是決定買一本《C++ Primer Plus》,系統(tǒng)學(xué)習(xí)標(biāo)準(zhǔn)庫等語言基礎(chǔ)知識,最后也成功編寫了第一個(gè)程序(代碼已經(jīng)丟了,隱約記得是個(gè)簡陋的聊天程序)。這個(gè)過程中主要還是目標(biāo)導(dǎo)向與興趣導(dǎo)向,記得當(dāng)時(shí)自己目標(biāo)很明確:我要寫聊天程序,那么就要有客戶端和服務(wù)端;它們需要進(jìn)行網(wǎng)絡(luò)通信,那么就要了解網(wǎng)絡(luò)通信的知識(Windows Socket);要編寫界面,就要學(xué)習(xí)界面開發(fā)的知識(MFC 現(xiàn)在不推薦學(xué)習(xí)了),如果是 C++ 的界面庫,Sciter 和 QT 是不錯(cuò)的選擇,或者控制臺,“畢竟 CPP 不配擁有界面”。
魚皮:這是一種非常好的自主學(xué)習(xí)習(xí)慣,在做項(xiàng)目的過程中需要實(shí)現(xiàn)哪個(gè)功能,就可以去網(wǎng)上搜索實(shí)現(xiàn)方案,學(xué)習(xí)對應(yīng)的技術(shù)后可以直接應(yīng)用,加深印象。
除此之外,出于愛好,我其實(shí)還學(xué)習(xí)了建站和網(wǎng)站服務(wù)器搭建的相關(guān)知識。這部分知識很零碎、不系統(tǒng),我大致說一下我的學(xué)習(xí)策略。人的大腦其實(shí)從原理上更容易接受歸納式與試錯(cuò)式學(xué)習(xí),所以我踩了很多坑,熬了一個(gè)又一個(gè)夜試錯(cuò),最終找到了正確的搭建方法。
當(dāng)然,當(dāng)時(shí)的我沒有接觸 Linux,所以只是在 Windows Server 圖形化的幫助下,搭建了傻瓜化的網(wǎng)站。這里我說一下當(dāng)時(shí)比較熱門的三個(gè)網(wǎng)站服務(wù)器,Apache、Nginx、IIS。穩(wěn)定性用 Apache、高并發(fā)用 Nginx、綜合省事兒用 IIS。一開始我是用 Nginx 做代理用于負(fù)載均衡,Apache 做 PHP 網(wǎng)站服務(wù)器的,后來發(fā)現(xiàn)太折騰了,特別是 URL 規(guī)則配置,簡直要命(當(dāng)時(shí)的我還不會正則表達(dá)式)!然后我就轉(zhuǎn)用 IIS 了,現(xiàn)在也依然是 IIS。至于當(dāng)時(shí)搭建了啥,一個(gè)基于 Discuzx3.2 的班級論壇和一個(gè) WordPress4 的博客,因?yàn)槟甏眠h(yuǎn)了,只找到了這一張截圖:

魚皮:現(xiàn)在的話 Nginx 是主流的 Web / 反向代理服務(wù)器,后端開發(fā)的朋友一定要學(xué)習(xí)下。
初一 ~ 初二(2016.2 - 2017.6)
這時(shí)的我,由于學(xué)業(yè)的繁忙,技術(shù)學(xué)習(xí)有點(diǎn)滯緩了。不過也抽空接觸到了全新的編程語言,比如好用但是不火的 C#。
剛開始玩 C# 其實(shí)還是用的 WinForm,寫過一個(gè)日程管理小工具,現(xiàn)在回看代碼,血壓飆升。
源碼:https://styunlen.cn/softlib/dailytools
對了,WPF 程序編寫小工具還是很好用的,界面庫用的是 Mahapps.Metro。
我用 WPF 寫了一個(gè)博客文章閱讀器。因?yàn)榇罱艘粋€(gè)博客,我嫌瀏覽器麻煩,就想自己做客戶端(折騰、造輪子)。當(dāng)時(shí)還不知道Restful Api,Wordpress 好像也不支持,因此自己還編寫了一個(gè)服務(wù)端程序,不過要手動添加博客內(nèi)容,麻煩得很,最后這項(xiàng)目也是棄坑了。
這個(gè)項(xiàng)目的源碼在百度網(wǎng)盤,不方便直接掛,先放到魚皮的星球里了~
在這期間,我了解到了閱讀官方文檔的重要性,以后的學(xué)習(xí)中也盡量都去看開發(fā)文檔了。
其實(shí)除了 C#、CPP 這些寫應(yīng)用程序的語言學(xué)習(xí),我還喜歡上了前端技術(shù),雖然只有一點(diǎn)點(diǎn),比如 HTML、CSS、JavaScript 三件套,以及一點(diǎn)點(diǎn) PHP。我用這些做了個(gè)丑不拉幾的 HTML 主頁,主頁風(fēng)格受到了一點(diǎn)點(diǎn)釘子大佬 @Rrupmid Nyche 的影響(他的 WP 主題我從建站起一直用到高一),初三的時(shí)候甚至還二次開發(fā)過他的主題。

初三(2017.6 - 2018.6)
這一年,我也忘了自己干了啥,好像沒啥進(jìn)步。翻了一下空間,我居然跑去玩 OpenGL 了!

紀(jì)念一下當(dāng)時(shí)連 gltools 的編譯都要折騰半個(gè)月的憨憨:

高一(2018 - 2019)
時(shí)光如流,不知不覺我就成為了一個(gè)高中生。其實(shí)現(xiàn)在挺后悔初中沒有用功讀書,跑去學(xué)了技術(shù),但這都是取舍,重要的是我幸運(yùn)地找到了自己的熱愛,并堅(jiān)持在這條道路上走了下去。
高一學(xué)習(xí)還是比較緊張的,浙江考生十一科連起來學(xué)習(xí)實(shí)在是過于充實(shí),因此也很少有空學(xué)習(xí)技術(shù)了。
高二(2019 - 2020)
高二過得很苦逼,因?yàn)槌煽兿禄瞬簧?、又遇到了分班等等雜事兒。但對編程技術(shù)的學(xué)習(xí)就像一道光,讓我苦苦地?fù)芜^了這一段高中最黑暗的時(shí)刻。
分班后,我的政治老師有節(jié)課提了一嘴,說想要一個(gè)像我們語文老師一樣的語音點(diǎn)名程序,我就抽假期用 C# 寫了一個(gè)語音點(diǎn)名程序,麻雀雖小、五臟俱全~

之后因?yàn)樘厥獾囊咔?,打破了所有的進(jìn)程,網(wǎng)課時(shí)代拉開了序幕。
對于一個(gè)技術(shù)黨,網(wǎng)課當(dāng)然也要繼續(xù)好好學(xué)習(xí)(mo yu)啦 !所以,我重新下載了我的世界,開啟了服務(wù)器,和小伙伴一起養(yǎng) ,當(dāng)然,技術(shù)學(xué)習(xí)也木有落下。
由于我是用電腦開服,這就導(dǎo)致了我薛定諤的開服時(shí)間,以及頻繁的在群里公布開服消息。我本人比較懶,因此想讓電腦代替我的重復(fù)勞動。于是跳出了 C# 的舒適圈,使用 C++ 的 Sciter UI 引擎開發(fā)了一個(gè) MC 服務(wù)器狀態(tài)獲取小工具,這時(shí)的這個(gè)小工具只能獲取我自己服務(wù)器的信息。在高考結(jié)束后的暑假,我對這個(gè)程序進(jìn)行了修改,支持獲取自定義服務(wù)器信息了,并開源在了 Github,代碼冗余,就不給大家看了~

除此之外,水群也是我的日常??晌颐刻炷敲凑J(rèn)真的水群、幣話不停,怎么還是輪不到我當(dāng)龍王?為啥總是群里的小伙伴是龍王?
我不服氣,然后一天時(shí)間入門了 Python,用 pywin32 模塊寫了個(gè)刷龍頭腳本。原理很簡單,趁十二點(diǎn)到早上六點(diǎn),大家都在睡覺,我讓電腦每分鐘自動發(fā)一條消息,這樣我就能發(fā)送 360 條消息,再加上我白天的努力,龍頭就非我莫屬了。
結(jié)果很出乎意料又在情理之中啊,我被禁言了。

哈哈哈,但是我學(xué)到了知識,這是很強(qiáng)的正反饋。然后我就繼續(xù)寫腳本刷釘釘?shù)淖詣狱c(diǎn)贊,不過速度有限,每分鐘大概兩千下,鼠標(biāo)還不能動。不過好在我的一個(gè)同學(xué)推了一篇酷安的文章給我,解釋了怎么用 fiddle 抓包修改網(wǎng)頁源碼的方式以更快的速度刷贊,甚至是強(qiáng)制刷贊(無視教師端控制)。當(dāng)時(shí)就很快樂啊,給同學(xué)直播間的一次測試,簡直不要太爽。

當(dāng)然還玩了教室面板彩色字體顯示啥的,不過現(xiàn)在的釘釘不行啦。
說完軟技術(shù),來聊聊硬技術(shù)。恰逢通用技術(shù)課上電控知識,我想起來技術(shù)世界中還有單片機(jī)這種稀奇玩意兒,于是我斥巨資買了一塊arduino 原裝板(智商稅)和一套傳感器組件?,F(xiàn)在建議買 arduino 可以買非原裝的,便宜而且功能一樣甚至更豐富。
不過,剛接觸硬件我就遇到了坑,剛?cè)胧值木拶Y arduino 還沒捂熱,剛寫完 “你好世界” 就 GG 了。不過我了解到了單片機(jī)的工作原理以及如何給單片機(jī)編寫驅(qū)動程序,還有相關(guān)門電路的電控知識,和這些收獲相比,失去反而顯得微不足道了。
高三(2020.8 - 2021.6)
時(shí)間來到了中學(xué)時(shí)代的終點(diǎn)線前,為了提醒自己高考剩余的時(shí)間我又開發(fā)了一個(gè)桌面端的倒計(jì)時(shí)小程序,代碼已經(jīng)開源,目前已支持自定義主題功能,也編寫了一丟丟主題開發(fā)文檔,歡迎大家為這個(gè)可憐的小程序貢獻(xiàn)漂亮高端的主題。

由于高三時(shí)間緊迫,初期的代碼以實(shí)現(xiàn)功能為主,因此存在不夠規(guī)范的地方,希望諒解。目前的版本,也存在諸多不夠規(guī)范的地方,我也在抽出緊張的時(shí)間做些完善。
源碼:github.com/Styunlen/ReminderOfNEMT
大一 ~ 至今
由于選科的限制,我并沒有進(jìn)入計(jì)算機(jī)專業(yè)學(xué)習(xí),因此到了大學(xué),技術(shù)還是以自學(xué)為主。而專業(yè)課的時(shí)間沖突又導(dǎo)致我很難有充足的時(shí)間投入技術(shù)學(xué)習(xí)中,因此學(xué)習(xí)速度也有所放緩。不過,我一定會堅(jiān)持下去的!
大一了,我最想彌補(bǔ)自己算法上的不足,因此決定在大學(xué)期間去參加 ACM 競賽,而競賽又免不了耗費(fèi)大量的時(shí)間精力,所以我每天的學(xué)習(xí)狀態(tài)就像在經(jīng)歷高四。
最近學(xué)習(xí)了 Vue3 框架,并用 Vue3 為我們班編寫了一個(gè)微信小程序。其他的感覺倒也沒啥了,主要還是時(shí)間沖突問題,讓我自己也很焦慮、很累,所以也加入了魚皮的 知識星球 ,在這里認(rèn)識了很多小伙伴、看到了前輩們的成長經(jīng)歷、也得到了大佬們的指點(diǎn)。我相信以后會好起來!
?? 結(jié)語
這就是我濃縮版的學(xué)習(xí)經(jīng)歷了,可能只是作為愛好者接觸了編程知識,對于很多技術(shù)的認(rèn)知還很淺薄、還停留在技術(shù)海洋的表面,但我會繼續(xù)努力鉆研的!如果有必要,我后面再給大家分享一期如何以目標(biāo)或興趣作為導(dǎo)向來學(xué)習(xí)編程技術(shù)的指引吧。
對了,其實(shí)算法思想和編程技術(shù)還是有區(qū)別的。算法更側(cè)重邏輯與數(shù)學(xué)能力,而編程技術(shù)其實(shí)更側(cè)重編程語言基礎(chǔ)和解決問題的能力等多種不同能力的綜合,所以雖然我算法一般但寫程序時(shí)沒有感到什么壓力。但不得不說算法思想是非常重要的,在寫復(fù)雜的邏輯時(shí)可以更得心應(yīng)手一些。
不過無論是算法還是寫程序本身都有個(gè)特點(diǎn),那就是你只需要有一顆愛折騰的心,就能夠在這兩者的痛苦學(xué)習(xí)中找到不一樣的樂趣。
熱愛終將會將我們導(dǎo)向我們所向往的生活!

微博被曝大面積裁員?上熱搜了

炸了!JetBrains 宣布:IntelliJ IDEA 徹底棄用 Log4j。。

烏克蘭國防系統(tǒng)賬號:admin,密碼:123456
—?【 THE END 】— 公眾號[程序員黃小斜]全部博文已整理成一個(gè)目錄,請?jiān)诠娞柪锘貜?fù)「m」獲??! 最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù) PDF?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。
謝謝支持喲 (*^__^*)
