當您是銀川軟件開發人員時,軟件開發不是您的問題。問題是能夠在團隊內部進行有效的溝通和工作。一個團隊不僅是其他開發,測試,功能設計,業務,架構師,項目負責人等。與所有人保持良好的關系比在開發上好更加重要。
至于實際的軟件方面,學習了解該領域的基本性質,將有助于學習其他技能??蚣芎蛶煜嗷ヒ蕾噥韯摻ㄐ鹿δ?。如果您了解為什么一個庫可以工作,它解決真正問題是什么,你會發現它的局限性,然后你可以理解甚至預測新的庫的解決問題的方式有什么不同。
在銀川軟件開發領域有一定諷刺意味,我們非常離散地將其歸零。但事實是,解決問題的方法通常不像您想象的那樣二元化。解決問題的方法很少有“正確的方法”,但是解決問題的方法通常有多種,每種方法各有優缺點。做出正確的,有根據的猜測,這將使您今天和將來都更接近真正的解決方案。這是該領域變得更具哲學性的地方,您可能會迷失于各種理論推理中。在這里,技術技能變得更加柔和,與您的隊友(所有學科和技能)進行交流的挑戰變得更加重要。
學習基礎知識是很重要的。如果沒有基礎知識,你將永遠處于掙扎之中。
學習:
1. 數據類型和編號系統
a. 位
b. 字節
c. 單詞
d. 二進制,十六進制,八進制,十進制
e. 字符
f. 寬字符
g. 整數(有符號和無符號)
h. 浮點數
i. 指針
2. 數據結構
a. 單鏈表
b. 雙鏈表
c. 數組
d. 棧
e. 隊列
f. 哈希表
g. B型樹
3. 垃圾收集的基礎知識
4. 遞歸
5. 閉包
6. 面向對象的概念
a. 封裝
b. 繼承
c. 多態性
7. 函數式編程原理(lambda等)
8. 異步主體
9. SQL
10. 操作系統
a. Windows
b. OS / X
c. Linux
11. 通訊技術
a. SSH(Linux世界)
b. RDP(Windows世界)
12. 語言能力
a. 匯編程序
b. C
c. Java或C#
d. HTML / CSS
e. JavaScript
f. Common Lisp
13. 計算機網咯
a. 套接字
b. HTTP協議
c. JSON格式
d. XML格式
e. REST
f. SOAP
14. GIT源代碼管理系統
盡管其他人(我)可能認為其他SCM系統在商業世界中更為合適,但GIT似乎已席卷整個行業。很少有人對替代品感興趣。
15. 框架
初學時無需了解框架。但是,隨著您越來越有經驗,您將期望了解更多。學習框架實際上是一項永無止境的任務。不要讓任何缺乏知識的人阻止你。檢查您當地的工作清單以學習什么。像:
i. Angular
ii. React
iii. Spring
iv. Hibernate
v. 還有很多選擇
(應該注意的是,我不推薦上述框架。我只是在評論流行的框架。)
16. 開發負責人
17. 不要低估人際交往能力。盡管您擁有知識或能力,但他們很容易使您成敗。此外,我學到的三個主要規則是:
a. 要可靠。除非有正當理由,否則請準時參加工作并全天候待命。
b. 演講。除非您的工作如此,否則請不要對您的雇主,同事,主管,公司的產品,供應商或客戶說壞話。不要爭吵。
c. 保持專注并按照指示去做。
在銀川軟件開發領域有一定諷刺意味。但事實是,解決問題的方法通常不像想象的那樣二元化。解決問題的方法很少有“正確的方法”,但是解決問題的方法通常有多種,每種方法各有優缺點。做出正確的有根據的猜測,讓你今天更接近真正的解決方案,也是明天的挑戰。這就是這個領域變得更加哲學化的地方,你可能會迷失在各種各樣的理論推理中。也是技術技能變得更加微弱的地方,與你的團隊成員(所有的訓練和技能)進行溝通的挑戰變得更加重要。