追求進步的同窗都關注了「1024譯站」前端
這是1024譯站的第 29 篇文章 程序員
原文:https://dev.to/duomly/soft-and-hard-skills-you-need-to-be-a-good-developer-5ah4
翻譯整理:大道至簡web
每種職業都有其特殊的要求。例如,要成爲一名醫生,你必須瞭解生物學,完成醫科大學。做爲一名教師,你須要獲取資格證,還要關心學生。算法
一樣,當你決定成爲一名程序員時,除了你學到的主要技術外,還有一些常見的硬技能和軟技能,每一個開發人員都應該具有。本文就來分享一下我認爲在程序員的工做中相當重要的軟技能硬技能,各有 5 項。數據庫
每一個程序員都該具有的 5 項軟技能
根據大部分人的刻板印象,程序員就是一我的坐在地下室裏,用電腦像變魔術同樣開發出各類軟件,好久不和任何人說話。這純粹是對開發人員羣體的誤解,由於溝通是咱們工做中很是重要的一部分。編程
首先,爲了理解咱們將要實現的項目需求和解決方案,咱們必須與團隊中的其餘人進行溝通。每一個人都不肯看到由於誤解而犯錯的狀況。這就是爲何開發人員在工做中須要良好的溝通技巧。後端
除了溝通技巧,團隊合做也很重要。做爲一個團隊,能夠作得更多,拿出更好的解決方案。當你須要實現某個功能時,最好與團隊中的同事討論一下,特別是之前沒有作過的事情。有些人可能已經作過這種解決方案而且有了能夠分享的經驗,順便說一下,你就能夠學到一些新東西。安全
程序員的工做主要是解決問題。每次我要建立不一樣的東西時,我都必須找到最好的解決方案,同時還要考慮業務需求和程序性能。微信
若是你如今以初級程序員的身份開始職業生涯,或者你剛開始學習編程,你會發現解決問題的能力有多麼重要。在這以前瞭解它是很重要的,不要氣餒。數據結構
我認爲,這個工做很大的一個優點就是天天都在解決問題。你不會感到無聊,天天都要面對不一樣的問題,或者即便是相似的問題,你也會盡力找到更好的解決辦法或者嘗試不一樣的方法去解決。
即便你一開始常常容易放棄,你也有可能學會如何解決問題,經過完成任務打怪升級。若是你以爲某個問題不可能解決,那請記住每一個問題至少有一個解決方案。想一想以前那個根據手機殼顏色更換 App 主題的產品需求,還真能作到。
你可能很好奇,爲何好奇心在程序員的工做中如此重要。這很好,由於你開始好奇了,哈哈!但說真的,一個好的程序員能學會不少東西,而且對技術、新解決方案等很感興趣。
若是你對新技術的工做原理感到好奇,你想盡快學習一個新框架,並嘗試去用它,看看它是否比其餘東西更好,這是一個好消息。
做爲一名程序員,學習將成爲你生活中的一大部分,因此讓編程成爲你的愛好也很重要。這樣,看到新的技術出現須要學習的時候,你就不會感到力不從心,表示「別再出新框架了,學不動了」。
此外,好奇心可能會引導你加入程序員社區,在那裏你能夠學到更多東西,也能夠分享你的知識。
正如我以前提到的,在編程中,不少東西都在改變。新的框架、庫、技術和方法不斷出現。幾乎每一個項目都有不一樣的設置,你必須快速適應新狀況和新環境。
若是你是那種樂見變化的人,而且在事情一成不變時很容易感到無聊,那麼你可能會發現本身適合作一名程序員,並能從這份工做中得到不少樂趣。
此外,一直以來,不一樣的框架受歡迎的程度不一,因此若是這對你不構成問題的話,它也會幫助你在市場上被注意到,並且你可以輕鬆適應公司使用的新技術。
在每一份工做中,工做與生活的平衡都是很是重要的。當你是一名開發人員時,一般有靈活的工做時間,在這種狀況下,可以正確地管理時間是很是重要的。
若是你知道如何計劃你的工做,並能估計你須要多少時間來完成一項特定的任務,這是一項很是有用的技能。不然,你可能會致使這樣一種狀況:你會爲了各類雜事疲於奔命,而後老是沒日沒夜地工做。
此外,你須要找時間學習,因此記住,有時你須要一兩個小時的私人時間來了解最新的技術,這點很重要。
說完軟的,再來講硬的。
每一個程序員都該具有的 5 項硬技能
程序員須要瞭解編程語言和框架,這一點沒什麼可說的。但要成爲一名優秀的程序員,深刻了解至少一種編程語言是很重要的。
若是你可以嘗試學習另外一種編程語言,並對它們之間的差別有一個概念,那就太好了。
選擇哪一種編程語言做爲你的主要語言,取決於你本身和你想要解決的問題。你能夠看看值得學習的編程語言排名,看看你是否能夠選擇任何你感興趣的。
在開發人員的工做中,理解數據庫的工做方式是很是重要的。它是應用程序中保存數據的主要部分。
做爲一名程序員,你應該掌握一些基本的知識,好比如何建立、刪除、更新、插入一條記錄。若是你知道如何組織數據庫就更好了,在特定的項目中使用哪一個數據庫更好,以及爲何。
此外,你還應該可以確保數據庫中的數據的安全性。
可能有人會問,若是我是作前端開發的,還須要懂數據庫嗎?在先後端分離、職責清晰的狀況下,確實前端不須要關注數據是如何存儲的。可是瞭解一點數據庫,對於咱們理解數據結構和走向全棧開發會有很大幫助。
算法是按照某種順序執行以得到輸出的一組指令。算法不直接關聯任何編程語言,它們是解決排序或搜索等特定問題的方法。
在程序員的知識體系中,數據結構和算法應該佔有重要的一席之地。雖然不必成爲算法大牛,但常見的算法分析和實現方法應該要掌握。算法說白了就是解決問題的套路,熟悉了這些套路,解決問題更容易。
正如前面提到的,團隊合做是軟件開發人員工做中很是重要的一部分。考慮到協做,開發人員須要一種方法來同時處理一段代碼,而不破壞其餘人的工做。這就是爲何源代碼控制對於每一個程序員來講都是很是重要和必需的技能。
源代碼控制讓咱們能處理同一代碼庫的不一樣分支,並在每一個開發人員的工做完成後將其合併到一塊兒。幾乎每一個開發崗都要求這個技能,但也不用太擔憂,由於如今已經有各類圖形化界面的源代碼控制工具,即便你不習慣用命令行,你也可使用圖形界面。可是你必須理解基本的術語和操做。
爲了保證代碼在不一樣的狀況下工做,開發人員建立了單元測試。爲了確保一切正常,大多數公司都會招測試人員,可是在經過功能測試以前,檢查代碼是否正常工做而且沒有破壞其餘東西也很重要。
每一個開發人員都應該具有一些測試方面的知識,以確保所完成的工做具備必定的質量。
總結
如你所見,作一名程序員不只僅是學習編程語言的基礎知識。要成爲一名優秀的開發人員並有能力變得更好,你還須要一組特定的軟技能和硬技能。好消息是,你能夠很容易地訓練硬技能,特別是若是你對技術感興趣的話,可是提升軟技能可能須要更多的工做經歷和時間。固然,這是徹底可能的。
這篇文章列出了我認爲須要掌握的技能。若是你以爲少了什麼,或者不須要什麼,請在評論中告訴我,我也想知道你的意見。
順手點「在看」,今天早下班;轉發加關注,共奔小康路~
本文分享自微信公衆號 - 1024譯站(trans1024)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。