iT邦幫忙

0

這個程式怎麼想出來的

  • 分享至 

  • xImage

密密碼碼的程式怎麼想出來的

http://ithelp.ithome.com.tw/upload/images/20170814/20104326UUzRzAWyAL.jpg

看更多先前的討論...收起先前的討論...
你如果不想動手寫程式,在那問這些沒營養的問題的話,沒有人再有義務回答你毫無意義的發問。很抱說我說話就是這麼直。你要寫就寫,不寫就轉跑道去。
alex9453 iT邦新手 2 級 ‧ 2017-08-15 08:38:47 檢舉
我就是想寫不知道怎麼寫才會問,要有想法才寫的出來,難道你沒想法,就可以寫出來嗎?
神威 iT邦研究生 4 級 ‧ 2017-08-15 08:44:40 檢舉
想寫卻寫不出來的話就先挑簡單的阿
大家都是先練基礎不是嗎?
即使打遊戲也不會第一天就跑去打BOSS吧?
alex9453 iT邦新手 2 級 ‧ 2017-08-15 09:00:51 檢舉
我只會99乘法,其他實際運用就不會,我欠缺想法,才想問大家
那你還是離開這途比較實在,我是說真的。
神威 iT邦研究生 4 級 ‧ 2017-08-15 09:40:53 檢舉
樓下大大有說
先找到商品=>有符合=>刪除
所以你應該先試著寫查詢功能
寫出來後在來想下個步驟-刪除
其他實際運用,我說過了吧

沒有人是一步登天的,先從 **生活周邊的體驗試寫一些小程式** 吧,
看到周邊的朋友,做自己有興趣的事情比作正式還有心,
知道每次設備被借出去跟還回來的數量不一樣
所以在速食店花了一個小時就可以寫出 **設備借用管理系統**
系統大概是需要先匯入租借人員名單跟設備清單
設備借出還回時都要登記(原本手KEY太慢,後來變成刷條碼,所以後來又衍生列印條碼系統)
管理介面可以看到有哪些人有借設備跟有哪些設備被借出

如果連這個都做不到, 我是建議轉行
例如訂便當(下列網址) 也是生活周邊的體驗 呀
https://dinbendon.net/do/login;jsessionid=92D2C8A8D3F7230740DE055C10079CD6
系統沒有一步登天的 (WINDOWS 還不是每月在更新漏洞)
就像我在某個EXCEL檔內寫的一個小函數
=IF(S2<>"",IF(T1=AB2,AB3,(IF(T1=AB3,AB4,IF(T1=AB4,AB5,IF(T1=AB5,AB6,IF(T1=AB6,AB7,IF(T1=AB7,AB8,AB2))))))),"")

原本也只有小小的兩個判斷式,然後需求越來越多,函數就越加越長 就變成這樣了
小魚 iT邦大師 1 級 ‧ 2017-08-15 12:50:48 檢舉
只學過99乘法就來看這個,
那不是跟還不會走路就想要跑一樣嗎?
newkevin iT邦高手 1 級 ‧ 2017-08-15 13:21:46 檢舉
沒想法 至少
1.要先去操作購物車購買東西
2.然後故意買錯 看你找到的網站如何處理
3.如果人家這樣的畫面都做好了
你還不了解畫面 就不必費心想直接看程式 了解想法
4.如果了解程式 至少你會問 第1行到第幾行
他這樣寫 我認為他是寫甚麼
這樣認為會對不對
他為何這樣想
是你理解錯誤
還是 ......
不用跟他解釋那麼多啦。
沒心要寫就是沒心要寫…
有心的人才不會問這樣的問題。
newkevin iT邦高手 1 級 ‧ 2017-08-15 22:25:22 檢舉
剛剛才看到99乘法表會寫
有亂想過嗎
+法表 除法表 ....各種數學
用你的基礎先寫這個吧
或更大數的乘法表
....
這段程式碼簡單說,就是 因為某種目的需求,根據使用的程式語言而寫出來的
至於為什麼這麼寫,因為目的與這各程式語言的要求才要這麼寫
alex9453 iT邦新手 2 級 ‧ 2017-09-17 15:56:54 檢舉
看了李家同的人人都能學會寫程式, 用實際流程圖例子轉換成語言 ,雖然你們也有說流程圖,但沒實際例子,還是無法體會,終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
froce
iT邦大師 1 級 ‧ 2017-08-16 13:23:31
最佳解答

我是自學程式,目前也寫了3、4個web系統了,還是全端,真正在學的時間大概2年左右吧。
我一直覺得自己不是「程式」設計師,而是「程序」設計師。
目前寫程式已經不是整個都要土法煉鋼,而是你想要的Library別人通常都已經寫好,等著你用。
(當然,要精進的話就朝著底層lib或是演算法去著手)
寫程式,就是把各個工作流程,拆解成小程序,轉換成電腦能理解的語言,如此而已。
當然,你在做的過程中,會遇到很多問題,這些都能提出來問。
但是,像這樣問說這程式是怎樣想出來的,我或各位前輩想回答也只能跟你說用腦想出來的。

如果你真的想學網頁,建議不要從商業網頁下手,先寫個留言板,加上各種你的創意,熟悉前、後端及資料庫和框架、元件的用法。
先搞懂本質,再慢慢進階到各種花俏的功能,如ajax、前端web框架、物件導向或函數式編程等。
寫久了總會有感覺的。

q00153 iT邦新手 3 級 ‧ 2017-08-17 10:02:31 檢舉

2 年左右建議可以暫停學新技術了,如果現有的技術已經足夠工作所需,
開始學一下網站架構規劃,伺服器建置規劃,專案管理,
大型專案架構,風險評估與控管等等,
良好的網站架構與規劃,有利於網站的長久經營,
以及後人的接手維護性~~

froce iT邦大師 1 級 ‧ 2017-08-18 13:05:32 檢舉

我現在正在朝這方向做,目前是在練習用函數式編程的精神在寫code。
目標是好維護好理解的架構。

不過其他的東西像網站架構規劃,因為公司裡只有我一個在弄資訊技術,其實本來就在涉略了。哈
頭痛的是專案管理,和大型專案架構,code都是我在寫,學了也不知道要幹麻。

0
huangsb
iT邦好手 1 級 ‧ 2017-08-15 08:01:35

首先,你貼的這段程式碼不容易閱讀,原因如下:

  1. 沒有註解
  2. 變數命名讓人無法了解其意義。如果之後用了該變數很多次,你會忘了它是什麼。

這段程式碼應該是用於「刪除購物車的商品」。

至於這段程式碼是怎麼想出來,以傳統的開發來說會先畫流程圖,或是寫虛擬碼。然後再補上實作的程式碼。

以「刪除購物車的商品」為例,流程如下:

  1. 從購物車中找到要刪除的商品
  2. 如果有找到就刪掉它
  3. 重新顯示購物車

然後針對每個處理流程撰寫程式碼

寫程式除了邏輯思考外,還是要大量的撰寫程式碼。也就是你要徹底了解你所使用的「程式語言」,才能寫出有效率、容易閱讀、容易維護的程式碼。

看更多先前的回應...收起先前的回應...
alex9453 iT邦新手 2 級 ‧ 2017-08-15 08:58:30 檢舉

你有寫過 ASP.NET 嗎?如果有,可以貼一段程式碼,並告知是如何想的,我想寫,欠缺想法。謝謝!

小成 iT邦高手 10 級 ‧ 2017-08-15 09:09:49 檢舉

...........你要不要去花錢請家教還是去補習班,會比較快。
如果不想花錢,那可以去GOOGLE搜尋爬文,這個時代要學東西,資源多到爆掉。

開發來說會先畫流程圖,或是寫虛擬碼(簡單的敘述式)。然後再補上實作的程式碼。

不畫流程圖的人是因為流程都已經在腦內畫好了
就像專科微積分老師有說過,學校同學那些說公式不用背的人,那是因為公式對那些人來說,跟吃飯喝水一樣已經是反射條件的人,當然不用背公式

竹本立里
你這個理論是對已經完全具備初學者完成階段(學習完基本一套語言,有做做一些範例出來,並且自己完成一些基本的練習。)才適用。
對於完全不動手的人來說………
就只會是個理論。

這個我覺得他應該是零基礎,先去上課半年~1年去學程式~
先把觀念及理論都學好~
再來去研究程式比較好~
如果牽涉生活問題~那麼去做工人最快~先苦力賺錢存錢...@_@a

14
king742171
iT邦新手 2 級 ‧ 2017-08-15 11:08:45

在聊天室看到 Samと可樂快跑大大 推這篇
就進來參觀了~~

這篇問的是想法..
那我來試著引導alex9453思考..

alex9453..
我也曾是初學者..
也曾佩服人家的程式..不懂別人如何從無到有..
所以也曾問過像你現在問的問題一樣蠢的問題..

學程式首要條件就是得要有基本邏輯能力..
我相信你一定有!!

就像竹本立里說的..
從生活周邊的體驗試寫一些小程式..
你問的問題是想法..
也就是不知道從何開始..
那..就從生活周遭的體驗去發想..

最簡單的例子就是..購物..
你去大賣場買東西..推著購物車..將自己要買的東西一樣一樣放進購物車..
那我問你..此時購物車上會有哪些資訊?
無非就是..購買的物品名、購買的單項物品數量、購買的單項物品單價..
那結帳時呢?又會經歷著怎樣的過程?
無非就是物品的條碼掃描..將掃描資訊顯示在螢幕上給顧客看..
那..複雜點..如果某些物品有特殊的打折資訊呢?
是不是有可能會在掃描的同時出現判斷機制以及相對應的價格計算方式..

就像這樣..一步一步去發想過程..

你說你只會99乘法表...
那你有想過程式的過程怎麼實現嗎?
過程中的迴圈又是有什麼用處的呢?

在這裡發問的大大們..
多半都是已經在業界有在實務的好手~
這些好手們上來發問..
也多半是以討論為主..
而不是帶著一顆要程式碼的心上來發問的..

就如同你前面跟人家要ASP.NET程式碼~還要註解~
那你不如一開始問問題就直接問.."我出五千買程式碼,誰可以給我!"
那..應該會有人願意幫忙~

在這裡..除非是遇到好的問者..這些好手們才會有熱情義務幫忙..
反之..沒人願意免費幫人的~

想法這種東西是要自己去想的..
這樣..這想法才會是你自己的..
沒想法..就從身邊的事物去想像..
科技始於人的惰性..你肯定時有想法..
怎麼做...就先試著自己去逐步推敲..
有問題就先自己趴文找資訊..
當爬不到資訊在上來發文找人討論..
記住!!是找人討論!!不是找人要答案!!

看更多先前的回應...收起先前的回應...
石頭 iT邦高手 1 級 ‧ 2017-08-15 13:52:00 檢舉

推~ 這裡是提供學習交流的平台
如果是學習上有問題 可以提出來且把你嘗試過過程提出來和大家討論!

這篇文章回應的很好,也很努力,值得讚賞。

我這一年也曾經指導過大學資訊系一年級新生寫程式,也出現 Alex9453 相同的問題,不知道是否現在的學校都不教流程圖,就直接教寫程式?

只能說基本功夫下的不夠深,隨時都會遇到障礙的。

richardsuma
就我所了解...
不管是學校還是補習班..
多半都會把訂定的課程進度上完..
所以...理論上..
學生們如果都有吸收~
相對的根基肯定都有..
重點在於實務應用..
很多人都是學了..不知怎麼應用
不知如何開始..
加上欠缺多樣化的題目給予練習或說是實習
導致像alex9453一樣..
想開始又不知如何開始..

簡言之...
就是...學生與教育都有問題..
只不過學生問題多於教育問題..

會這樣下結論是..
自己也曾這樣過來..= =
自己當初不努力~才會換來被前輩們說教洗臉的下場~XD

話說回來~
一代傳一代...我想..前輩們肯定也曾經遭受過洗臉加嘲諷吧~
/images/emoticon/emoticon01.gif

q00153 iT邦新手 3 級 ‧ 2017-08-17 09:58:29 檢舉

俺都直接抓專案教的,還是以 "解決需求" 來做教學最快了,
所以通常會問學生在工作或現實生活有面臨到什麼問題,
再從頭開始解決問題,通常解決了學生也會了。

雖然學生都是朋友跟同事居多.....恩

alex9453 iT邦新手 2 級 ‧ 2017-09-09 23:40:36 檢舉

看了李家同的人人都能學會寫程式, 用實際流程圖例子轉換成語言 ,雖然你們也有說流程圖,但沒實際例子,還是無法體會,終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了

alex9453 iT邦新手 2 級 ‧ 2017-09-17 15:54:30 檢舉

為什麼老師都不教流程,是因為怕學生以後比他厲害才藏私嗎?在學校補習班都去學過,都沒教,所以很多同學上完還是不會,要當老師,還不想教,真是誤人子弟

TO alex9453:
流程圖這種相關課程還是有
例如數位邏輯...等等
像是教你畫畫幾條線、方塊、菱形...等等的幾何圖形運用
這些只是基本流程圖..
複雜一點可能就包含硬體設備的圖
例如個人電腦、伺服器、路由點...等等
所以..不能夠遷就學校沒教..老師沒教的問題..
要嘛就是你沒選到相關課程..
要嘛就是你可能就學時不認真..
再說..這種基本的東西..教了..也不會讓程式撰寫變得更厲害..

"流程"!!不過就是一種概念的東西..
你生活上就已經有運用到了..
拿個簡單的例子來說.."購物"
你去某個商場買東西..
第一件需要選擇的..
可能就是..需不需要推推車或提籃子或甚麼都不需要..
此時..當然就出現了第一次判斷..
你買東西時..肯定會列出購買清單..
購買清單..可能存在你的腦子裡..也可能有個實體的紙張記錄著..
剛剛說的第一次判斷..
就是指..看看要買的東西多寡..
如果東西很多...則推推車..
如果東西不多...則拿籃子..
如果只買一兩樣...則什麼輔助工具都不需要..

以上...
這麼生活化的"流程"..
你有可能會在進商場前..
莫名其妙的拿出紙筆畫流程圖嗎?!

我想對你表達的意思是..
不用把"想流程"或是"畫流程圖"這兩件事搞得好像很複雜很難一樣..
寫程式...
肯定是因為有某種目的才寫..
就算只是練習..
也肯定有你想寫這程式的目的..
例如..你想寫購物車、或是一張問卷、或是一個會員登入...等等

還有阿~!!
你說老師只教語言~
就算真的只教語言..
肯定也把流程教給你了..
只是你沒想到...那就是流程..
教程式語言..
基本的..變數、型態、判斷、輸出...
這不都是流程的一種嗎~?!
只是..你不知如何應用罷了..

所以囉...知道自己根本問題了嗎?

寫程式這條路..說難真的不難..
如何學以致用才是重點!!

alex9453 iT邦新手 2 級 ‧ 2017-09-18 16:01:03 檢舉

當只有少數學生會寫,大部分學生都不會寫時,老師就該檢討自己的教材,而不是怪同學不是寫程式的料,別的課程是有教流程,但卻沒想到可以運用在這,看到老師,直接就把程式寫出來,覺得應該是天份,怎麼也沒想到是經過流程轉換才寫的出來

相信我!!沒有人是本來就會的~!!
就連老師也是如此~~

確實有些人無論學習能力或是邏輯思考能力天生很好
拿我當例子~
我從國中開始就很喜歡算數學~解數學題~
高中開始接觸數位邏輯~也同樣覺得解題超好玩~
但是...
儘管算術與邏輯能力不錯..
後來學習程式設計時..
卻沒有因為這樣的能力而讓寫程式的能力同步提升
到了大學也都是如此~
程式能力普普通通~
雖沒有太爛~卻也強不到哪裡去..
會寫個九九乘法表就在那志得意滿..

現在的我呢
當然是通過後天努力學習
加上找些實務練習
加上經過公司的磨練..前輩的細心教導
現在的程式撰寫能力也能算個中階
至少...能夠像你說的..
一個任務來了..就能夠馬上在腦袋想個大致運作流程~

我相信!!
老師可以直接寫出程式..
也絕對不是先天就會的..
畢竟...人家都當了老師...
早不知教了多少學生去了~
教的內容不會差別到哪裡去~
常教的就那幾個..
程式寫多了..寫久了..當然能夠馬上寫出來啊~
老師寫這麼多次..
根本也可以不用靠什麼流程...
講流程只是針對初學者用的..
流程..對業界來說...
多都是用於複雜系統~
或者需要製作系統運作說明書用的...

所以..加油吧~
看你的發言就可以知道...
你這條路會走得很辛苦~
多找些實務題目練習~
或是自己想實務題目練習~
課本題目多做幾次~
總會有成功的一天的~

0
丹尼
iT邦研究生 4 級 ‧ 2017-08-15 11:31:07

看起來這位施主 沒有被操過

0
souda
iT邦高手 1 級 ‧ 2017-08-21 11:43:36

看到板大的問題!! 讓我有點吃驚既然你都會把程式碼貼出來且有段落. 那麼就說明你對程式是有概念的. 至於你對於這串程式如何想出來的,我認為這和你的專業有相衝突!! 1.寫程式要先有觀念 2.寫程式要有邏輯 3.寫程式要有除錯 4.寫成是要有執行 以上四點是小弟至今的原則. 你所貼出來的語法很多都是程式的函數,有了函數就可以把參數丟進去,這樣就程式就可以跑了.

我想你可以拿一本VB.NET書,前面幾章都是再敘述函數的,當你看懂後就知道為何程是要這樣寫.

看更多先前的回應...收起先前的回應...
alex9453 iT邦新手 2 級 ‧ 2017-08-21 13:45:12 檢舉

我是有概念,過幾天我動手寫,遇到問題再上來問,會更有概念

有熱情,真的有心要寫的人,不會在那過幾天,過幾天。
再多過不算太多的幾次的幾天,閣下恐怕可以直接退休了。

Samと可樂快跑
真的,我遇過一個寫程式熱衷者可以連續寫程式寫30小時不中斷
我連玩遊戲都沒這麼瘋狂了.....,說過幾天才動手,是真的有心學嗎?? 令人質疑

竹本立里
二十幾年前,我還是學生時,也曾經幹過這種事。
現在體力不如從前,但一天還是得寫超過8個小時……
雖然其實現在想計劃的時間還比較多。

alex9453 iT邦新手 2 級 ‧ 2017-08-24 09:51:48 檢舉

最近搬家,總要把傢俱弄好,才能寫吧!

alex9453 iT邦新手 2 級 ‧ 2017-09-09 23:35:37 檢舉

看了李家同的人人都能學會寫程式, 用實際例子轉換成語言 終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了

souda iT邦高手 1 級 ‧ 2017-09-11 07:49:19 檢舉

恭喜!!踏出第一步!!

0
竹本立里
iT邦好手 1 級 ‧ 2017-08-23 11:10:36

寫程式 先想流程跟邏輯

流程跟邏輯對了,寫成程式碼,通常就不會錯了

流程跟邏輯錯了,寫程式碼 只會越寫越亂,就算真的程式可以執行了
等過了1~2個月後,可能連自己都看不懂當初的程式碼

因為我不會寫程式 ,只能用excel 幫同事處理問題
http://ithelp.ithome.com.tw/upload/images/20170823/20102474hVzjJT4xTP.jpg

但是流程會這麼簡單嗎
所以目前已經把excel 的函數寫成這樣了
http://ithelp.ithome.com.tw/upload/images/20170823/20102474COx0d4tnei.jpg

重點是流程跟邏輯呀

而且程式也是逐步完成,而且是邊做邊改(由一個IF變成3個IF到目前5個IF去判斷),要一步登天 除非你是非常有經驗的老手,而且流程全部畫完沒疏忽
目前excel 的函數又變成這樣了
http://ithelp.ithome.com.tw/upload/images/20170823/20102474tpTZ765pZY.png

所以重點是 你動手開始寫程式了嗎

看更多先前的回應...收起先前的回應...
alex9453 iT邦新手 2 級 ‧ 2017-09-09 23:43:06 檢舉

看了李家同的人人都能學會寫程式, 用實際流程圖例子轉換成語言 ,終於知道以前的錯誤是什麼,以前都再專研語言,老師也都只教語言,所以才寫不出來,原來主要是流程圖,畫的出流程圖,就可以轉換成語言了,那就簡單多了

所以我一直再強調流程呀
程式碼只是將流程寫成程式
不同的語言有不同的程式碼
而且流程畫完,程式碼寫完,又試用過,才會知到哪裡有漏洞才回去改流程圖
至於流程圖可不可以簡化 又是另外一件事
講一個簡單的例子
1累加到100=5050 可以用迴圈做
1累加到1萬甚至100萬呢 還是用迴圈做??

別忘了梯形面積公式喔

alex9453 iT邦新手 2 級 ‧ 2017-09-17 00:06:47 檢舉

你知道流程,怎麼不會寫程式,是什麼原因

不同的程式有不同的語法.....
重點是看到密密麻麻的Code 就沒興趣了

alex9453 iT邦新手 2 級 ‧ 2017-09-18 16:06:21 檢舉

我本來也是看到密密麻麻的code就沒興趣,所以才會提出這個問題,大家是怎麼有興趣寫出來的,現在知道,只要流程圖劃的出來,轉換成指令就不困難了,同時換成任何語言都容易

我要發表回答

立即登入回答