知無涯,行者之路莫言終(我的程式設計之路)

張風捷特烈發表於2018-12-30

零、前言

2017年標籤:"海的彼岸,有我未曾見證的風采"
2018年標籤:"海的彼岸,吾在征途"
2019年標籤:"向那些曾經無法跨越的鴻溝敬上——君臨"
複製程式碼

一、系列文章

相關性較強的文章,即前後文有所關係,或所屬一個範疇的完結系列
也是近兩個月的作品,總體感覺還不錯,篇幅較長,稍微有點深度


1、Android四大元件系列(第二版) 共8篇

隸屬Android點將臺的八篇重量級文章,入門Android必備良藥

顏值擔當[-Activity-] 外交官[-Intent-]
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)
絕命暗殺官[-Service-] 金科玉律[-AIDL-]
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)
傳令官[-BroadcastReceiver-] 烽火狼煙[-Handler-]
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)
濟世儒俠[-ContentProvider-] 三魂七魄[-Binder-]-(暫未完成)
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

程式語言對比手冊

語言對比手冊是我一直想寫的一個系列:經過認真思考,我決定從縱向和橫行兩個方面
來比較Java,Kotlin,Javascript,C++,Python,Dart,六種語言。
縱向版按知識點進行劃分,總篇數不定,橫向版按語言進行劃分,共6篇。

程式語言對比手冊-縱向版[-類-]
程式語言對比手冊-縱向版[-檔案-]
程式語言對比手冊-縱向版[-socket-] (待完成)
程式語言對比手冊-縱向版[-群組-] (待完成)
程式語言對比手冊-縱向版[-異常-] (待完成)
程式語言對比手冊-縱向版[-字串+正則-] (待完成)
從五大語言看函式和lambda表示式


2.OpenGL2.0入門系列(第一季) 共6集

一咬牙,學一波,3d的世界很精彩,也很難!!!

GLES2戰記第一集--勇者集結
GLES2戰記第二集--謎團立方
GLES2戰記第三集--聖火之光
GLES2戰記第四集--移形換影
GLES2戰記第五集--宇宙之光
GLES2戰記第六集--九層之臺

效果 效果
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

3.Android多媒體相關

Android多媒體之圖片綜合篇
Android多媒體之認識聲音、錄音與播放(PCM)
Android多媒體之認識MP3與內建媒體播放(MediaPlayer)
Android多媒體之SoundPool+pcm流的音訊操作
Android多媒體之Camera的相關操作
Android多媒體之Camera2的相關操作
Android多媒體之視訊播放器(基於MediaPlayer)

知無涯,行者之路莫言終(我的程式設計之路)

知無涯,行者之路莫言終(我的程式設計之路)


4.雜談系列(無止境)

一些有趣的文章,和主線不相關,一篇搞定,或思考,想法之類的文章

雜篇:一代版本一代神[-Gradle-]
雜篇:從整理檔案發起的雜談[-File-]
雜篇:計算機的世界:[-bit之魂-]
雜篇:理一理螢幕尺寸那些事
雜篇:隨筆程式設計雜談錄--《隆中對》
雜篇:Android繪製函式圖象及正弦函式的介紹
雜篇:Java原始碼閱讀繪圖規範手冊--[捷特版]
JVM之類載入器ClassLoader

知無涯,行者之路莫言終(我的程式設計之路)


5.三端建站系列(完結) 共4篇

一直想找個機會把自己的三端技能總結一下,畢竟我的伺服器還空蕩蕩呢
所以年底了,總結一下,寫個小專案,掛在伺服器上也好,效果:個人網站在此

建站四部曲之後端介面篇(SpringBoot+上線)
建站四部曲之Python爬蟲+資料準備篇(selenium)
建站四部曲之前端顯示篇(React+上線)
建站四部曲之移動端篇(Android+上線)

知無涯,行者之路莫言終(我的程式設計之路)


6.Flutter七日系列(完結) 共8篇

算是給自己的一個小挑戰吧,用一週把Flutter淌一遍,入個門,
同時留下七篇長文,給待入坑的Androider打造幾個小石階

Flutter第1天--初始分析+Dart方言+Canvas簡繪
Flutter第2天--Animation動畫+粒子運動
Flutter第3天--基礎控制元件(上)
Flutter第4天--基礎控制元件(下)+Flex佈局詳解
Flutter第5天--佈局例項+操作互動
Flutter第6天--非同步-IO+網路訪問+json
Flutter第7天--字型圖示+綜合小案例+Android程式碼互動
Flutter七日總結

~ ~
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

7.看得見的資料結構系列(第一季2018版) 共8篇

用Android繪製資料結構,而且新增操作互動,除了我,還有誰!(會這麼無聊)
好吧,這就是靈機一動+血氣上湧的產物,創造問題,解決問題,傳道授業
希望2019年我可以有所進步,繼續畫出其他資料結構

看得見的資料結構Android版之開篇前言+完篇總結
看得見的資料結構Android版之陣列表(資料結構篇)
看得見的資料結構Android版之陣列表(檢視篇)
看得見的資料結構Android版之單連結串列篇
看得見的資料結構Android版之雙連結串列篇
看得見的資料結構Android版之棧篇
看得見的資料結構Android版之佇列篇
看得見的資料結構Android版之二分搜尋樹篇

知無涯,行者之路莫言終(我的程式設計之路)


8.View篇(原始碼級)

Android檢視層的讀碼記錄

所得與所見:[-View周邊-] 框架層
Android事件分發機制[-View-] 原始碼級
invalidate方法知多少[-View-] 原始碼級


9、Android原生繪圖系列

檢視層跑不掉要繪圖,這個系列整個過程也是對我的一次昇華
自從Path篇寫完後,敲程式碼的感覺都不一樣了,思考的視角有所提升

Android原生繪圖1--Canvas
Android原生繪圖2--Path
Android原生繪圖3--Paint篇
Android原生繪圖4--Color篇
Android原生繪圖5--大戰貝塞爾三次曲線
Android原生繪圖6--實踐一起畫個表
Android動畫Animator家族使用指南

知無涯,行者之路莫言終(我的程式設計之路)


10.自定義單體View五級系列(完結) 共5篇

一步步登頂自定義單體View

Android自定義控制元件(入門級)--數字顯示器
Android自定義控制元件(新手級)--實踐進度條
Android自定義控制元件(中手級)--區域性圖片放大鏡BiggerView
Android自定義控制元件(高手級)--JOJO同款能力分析圖
Android自定義控制元件(神級)+MediaRecoder錄音

n條屬性.png
知無涯,行者之路莫言終(我的程式設計之路)


11.ViewGroup篇:

ViewGroup篇:Android佈局總彙篇
ViewGroup篇:玩一下自定義ViewGroup


12.Android粒子系列

玩玩而已,就是要,酷! 炫!

Android粒子系列1--讓你瞭解粒子的運動
Android粒子系列2--炫酷倒數計時
Android粒子系列3--文字的粒子化運動
Android粒子系列4--Bitmap畫素級操作

知無涯,行者之路莫言終(我的程式設計之路)


13.RecyclerView零點突破系列

RecyclerView的重要性不言而喻,本想一擊突破,卻陣亡於自定義LayoutManager
前兩篇完成,不是逆天改命的RecyclerView基本上都能應付,後兩篇hold不住,以後再戰

RecyclerView零點突破(基本使用篇)
RecyclerView零點突破(動畫+邊線篇)
RecyclerView零點突破(自定義LayoutManager篇)--待完成
RecyclerView零點突破(原始碼分析篇)--待完成

~ ~
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

14.Android材料設計MD系列(完結) 共8篇

材料設計Material Design,已經推出很久了,以前只是簡單用用,沒有系統總結過
所以找個機會總結了一波,總體而言Material Design用著還是蠻爽的

Android材料設計Material Design 開篇前言
Android材料設計之ToolBar+CardView+沉浸標題欄
Android材料設計之FloatingActionButton+Snackbar+SheetX3
Android材料設計之BottomNavigationBar+TabLayout
Android材料設計之AppBarLayout+CoordinatorLayout
Android材料設計之CollapsingToolbarLayout+Palette
Android材料設計之DrawerLayout+NavigationView+TextInputLayout
Android材料設計之Behavior攻堅戰

~ ~
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

15.Java的IO基礎系列

萬變不離其宗,IO作為每種語言必備的模組

Java總結IO之總集篇
Java總結IO第一篇之字元流與字元編碼
Java總結IO第二篇之位元組流與字元流轉化
Java總結IO第三篇之File類和Properties類
Java總結IO第四篇之其他IO流物件
安卓中對於資料夾的綜合操作


二、分類文章:

未成形的系列文章(即未完結),但有明確所屬範疇。
基本上文章的內容還行,是第二瓶頸期內和突破後的時段所寫

1.容器原始碼解析:

Java總結之容器家族--Collection
Java總結之對映家族--Map概覽
Java容器原始碼攻堅戰--第一戰:Iterator
Java容器原始碼攻堅戰--第二戰:ArrayList
Java容器原始碼攻堅戰--第三戰:HashMap(一)
待續...


2.網路程式設計

網路篇:協天子令諸侯[-Http-]
基於Socket的網路資料傳輸測試(Java+Android+騰訊雲)
安卓網路程式設計之獲取IP地址
安卓網路程式設計之http協議簡介+小案例引入
安卓網路程式設計之Socket程式設計
Android基於socket的五子棋雙人網路對戰實現
[番外]理一理Android多檔案上傳那點事
Android原生下載(上篇)基本邏輯+斷點續傳
Android原生下載(下篇)多檔案下載+多執行緒下載
待續...


3.自定義控制元件基礎

Android自定義控制元件1--EventParser
Android自定義控制元件2--事件處理機制和生命函式呼叫
Android自定義控制元件3-動畫Animator處理
[番外]Android觸控事件實現筆觸畫布

待續...


4.資料固化及解析相關

安卓SQLite基礎使用指南
Json在Android中的使用--Gson
安卓中XML的三種解析與固化
SharedPreferences簡單封裝
待續...


5.玩轉字串相關

小案例Josn字串的生成
[番外]:帶你玩正則1--資料遍地是,看你取不取
分享一下我的三個程式碼自動生成工具類--助你解放雙手
待續...


6.技術小點

Android技術篇之執行時許可權
Android技術篇之反射
Android技術篇之註解Annotation
Android技術篇之XXX.9.png的使用全指南
Android資源res之向量圖完全指南(加SVG-path命令分析)


6.常用View

Android基礎控制元件之TextView
Android控制元件之ImageView
Android控制元件之ViewPager的基本使用
Android控制元件之ViewPager滑動監聽與自定義滑動特效
Android控制元件之res資源載入
Android之PopupWindow


7.Fragment

Android基礎之Fragment基礎使用
Android基礎之Fragment生命週期測試
Android基礎之Activity與Fragment的資料傳遞
Android基礎之Fragment與ViewPager結合
Android基礎之Fragment簡單封裝


8.ListView(不看也行,ListView如今用得也不多了)

Android基礎之ListView基本使用及優化
Android基礎之ListView的封裝
Android基礎之ListView的封裝多條目
Android基礎之ListView事件全解析
Android基礎之ListView瑣碎小知識點彙總


主流模式小專案

Android基於MVP實現號碼歸屬地查詢


四、SpringBoot篇

後端並非我專場,所以只是簡單涉獵,對服務端有個整體的認識
前端和後端的融合才能更好的理解http,畢竟Androider不懂http將寸步難行
看完後自己搭建api測試介面,或者自己建個小網站還是沒問題的(看起來20篇,其實都很短)

SpringBoot-00-之修改啟動標題
SpringBoot-01-之初體驗
SpringBoot-02-之引數傳遞
SpringBoot-03-之熱部署
SpringBoot-04-之模板引擎--thymeleaf
SpringBoot-05-之上傳檔案
SpringBoot-06-之拿到你的圖片!
SpringBoot-07-之資料庫JPA(CRUD)
SpringBoot-08-之統一化json輸出與自定義異常捕獲
SpringBoot-09-之初階整合篇(上)
SpringBoot-10-之初階整合篇(下)
SpringBoot-11-之從本地到線上
SpringBoot-12-之Ajax跨域訪問全解析
SpringBoot-13-插曲之Node檔案重新命名+自動生成json物件
SpringBoot-14-MyBatis預熱篇,MySQL小結
SpringBoot-15-之整合MyBatis-註解篇+分頁
SpringBoot-16-之整合MyBatis-xml篇+單元測試
SpringBoot-18-之AOP+log4j 記錄訪問請求資訊
SpringBoot-19-之傳送郵件
SpringBoot-20-REST API介面

另外前端屬於我的隱藏技能,學習筆記未公開


-->正文開始<------------------

簡述:

1).2018年基本上都是在總結Android及周邊,一邊總結一邊認識新知識,記錄成文。
2).整年中前半年Android周邊擴充的比較多,入手了SpringBootReact兩大神器
3).在8月份開始在簡書零星發表一些個人文章,主要原因是我看起來方便些,11月側重掘金
4).11和12月是我的一個成長期(突破第三瓶頸),長文系列都是在這兩月內完成的
5).下面先總列一下今年發表的一些文章:鎮樓:隨筆程式設計雜談錄--《隆中對》


前言:

如果你能看到這裡,非常感謝,下面將回顧一下我的程式設計史
吾的程式設計生涯到2019年3月31日就滿2年了:
在這2018和2019年的交接之際,準備總結一下,並介紹一下自己

1、張風捷特烈是什麼意思?

獨一無二的個人標識,也是吾今世的唯一筆名,見名如見人


一、程式設計前事回顧

先了解一下個人經歷:

1.大學與專業

大學:安徽建築大學
專業:工業設計
一個上識天文,下通地理,博學古今中外,會畫圖,會n個軟體,需要無限創意的神奇專業。

說白了就是設計一些可供生產的產品:
小到牙刷鉛筆,大到汽車飛機,或者說everything
因為設計的本身就是對世界的認知和再創造,只要有能力便可以進行設計與創造

所以,工業設計需要廣泛的知識面,這正讓我各方面知識儲備的來源,
還要各種軟體的使用(這讓我有很強的軟體使用經驗):
二維的軟體:PS、CAD、AI、AE 三維設計軟體:SolidWorks、3dMax、ProE等,
以前很熟練,現在就PS還保持,因為偶爾修修圖,畫畫圖的

所以自稱半個藝術家,這也是我文章裡配圖比較好的原因,因為是自己畫的
大學的薰陶讓我對表現力十分執著,我希望通過更好的表述讓別人對複雜事物有更好地理解
可以說我學的也不是非常好,因為和主流設計理念不怎麼合(我並不怎麼想設計已經有的東西)
再加上我的繪畫水平也是半吊子,能拿得出手的實在不多,下面兩幅湊合看看

作品.jpg


2.大學對我的影響

陶冶了情操,煉就一顆對事物廣為容納的心,以及對萬物的思考
望遠鏡,顯微鏡,文學,數學,哲學我儘量拓寬自己的視野,然後去思考一切的聯絡
作為一個理科生,我對文學可以說十分熱愛,大學可以說是看了一箱書
我對的執著,便是我對境界的執著,創作過很多自認為非常優秀的作品,也獲過獎

雖然喜歡文學,但也從未放棄對理性的思考,數學可以說是我離得最近,離我最遠的東西
由於算半個設計,高數學得非常淺,深層的高數基本都是自學的(如果這都不算愛)
對數學的熱愛也促進了我的分析能力,以致嘗試去從理性和感性兩方面去思考這個世界

想得多了,必須要記錄與總結,為了能更好的表達自己的思想,詩是最佳選擇
於是境界一詞註定伴我終生,我希望不斷突破自己的想象力與瓶頸,用我的語言表達出這個世界
思考事物之間的聯絡可以說誤打誤撞為以後的程式設計思想打下很好的基礎,下面列出幾首代表作:
如果你懶得看,這裡有我的朗誦(現在聽了一下,感覺恍如隔世)

~ ~ ~
《海與鹿王》 《遊夢人·詩的誕生》 《山海詩》
《零境》 《亡靈之歌》 《訴世書》

3.關於畢業與工作

16年畢業後,第一份也是最後一份工作是輔導資料的校正和編稿,那時是打算成為一代文豪的
這份工作對我的塑造也有很大的幫助:耐心、細心、思考以及時間
因為閒暇的時間比較多,下班也不會再涉及到工作上的事,所以我能更好的做自己喜歡的事
於是我開始廣泛發展自己的愛好,畢竟以前有很多想做有沒有時間做的,其中有一點便是微控制器


一、程式設計生涯的開端

我把學習程式設計當做一次遠航,想要去見證,海的彼岸是何種風采
這遠航並非坐船,而是去鑄造一座通往海的彼岸之橋。
知識的積累便是這座橋的木料,我要通往海的彼岸,同時也要留下一座橋供後人去走。
於是記錄成了我的習慣,現在看來,記錄和整理是一件對coder至關重要的事,
檔案如此,程式碼也如此,標記與整理在我看來是一個超重量級的話題。


2017年:海的彼岸,有我未曾見證的風采

1.初遇程式設計

大學中有兩次與程式設計的接觸:
第一次是C語言的課程----過了就沒有再去深入
第二次是大學想要自學C++----可是沒幾天就放棄了(感覺作用不大,當時還有更重要的事)
個人一直認為,作為21世紀的青年,不會點程式設計總感覺對不起自己。


2.從微控制器到Android

工作之餘,是有些自己的時間的,然後我就廣泛發展興趣,有一陣子,想去玩微控制器。
然後就買了很多零件,第一次將程式碼燒錄到微控制器裡,完成一閃一閃的燈時的心情記憶猶新。
入門的程式碼很簡單,大學C語言那點底子還是夠用的,記得是2017年過年期間,都在玩微控制器。
然後暫存器,運算放大器,排組,很多感測器模組……進入了我的世界。
用電子螢幕和時鐘晶片做出了電子時鐘之後,本來打算玩Linux開發板的,但是感覺有點貴。
想著安卓不就是塊生產好的開發板嗎?去玩玩Android唄。然後我們就相遇了,
然後一入宮門深似海,從此硬體是路人...

~ ~ ~
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)
知無涯,行者之路莫言終(我的程式設計之路)

3.我選擇Android的幾個原因

1).經常用,但對其一無所知,這讓我無法忍受,就像有一個華麗的盒子卻從未開啟過
2).有手機,有電腦,別人能玩,我當然也可以,而且我相信自己的分析力
3).小時候一款叫"地心遊記"的手機自帶小遊戲,怎麼找也找不到安卓版,所以...
4).我想讓自己的數學知識有些用武之地,畢竟日常只需要初中水平...
5).我喜歡文學,並非什麼華麗的辭藻,而是語言本身的表述力
程式設計作為與計算機交流的語言,其表現力與我的境界追求並不矛盾


4.我在突破Android第二層瓶頸時寫下:

曾經的安卓對我來說,像一個黑匣。
從我決定開啟的那刻,一切已然不同。
它是無數的殘片,看上去一無所知,
就像孩子看到萬片拼圖混雜的心情。
畏懼與興奮,和期待,
期待拼圖完成後是什麼樣的風采。

我想要見證它的風采,
想要站在更高的層次看清它是什麼。
於是我開始向那片海前進,
渡過那片程式碼的海洋,通往新時代地方。
現在,我拼完了一角,而在這個時刻,
它的巨集大已經完全充盈了我的視野。
它也已不再僅是一幅畫面,
在我眼前的分明是一個世界,稱為境界


5.初入Android與第一瓶頸

2017年3月31日 被我標記為自己的編元日,便是我進入Android的日子
只有一點微薄的 C++ 語法支撐(微控制器時自學了一點C++)和微薄的微控制器硬體常識
就這麼輕裝上陣,踏入了Android,一開始肯定跟著視屏學,第一個HelloWorld記憶猶新
當時還是用Eclipse,裝Java、下軟體、裝外掛和下SDK,當時連Java是什麼都不知道
跟著視屏一步一步來,弄了大半天,第一個專案總算跑起來了

說說感想:C++自學了一個月,也就是在控制檯和cmd上運算或輸出
安卓裡一下就可以顯示到手機上了,開心和激動,有種I can 的感覺
這種所見即所得心情,是很讓人有成就感的,因此與Android"一見傾心"

前期也沒有什麼學習方法,跟著視屏依葫蘆畫瓢,類比與修改
知道了那語言叫Java,以前一直以為Java是一個小遊戲...
也不斷髮現 C++ 和Java的異同點,感覺Java容易一點,便覺得也沒有太大的困難
然後思考與總結,表象上大概明白了安卓怎麼執行,知道改哪裡介面上會有什麼改動
就這麼稀裡糊塗的把Android的佈局和基本的View過了一遍
setOnClickListener一直不明白是幹嘛的,只知道:這樣寫,點選就有效果

"地心遊記"一直是我的心結,有了點基礎後我找了個數獨小遊戲的教程看
然後發現那點程式設計老底完全不夠用,第一瓶頸出現了:程式設計基礎以及複雜邏輯的控制薄弱
ArrayList,Map,回撥...都不知道,即使如此,學到一半了,也硬生生的跟著視訊敲完了
當時有些動搖,這真的hold不住,太複雜了,邏輯控制根本把握不住,而且這也僅是數獨而已
我是打算在Android中把Java學會的,有種會10+10之後,自然會1+1的心態
我並沒有轉戰Java,而是挑了一個更大的坑,就是植物大戰殭屍,也是跟著視訊敲的
現在想想真的挺傻的,用Android版的cocos2d,唯一的收穫也許就是對物件.方法名的深刻認知
那份教程沒有敲完,敲不下去了,還是基礎太弱,依葫蘆畫瓢都不行,於是轉戰Java


二、從Java到Android

1.與Java的愛恨情仇

有種一夜回到解放前的感覺,木有檢視,只有控制檯
但學起來感覺比C++輕鬆許多,Andoird裡已經對Java有了初步的認識
面相物件的基本思想也已經成型了,學起來還蠻開心的,我沉浸在Java的世界,
認識著一個一個類,就像獲得了一個個工具,也像認識了一個個功能各異的"夥伴"
就這樣,我初步認識了Java,並視它為程式設計母語,這是我第一次系統的認識一門程式語言

當然一些不熟悉的關鍵字和技術也讓我挺煩的,特別是執行緒和介面
還有final和static一開始我也很難接收,邏輯控制能力比以前強很多
不知道你有沒有自定義過World類,有沒有敲過new World()
Java的學習,已經可以看到一些曾經無法看到的風采了,境界有所提升

第一次學Java最痛苦的就是IO,那麼多類,長著又差不多,還都能混著用
我那小小的內心是承受不了的,基本用法算是瞭解,至於用哪個好,是一頭霧水
這次的Java之旅,最有收穫的當屬對容器類的瞭解,特別是ArrayList


2.與Android的磨合期

迴歸安卓之後,接著把植物大戰殭屍剩下的視訊敲完了,感覺還不賴
然後就進入了Android的常規學習中、從四大元件開始
Activity和廣播感覺還行,Service的Binder聽得迷迷糊糊地
ContentProvider聽說不重要,聽了一點直接放棄了,最煩的就是那個Context
可以說魂牽夢繞,也就是做夢都夢到,看了很多資料也不能理解,只能強記
接下來的一段路漫長而艱苦,安卓初期的朋友都應該知道,苦樂共存

一次小開竅:有時候想要Context,但這個類沒有,感覺不開心
有一次突然想到,我可以傳進去啊(現在想想挺傻的),當時如獲至寶的感覺
從此構造傳值為我開啟了一扇窗,也開始去漸漸發現類與類之間的關係


3.與設計模式的初遇

記得學了很久才聽說"設計模式"一詞,因為本身是半個設計出身,感覺有意思
然後一入佛門深似海...,兩個字:抽象。幾個類這麼傳,這麼繼承,然後執行一下
哦,這樣啊(手動:面無表情),這也是我對介面的懵懂開端,總之--無感


4.Android的第二瓶頸

一套課程看下來,基本上算是入了門,接下來《第一行程式碼》和《瘋狂的Android》
兩本書我是一直捧在手裡的,基本上都敲了一遍,作為鞏固還是蠻好的
時間點大約是2017年11月份,一遇到網路我就犯怵,因為不懂,找個post的api都找不到
在當時看來,Android應用層的東西基本上都瞭解了,稍微底層一點點就不行了
這讓我感到寸步難行,Android並非一個獨立的體系,它對外的延伸需要寬廣的知識面
而網路是必經之路,只有你玩程式設計http是怎麼也跑不掉的,於是一別Android


5.再遇C++與Cocos2dX的短暫時光

還是"地心遊記"這個心結,讓我想去嘗試Cocos2d,當時Cocos2dX的文件很多
C++ 就C++ 吧,再見C++感覺並不像曾經那麼晦澀了,很多稍微想想就能反應過來
然後Cocos2dX愉快地入個門,還蠻好玩的,之後感覺能力不足,也就沒有死磕了
畢竟目的只是簡單涉獵,並未打算深究,"地心遊記"繼續心結著我...

曾寫下一個小片段: 只見捷特從背後抽出金色Java之劍,朝向Cocos2d-X巨獸衝去。
他左手從腰間取出Android晶石,嵌入劍中,瞬時綠光環劍而旋。
一斬而過,巨獸四周環繞C++光環,竟絲毫未傷 。
巨獸道:“小子,等你可破我光環再來吧。”


三、前端與後端的融入

1.jsp的短暫相處

一開始認識的是jsp的webapp,也因此瞭解了TomCat,知道了一個伺服器和瀏覽器狼狽為奸
MySQL資料庫也是在這時摸到了一點邊(當時在Android裡多少了解過SQLite)
jsp是html嵌入java程式碼,但html不會,跟著教程也基本明白怎麼玩的
jsp的JSTL虐的我夠嗆,還有請求、響應傻傻分不清、還經常簡寫rep,req的...
在瞭解伺服器的一些知識後,非常想有一臺伺服器,當時看到阿里雲的新使用者免費半年
那還等什麼,搞起啊,於是從小白,到買域名,到伺服器,到備案,一路走來
當用手機成功訪問的那一刻,我感覺自己已經連線了世界
大事表中記錄:2018年1月25日17時14分33秒:網站備案成功,首次訪問
此刻起,在夜色的繁星之中,便有了一顆僅屬於我


2018年:海的彼岸,吾在征途

2.與前端的相遇

知無涯,行者之路莫言終(我的程式設計之路)

我與前端的機緣全在於我的網站,我給自己6天,將一個網站模板改成我的詩集網站
當時li是什麼都不知道,只是一邊改,一邊看效果,把能換的換掉
就這樣,我改出來我的詩集網站(全是靜態介面,一首詩一首詩地改...)
對於一個前端小白來說,做成這樣,感覺已經是非常自豪的事了

Yi人詩社.png


3.發現慕課網與專攻前端

保守估計:慕課網80%前端的免費課程我都看完了
2018年前幾個月,也許是為了完善我的網站,也許是覺得非常好玩
在Android裡搞了半天的介面,html+css很容易就實現了
更重要的是放在瀏覽器就能執行了,修改測試什麼的非常方便
一開始感覺前端不像程式設計,就是在佈局和拼湊,湊成一個介面而已


4.與JavaScript的擦肩與重逢

玩jsp的時候就聽說JQuery的盛名,當時因為MyEclips無法提示JQuery感覺很不爽
這裡互動使用JQuery整合我意,當時感覺JQuery真是太好了,各種方便
JQuery可謂滾瓜爛熟,JavaScript被我當成低能兒,一直沒睬她
直到課程中反覆出現JavaScript的閉包,原型,我才意識到還能怎麼玩
前端也正式被我看成了一門程式設計而不僅是佈局
那段時間被JavaScript的無拘無束,天真爛漫深深吸引,我開始寫些外掛玩
當前端已經感覺ok了的時候,nodejs出現在我的世界,一切又變了


5.我的辭職與閉關修煉

自從我的網站上線後,便有了辭職閉關修煉的念頭(畢竟工作與程式設計無關,繼續只是徒耗時間)
文壇似乎並不是我的歸處,而程式設計的精確,純粹,表現力深深吸引我
年間的一些私事也加深了這個念頭,我必須要靜下心來,慢慢成長
於是一曲《白皇》別文壇,我已決心走上程式設計的道路,既然如此,我需要沉澱
過年後上班的第一天,我便辭職了,之後便在安徽省圖書館靜修(有自習室,有插座,足以)


6.SpringBoot之旅

2018年的2月尾,由於慕課網,我接觸了SpringBoot,怎一個好字了得
SpringBoot和React差不多是同時開始學的,交織了我的3、4、5月
然後上傳、下載、瀏覽器的請求與伺服器的響應有了理解
大事表中記錄:2018年5月26日11時28分11秒754毫秒:
安卓專案和SpringBoot構建的線上伺服器後臺資料庫連線成功,
從安卓的登陸介面成功插入第一條資料。實現了安卓和後端伺服器資料庫的第一次握手
這也許是我的一小步,確實我程式設計生涯的一大步:
服務端和移動端的順利握手,打通了我長久以來的第二瓶頸
然後一個三端的線貫通了(當時還是主要使用JQuery)

知無涯,行者之路莫言終(我的程式設計之路)


7.我與React的相遇

從require.js的模組化開始,我看到了前端的曙光
畢竟一種覺得前端很散,js就像一個個散兵,模組化讓它成為了正規軍
之後html+css+js的傳統逐漸被升級,nodejs的出現讓js大翻身,
都能想象出JS紅著眼圈說:"哼,看你們還說本姑娘不是語言。"
前端的中世紀傳統開發模式[JS+Css+Html]逐漸[模組化/webpack],
首先出現在我面前的是Vue,簡單瞭解了一下,感覺風格和我不符。
倒是對React一見鍾情,然後開啟jsx+scss+ES6+的前端豪華陣容,
一直學習著React,我非常喜歡她,以致當時有轉做前端開發的衝動
當我看著一個Vue的專案視訊,能夠把它寫成React專案時,我覺得已經可以了

我曾寫下這麼一段話:
javascript作為一個10天就完成核心語法的語言,
一步步在web前端摸爬滾打,依靠著薄弱的語法基礎,
在漫長的時間使用原型模仿類的概念,利用模組模擬包的概念,
直至ES6,js終於擺脫了自身的束縛,脫胎換骨——一身華麗的戰甲披身,
凌亂的頭髮也梳妝整齊,手持node長槍,威臨天下。
成為程式設計界一大戰將,征伐各個領域。一部前端史便是javascript的奮鬥史


8.Canvas與SVG的相遇

首次接觸是在前端,canvas作為html5的新標籤,蘊藏著強大的能量
曾在Android簡單玩過,這次前端的canvas讓我領略到繪製的奇妙
SVG更是令我深深折服,開起來對前端的另一個視角
雖然是JavaScript控制的繪圖,但和Android異曲同工
也為我之後Android的繪圖打下了堅實的基礎(下圖為Canvas的手寫小例子)

知無涯,行者之路莫言終(我的程式設計之路)


9.與Python的三天相處

感覺哪哪都在談Python,剛好兩端已經融合,想消化消化再回安卓
六月尾玩了一下Python,感覺語法特別扭,沒有逗號還好說,沒有大括號簡直尷尬症都犯了
第一天上半天語法如入手,如何面相物件,如何檔案操作,感覺和JS的ES6挺像的
下午就開始玩numpy包了,矩陣玩起來還蠻爽的,然後Matplotlib畫畫圖,
第二天影象包Pillow,數了些花生,玩了一下圖片的色彩調節和字元碼圖片
基本操作和JS很像,拿到畫素後天下我有,所以並沒有耗費太多時間
第三天在玩爬蟲,也造出了一個小爬蟲,可以爬出一個網頁的所有圖片
只有三天,我便不深入了,畢竟吾心是屬於Android,不過Python真的挺好玩,庫多!

知無涯,行者之路莫言終(我的程式設計之路)


四、我的博文分享

1.SpringBoot系列

2018.07.15 我開始在簡書上寫個小系列總結一下SpringBoot
目的是檢視比較方便,一般在公交車上拿著pad看,當然也想多少攢點人氣
SpringBoot系列每篇都挺短的,有時候哪裡忘了,可以快速找到看看
就這樣一點點寫了一個入門的小系列,當然看得人也不是很多(現在也是)


2.斷劍重鑄,騎士歸來--重返安卓

可以說我是帶著滿腹經綸重回安卓的,我開始從頭梳理Android,取名Android技術棧
然後基本每日一篇,一直維持到現在,前期的水平有限,篇幅不是很長,點也不是很深
然後10月份迎來了我的Android的第三次瓶頸:資料結構+原始碼的閱讀力非常弱,還有英語的侷限
我開始決定去再看一下資料結構,資料結構大概修煉了六七天,感覺和第一次相比判若兩人
三端的貫通和邏輯的把握程度,讓我hold住了到紅黑樹為止的資料結構,感覺已經夠了
接下來試著讀讀原始碼,從我最熟悉的ArrayList開始,發現和學資料結構時寫的總體思路一致
然後是HashMap,栽在了紅黑樹的相關操作上,感覺也差不多了,讀碼的能力稍微強了一些

曾寫過這樣一段話: 感覺有時候看原始碼有點像在風景區看風景,抱著的態度決定你的歷程,
那些漫步於風景中的人會著眼當前,收穫每一個瞬間帶給自己的感觸。
那些苛求踏遍每一份土地,覽盡一切風光的人,倒是捉襟見肘,讓行程變得勞頓。
後者或許覽盡風光而無憾,前者雖只覽片景卻仍收穫頗豐,然而這並沒有好壞之分,
只有對你適合與否。

接著就是對網路的socket的整理,從java到Android
然後使用線上的伺服器進行測試,也加深我對TCP和UDP的理解
最大的收穫便是完成了五子棋的雙人網路對戰

知無涯,行者之路莫言終(我的程式設計之路)


3.在掘金髮文和認識一些人

11月初,也是我Android原生繪圖系列寫了兩篇的時候,柚子茶邀請我在掘金髮文
在能讀原始碼之後,我在呼叫方法時會時不時去原始碼裡瞅兩眼,使用深那麼一丟丟
Android原生繪圖系列自認為是非常不錯的,也這個系列認識了鴻洋(我時不時向他投稿)
曾經他的視訊和教程曾給我很大的幫助,認識他我非常開心
之後的博文我開始注重質量和篇幅,能用一篇的就不用分兩篇,因此被誤認為大佬


4.看得見的資料結構給我帶來的變化

當時是11月21號,突發奇想--可以畫資料結構,源於對Android繪製能力的信心
用了5天,寫了八篇資料結構的詳解,並完成了Ds4Android的繪製與互動
當時想:如果遇到一座山擋路,大多數人都會選擇繞過去,怕爬不過再返回更浪費時間
山下的平路儘管障礙較少,但高度提升的很緩慢,雖然你確實在走,但視野會受限
而我想要去爬,因為我是想要見證風采的,如果目標是巔峰的風采,這個小山坡豈能攔我
結果還不錯,可以說非常滿意,或者超過預期,此等風采只有親臨方知。
可以說我並未攀上山頂,被AVL樹攔住了,由於要旋轉,節點高度經常變,
我根據節點高度控制分叉的角度,不然第三層就會出現遮擋問題...
我看到的風采已經超乎預期,沒必要去再往上了,畢竟還有更重要的事
然後懷著半山腰的風采前行,我是"登山"失敗,但收穫也非常多


5.逐漸前行

從建站的四部曲和Flutter七日,一步一個腳印不斷前行
當然還有很多待提升的地方,如併發和jvm,深入瞭解一下kotlin
打算2019年3月尾出山,閉關修煉,為期一年。還剩三個多月
把還沒總結的東西繼續總結,下一點是多媒體相關,並逐漸轉用kotlin
安卓的Binder機制有待了解,路漫漫其修遠兮,吾將上下而求索
現在我也並不是什麼大佬,但將來會是,畢竟我的目標只有頂峰以及那片未知的風采


2019年標籤:向那些曾經無法跨越的鴻溝敬上——君臨

目標:1.找個工作 2.哪裡不會點哪裡

知無涯,行者之路莫言終(我的程式設計之路)

相關文章