查看完整版本: 大學考到資訊係了,想把程式學好。
頁: [1]

CodeMonk 發表於 2016-4-22 01:34 AM

大學考到資訊係了,想把程式學好。

本帖最後由 CodeMonk 於 2016-4-22 11:08 AM 編輯

還沒有上大學,只是剛考上而已,有以個小小願景,就是把程式學好
(何謂學好?我想要上至伺服器應用程式或用戶端應用程式,下至MCU或嵌入硬體都可了以自己獨立完成),
首先第一個計劃就是把數學學好,我認為數學不好,程式怎麼可能學的好!但是要怎麼學呢?
從小的經驗告訴我,一個東西要用,才有可能有印象,學習要學的好,首先第一件事就是用出來!
所以我開始在找有沒有專門用在數學領域的程式語言,讓我可以再真的學數學的時候可以用再電腦上面,
第一個看到的事MATLAB和Mathematica,但都是,專有軟體,我也沒錢去買,也不想支持專有軟體,
所以把矛頭轉向GNU Octave或Julia,GNU計劃下的東西給我有很大的好感,
然後Julia 的介紹詞很吸引人:
「一群擁有各種語言豐富編程經驗的Matlab高階使用者,對現有的科學計算編程工具感到不滿—————這些軟體對自己專長的領域表現得非常棒,但在其它領域卻非常糟糕。他們想要的是一個開源的軟體開源的軟體,它要像C語言一般快速而有擁有如同Ruby的動態性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的數學記號;要像Python般通用、像R般在統計分析上得心應手、像Perl般自然地處理字串、像Matlab般具有強大的線性代數運算能力、像shell般膠水語言的能力」。
有一點拿不定主意要學哪個,可能會兩個都學就是了(聽說,大學生什麼都不多,就是時間最多)。


然後想學一些一般用途的程式語言,像是C、C++,再來學一些有很多open source的程式語言,像是python、perl(像是cpan,是演算法的知識庫,有很多演算法可以學!並且還教你如何用),然後再學一些增進自己思維的語言,像是Haskell、Prolog、Erlang(Ps 不太想學java,因為他是甲骨文公司(營利性質的公司)主導的。)。


總之,我想先把GNU Octave或Julia學好(所謂的學好,是我可以把數學課本上的東西,就算看不懂的數學式子,也可以用它來表達出來,並且可以把他化成圖來幫助思考),
因為怕自己會放棄,所以往想定期把學習到的東西或或者是疑問,再網上紀錄或發問,一個禮拜最少一次,增加自己的毅力!



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

CodeMonk 發表於 2016-4-22 02:00 AM

本帖最後由 CodeMonk 於 2016-4-22 11:09 AM 編輯

第一天,安裝julia還有hellow world。

首先我看的書是Getting Started with Julia Programming,是官方推薦的。
安裝julia再window中,真的只要從頭到尾按ok就好了,他連PATH都幫你用好!
然後就是julia 有一個PERL(Read Evaluate Print Loop)模式,就是在julia PERL shell裡,
打一個指令,就會再下面顯示結果,像是打 1 + 1,它會顯示2。
一般julia PERL shell操作有:
1: ctrl + c  中斷目前命令,不怕死loop
2: ctrl + d  關掉julia
3: ctrl + l   清除螢幕
4: 輸入 workspace()  初始化,再之前定義的變數會消失。
5: 按 ? 進入help模式,查詢你要之道的function 之類的
6: include("some/path/to/file.ji")  執行外部script
7: Pkg.installed()  安裝Packages
8: Pkg.status()     顯示你安裝的Packages
9: Pkg.dir()          顯示安裝位置



再來是hellow world,事實上我想看完第一章變數,大概看到一半了,還沒有看到String之類的。







再來這是執行的畫面。



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

samsg 發表於 2016-5-28 06:33 AM

既然是本科,C++,JAVA一定要會的
業界在用
另外WEB也要找一種上手
現在流行WEB
如果你是就業導向的話
有興趣再自學其他

ddttdtxb 發表於 2016-5-28 11:00 PM

還沒有上大學,只是剛考上而已,有以個小小願景,就是把程式學好

有心想學好程式,是個不錯的開頭,但是想把所有程式都學好?個人覺得目標太大了⋯

樓主可以思考一個問題,電腦程式語言發展了那麼久,成千上萬的人在不同領域研發新的技術。
對於一個沒有基礎正準備上大學的人而言,要如何學完這些「爆炸成長」科技知識?

數學重要嗎? 看你未來的工作(or 研究)是哪一部分,有些人覺得它能解決許多問題,增進效能。
但也有不少人,覺得學了這些根本沒在工作上用到,甚至有更多更多的人,從來沒學過這些⋯

我非本科系出身,我身邊一同工作的同事,也沒幾個是科班出身。
數學重不重要我不能下定論,但可以肯定的⋯
光是數學好,不能讓人一定成為好的工程師,而不會那些工程數學,也不會讓人無法以寫程式維生。

要講學習這個主題,我這個對教育/學習有興趣的人能講上很大一篇幅⋯這裡就跳過,直接講建議吧~

學習哪一種程式語言作起點,我認為都很好。只要不斷研究總會有所得。
儘量多去了解指令背後的意義,少用死背的方式。
因為指令通常多到記不了,學習如何查資料,找到需要的資訊,比把整個手冊背下來重要得多。
(尤其是當程式語言大改版,之前背的可能有不小的變化⋯不合用了)
當然,會有一些不太能了解的概念,只能不影響下一章節進行,不妨跳過之後再回來看。
別因為一個概念不通,就卡在某個章節太久。有些東西多作就通了⋯

另外,如果正要上大學,也認為大學最多的是時間⋯
那我希望你別把絕大部分的時間都投入「純學習程式」那一塊。
去參加學校社團,甚至可以的話去參加一些 Open Source 社群的活動。
和志同道合的在一起,可以在你學習上帶來不少鼓勵的作用⋯
其中流通的資訊,也可能是翻遍所有書籍都得不到的。
裡面有一些人脈⋯ 在未來的可能都會發揮很大的作用⋯

閉門造車的時代過去很久了⋯ 靠著 K 書是跟不上時代的。
今天的知識可能幾年內有一半已經過時,養成能持續成長的習慣與環境是很重要的。

共勉之⋯...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

chevylin0802 發表於 2016-5-30 12:03 AM

本帖最後由 chevylin0802 於 2016-5-30 12:04 AM 編輯

samsg 發表於 2016-5-28 06:33 AM static/image/common/back.gif
既然是本科,C++,JAVA一定要會的
業界在用
另外WEB也要找一種上手

現在的軟體工程師跟工廠的作業員沒什麼兩樣

會語法就代表一切的嗎?
這完全是錯誤的觀點

IEEE每一年都有不少新的規範發表
不只是如此
各個不同的領域也有各種不同的規範在發表
有的是跟硬體相關的
也有不少是軟體的規範

只要符合規範的程式與程式庫
只要經過認證都可以得到證明許可
這些程式不會管你是用哪一種程式來寫

在大學就算是學會資料結構也一樣不能代表什麼

因為各個不同的領域裏需要的是各自領域裏的know-how

JPEG與MPEG甚至於到H.264. HEVC
各式不同的影像壓縮方式都離不開霍夫曼公式
這些公式哪一個不是被簡化成數學模型出來的?

業界為了搶快
所以把所有真正的東西棄而不顧
反正這堆東西都可以找得到open source
所以沒有人管你程式是怎麼變出來的
反正只要可以在企業容許的時限之內弄得出來就行了

所以台灣的軟體人才越來越沒有競爭力
因為根本不切實的從源頭開始開發起
個個都只想靠整合的
反正程式庫隨便google都有

不就只是這樣子嗎?
你要不要看看有多少JAVA工程師只要遇到需要寫JNI的部份就掛了
你要不要看看有多少C++的工程師一遇到要自己port 驅動程式就掛了

更不用談別的
一堆只要自己沒碰過的領域就直接死給你看的
講那群工程師叫做人才
還真的是工廠作業員層級的人才而已
講穿了月薪給30K還真的是多了
跟工廠作業員沒什麼兩樣



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

kwj 發表於 2016-6-4 12:50 PM

個人只覺得~不要預設自己不學什麼語言
每個語言都有他發展的背景,也有他擅長和不擅長的
最重要的是在合適的場合使用合適的語言
用一種語言寫遍所有程式,不見得是最好的作法(雖然通常成就感最高)。

zxc80270asd 發表於 2016-6-12 03:18 PM

本帖最後由 zxc80270asd 於 2016-6-12 03:26 PM 編輯

我本身也是讀資訊工程的,
我擅長的只有PHP網站工程以及Qt C++桌面應用程式開發,
我認為一開始有這個把東西學好的想法非常好,
這代表你未來絕對前途無量。

不過我希望給一點小小的建議,
其實並不是學"會"所有語言,就是非常厲害的,
其實我也碰過NodeJs,C#,Java,Python等等語言,
但是漸漸的你會發現,學"好"一種語言才是最好的做法。

什麼是學"好"?

以我個人的觀點來看,以我最擅長的C++來說好了,當然我也不會說我自己精通他了,
剛開始學的時候,你會覺得我只要能夠理解各種statement按照題目或當下的情況去解決問題就很了不起了,
可是漸漸你會發現,你會遇到tamplate, inherit, polymorphism 等寫法,在這時候就已經不是理解statement要怎麼寫了,而是要去理解這些程式在電腦如何運作,我要如何寫才能把記憶體配置做的好一點,
之後當你理解了之後你又會發現僅僅會寫這些東西還不夠,你要去考慮你的物件導向怎麼寫最好,如何讓之後的程式維護更彈性,
然而現在的資訊業,並不是單打獨鬥的,你需要與人一起工作,這時候你還要能夠讀懂別人寫的程式,甚至還要幫他維護,優化等等,
我認為至少要做到這樣,才能算是的學好。打包工作,相依性等等的就不再多提了。

但是如果一次學了這麼多東西,每個領域都需要花這麼多的時間去磨練它,每個人時間就這麼多而已,我認為並不是一個好方法,
會變成有一句諺語說的: 螣蛇無足而飛,鼯鼠五技而窮。
這其實是一件非常可怕的事情,
反而我覺得選擇最適合的一點點東西,將它專精,這才是在資訊系中學習的最好途徑。

不過這只是我的主觀意見,當當參考就好了。

此外,其實讀資訊的大學生,並不是真的時間非常多喔
因為其實資訊系並不是想像中的都只在學"Coding",
相較多的是--理論,網際網路理論,硬體理論等等,偏理論的課反而較多,幾乎都是希望你去真正了解一些事情背後的運作方式。
Coding在資訊業中只是一個"工具",反而是其中的實做的方式才是重要的。Coding只是去實現你的想法的一個東西。

祝你之後再資訊系中可以找到你的目標。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

hst326 發表於 2016-6-18 03:01 PM

依你學"好"的定義: 上至ap 下至 hardware driver
那只有 C 可以滿足你的需求了

rr09192084 發表於 2016-7-29 04:20 PM

我個人的觀點和經驗,所謂的學好?就是要打好基礎,所有高階的東西都是從基礎一點一點累積上來的。就好像你的目標是蓋一棟100層的大樓,那你就要知道100層的大樓的基礎要怎麼架構跟建置,第100層是不會憑空出現或是懸浮在高空中的。
頁: [1]