回覆列表
  • 1 # 姚冬-歡聚時代

    基礎數學,自學如果不是計算機、通訊、數學、物理等相關專業,那麼數學水平基本就是高中水平,即使學了一些高等數學微積分 矩陣 統計等,也過幾年就忘掉了,因為普通程式設計用不到,特別是面向應用的開發,很少用到數學,就算用到也不需要自己實現,都有第三方的庫。

    訊號處理,類比電路,圖形學,這些應用的基礎知識,也很少會用到,除非是做底層硬體或者軟體基礎設施的。這類知識自學起來學習曲線很陡峭,而且不學幾個一兩年很難有實際用途。

    編譯原理,資料庫,機器學習相關演算法和原理,也是需要很長的學習時間,很難短期見效的東西,一般做應用開發都不會用到。

    讀 寫論文的能力,自學的程式設計師自然不需要發表論文才能畢業,不用寫論文也就很少讀論文,對於計算機科學相關論文的閱讀能力很難建立,論文有一套敘事表達的方法,讀得少就很難理解。

    很難養成學術思維,不習慣用數學原理去解決問題,而是總試圖用工程的方法得到一個近似解。比如試圖用高中數學的方法去解決 迴歸分析,動態規劃,濾波器之類的演算法才能解決的問題。

    查文獻的能力,因為沒有受過系統性的教育,知識體系不完整,有些概念根本沒聽說過。學習的時候看的是中文圖書和文件,甚至不知道對應的英文是什麼,當搜尋的時候就不知道用什麼關鍵字,而真正有意義的東西通常出現在英文搜尋結果裡。

  • 2 # 小瘋瘋82

    這個還真難自學成才,特別零基礎,除非你是天才。普通人,還是報個班學吧,否則只是你自認是程式設計師了,其實離程式設計師還很遠。另外,有條件的再學學英語吧,混跡百度是很難成為好的程式設計師的。

  • 3 # 高飛54821146

    其實大多自學的都是從事it行業多年的個人站長之內的,因為想要實現自己要的功能而又沒錢外包就自學了,這類人開發出來的東西都比較實用和受市場歡迎。一般最後都是開發產品,運營產品,自主創業做CEO。至少我的人脈圈都是這樣的老闆。 自學的人更應該學一些學了就能用上的,至於高深的等你賺到錢了請人就行了。就好比我第一天學程式設計就在賺錢了,我的產品還沒開發出來我已經把它賣給好幾個客戶了。 同行都覺得不可思議,說我開發出來肯定缺陷很多,我就告訴他們,這不重要,我開發產品的目的是賣出我的想法,賺錢了招團隊升級繼續研發就好了。等你什麼都完善了市場都沒你的立足之地了

  • 4 # 補白58242941

    招人的時候,面過科班的,自學的,和培訓班出身的三種開發者。其中自學的,往往自主學習能力非常強,簡歷上做過的專案往往是一個個坑跨過來的,而欠缺的技能往往在沒做過的專案上。這種開發者只要心態好,啥都能學會,所以如果專案不急,中小企業往往更喜歡這種人才。

    科班出身的普遍就是基礎紮實,其他的知識技能因人而異,有些自學、實踐能力也很牛逼,有些大學教的都還給老師了。

    培訓班遇到的有簡歷造假的。大多數HR會幫我們篩掉,如果進來面試的簡歷上肯定沒提。注意,簡歷沒提不代表造假,我說的造假是進來面試了還在那一本正經的說著不存在的工作經歷,你不說,技術面幾個問題就能讓你說實話,結果自然刷掉。有些培訓班出來的很真誠,直說是培訓出來,這種我們會認真面。也有很多技術紮實的。

    多說兩句,現在培訓機構出來的越來越多,有些機構專門教你寫假簡歷。這樣損毀整個行業的事情害人害己。多花精力在提高學員提高技能上,而不是如何去簡歷和麵試上。

  • 5 # 幕前幕後fian

    本人省重點軟體工程專業學生,說順序

    c語言,資料結構(最好和離散數學一起學),(這個時候就可以學java了。)之後如果你還沒放棄治療,計算機組成,

    計算機網路,計算機作業系統。

  • 6 # 鉛筆C

    作為一個高中自學c語言,上了大學學電氣,畢業寫了5年plc之後,又回來寫pc程式碼,經常混跡於各種專業論壇和群聊的新新碼農,我想我是有一點發言權的。

    拋開個人能力和學歷,一個非計算機專業相關專業甚至一個連高數都沒學過的碼農和一個計算機科班出身的碼農的差別,主要在於系統的掌握程度不同。

    同樣能力的人,學習的專業不同,如果非要比計算機能力,那當然是科班的強出一大截,畢竟3-4年的基礎學習時間擺在那。如果非科班生多花3-4年時間來系統學習計算機,不會差。

    那現在社會上經常放在一起對比的往往不是在一個起跑線的人,計算機科班生,至少是個大專吧,而非科班(大多時候指培訓班)的人裡有很多是高中學歷的,這樣比較是不合適的,至少要拿一個本科計算機和同檔次本科其他專業學生來比,這樣才是實力相當。但是上過本科,大部分人更願意選擇專業相關的或者公務員或者管理崗位,重新學計算機的比例很小。

    計算機系統知識也就是計算機組成原理,資料結構,網路原理,作業系統,編譯原理。剛開始這些知識並不見得能有多少用處,但是越往深學,越往深處寫,這些知識的作用會越來越明顯。

    有人說還需要熟練的高數知識,其實未必。高數這門課,要麼幾乎用不到,要麼完全不夠用。就算是做系統級的開發,也不一定需要用到多少高數的知識,真正需要高等數學和更高層次的數學知識的是演算法工程師,比如現在很流行的大資料工程師。工業的視覺應用都有大量現成的演算法庫,你說我要用高數做什麼,我又不需要開發新演算法。當然也不是說高數就不用學了,至少學完之後聽人家說高大上的理論不會一臉懵逼。

  • 7 # 大馬士革賣豬肉

    我大學是文科專業,但是我不感興趣,就自學計算機,一開始什麼都不懂,不知道從哪裡學起。天天泡網上,選修計算機專業課程,但是也只選到資料庫原理。考了二級三級,後來網上看到軟考,又自學了相關課程考過了軟考,覺得英語挺重要,大三把cet6過了。一畢業就去當程式設計師了,得心應手,後來換公司外派海外一直到現在。

  • 8 # 安茲烏拉恭

    我自己也不是計算機專業的。當初招人的時候也不怎麼看出身。

    目前來說我沒發現自學成才的程式設計師缺少技能。

    其它答主有提到一些專業課。這些都是可以自學的。能自學成才就不怕。

    還有其它答主提到數學。如果你數學本身比較好就完全不需要擔心。恕我直言,計算機專業的數學我覺得,是眾多專業中對數學的要求僅算中等偏上吧。如果拿自己說事可能有自吹自擂的嫌疑,我換個人舉例,我認識一個數值策劃,我覺得我認識的絕大部分程式設計師的數學水平是不如這個策劃的。

    如果數學本身不夠好。這其實和你是不是計算機科班關係不大。不過這種屬於基本功,可能是比較難補的。

    除此之外我覺得自學成才者有個問題就是可能過於自信。當然不夠謙虛也可能是程式設計師的通病吧。我就這麼說,工作一兩年下來能夠取得進步的那些同事基本全部都是知道自己哪裡還不夠牛的那些。保持開闊的視野經常去了解一些自己還不懂的東西,不要輕易的認為自己已經自學成才了,很重要。這麼學科是很廣闊的,而且是不斷髮展的。尤其是自學出來的人,一般來說視野是不如科班的人開闊,可能沒做過的領域連聽都沒聽過。不過學海無涯,也不是說非要掌握全部的領域,精通一個就可以了。但是千萬不要因此視野狹隘就好了。

  • 9 # 你看我獨角獸嗎

    這個問題看到時有點感慨自己學習演算法這麼久還是那麼水。。自學成才的攻城獅們有個明顯的優點——學習能力很強,一個新東西學個幾天就可以上手。但同時也有個明顯的缺點,基礎不強,容易陷入某些未知領域的半知半解狀態。

    這就像三國志中一個角色只專注於某個屬性學習不放,但其他方面實在是經不起敲擊,一出場就露餡。實話說我覺得學習能力強又努力的人永遠是香餑餑,為什麼跟專業出身的人比會缺少點什麼?那只是因為時間上的積累還不夠,假以時日專業性強的那些人都是學習能力強且勤奮的那一群,這一群人才是金字塔尖,而不需去區分自學成才或民科。

    說到要補充的知識內容,計算機專業的幾大獨門心經:資料結構/演算法,計算機組成原理/體系結構,作業系統,編譯原理,網路原理等。

    資料結構/演算法:在計算機科學或資訊科學中,資料結構(英語:data structure)是計算機中儲存、組織資料的方式。通常情況下,精心選擇的資料結構可以帶來最優效率的演算法。(來自維基百科),這是修煉的內功心法之一。

    作業系統:瞭解了作業系統的原理以後,才能更好的操作我們正在使用的系統,屬於計算機的必修課程之一;

    編譯原理:如果說計算機語言是魔法咒語的話,編譯原理就是告訴你,這些魔法咒語是怎麼生效的,是怎麼透過機器碼來告訴機器我們要執行什麼動作;

    網路原理:可以說網路顛覆了我們的生活方式,萬物互聯,所以在學習計算機時要了解一些常用的網路協議;

    計算機組成原理/體系結構:這個很有趣,和作業系統有緊密聯絡,但這個是從硬體的層次上面(大部分來說)來解釋計算機的組成。

    書籍資源推薦

    1.《程式碼大全》

    這是一本神奇的書,讀《程式碼大全》與讀別的書不一樣的就是,總能找到共鳴。書中所講到的很多問題都是工作中實際會遇到的,很多經驗都是從實際工作中總結出來的。很多東西都是以往所看的其他類技術書籍不會提到或者不會重點提到的,但卻是自己工作中有深刻體會的。

    2.《資料結構與演算法分析——C語言描述》

    3.《計算機系統概論(第2版)》

    內容與《編碼》相似,都是從底層到高層,一步步地帶你瞭解計算機。 但是《編碼》卻更像是用來消遣、娛樂、科普的書。 而這本《計算機系統概論》,就是徹徹底底的教材書,一本很好的入門計算機的圖書。

    其他資源

    上圖是一張教人如何更好選擇第一門程式語言的指示圖,有興趣的朋友們需要高畫質圖請自行下載連結即可。

    下載連結:

    https://github.com/GraySilver/source

  • 10 # 蒙面侍衛

    一、知識體系不夠全面,專注於程式語言

    比如說,許多自學 C 語言的程式設計師,往往就執著於語言本身,一些關鍵字、語法掌握得很熟,卻很少去了解與程式設計相關的其他知識。比如說,編譯原理,計算機系統組成,等等。從表面上看,這些東西似乎與程式設計關係不大,但在實際應用中,系統地掌握計算機知識有助於我們更深刻地瞭解相關原理,更利於框架的設計和排錯。另外,一些與計算機學科關係密切的學科水平往往不夠高,比如英語。

    二、不夠規範

    由於自學者通常是單槍匹馬地獨幹,不用與其他團隊設計的元件接軌,因此在許多方面編碼往往不夠規範。比如說,一些介面的設計,編碼格式,註釋說明,變數命名方法,第三方庫的使用,等等,通常都是全憑個人的主觀意志。有時候,當碰到困難時,甚至會編寫一些極其“惡劣”的程式碼段,只要功能實現了,湊和能執行就行。

    三、團隊意識較弱,缺乏嚴謹的工作態度

    同樣,由於自學成材的開發者少有開發大型專案的機會,也缺乏磨合,在一些方面會比較偏執。在實際工作中,經常碰到一些程式設計師過份追求簡潔,寫出的程式碼堅澀難懂。還有一些程式設計師不注重程式碼的複用性,從不曾考慮將常用功能寫成模組,往往接一個工程,就需要將相關程式碼全部從零開始寫。

  • 11 # 架構演進

    我的團隊裡就有這樣很明顯的例子。這個哥們在我團隊工作已經有三年多的時間,在我看來,他的技術水平很不錯,對具體指派的工作完成的也很好,但系統思維能力比較缺乏。理論基礎不夠紮實。往往都是遇到什麼問題去解決什麼問題,針對具體的問題,去整理相關的知識點。就造成他經常容易鑽牛角尖。邏輯上轉不過彎兒來。而反觀那些科班出身的程式設計師,從他們的工作過程當中就可以看到,在理論基礎這一塊,確實是有相對優勢的。往往在談論一個問題的時候,經常能夠觸類旁通。能夠系統性的去分析和解決問題,而不會過於糾纏某個具體事件的細節。

    當然,這只是我工作當中遇到的例子,畢竟這個問題還是因人而異的,不能以偏概全,但我相信一點的是,無論是自學也好,還是科班出身的也好。要想能夠有更高的成就堅實的理論基礎還是很重要的。

    畢竟投機取巧,只能領先一時要達到真正的最後目標,還是要腳踏實地,一步一個腳印的去學習,提升自己。沒有終南捷徑可走。

  • 中秋節和大豐收的關聯?
  • 想換手機,榮耀V10和堅果pro2或MIX2猶豫中,選哪個好?