作者takingblue (takingblue)
看板Soft_Job
標題Re: [討論] 大學時要如何加強程式能力
時間Fri Aug 30 00:39:03 2013
※ 引述《TWTRubiks (阿哲)》之銘言:
: 小弟我非本科系,目前念的是電機,暑假結束後就大三了
: 然後,我希望未來是走寫程式這方面的,對寫程式有點興趣(雖然 興趣 這2個字的定義
: 每個人都不太相同)
: 大二升大三的這個暑假(也就是現在),我都留在實驗室寫寫自己想寫的東西,不會的就問
: 學長或是GOOGLE,也有提早做專題,但這個專題實在越做發現問題越多,越無法解決,好
: ,這其實不是重點。
: 像現在學一堆語言 JAVA C#,連 Unity 和 3DS MAX 都出現了
: 我想問,我是要廣泛學習呢?! 還是專精就好呢?
: 不然每一種都會一點點一點點,感覺很弱,專精一種又感覺學太少
語言只是工具,如果你還沒有特別想走哪類產業ex:寫系統,寫網頁後端,前端...等等
那我認為在學校時先把c/c++學好,有oo的概念這樣打底比較穩。
並不是說其它語言不重要,而是學生時間較多,
應該要花時間在更重要的基礎資訊科學知識上。
演算法,資料結構,作業系統,計算機架構,編譯器
這五門課是成為一個可以獨當一面的工程師不可或缺的基礎。
還有時間的話,資料庫,人工智慧(or 火紅的machine learning)也了解一下
design pattern可以稍微看看。
你還在學校,優勢就是有非常多可以支配的時間,和很多的課程資源和問問題的機會。
要好好把握這時間打好基礎。
: 再來是我想請問大家遇到問題時會怎麼解決?!
: 我目前的解決方法是先GOOGLE,然後真的不懂再問學長(但因為我問題很多,有時候總覺
: 得學長被我問到有點不耐煩),這時心裡就會OS.....(省略)
遇到問題建議先查文件,文件查不到再問人。
就像linux command不會至少先man一下,還是看不懂才有得問。
: 我會想問這些的問題是有2個原因
: 1. 我主要想知道要如何更容易在畢業後能和社會順利接軌
和社會接軌這牽涉到很多層面,我覺得你可以先找出有興趣的產業。
再進一步研究該產業所需要的技能。
就上我上面說的,你想寫webapp,那可能需要HTML+CSS+javascript(front-end)
php/RoR(ruby)/Django(python)/node(js)
想寫系統,那就c/c++,甚至組合語言
但我認為如果你對整個computer science的基礎知識還不熟悉的話,想這個還太早。
: 2. 我們電機教授曾經說過一句話:現在學甚麼JAVA之類的....根本是走錯路,因為你要和
: 全世界頂尖的資工系PK。我其實想想,也有一些道理在,但我選擇的專題,還是依然
: 是這方面(寫程式 c# + Unity + 3DS MAX 專題用的)
就我不負責任猜測,這類的專題應該也是call些現成的api來用。
其實拜open source之賜,現在有太多太多好的library可以使用。
利用這些工具,很多產品可以快速地實作出來。
你們教授所說的走錯路,可能是指你花了太多時間用了現成的工具做出了個專題。
但並沒有去了解這些工具背後的真諦,而那才是computer science的精隨所在。
而所謂的和世界頂尖資工系pk,我到覺得不是資工系與否或頂尖大學與否。
要和你競爭的人,是那些下功夫去徹底專研這些工具背後實作知識,
並且有能力創造工具的人,而這些人不一定要是啥頂尖資工系,有心的人就可以。
而如果你好好地在學校把基礎打好,以後再鑽研這些你使用的工具背後意義時會輕鬆的多
也才有機會從眾多普通的工程師中嶄露頭角。
: 最後想問,走這行的,是不是需要一點天分,有時候總覺得自己怎麼就是看不懂資料...
: 說實在,蠻灰心的,然後別人(學長)的思路就是很快
: 感謝大家的回答,謝謝
認真學就對了,你都說你喜歡寫程式了,就不用想這麼多了。
最後建議沒事逛逛coursera,裡面的課程非常多,且都淺顯易懂。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.226.20
※ 編輯: takingblue 來自: 114.42.226.20 (08/30 00:41)
→ viper9709:推這篇~講得很中肯~~ 08/31 11:33
推 iceDerek:推專業! 09/21 15:35