search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

2011 年 1 月 – 電癮院

Month: 1 月 2011 (Page 1 of 2)

學習程式語言的經歷

以我自己的經驗,學習任何一種程式語言,你手邊至少一定要有一本參考書,因為你不太可能一下子就記住程式語言中所有的語法,通常都是需要了才去查,查久了自然就會背起來了。

我自己以前在學校是電子科,雖然是計算機組,但我那時雖對程式設計很有興趣,但卻沒有朝著那方向發展,一直到出了社會N年後,才想到再回來寫程式好了。我沒有很厲害,所以當我在自學C++時,總是有很多一知半解的,感覺好像都會了,可是有缺少些什麼,直到後來我去上了台大資訊系統訓練班及資策會的遊戲程設班之後,C++我才比較了解。

C++ Primer

C++ Primer 4th 中文版
作者:Stanley B. Lippman/ Josee Lajoie/ Barbara E. Moo
譯者:候捷

cpp-book-1.jpg

C++ Primer這本書跟我有著一段錯綜複雜的緣份,其實這本書我早在當兵的時候就買過了它第3版的中文版,後來一直沒有辦法看懂,且在幾年後都沒用到,就在Yahoo拍賣掉了。再過幾年後,忽然又想看一下C++的書,就在市面上選了一本,也就剛好又選中這本C++ Primer,只不過現在已經到了第四版了,這次我就比較看得懂了,但也是只能看前面比較基礎的部份,對於後面有關class類別的部份都不是很懂,後來,這本書就進冷宮。

一直到我在資策會上課時,那時老師要我們使用這本書,我才想到這本書我有,才又把它拿了出來。我也後來才了解到,為什麼我程式語言學的不好的原因,原來是我的學習方法有誤,我每次在看C++的書時,就真的只是「看」而已,「看」都看的懂,所以就以為自己懂了,後來聽了老師的話,我知道,原來還要自己動手「寫」,最好是在看懂之後把書蓋上,然後在電腦上在不看書的狀況之後,將剛剛看懂的程式碼寫出來,當你能寫的出來時,就才代表你是真正的懂了,我是從這樣開始看書之後,程式的能力才真正獲得提升,感謝老師。

這本C++ Primer我後來也都是這樣看的,雖然沒有全部看完,但大致上看過幾次,對於書中所提到的東西都有個印象,一直到現在,當我需要查什麼時,我都會先從這本書開始查,這本就變成我常常翻閱的其中一本工具書了。

C++ Primer這本書裡面包羅萬象,幾乎什麼都談了,所以它的讀者群從入門到專家都適用,它在簡單且基礎上面講了很多,但它在比較深入的議題及STL的部份就談的比較少。而我看書都有個習慣,就是我捨不得在書上直接寫字,所以我每當有疑問或想做筆記時,都會寫在便利貼,然後再貼在書上,就像下圖這樣,所以我的書本都還蠻乾淨的。

cpp-book-2.jpg

大話設計模式

大話設計模式
作者:程杰

cpp-book-3.jpg

當你寫了一段時間的程式之後,一定會開始聽到有人說「設計模式Design Pattern」這玩意,我一開始聽到Design Pattern,我還以為這是一個新技術,就像是Template一樣,後來才發現到是誤會一場。

這本「大話設計模式」是大陸簡體書翻譯過來的,我個人是覺得寫的蠻棒的,作者把這23個設計模式,用很淺顯易懂的方式來教給讀者,我看過那本GoF的Design Pattern的原始著作,不過我實在太沒慧根了,看不懂裡面在說些什麼,看了之後也不曉得該如何的運用,我是一直到看了這本「大話設計模式」,才比較了解設計模式的。

這本書的作者說的很好,他說設計模式有四種境界:
1. 沒學前是一點不懂,根本想不到用設計模式,設計的程式碼很糟糕。
2. 學了幾個模式之後,很開心,於是到處想著要用自己學過的模式,常會誤用模式而不自知。
3. 學完全部模式時,感覺諸多模式極其相似,無法分清模式之間的差異,有困惑,但深知誤用之害,應用之時有所猶豫。
4. 靈活應用模式,甚至不應用具體的某種模式也能設計出非常優秀的程式碼,達到無劍勝有劍的境界。

為了翻閱容易,我還特別用了標籤,貼在23種設計模式的頁數,這樣要忽然要看哪個模式時,就方便多了。祝大家都能達到最高境界。

cpp-book-4.jpg

重構-改善既有程式的設計

重構-改善既有程式的設計
作者:Martin Fowler/ Ken Beck/ John Brant/ William Opdyke/ Don Roberts
譯者:侯捷/熊節

這本書也算的上是進階書了,如果你想讓自己寫程式的功力,能再進步一些,就要開始看這類的書,這本書的第1章以一個影片出租店的程式,來說明如何將一個雜亂不堪的程式,重構成一個容易閱讀,也容易擴充的程式碼,光是第一章能學習的就很多了。

cpp-book-5.jpg

程式設計的啟蒙課程

除非您是寫程式的奇才,才有辦法看書自學電腦程式語言,我程式寫到最後的程度算是中等,在真正懂的「寫程式」,是在二個階段。

第一個階段是參加一個二、三個月的資策會訓練課程,當時好像花了四、五萬元的學費,在那時候,碰到不少的好老師,所以整個寫程式的能力,大大的提升不少,而我們之所以在學校中,沒辦法把程式學好,有很大的因素是,程式的進度被大部份同學給拖累,所以老師都只能上一些「皮毛」,課程就整個結束了,所以我會建議真正對寫程式有興趣的同學,可以額外在外面上一些C++的課程。

第二個階段,是進入華義國際的線上遊戲公司,在這個地方雖然待的時間不長,但經過一番的磨鍊,除了寫程式更上一層樓之外,我也真正找回「寫程式」的自信,我了解到寫程式是一種能力,只要真正懂得一種程式語言,要再寫其它的語言,就會變的很簡單。除了這個之外,我也了解到,其實自己只要有信心,不管再難的功能,最後都是能達成的。

無意間看到以前上課老師所開的課程,想幫老師來推廣一下。

這位老師叫…「林永祥」,Gary Lin。這是他的部落格「做自己的遊戲 – Litus工作室」,裡面有一些課程介紹。

像其中一個「C++ 實務班」來說,30小時 5,000元,貴嗎?

我跟你說,還真便宜,這30小時上完,絕對比你在學校花二年學程式,要學的更精、更好,好的老師帶你上天堂,不好的老師讓你住套房,這真的不是唬你的。

一個人的熱情是會被澆熄的,如果這位老師還有在開課程的話,要趕快去上,要不然將來他不開了,絕對是各位的損失。

下載及安裝TeamViewer

前一陣子介紹過Windows XP遠端協助教學Windows 7遠端協助教學,使用內建的Windows遠端協助的好處是不需要再另外下載額外的軟體,就能直接使用,但由於Windows遠端協助使用的是特定的連接埠,所以很容易因為某一方有防火牆的關係而連接不上。

所以當發生這樣的情況時,就可以考慮使用其它的遠端協助軟體,例如現在要介紹的「TeamViewer」,TeamViewer是一套免費的軟體,它預設使用了連接網頁使用的80 Port,所以幾乎不會有防火牆阻擋的問題,而且連接顯示畫面的品質也相當的優,我曾經使用TeamViewer連接到泰國的一個朋友家,發現到顯示的畫面也相當的迅速,這都多虧了TeamViewer會自動調整遠端協助時的顯示畫面品質。

而要使用TeamViewer,求助端及專家端都必需要安裝TeamViewer軟體,請從以下網址下載免費的TeamViewer:

下載TeamViewer 6

安裝教學如下:

Step 1. 下載TeamViewr之後,執行下載的安裝程式,選擇「Install」後,點擊〔Next〕,如下圖:

TeamViewer-1.jpg

Step 2. 選擇「personal/non-commercial use」,接著點擊〔Next〕,如下圖:

TeamViewer-2.jpg

Step 3. 勾選兩個同意的授權條款,再點擊〔Next〕,如下圖:

TeamViewer-3.jpg

Step 4. 最後在「Choose installation type」中,選擇「No(default)」,最後再點擊〔Next〕即會開始安裝TeamViewer程式。
當程式一安裝完成時,會立即的執行TeamViewer的程式。

TeamViewer-4.jpg

求助端操作

當求助端需要專家端來幫助你時,你只有三個步驟:

Step 1. 執行TeamViewer程式。

Step 2. 將您的「TeamViewer ID」及「密碼」告訴「專家端」,如下圖紅框區域內的文字。

TeamViewer-5.jpg

Step 3. 最後,就是等待專家端連線到你的電腦上來,當專家端連上時,你的桌面左下角會出現如下圖的小視窗。

TeamViewer-6.jpg

當專家端在控制你的電腦時,若你有覺得任何不妥,可以隨時點擊那個小視窗中的「紅色小X」,此次的連線就會中斷。

另外說明的是,你的TeamViewerID在每部電腦中都是固定的,就算你將TeamViewer移除掉再重新安裝,我想ID還會是同樣一個ID,我覺得這應該是用網卡MAC編號下載計算。而你的密碼則是每一次開啟程式時都不同,這是為了避免專家端持有你的密碼,有機會偷偷的連上你的電腦。

專家端操作

而專家端這邊的操作也非常的簡單。

Step 1. 執行TeamViewer程式時,在程式的右半邊,輸入求助端給你的ID,然後點擊〔連接到伙伴〕,如下圖:

TeamViewer-7.jpg

Step 2. 接著會跳出一個「TeamViewer驗證」的對話盒,請在密碼欄位中輸入求助端所提供的密碼,最後再點擊〔登錄〕即可。

TeamViewer-8.jpg

Step 3. 順利連上求助端之後,會另外跳出一個求助端畫面的視窗,若專家端想要結束此次的協助時,可以點擊視窗中上方的紅色「X」按鈕。

TeamViewer-9.jpg

密碼只能動態產生,不能自己設定嗎?

在求助端時曾經介紹過,TeamViewer的密碼,在每一次執行程式時都會不同,這看起來似乎有點不方便,但實際上這是為了保護求助端所設計,避免專家端因為擁有了求助端的密碼,就可以任意連線到求助端。但若是這個專家端是一個你百分百信賴的人,或是根本就是你自己呢?

為什麼專家端和求助端會是同一人呢?這就是遠端桌面的應用。有時候我們會想要控制在家裡或是公司的電腦,要是電腦每一次開機啟動程式時,每次的密碼都不同,那不是變的很不方便嗎?難道要叫老媽跑到電腦螢幕前幫你看嗎?所以這時我們就會想要設定一個「固定」的密碼了,當然TeamViewer一定是有這樣的功能,設定的方法如下:

Step 1. 啟動TeamViewer之後,在「密碼」的區域內點擊滑鼠左鍵或是右鍵,並在彈出的快速功能表中點選「設置用戶自定義密碼」,如下圖:

TeamViewer-10.jpg

Step 2. 接著從「TeamViewer選項」對話盒中,填入「密碼」及「確認密碼」,最後再點擊〔確定〕即可,之後就可以從「別部電腦」登入到設定固定密碼的這台電腦了。

TeamViewer-11.jpg

如何將兩台IP分享器串接在一起?

一般人不會無聊的將自己手上的兩台IP分享器串接在一起,會需要串接的情況,多半是在租屋、或是住宿的地方,一台是公用的IP分享器,而你自己又想要再使用自己的IP分享器,有時是為了要無線上網,有時是為了要讓多台電腦同時能上網(這部份可以先試一下用一般的集線器(Hub),如果可以的話,就不需要大費周張的使用IP分享器)。

但是這樣串接IP分享器時,多半沒有辦法一開始就連接上,這是由於大部份IP分享器的IP預設值多半是192.168.0.1,所以兩台IP分享器都使用了相同網段的IP,就會造成後面串接的IP分享器沒有辦法上網,所以你必需要將這兩台IP分享器的IP錯開來,例如,分享器A的IP若為192.168.0.1,那分享器B就設為192.168.1.1或192.168.2.1,這樣懂了嗎?

若你還是不懂,請看我以下的示範:

此外,如果您想要串接分享器時,讓兩台分享器位於同一個網段時,也就是無論是透過哪一台無線分享器,都能連接到區域網路上的電腦或設備,若有這樣的需求,由於設定方法不同,因此請您請參考「如何連接並且整合兩台無線 IP分享器在同一個網段中?」這篇文章。

如果你看了以下的設定感到頭昏的話,可以看一下這台「Kisslink分享器」,完全不用設定,插上去就好了。

串接分享器設定示範

為了方便說明,我將房東的IP分享器定義為「分享器A」;而自己新買的IP分享器定義為「分享器B」。

Step 1. 由於要先要知道「分享器A」的IP,所以連接上「分享器A」的網路線後,透過任何你會的方式,來得知這兩項資訊。最快的方式就是開啟「命令提示字元」,然後輸入「ipconfig」命令,如下圖:

cascode-ip-router-1.jpg

圖中的「192.168.0.1」就是「分享器A」的IP位址。

Step 2. 接著,將你租屋處的網路線接在「分享器B」的WAN,再將你的電腦主機網路線接到「分享器B」中的Lan1~4中任一個接口。

Step 3. 登入到「分享器B」的Web後台,然後到「區域網路設定」頁面,並將「路由器IP位址」設定成「192.168.1.1」,如下圖:

cascode-ip-router-2.jpg

Step 4. 此時由於你已經將IP分享器B的IP變掉了,而且為了保證IP分享器的DHCP會開始使用新的網段IP來分派,所以請先將IP分享器B的電源關掉再重開,此時電腦就應該要能上網了。

如果還不能上網,請你確認兩件事情。

第一、檢查目前電腦所得到的IP位址,是不是192.168.1.XXX這個網段的。

第二、若第一OK的話,請再一次連接到「分享器B」的Web後台,確認「區域網路」的IP是否為「192.168.1.1」,當然DHCP也要是啟用的狀態;另外在「網際網路」的部份,確認有沒有取得到「192.168.0.XXX」的位址,這兩項都必需要有,才有辦法順利上網的。

cascode-ip-router-3.jpg

Page 1 of 2



熱門推薦

本文由 mrtang 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦