軟體工程對天賦的要求有多高?
大學想報蘇大的軟體工程,想知道天賦對這個專業的重要程度,如果沒什麼天賦只靠努力又可以做到一個什麼樣的水平
做程序員的話並不需要有多大天賦。我曾經教過一個學生,毫無天賦,智商也非常一般,但是我通過騙她說C++學不會就要回老家做低級工人,導致她比我還努力的學習編程,後來也輕鬆進了BAT,成為了組裡的中堅力量。
針對這種人,教的時候需要刷點花招,譬如說不告訴她MSDN有中文版,不告訴她有STL……然後做一大堆題目,把STL簡單的東西都做了一遍,包括未來的std::regex也做出來了。就這麼過了一兩年,然後再告訴她存在這些類庫。後面的提高多麼有爆發力(逃
讓她好好delete和學習內存泄露檢查工具也很容易,騙她說內存泄漏太多機箱會爆炸,哈哈哈哈哈哈一直都對大學想報考 SE 的童鞋很感興趣(畢竟高考時候全班只有我一人報了軟工),當時的想法是真心喜歡它,也想過 CS,但是覺得有一點最重要:
我喜歡 SE,這樣一門專業可以給我帶來動力。
高考後跑去買了 C 和 Java 的書,以前學過的除了 Javascript 和批處理(23333)什麼也不記得了 = =,每天瘋了一樣的看,甚至比高考前刷題都要瘋狂,終於可以學自己喜歡的東西了。憑著這股勁,高考後的那三個月假期,抱著我的 Macbook Pro,還玩了 C++,C#,XAML,Swift,Objective-C,做了自己的第一個 iOS App。中間還經歷了,高考前心儀的學校出分後變得遙不可及,在知道自己被 NEU 錄取之後和網上認識的新同學聊天的快樂,iOS 開發遇到瓶頸時候的逃避(當然這樣不對)。
當然小弟我的經歷並不比知乎各位大神厲害,也沒什麼天賦。也許感覺小弟是隨手打下這段文字,只是想在這個大神雲集的世界默默地說一句,天賦不重要。喜歡它,就自然會努力。
2016.1.9取消匿名。所以高票裡面的她就是萌萌?我也一定要好好學習去
反對 高票 @vczh 的答案,你們這些傢伙天賦都很高了,你們似乎沒見過沒什麼天賦的人。
還有,怕輪子哥打我,匿了(過100贊取匿,有100贊大致說明這個觀點是有人認同的)。
以下的內容都是答主的個人經歷,可能不具有代表性,僅供參考。
首先,學習以編寫程序為主的專業需要天賦嗎?,個人認為,天賦不是最主要的,最主要的是興趣和努力,但仍需要一定的天賦,我舉幾個身邊的例子。
例一:非常努力但沒有天賦,或者說努力在了錯誤的方向第一個例子是我們學院的一位女學霸,和我同專業(計算機科學與技術)。綜合成績長期在學院(廣西科技大學,二本)前十,目前大四實習中。
該同學刻苦好學,不恥下問,但是我從大一下學期的一件事就不是很看好她。
當時,我們學習《數據結構》這門課,她似乎對分治策略·快速排序的C語言實現不是很懂。她聽說我對此比較了解,於是向我請教。我試著給她講明白,但是失敗了。我本來想讓他在回去思考一個「猜商品價格」的問題,結果她問我一句:「你程序寫出來沒有?」,我愣了一下,說:「寫出來了」,「那你把源碼發我好嗎?」,「我發了源碼你回去自己看懂?」,「不是,我把你的背下來」。
背下來!背下來!背下來!
因為她們把演算法大題都背下了,所以他們普遍都能考很高的分數,不是我這種掛科黨能想像的。但是在找工作時,他們似乎很難把自己的成績優勢轉換為薪水優勢。
我這位學霸同學,也在我的實習公司呆了幾天,寫了幾星期的 JavaScript 就和老闆說,「我想我不適合編程」,就走了,目前應該是去深圳轉作美工了。
例二:非計算機專業,對計算機感興趣,努力,有天賦這個說的是我校計算機愛好者協會第20屆會長,向智同學(我想他是不介意我他事迹放網上的。我是第22屆會長, @哈利龍馬 可以作證)。
向智學長並不是計算機相關專業,他是我校職業教育學院汽車服務專業的學生,人挺能坎。
他的道路大概可以概括為:在 協會修電腦-》自學 PHP 網站開發-》創業。
我知道,學校有很多網站都是學長寫的,我大一自學 PHP 也是受學長的影響,現在學長在柳州創業,聽說目前在做銀行的軟體。
我在協會時,學長經常熬夜寫軟體,還有就坐著睡著了。而且學長並非碼農一枚,對演算法設計有一些讀到的見解。不過,可能因為不是科班出身,學長對軟體工程師非常不屑的,在他眼裡,速度與性能比良好的可讀性、可維護性更重要。在這方面我寧願犧牲性能換取開發效率和維護成本,所以我轉去了 Python 陣營。
例三:二本學校里還不錯的學生我有幾個朋友,寫軟體不能努力想性能或者架構問題,但他們很能按質按量的完成編程任務。這樣的同學是將來應該程序員中的主力。他們不一定有天賦,但是他們在大學期間寫了大量的代碼,能熟練掌握一種或多種技能(熟練掌握 LAMP 網站開發、Java SSH 應用開發、Android/IOS應用開發、JavaScript 前端開發的任意一種找工作都不會太難)
例四:二本學校里一般的學生這些學生多數也沒什麼天賦,大學期間一般也只是學習了課本的知識,這樣的同學我也挺愁他們的。不過有一部分在去公司實習的時候進步飛快(可能是學校教的不好,去公司就開竅了)。
學渣就不說了(好像我就是學渣……逃)。
最後我想說下,學軟體類專業究竟需要一個什麼樣的素質?我認為就是計算思維吧,說成強迫症也可以吧,這裡貼一段 @永懷 的答案:程序員都有哪些強迫症行為? - 互聯網
乘電梯的時候看著電梯的按鈕面板(UI)常常會開始思考電梯的調度演算法,然後仔細一想好像狀態挺多的,多個實例之間狀態可以互相影響,還涉及到一些優先順序、加速度、預判方面的東西,仔細想想其實挺複雜的,然後還沒等到出電梯就放棄了。
然後不知道哪次坐又會望著面板開始想。
真的是,有時我也這樣。
我在玩 LOL 也會想一些這遊戲的設計問題,包括如何扣血的演算法啊(有時延大的情況下,會造成角色位置不動,但幾秒後突然角色出現另一個位置,看來位置是在伺服器計算的……)。有時瀏覽網頁也會會開啟嘲諷模式,(這破網站誰寫的啊,還在用標籤?),看到一個智能可視門鈴,可用手機查看的,就想,(哼,還賣那麼貴,我200塊自己造一個。然而現在也沒開始造……逃……)等等。
就是說,計算思維會成為你生活的一部分,形影不離。
只要努力就會比絕大多數人優秀,如果想萬里挑一的水平,確實需要天賦。
輪子哥說得甚是,鼓掌啪啪啪.
講真,需要天賦嘛?我覺得可能比起產品經理啥的「職業」比起來真的需要天賦.
這個行業的淘汰率出奇的高,不管是大學還是培訓機構(最近面試了一些人,廣告里都是騙人的)都只能培養出一小部分人能稱為合格,優秀的更少.
我覺得這個行業更多的是看你的技術熱情.因為你需要解決的大多數問題並不困難.
天賦決定了你所能到達的高度,努力決定了你的進步.
不過呢,天賦肯定能加速你的進步(逃絕大多數人的努力程度還沒到要拼天賦的地步。
笑,軟體工程這種東西就是給沒有天賦的人來開設的啊。。。有曰,史詩程序員和普通程序員的差別在哪裡。在腦容量上。史詩程序員可以吧一個完整的項目載入大腦。而普通程序員則每次載入內容有限。通過各種各樣的抽象、劃分、組織,把完整的項目劃分成若干小塊,小到可以裝入普通程序員的大腦,交給他們來完成。這才是軟體工程存在的意義啊。(就像數學大神們的「易得」、「易證」和「顯然」,普通人洋洋洒洒要寫上幾大張證明過程)所以啊,工程這種東西是不需要天賦的。
如果智熵太高還是算了吧!
你讓我怎麼答,差不多73%
不需要天賦。反正大部分SE出來都是做Programmer
為什麼我感覺要求好高?!看來我需要一個師傅!!!
放心吧,大部分學軟體工程的人出來不是干軟體工程的。
在企業專職干軟體工程的大部分只是耍嘴皮子或者給產品經理當秘書的。
但我沒有說軟體工程沒有用,也不是說你不要報軟體工程,我只是說你完全不用擔心天賦問題:)推薦閱讀:
※曾有哪個瞬間讓你感受到天賦的重要性?
※為什麼牛逼的人總把自己的牛逼歸結於天賦?
※灌籃高手裡哪個天賦最高?
※25歲我想成為一個古琴家晚嗎?
※絕對音感有什麼用?是天賦,還是練出來的?