⑴ 如何判斷程序員是流水線上的,還是科班出身
從專業課上看,這個最准
科班出身的的基礎知識儲備是非常完備的,比如計算機組成原理、資料庫、編譯原理、數據結構、C語言、演算法、操作系統、設計模式、匯編、計算機網路、離散數學、模擬電路、數字電路、軟體工程。
這些大學里學的東西,當時感覺一點用沒有,學這玩意幹嘛?
不如學一學怎麼寫網站,學一學語言,直接上手編程做開發。
當你做了幾年之後,才發現這些東西的價值,就跟學鋼琴時要注意坐姿、練習琶音、音階一樣,基礎的東西,只有你彈大麴子時,才突然意識到,原來那些基本功那麼有用。
上面基本上是廢話,怎麼從專業上判斷一個程序員是不是科班的呢?
問他幾個專業性的問題就好了,培訓班那種流水線,是不學這些知識的。
比如演算法題:說一下深度優先搜索和廣度優先搜索之間的區別,舉例。
比如數據結構:用一句話說一下棧和隊列之間的區別,說一下什麼是二叉樹。
比如資料庫:內鏈接和外鏈接的區別,舉例說明。
比如設計模式:說一下什麼是單例模式,什麼是工廠模式
比如操作系統:說一下操作系統中幾種常見的進程調度演算法
上面五個問題,如果對方聽都沒聽過,那麼這個人一定不是科班出身的,這個是100%能下定論的。
你可能不是每個問題都能答上來,如果你是計算機專業的,你一定會對這些問題有印象,因為要考試啊,不為別的,至少你聽過這些術語的名字,就這么簡單。
⑵ 對程序員說點實在話,科班與非科班出身區別在哪
一般來說,計算機軟體 專業 科班的人需要掌握《數據 結構》《操作 系統》《高級 演算法》《軟體 工程》……等一些專業課程,這些是非科班程序員所缺乏的。
但是,作為非科班程序員,本身也有其專業優勢,就是能夠更好的理解其專業領域的應用需求。所以,非科班出身的程序員,只需要自己補充一下以上課程知識,就可以提高自己的軟體開發能力。
總之,不斷學習,才會有進步。
⑶ 在你的專業,科班出身的優勢是什麼
你現在在做程序員,如果你大學的專業是計算機專業的,你就可以說你是科班出身的,如果還有另一個程序員,他大學專業是藝術專業的,那麼他就是非科班出身的。簡單地說,就是他現在工作所需的知識,是不是他以前在大學專業課上學的。不過科班出身並不一定強於非科班出身,如今互聯網發達,很多學習資料都可以輕而易舉地從互聯網上獲得,老師在課堂上所傳授的遠不及互聯網可以搜到的,所以只要自學能力強,非科班出身的也可以學得相當優秀。
⑷ 自學編程到底能不能找到工作
能找到工作。說到培訓班我覺得培訓班是速成,的確培訓班能學到東西,前提是你跟得上培訓班的進度,實際情況是大部分人跟不上那個進度 因為大部分人連基礎都沒有,培訓班也有培訓班的好處,有老師,便是最大的好處。可以讓你少走彎路。
我大學自己學了很多,從單片機到Linux應用等等,都學過,然後大四頭腦一熱,花了七八千報了網路班,後來才發現,什麼用也沒用,都是講的基礎知識。
好處:
並不是說培訓班就一無是處,他有人帶,真的能少走很多彎路。
所以,如果周圍有人願意帶你,或者有一定的底子,那麼去培訓班是沒有必要的。而且培訓班的費用不少。
並不是對口專業出來的就是科班程序員,有好多大學啥也不會,也是快畢業才去學的,是偽科班。
此外,科班程序員和培訓班出來的是有區別的,同樣用代碼實現一個功能,科班的自己能很快有思路,構造整個功能的框架,可能培訓班出來的需要別人指點 ,或者思考很久,同樣一個api。
科班的知道在哪些情況下使用它比較好,哪些情況要注意,培訓班出來的只知道它能幹嘛。畢竟科班的踩過的坑多,培訓班是速成。
⑸ 想當程序員,大學應該學什麼專業
想當程序員可以學這兩個專業:
1、軟體工程
軟體工程專業以計算機科學與技術學科為基礎,強調軟體開發的工程性,使學生在掌握計算機科學與技術方面知識和技能的基礎上熟練掌握從事軟體需求分析、軟體設計、軟體測試、軟體維護和軟體項目管理等工作所必需的基礎知識、基本方法和基本技能,突出對學生專業知識和專業技能的培養,培養能夠從事軟體開發、測試、維護和軟體項目管理的高級專門人才。
2、計算機科學與技術
計算機科學與技術專業主要培養具有良好的科學素養,系統地、較好地掌握計算機科學與技術包括計算機硬體、軟體與應用的基本理論、基本知識和基本技能與方法,能在科研部門、教育單位、企業、事業、技術和行政管理部門等單位從事計算機教學、科學研究和應用的計算機科學與技術學科的高級科學技術人才。
選了這兩個專業,會在大學中學習到c語言,c++,java,javaweb等等一系列編程語言,要注意的是,大學里一般一個學期結束一門語言課程的學習,進度會非常快,課程安排量也不會太充足,想要學好,還得靠自己課下努力才行,至少得掌握一門自己拿手的語言。
當程序員需要具備的能力
1、編程語言能力
作為合格的計算機程序員,精通一門語言是必須的。這種精通,不是說看了一本編程寶典,抄了幾個程序就能說精通的,要靠長時間的積累。
2、編碼能力
遵守編碼規范,是一個程序員最基本的要求。另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內注釋進行說明。
3、面向對象思維能力
多數編程語言都是面向對象的編程語言。而這些面向對象編程語言的共同精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,介面隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。
⑹ 非科班程序員和科班程序員的差距到底在哪裡
不管是思維上還是做事風格,以及對待問題的解決方式都有所區別。
今天我就給大家梳梳理一下,科班成為相對於非科班程序員,他們的優勢到底在哪裡?
第一點那就是演算法能力。為什麼要強調這一條呢,大公司總是喜歡考演算法,平時有些項目也有可能用到演算法,總之演算法就是衡量一個程序員的一把利器源此,作為非科班程序員,大部分時間,學習演算法都只能靠自己,作為計算機領域的一門難題,沒有老師指導,沒有一些好的學習方式,那麼你在演算法上面的成長,可能也會很少。
所以非科班程序員往往更有自學能力,他們有很好的技術視野,知道如何去擴展自己的技術邊界,畢竟他們知道如何很快的切換到另一項技術,或者是另一個領域。對於非科班程序員來說,這種跨界的嘗試會更加的輕松一些。總結了以上這幾點,我覺得科班程序員和非科班程序員並沒有什麼天壤之別,只不過大家開始的時候不一樣。