每個程式設計師應該精挑細選和打磨他的工具箱,這裡推薦的東西都是本人使用頻次比較高的,不是奇淫巧技,也不需要花很多時間,但是會讓你收益超額的,至少對我來說是這樣的。
這是很有誠意的一篇文章,你可以選擇一笑而過,也可以默默收藏。
一個自己的部落格
筆者從大學就開始寫部落格,從 WordPress 到自己用 JFinal 寫了一個,中間有斷了幾次,不想再續費伺服器,對寫的東西也不太滿意,索性用 Github Pages + hexo 重新開始寫。
個人覺得寫部落格,首先是為自己而寫的,其次可能對他人有幫助。單純地閱讀而不思考收穫會大打折扣的,寫出來就是一個行之有效的思考整理過程。
我推薦用 Github Pages + hexo 的方式,一開始你可能和我一樣寫的不好,沒什麼人看,記住,首先你是給自己寫的,堅持原創和記錄,你會變的更好,等覺得拿的出手了,可以開始在一些平臺上發表,比如掘金,簡書。
花半天時間把自己的個人部落格給搭建起來吧。
Shadowsocks
不能用 Google,就失去了世界上最大的百科全書的使用權,這個損失是巨大的!每天都會遇到無數問題的我們,學會越過這道牆成了一個必備的技能。
我建議自己買一臺國外的伺服器,AWS、阿里雲等,最低配就可以了,可以幾個人一起用,分擔一下費用,穩定又安全,還可以在上面折騰點別的,這點投資我覺得是超值的。By the way, AWS 有一年的免費額度,阿里雲也在搞活動,¥330 一年的(香港)國外節點。如果還是覺得麻煩,那至少應該去買個賬號吧。(真的沒收廣告費)
搭建一個這樣的服務真的超級簡單,幾行命令就能搞定。
服務端和客戶端教程都可以在上面找到,如果有伺服器的前提下,大約花你 30 分鐘就能使用全球最大的百科全書了。
git & github
git 是個偉大的協作和版本管理工具,這幾年經過社群的傳播和國內越來越多 git 程式碼託管平臺的崛起,現在 git 應該碾壓烏龜 SVN 作為很多團隊和公司的首選版本管理工具了,如果你還沒有開始使用 git ,很遺憾你已經拖後腿了。
作為全球最大的源(程)代(序)碼(員)託(社)管(交)平臺 github ,以前我還不知道它有什麼用,和很多人一樣,註冊之後很長時間裡面就放了幾個 Demo ,然後就不怎麼管了。以前寫程式碼就是蒙著寫,不會就 Google 一下,不小心就會造一個重複的輪子出來 (SQLiteUtils: 實際是 4 年前寫的,後來改了名字重新上傳),這樣其實是很不好的,閉門造車不僅僅是浪費時間,還可能阻礙了你的認知,自我感覺良好而已。移動網際網路的快速發展,尤其是 Android ,湧現了很多優秀的開源作品,大家也開始會用 github 去搜尋,收藏一些好的作品,學習並使用到自己的專案中。如果你只去使用那些公認足夠 solid,有完整翻譯過來的中文文件,百度一搜就有一堆答案的 library 或者 tools,可能你已經落後新生代的程式設計師一大截了。另外如果你有留意,越來越多的公司都把簡歷上的技術部落格、 github 作為一個非常重要的加分項了,反正我在寫 JD 和麵試之前真的會去翻看對方的部落格和 github 倉庫的。
要寫出好的文章,閱讀大量的優秀文章是必不可少的;要寫出優秀的程式碼亦如此,學會參與到一些開源專案中 ( 使用它;給它提建議和bug;動手修改它,提交你的 PR ),學著自己動手構建一個開源專案和維護它,這件事情需要極大的熱情,但你會得到同行的支援和認可,為你的職業生涯添磚加瓦。
開啟看到這麼多東西,你可能又退回去使用你的烏龜了,我的建議是先註冊個 github,簡單瞭解一下 git 的原理和一些簡單的命令,常用的命令其實非常少。git 的學習成本相對高,你可能至少花半天的時間去仔細研究一下,並且需要後面不斷去總結和精進,當你熟練掌握的那一天,你一定會感激當初的自己。
持續整合(CI)
如果你在搭建自己的小網站,那麼第一件事應該是讓你的程式碼一寫好然後就能一鍵釋出到伺服器上,這個技能就叫持續整合(continuous integration)。當然這個是狹義的解釋哈。優秀的程式設計師應該有一個強烈的意識:dont repeat yourself. 不要做重複的工作。如果你是和我一樣的 Java 程式設計師,每次打包上線重複著:修改配置 -> 打包 war -> 登入 ftp 上傳 war 包 -> ssh 登入伺服器釋出,答應我,從今天開始不要浪費時間做這些重複的動作了。記住,看起來差不多重複的流程都可以通過寫一些程式碼來完成。
在瞭解 jenkins 前,先看下我常用的一段釋出指令碼可以幫助你理解這個流程,以下的指令碼是在伺服器端執行的。
#!/bin/bash
TOMCAT_HOME=~/tools/apache-tomcat-9.0.0.M26
cd ~/sources
// 把專案原始碼從 git 上覆制下來
if [ ! -d "RAP" ]
then
git clone https://github.com/YeDaxia/RAP.git
cd RAP
else
cd RAP
git reset --hard
git pull
fi
// 切換到釋出的分枝
git checkout release
echo "current branch is :"
git branch
// 替換正式環境的配置檔案
cp -f ~/deploys/rap/config.properties ~/sources/RAP/src/main/resources/
// 打包 war
mvn clean
mvn package
// 複製 war 到 tomcat 目錄下
cp target/*.war ${TOMCAT_HOME}/webapps/ROOT.war
// 把 tomcat 給停了,因為 shutdown.sh 經常有問題
#kill all java process
ps -ef|grep java|grep -v grep|cut -c 9-15|xargs sudo kill -9
//啟動 tomcat
sudo sh ${TOMCAT_HOME}/bin/startup.sh
複製程式碼
CI 的過程,就是你提交程式碼到 github 或者其他程式碼託管平臺,然後觸發一個 webhook 請求呼叫伺服器端類似上面的一個過程的程式碼。
總之 CI 其實就是一件一勞永逸的事情,上面只是舉個例子,無論你是 Android 程式設計師還是 PHP 程式設計師,你都應該花點時間掌握這個技能,你可能要學習一下一些構建工具,一點 linux 命令,這可能會麻煩一些,但是這是值得的。
Vim
學習vim就像學彈鋼琴一樣,一旦學會,受益無窮。
不要誤會,我自己也是一個 IDE 程式設計師,除了裝B,基本這是程式設計師繞不過去的一個工具,只要你還想自己搭建個伺服器,做點東西。
登入你的 linux 系統,花半個小時跟著玩一下。不要和我一樣幾年後才意識到去使用那些快捷鍵,之前都只會愚蠢地使用左右上下,非常低效啊。用進退廢,換了 idea 後,eclipse 的快捷鍵基本就忘的差不多了,我聽說有人用 vim + markdown 來寫部落格的,我現在用的是有道筆記,我覺得這個可操作性還是有的,可以去嘗試一下。
命令列視窗
只會用 ↑ ↓ ← →來移動游標真的很低效,很受不了!
ctrl + u : 清除當前行
ctrl + a : 到命令列首
ctrl + e : 到命令列末
tab: 自動完成
↑ ↓: 命令歷史
複製程式碼
Chrome Bookmark
你用什麼來收集那些小的知識點和一些不錯的站點呢?我的答案就是 Chrome 自帶的書籤了。註冊一個 Google 賬號,它會同步好你的書籤,永不丟失。
chrome://bookmarks
複製程式碼
用這個命令可以進入書籤管理器,定期清理,有價值的留下,這樣你的個人知識庫了就越來越豐富了。亮一下我的書籤:
好吧,就先介紹到這吧,夜已深。
技術交流群:70948803,大部分時間群裡都是安靜的,只交流技術相關,很少發言,不歡迎廣告噴子。