伊莉討論區

標題: 我是程式設計新手,有關學習過程想請教(已解決,感謝各位前輩) [打印本頁]

作者: chialewang    時間: 2019-7-18 06:48 PM     標題: 我是程式設計新手,有關學習過程想請教(已解決,感謝各位前輩)

提示: 作者被禁止或刪除 內容自動屏蔽
作者: aquarius6913    時間: 2019-7-18 11:09 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-18 11:32 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: stephenwei_lu    時間: 2019-7-19 12:22 PM

切記, 英文很重要, 要自己排一些時間強化
寫到一段時間之後你會發現大部分的resource都是英文
作者: jackyo04    時間: 2019-7-19 04:11 PM

1.程式的構造似乎大同小異,為何?
其實程式構造真的就是大同小異,所以重點先將一種語言學通後,再去慢慢延伸就可以了

2.因為都是基礎課程,所以若我想在進階把某項程式語言學好
那該怎麼做?
只能多做練習,一個問題可以有好幾種解法,可以嘗試著寫看看,也可以去外包網的網站上,找尋一些發包的內容,自己嘗試寫看看...如果有自信的話,也可以去接洽,順便賺一筆

3.通用的一些英文名稱,該怎麼背?
不需要去背,沒意義,倒不如去練習英文,日後你會有很多的時間花在搜尋上,很多文章都是以英文為主,你至少要看懂對方所表達的意義,否則你要怎麼去抄襲別人的東西...

程式的範圍很廣,你不可能全部專精,頂多找個方向去精進而已...
我個人是沒去補習啦,因為交的都是基礎的東西,自己看書還比較快,況且現在網路很發達,有什麼問題都可以去問google...

還記得大學時期上程式語言的相關課程,我都是不及格的....
作者: ddttdtxb    時間: 2019-7-19 10:26 PM

我有些不完全一樣的答案… 提供給樓主作參考…

1.程式的構造似乎大同小異,為何?
因為沒有人想發明一個完全不同的東西,既不好記憶,又沒什麼人想學。

新的程式語言出現,大多是由於在解決某些問題上,既有語言不容易達到,或寫起來很麻煩。
所以通常會以數種語言的想法為基底,去創作新的語言。
若一種程式語言沒有人(或很少人使用),它就就漸漸少人維護,甚至消失。
所以漸漸的,一些通用…核心的概念或語法,就會被保留下來,出現在多數的程式語言中。

至於前面有人提到「大部分離不開物件導向」,這種說法不是很正確。
過去有一段時間,以 Java 為首的物件導向被視為典範,
不過最近「函數導向」的寫法又漸漸風行起來… 當然物件導向不會消失,可能會相容(混亂)上好一段時間…

兩種導向撰寫的思考方式不太一樣,所以就思考方式而言,程式構造上有些有一滿大的差異。
還是回到根本,當解決某個問題,特定的寫法有用,自然就會有人支持。
通常是「合不合適」的問題,並沒有什麼問題,非要某種程式語言不可。


2.因為都是基礎課程,所以若我想在進階把某項程式語言學好
那該怎麼做?
多練習,以及……找到關於「什麼樣的進階?」的答案…
每個人都不一樣… 程式太多,也太雜。
像我在工作上會用到的程式語言,也不敢說每樣都「精通」,有些只是到能組合而已…
原因無它… 時間不夠我全部學起,學通。

另一個原因,就是有些精通或進階,是要達到某個情境下才能「練到會」。
舉個例子,光靠自己一個人,是不容易學通多台主機之間的程式溝通、效能調校…
原因無它,因為自己很難營造出這種架構的使用情境,
許多問題發生在使用人數變多,資料變大的時候才會出現。

實際工作情境的需求,出狀況得快點解決的壓力,都是學習的動力。
也因此,當覺得自己學習開始有點上手,可以試著去解決一些身邊的問題。
但是不需要把「所有程式都學到進階」當作是很必要條件就是了…

基礎打好,能很快上手,能跟著老鳥,先打打下手,再完成部分功能,到能獨當一面。
我覺得這才是王道。

3.通用的一些英文名稱,該怎麼背?
可以的話,多學習英文單字,知道它們背後的意思有會有助於了解。

與其背英文名稱,個人覺得「背鍵盤」反而更重要,至少練到中英文可以盲打為止。
至少書上範例可以照著打,腦中有思緒不會因為打字太慢而消失,這樣就夠了。

常用的字/語法,你會打到下意適敲出來… 甚至有些唸不出,但打得出來的字/語法,
會在你想解法的時候很自然的敲出來。
加上開發工具的幫助,有時候只要記前兩三個字母就夠了。

與前面提到廣泛接觸程式語言不同,我反而建議樓主,初學的時候,先專注學好幾個程式語言。
除非你會同時用到這所有程式在解決問題上,否則語言之間的差異可能會造成學習的阻礙。
當你能把「語法」和「解法」分開後,再去學不同的程式語言比較理想。

雖然現在許多程式語會互相學習好的語法或概念,
不過總還是會有些差異,這些差異容易讓初學者搞混…

話說… python 算是樓主提到程式語言中… 語法最不一樣的一個… XD
作者: mmxshianxmm    時間: 2019-7-20 01:38 AM

99000...聯成電腦???

程式還是得靠自己練習吧,補習班真的有用嗎? 學來考試?

網路一堆免費的資源都超過補習班能學到的東西了...只怕你不看而已

遇到不會的還能去stack overflow問一下,一堆高手就解答了

倒不如拿來補習英文,寫程式英文真的很重要,英文上手,再看原文書或國外程式教學等什麼都通了
作者: codewice    時間: 2019-7-20 11:43 AM

就像生活中的自然語言,不管是英文中文或日文,都會有動詞句型與形容詞句型,主流程式語言往往也都有基本的函式呼叫、迴圈與流程判斷。關於你的第一個問題:在這個層次的確多數語言都差不多

如果想要進階一點的程式設計技巧,那就無可避免談到語言的特性。既然程式語言都是人工語言,針對某種領域的需求設計而成,那麼在深入的階段就會產生差異。雖然能說目前主流語言都是跑在 turning machine 上面,從數學的角度來看能做的事情都一樣。但最後的應用層面都會有差異。

譬如說你提到了 Javascript, Java 與 Python,但是 Python 跟 Javascript 都是動態型別的語言,而 Java 是靜態型別的語言,寫法的思維就完全不一樣。JS 能跑在許多瀏覽器與 node 上面,而 Python 目前許多在資料分析 (也有人用 R),而 Java 在伺服器端或 Android 手機非常受歡迎。

除了程式寫法思維不同,實作的時候周邊的支援也不一樣。支援包括了可以讓你重複使用的 library,以及發生問題的時候搜尋相關的文章。

工作經驗累積多一點之後,語言的差異又會更加明顯。我在 Google 工作的朋友,面試 Python 的人喜歡問 GC 的機制,做 Web 的朋友會問面試者 async function call 的細節,而我自己喜歡問 Java threading 的問題。你做的事情愈深入,語言在實際應用場景的差異就會愈大。

上面聽不懂沒關係,只是想透過例子讓你了解,「你以後想在什麼領域寫程式,跟你現在該學什麼語言有關係」。

如果用自然語言來比喻,要去日本就該學日語,要去德國就該學德語。雖然德國也有人會講日文,但是在德國講日文就沒效率,要在德國找日文學習教材也麻煩。雖然中日英都有動詞跟形容詞句型,但是中文有幫人打氣的「加油!」日文有「頑張った」(乾巴爹) 可是英文沒有這種概念的東西,硬是要講「cheer up」外國人會覺得很怪。你可以很快地透過基礎文法學習一個新的語言,但是要更進階的時候,被語言影響的思維差異就會變得很明顯了。

這時候又會祭出老哏回答:「你以後想拿程式語言來做什麼?」XDDDDD,有了這個鄉親們會比較好給建議。如果沒有特別明確的目標,那我覺得先學一個簡單好玩的語言培養出成就感也不錯。(寫個自己會用到的小工具,往往是個好途徑)

參考了大學學費,其實我覺得補習班也沒那麼貴,作為非學生的短期衝刺也不是壞事。不過要注意,補習班的課上完了,大概也等於大學生剛上完大一上學期的基礎程式設計,其實完全沒有工作能力,如果有任何補習班宣稱上完了什麼課程就能拿到好工作,當廣告詞聽聽就好。寫程式這個職業的特色就是,要有不斷學習新東西的能力,因為整個世界對於軟體的要求不斷在變。

至於英文詞,除了前面幾樓講到的方式,還有一個就是看架構設計的書。常見的一些 Factory, Listener, Observer 這些東西,都是 Designer Pattern 裡面有寫的。等到你的程式能力到一個階段之後,看完幾本相關的書,以後看到這些詞就像膝反射一樣了。
作者: chialewang    時間: 2019-7-20 09:25 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-20 09:27 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-20 09:31 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-20 09:36 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-20 09:43 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ddttdtxb    時間: 2019-7-21 11:41 AM

chialewang 發表於 2019-7-20 09:36 PM
mmxshianxmm 前輩 您好:

我也很無奈呀

不同的角度有不同的解讀方式,有時候答案會完全相反…

補習班的課程有用? 無用? 要視評估的角度。

想要靠補習班把程式語言的基本功,那幾乎是不可能的事情。
因為程式語言需要大量的練習,就和自然語言一樣,得使用才能學得會。
補習班可以提供讓人練習的環境,但通常不會有足夠的練習時間。
練習是下了班自己作的事情,也沒有人會想就「純粹練習」而付錢給補習班吧!
老師提供機會讓人提問,是大多人能接受的模式。

因此… 補習班沒用? 全靠網路就行?
實際上也不能這麼說…  舉一個最實際的例子,也是我會碰到的狀況。
現在許多程式語言的官網會提供 快速上手 的文章,但練習完成之後,我常面臨一個問題…
「啊~ 接下來呢? 要由哪裡開始切入、深入學習?」
很顯然… 把 api 文件裡所有的函數背下來,是不可能的…

而補習班就是提供一個「解決某個問題的學習路徑」,
可以由其中認識可詢問的人,得到某種書單、學習單之類的東西。
有些是為了取得證照,有些是為了得到某種技能。
提供了「最小學習量,有機會滿足需求」的方案。(這也是補習班課程的重要價值之一)

能不能在網路上學到一樣的東西? 答案是肯定的!
但是! 時間上能不能接受「花太多時間在旁支知識上,拖晚能開始解決問題的時間」這個風險?
因為初學(或不熟這個領域)的人,是無法分清哪些知識,與問題的關連度。

也許補習班內,三堂課聽到的知識點,組出來的學習路徑。
在網路上可能要花三個月爬文才能拼出來,
因上有些人會決定去補習班上課,縮小學習繞路花費的時間,省下來的時間用來專注深入學習特定的點。
所以課程是依需求而挑,不是什麼課都去上。

我是這麼覺得…

如果需要某個技術快速上手,不求廣度夠,而是希望最短時間能開始解決問題。
事後再找時間把缺的補起來,慢慢還技術債的,就去選擇對應的補習班課程。
(交作業和同儕壓力,也能幫助撐過剛學習上枯燥的那段時間)

如果希望有全面了解,或是時間上比較充裕。那當然可以選擇在網路上進行學習。
就是對於自律的要求比較高,但投入的精力,也有機會得到許多補習班學不到的東西。

補習班課程… 提供幫助人在最短時間,滿足某個需求的課程。
這樣的課程內容才會有賣點,才能開出更高價,養得活自己,請得起老師。

因此建議樓主依補習班課程中,看到的知識點,把不熟的部分多練習,
有興趣的部分到網路上找找資料,這樣可能得到更大的學習效果。
不需要覺得去補習班上課是浪費錢的事情。

個人最近有空的時候不時會去 https://www.codewars.com/dashboard 練練功。
也提供給樓主參考。



作者: 23043769    時間: 2019-7-21 08:10 PM

1.程式的構造似乎大同小異,為何?
>>>同其他大大所說, 所以推薦先學會至少一種程式語言
2.因為都是基礎課程,所以若我想在進階把某項程式語言學好
那該怎麼做?
>>>程式學習網站非常實用 會英文的話我推一個學習網站 codecademy
3.通用的一些英文名稱,該怎麼背?
還是寫久了自然就會了
>>>基本上寫不用多久了就知道了
作者: chialewang    時間: 2019-7-22 09:28 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-22 09:32 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-23 06:45 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chialewang    時間: 2019-7-23 10:45 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ddttdtxb    時間: 2019-7-23 11:42 PM

本帖最後由 ddttdtxb 於 2019-7-23 11:42 PM 編輯
chialewang 發表於 2019-7-23 06:45 AM
ddttdtxb 前輩 您好:

您所給的那個練功網站怎麼全部都是英文

是啊~  全英文的,所以我大多得靠瀏覽器的翻譯外掛來確認…

裡面 Sign Up 就是註冊帳號的意思… 或是用 GitHub 的帳號也可以登入。

那不算是一個「教學」網站啦~ 以初學來說,有點太早了。
我是建議在你對一個程式語言有一定熟悉度的時候,再到這個網站上來練習。

它裡面有由簡單到難分等級,每個等級有許多題目。
像是怎麼寫一個求得質數的方法,並且要有效率能在時間內求得多少個數字。
在解決問題的時候,要使用到許多基礎的概念。

並且可以在解完題目後,看到其它人的解法,
讓自己發現到原來有更有效率,或更容易看懂的方式。
以此更進一步提高自己對這個程式的了解。

因為剛好想到,就順道提了下。
初學的時候先不用急著用它啦~~
理解程式概念就夠傷腦力了… 再多一個英文語法… 就超出認識負苻太多,這樣反而學不好。

當你對程式語法熟悉了,透過翻譯知道題目的意思。
有能力解題,慢慢的就能透過看別人的程式,學到不同程式的思考方式。

基本語法熟悉 → 能解決一些小問題 → 開始學習設計方法 & 測試趨動開發 → 上 codewars 之類的網站

我是建議這個流程啦~~
作者: chialewang    時間: 2019-7-23 11:58 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: wym701    時間: 2020-4-13 03:24 PM

aquarius6913 發表於 2019-7-18 11:09 PM
小弟不才來解答一下

1.程式的構造似乎大同小異,為何?

打好基礎才是重點
萬物歸宗...

生手 可以請問基礎是哪些? 謝謝
作者: aquarius6913    時間: 2020-4-21 09:03 PM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://www04.eyny.com/) Powered by Discuz!