前言
作為一個程序員,如果你在新知識、新技術面前仍一無所知,依然吃著十多年前的老本,那你在知識技術上肯定落伍,如果又未能進入管理層面,那你肯定就會被長江的后浪拍在沙灘上了。
而不少與時俱進、善于學習的程序員他們仍是行業的中堅力量。這只是說明當今世界靠一招鮮走遍天下,吃終身的時代已經過去了,一個人必須得活到老學到老才能行走于天下。
我在平時的工作之余也會翻一翻大廠的面試題,讓自己時刻保持面試技能,同時也能了解大廠對技術的需求,以備不時之需,“生于憂患,死于安樂”,古人誠不欺我啊。
下面給大家分享一個我自己工作幾年以來總結的系統性成長進階路線,分享給大家做一個參考。
40個改變編程技能的小技巧
1、
將大塊代碼分解成小函數
2、
今日事今日畢,如果沒畢,就留到明天。
如果下班之前還沒有解決的問題,那么你需要做的,就是關閉電腦,把它留到明天。
中途不要再想著問題了!
3、
YAGNI原則
「You aren’t gonna need it!」
你自以為有用的功能,實際上是用不到的。除了要求的核心功能,其他功能一概不要部署。
這一原則的核心思想是,盡可能快、盡可能簡單的將軟件運行起來。
4、
不必全知全能,但基礎一定要扎實
比如學習一些基礎知識,SOLID原則,如何寫干凈的代碼等等。
5、
KISS原則
「Keep it simple,stupid.」or「Keep it stupid simple.」
,一種程序設計原則。
大多數系統往往「最簡單」,運行效率最高,但實際操作起來并不簡單。
6、
別想太多
7、
被問題/Bug卡住時,walk away!
不過還是要記得回來。
當你走在去上班、去廁所、去散步的時候,也許就能想到解決方法。
尤其是在與客戶、同事生氣時,甚至關乎你工作去留的時候,效率會更高。
8、
學會寫測試代碼TDD
TDD是一個軟件開發過程,它依賴于重復一個很短的開發周期:寫一個測試,運行所有的測試,看看新的測試是否失敗,寫一些代碼,運行測試,重構代碼,重復。
9、
先分解問題再開始寫代碼
不要不知道怎么做就開始寫代碼。
10、
代碼不要死記硬背
要理解邏輯。
11、
學好用好Stack Overflow
如果你復制粘貼一個Stack Overflow解決方案,請一定要確保已經理解了它。
12、
不要「光學不練」
如果你想學點什么,就去練習,光學是不夠的。
13、
與小伙伴互相審查代碼
研究別人的代碼,讓別人時常研究你的代碼。
互幫互助,共同進步。
14、
Don’t Reinvent The Wheel
「不要重新發明輪子。」
充分利用已有的經驗和成果,避免不必要的投入和浪費。
15、
你的代碼是最好的文檔
16、
懂得如何搜索
對于這一點,你需要有經驗以及讀很多書,才知道要找什么東西。
17、
寫代碼時要之后維護考慮
你的代碼將來需要你自己或者別人來維護。
所以,寫代碼的時候要考慮到讀者,而不是想成為最聰明的人,讓它讀起來就像在讀一個故事。
18、
復制粘貼
用谷歌、百度解決錯誤的最好方式就是「復制粘貼」。
19、
不要放棄
到最后,不管用什么方式,問題肯定會解決。
20、
休息、休息再休息
解決問題的最好方法是有一個安穩的心態。
21、
學習軟件設計模式
設計模式是軟件設計中常見問題的解決方案。每一種模式就像一個藍圖,你可以自定義來解決代碼中常見的設計問題。(不要重復發明輪子。)
22、
使用集成工具
盡可能實現自動化。
23、
Do code katas.
「Code kata」是編程中的一種練習,可以幫助程序員通過練習和重復來提高他們的技能。
24、
依賴注入是一個要求
編程到一個接口,而不是implementation。
所謂依賴注入,就是組件之間的依賴關系由容器在應用系統運行期來決定,也就是由容器動態地將某種依賴關系的目標對象實例注入到應用系統中的各個關聯的組件之中。
25、
重構-測試-重構
重構是一種對現有代碼進行重組的技術,在不改變其外部行為的前提下,改變和改進其內部結構。
26、
及時尋求幫助
不要浪費時間。
27、
Practice makes perfect.
業精于勤。
28、
不必太在意評論
雖然有時評論可以幫到你,但不要太過在意。他們可能已經過時了。
29、
了解你的開發環境
了解你的開發環境,并invest一個足夠強大的環境,如,IntelliJ。
30、
復用組件
31、
考慮相關限制
在開發網絡應用時,要考慮到移動優先以及相關的功率和帶寬限制。
32、
不要過早優化或重構
更重要的是盡快擁有一個最低限度可行的產品。
33、
不要投機取巧
千萬不要為了節省幾分鐘的時間而選擇效率低下的捷徑方式。
「Every time you code, give your best!」
34、
遵循規定的標準
35、
用戶不是技術人員
當你開發你的UI時,需要考慮到這一點。
36、
堅持使用Github或bitbucket
可以進行小規模、頻繁的git提交。
37、
記錄所有關鍵部分
記錄系統日志比調試代碼更好。
38、
風格保持一致
如果你使用一種風格,請總是使用相同的風格。
如果你和更多的人一起工作,對所有的團隊都使用相同的風格。
39、
Don’t stop learning
但比起學習新語言或框架,更要注重學習軟件開發的基礎知識。
40、
patience and love
最后,對你正在做的事情保有足夠的耐心和熱愛。
寫在最后
最后我想說:對于程序員來說,要學習的知識內容、技術有太多太多,要想不被環境淘汰就只有不斷提升自己,從來都是我們去適應環境,而不是環境來適應我們!
這里附上上述的技術體系圖相關的幾十套騰訊、頭條、阿里、美團等公司2021年的面試題,把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由于篇幅有限,這里以圖片的形式給大家展示一部分。
相信它會給大家帶來很多收獲:
上述【高清技術腦圖】以及【配套的架構技術PDF】可以點擊下面鏈接免費獲取
Android學習PDF+架構視頻+面試文檔+源碼筆記
g-gSNuzlBf-1621871127757)]
[外鏈圖片轉存中…(img-1HYBn5lB-1621871127760)]
上述【高清技術腦圖】以及【配套的架構技術PDF】可以點擊下面鏈接免費獲取
Android學習PDF+架構視頻+面試文檔+源碼筆記
當程序員容易,當一個優秀的程序員是需要不斷學習的,從初級程序員到高級程序員,從初級架構師到資深架構師,或者走向管理,從技術經理到技術總監,每個階段都需要掌握不同的能力。早早確定自己的職業方向,才能在工作和能力提升中甩開同齡人。