全文共2738字,預計學習時長5分鐘算法
圖片來源:Unsplash編程
想成爲軟件工程師嗎?必須上大學才能成爲優秀的軟件工程師嗎?相比於漫長的大學生活,有想過上個短時間網課,而後找工做嗎?微信
若是以爲上述問題頗有趣,這篇文章就能帶來一些啓發。網絡
成爲軟件工程師數據結構
大多數人都會說,這是一個很好的職業選擇,說的沒錯。架構
現在,成爲一名軟件工程師益處多多:框架
· 工做既有趣又有挑戰性機器學習
· 社交活動數據結構和算法
· 商務旅行編程語言
· 友好靈活的工做環境
· 遠程工做的可能性
· 緊跟科技發展
· 優厚的薪水
· 等等
在軟件公司,天天均可能學到新知識。在這個更新換代極快,充斥着各類各樣技術的產業,人們沒法作到無所不知。
此外,軟件工程師們性格各異,愛好普遍,所以總能從同事身上學到新東西。這個道理不只適用於IT行業,各行各業皆是如此。
與志趣相投的人相處老是趣意橫生。IT部門有不少社交活動,例如團隊建設、會議、編程馬拉松和聚會等。
軟件工程師能隨時對各項流程——從開發到高級管理,提出改進建議。
該行業的獨創精神體現爲積極性、主動性和完美主義,這一般會給同事和經理留下好印象。固然,軟件工程師也有作本身的自由,並幫助營造適合自身和同事的辦公環境。
IT領域充滿活力,在作本身的同時可以嘗試各類各樣的新鮮事物。總的來講,能給人帶來無限快樂。
但要成爲軟件工程師,就必須掌握一些計算機科學和軟件工程方面的基礎知識。
可經過如下兩種途徑獲取所需證書:
· 大學途徑
· 非大學途徑(線上課程和IT學院)
非大學途徑
上網課
網課(如Udemy、KhanAcademy、Coursera等線上學習平臺的課程)是收集高質量信息最可靠和便捷的方式。
網課提供的資料有合理的結構和清晰的解釋。
但一般在自學新概念時,人們可能沒法正確理解。若是周圍沒有人能告訴咱們是否理解得準確,這將很糟糕。
網課的另外一個缺點就是互動性差,在軟件工程師的準備工做或其它領域中,互動性很是重要且不容錯過。
社交是一個健康的習慣。
「演唱會不僅是唱歌,更多的是與粉絲互動」。——Post Malone
這個道理也適用於軟件工程。
「我認爲軟件工程不僅是編碼,更多的是與人互動」。——Daniel Gospodinow
老實說,網課的目的不是爲謀求軟件工程的職位作充分準備,而是具體教授某一主題的知識。除非當事人已經具有了必定的軟件工程知識,不然這種方法效果不太好。
若是第一份工做或實習是在小軟件公司,網課就足夠了,這些課程能夠解釋一些基礎知識,好比編程語言、數據結構和算法。
被錄用後在工做中學習新知識也是能夠的。但隨之而來的問題是:「這真的足夠嗎?」並不徹底是,由於會錯過不少推薦話題。
在網課中錯過的計算機科學和軟件工程基礎知識是很難彌補的。更嚴重的問題是,當事人甚至都不知道本身錯過了哪些課程。
並且在某些時候,一旦人們跟不上概念更新的速度,就會有放棄的念頭。
網課不是強制性的,人們也沒有義務要完成,因此就很容易半途而廢。相反,下面展現的途徑就和網課不同。
IT學院
就像網課和大學的混合。
學院相對較短——和網課相似,又有社交方面——和大學相似。
就像網課,這種途徑要求學生積極主動。
學院課程相對集中,目的是讓學生針對工做中所指望的事情有所準備。
特定的編程語言、基本算法和數據結構、特定語言的框架、單元測試、版本控制系統、項目管理系統(最終)、持續集成軟件(最終)等。
此外,學院有助於提升軟技能和團隊合做能力,這是網課沒法教授但頗有用的技能。
學院爲應聘軟件工程師提供了萬全準備,但先前的問題仍然存在:「這真的足夠嗎?」
這種途徑提供了優秀的實踐技能,但仍然沒覆蓋到不少的計算機科學和軟件工程實踐和理論基礎。
大學途徑
有些人討厭大學,以爲是一個煉獄般的旅程——艱難,漫長,甚至在某些時刻毫無用處。
有些科目和講師很是糟糕,這會在一段時間內毀掉學生的生活。但無論怎樣,大學的優點絕對大於劣勢。
談論到大學裏討厭的事情時,除了計算機科學學位,斬獲冠軍的是——數學。
你們討厭數學的理由各不相同,可是,數學是得到計算機科學學位的基礎,在未來的某個時刻,數學總會派上用場。
可能有人會說:「但願在必要的時刻再學習這些科目。」但不要低估數學,你們都是過來人。
數學是機器學習、人工智能、計算機圖形學、密碼學等領域的必備技能。
數學還能提升解決問題的能力,這種能力也是成爲軟件工程師的基礎。還有許多其它科目被多數人討厭,但總的來講,它們都必不可少。
若是尚未從事過軟件工程師的工做,就很難看出哪些是值得了解的,哪些不是。
大學學習是軟件工程師的堅實後盾,其中囊括了他們應掌握的全部知識——數學,操做系統,計算機架構,計算機網絡,計算機圖形學,功能編程,軟件架構,軟件工程過程等。
更棒的是,不少大學還提供額外課程——物聯網、機器學習、密碼學等等。這些領域的基礎知識有助於學生成爲一名優秀的軟件工程師。
涉獵計算機科學和軟件工程衆多領域能讓學生最終找到感興趣的領域並樂在其中。
學生也會明白本身該應聘什麼公司的什麼職位,如開發人員、質量管理人員、系統管理員等。
除此以外,大學還提供了普遍領域的基礎知識,若是想換工做,大學的學習也有所助益。
社交。毫無疑問,這是大學最重要的益處,和聰明且有抱負的人交朋友老是益處多多。
和一羣有抱負的人在一塊兒一定前途無量,不少軟件初創公司都是由大學生創辦的。
許多著名的軟件庫、框架、語言甚至整個產品都是從大學項目開始的。
通常來講,不少開創性的、改變世界的想法都是由一羣雄心勃勃的大學生提出的。
另外一個加分項就是,多年來,許多我的和團隊項目都向學生提出了將來工做中可能遇到的實際問題。
這些項目都能使學生的簡歷增光,提升了被錄用的可能性。
擁有計算機科學學位的學生在應聘軟件工程職位時是一個不同凡響的應聘者,對公司來講也是一個很不錯的選擇。
這個學位自己就代表,該學生了解核心的計算機科學主題,社交技能水平相對較高,這已然是勝券在握了。
若是真的想成爲一個擁有普遍知識基礎的優秀軟件工程師,大學是更好的選擇。
「好事多磨,在長跑中更是如此。」——Bill Dellinger
結論
大學不該被低估。然而,人們也能夠在沒有大學學位的狀況下開始軟件工程師生涯,成爲一名優秀的專業人士。
老實說,上方提到的學習途徑一種是不夠的,應當結合起來。任意兩種(大學、學院和網課)組合在一塊兒纔是高效的備戰策略。
留言 點贊 關注
咱們一塊兒分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」
(添加小編微信:dxsxbb,加入讀者圈,一塊兒討論最新鮮的人工智能科技哦~)