SlideShare a Scribd company logo
1 of 52
Download to read offline
Ruby女孩:
10萬.times { puts "為什麼?" }
Annie Chen
1
6
WhoamI?
Annie Chen
Rails Girls Taipei 3rd 學員
Rails Girls Taipei 4th, 5th 教練
Rails ⼯工程師 @ i-True
數學⽼老師
3月 8月7月6月5月4月 9月 10月 11月 12月
第⼀一次成為
RailsGirls
參加LTRT
開始練功
撞牆期
我到底想學什麼?
找專案練習
⾃自我驗收
RailsGirls
校園推廣
RailsGirls
教練初體驗
A Ruby Week
in Japan
iT鐵⼈人賽挑戰
Ruby ⼥女孩
I got a job!
Share
⽇日本⼼心得
In 2014…
這些都是我
Annie
安妮
facebook: @OtiAnn
github: @OtiAnn
twitter: @_OtiAnn
blog: blog.annideas.com
2014/10/1 ~ 2014/10/30 連續不中斷 分享IT文章
http://blog.annideas.com/ironman7
My 30 Days…
Ruby⼥女孩(1):
為什麼選擇Ruby?
圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT
Ruby社群很多
Ruby/Rails線上資源豐富
友善
熱情
有資源有朋友學起來開心
互相分享
工程師的鄙視鏈?
其實一切只是巧合
鄙視鏈是啥?軟體⼯工程師的鄙視鏈
最重要的是!
⼀一直以來...
並⾮非有系統、有架構的學習
知識之間
似乎沒有連結在⼀一起
很多專有名詞與概念
似懂⾮非懂
The Ruby Programming Language
Ruby 程式設計
David Flanagan, Yukihiro Matsumoto 著
蔣⼤大偉 譯
定價780元 455⾴頁
一直問
一直問
一直問
一直問
一直問
一直問
一直問
一直問
Ruby⼥女孩(2):
Matz為什麼要創造Ruby?
圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT
發明Ruby之前,我學習過許多程式語言,但是沒有一個可以
完全滿足我,他們不是太醜陋,就是太苛刻、太複雜或者太簡
單。身為一個程式員,我想要發明一個能夠滿足我自己的語言。
Ruby語言的發展過程中,我將所有精力都用在讓編程更快速
以及更容易。
多數程式員都覺得Ruby是一個優雅並且容易使用的語言,使
用它來撰寫程式是一件令人愉快的事。
引⾃自【Ruby程式設計】p.3
引自書中所提到Matz的理念:
希望Ruby中的所有功能,都能按照一般程式員所預期的運作方式而設計。
希望Ruby中的所有功能,都能按照一般程式員所預期的運作方式而設計。
希望Ruby中的所有功能,都能按照一般程式員所預期的運作方式而設計。
?
第⼀一次看到這句話
充滿疑問
直到我聽了去年Ruby Kaigi
Matz的Keynote後...
Matz在介紹Ruby3.0的構想時說到一句...(約在影片33分20秒處)
Computer,
You should know me!!!
對呀!
程式語⾔言是我們跟電腦溝通的語⾔言
電腦也是⼈人類發明的
我們⽤用接近⼈人類⾃自⼰己的語⾔言
讓電腦來理解我
應該很合理才對呀!
什麼是接近人類的語言?
Ruby⼥女孩(3):
我該怎麼try Ruby的語法?
圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT
repl.it 提供簡單的寫程式互動環境,
它在沒有網路的情況下也可以使⽤用噢~
(因為它的直譯器是以js寫的,不⽤用傳回Server,所以很快,不延遲!)
repl.it
Ruby中⽂文官網
Try Ruby
Ruby/Rails線上學習資源
其他方式
Ruby⼥女孩(4):
Ruby的語彙結構簡介
圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT
註解(comment)
實字(literal)
標點符號(punctuation)
識別字(identifier)
關鍵字(keyword)
※註解(comment)
Ruby的註解是以『 # 』字號開頭,Ruby的解譯器會忽略『 # 』
字號與它右邊的任何⽂文字
『 # 』字號如果出現在字串或正規表達式裡⾯面,就不會被註解
掉!
除了前⾯面的單⾏行註解之外,也有多⾏行註解,多⾏行註解有兩種⽅方式:
⼀一種是勤勉的⼈人會做的:
另⼀一種是輕量的⼈人會做的:
勤勉的⼈人、輕量的⼈人?
※實字(literal)
實字是直接出現在Ruby原始碼中的值,例如:數字、字串、正規表達式
※標點符號(punctuation)
運算符(+, *, || …)
界定字串(delimit string)
※識別字(identifier)
Ruby會使⽤用識別字來代替變數、⽅方法、類別等命名,識別字組成⾃自
英⽂文字⺟母、數字以及底線符號
識別字的限制:
開頭不可以是⼀一個數字、不可以包含空⽩白或不能列印的字符、也不
能含有標點符號(除了底線以外)、⼤大⼩小寫有別。
※關鍵字(keyword)
關鍵字就是在Ruby中具有特殊意義的字,這些字不太適合被拿來當
做識別字(例如:變數的名字)
Ruby⼥女孩(5):
Ruby的數學跟⽼老師教的數學
都不⼀一樣?
圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT
「這數字分類好像跟真實數系不⼀一樣?」
「Numeric再上⼀一層,也就是他的爸爸、爺爺是誰?」
「Numeric的兄弟姐妹是誰?」
※Ruby的數字類別分層結構
※數學的數系
「也差太多了吧!」
兩個疑問...
1. ⼩小的整數是Fixnum,那要多⼤大才會變成Bignum呢?
2. 3/2應該有兩種可能,⼀一種是分數、⼀一種是除完以後變成
1.5的⼩小數,但是⽤用Ruby執⾏行的結果卻是Fixnum?????????
儲存於31位元空間內的整數都是Fixnum
太抽象惹!
原來19位整數是Fixnum,到20位整數就變成Bignum了!
兩個疑問...
1. ⼩小的整數是Fixnum,那要多⼤大才會變成Bignum呢?
2. 3/2應該有兩種可能,⼀一種是分數、⼀一種是除完以後變成
1.5的⼩小數,但是⽤用Ruby執⾏行的結果卻是Fixnum?????????
除法運算符取決於運算元所屬類別:
如果兩個運算元皆為整數,則會進⾏行截尾整數除法(truncating
integer division)運算。如果有⼀一個運算元是⼀一個Float,則會進⾏行
浮點數除法運算。
引⾃自【Ruby程式設計】p.46
還記得國⼩小數學⽼老師就有教,除以零是沒有意義的,做答請回
答「無意義」,我們看看Ruby怎麼處理除以零的問題:
※Ruby的算術
※更多Ruby的算術
所有⽐比20位還多的整數都是Bignum嗎?沒有範圍嗎?
If it ain't fun, don't do it.
To be continued…
Next time…
Ruby女孩1/6

More Related Content

Viewers also liked

Kriptografi - Stream Cipher
Kriptografi - Stream CipherKriptografi - Stream Cipher
Kriptografi - Stream CipherKuliahKita
 
Pemrograman C++ - String
Pemrograman C++ -  StringPemrograman C++ -  String
Pemrograman C++ - StringKuliahKita
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08KuliahKita
 
Algoritma dan Struktur Data - Persiapan Kakas C++
Algoritma dan Struktur Data - Persiapan Kakas C++Algoritma dan Struktur Data - Persiapan Kakas C++
Algoritma dan Struktur Data - Persiapan Kakas C++KuliahKita
 
Pasar Saham - 04 Ipo Market
Pasar Saham - 04 Ipo MarketPasar Saham - 04 Ipo Market
Pasar Saham - 04 Ipo MarketKuliahKita
 
Nonja peters aapi ccat lecture may 2014
Nonja peters aapi ccat lecture may 2014Nonja peters aapi ccat lecture may 2014
Nonja peters aapi ccat lecture may 2014suesummers
 
Pasar Saham - 10 Event Penting (Key Events)
Pasar Saham - 10 Event Penting (Key Events)Pasar Saham - 10 Event Penting (Key Events)
Pasar Saham - 10 Event Penting (Key Events)KuliahKita
 
Pasar Saham - 16 Support dan Resistance
Pasar Saham - 16 Support dan ResistancePasar Saham - 16 Support dan Resistance
Pasar Saham - 16 Support dan ResistanceKuliahKita
 
Politics News and U.S. Elections Coverage
Politics News and U.S. Elections CoveragePolitics News and U.S. Elections Coverage
Politics News and U.S. Elections Coveragetalloration5719
 
Real Club de Golf el Prat
Real Club de Golf el PratReal Club de Golf el Prat
Real Club de Golf el Pratjwebelliott
 
mastery journey timeline
mastery journey timelinemastery journey timeline
mastery journey timelineErik Mooij
 
사포교회 코이노니아
사포교회 코이노니아사포교회 코이노니아
사포교회 코이노니아Emptinessinmyheart
 
High Connect S.A./ introduction
High Connect S.A./ introductionHigh Connect S.A./ introduction
High Connect S.A./ introductionTassos Tiniakos
 
Pasar Saham - 05 IPO Market 2
Pasar Saham - 05 IPO Market 2Pasar Saham - 05 IPO Market 2
Pasar Saham - 05 IPO Market 2KuliahKita
 
Technology and Science News - ABC News
Technology and Science News - ABC NewsTechnology and Science News - ABC News
Technology and Science News - ABC Newstalloration5719
 

Viewers also liked (18)

Women Expatriates
Women ExpatriatesWomen Expatriates
Women Expatriates
 
Kriptografi - Stream Cipher
Kriptografi - Stream CipherKriptografi - Stream Cipher
Kriptografi - Stream Cipher
 
Pemrograman C++ - String
Pemrograman C++ -  StringPemrograman C++ -  String
Pemrograman C++ - String
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08
 
Algoritma dan Struktur Data - Persiapan Kakas C++
Algoritma dan Struktur Data - Persiapan Kakas C++Algoritma dan Struktur Data - Persiapan Kakas C++
Algoritma dan Struktur Data - Persiapan Kakas C++
 
Pasar Saham - 04 Ipo Market
Pasar Saham - 04 Ipo MarketPasar Saham - 04 Ipo Market
Pasar Saham - 04 Ipo Market
 
Osterhoudt vacation
Osterhoudt vacationOsterhoudt vacation
Osterhoudt vacation
 
Nonja peters aapi ccat lecture may 2014
Nonja peters aapi ccat lecture may 2014Nonja peters aapi ccat lecture may 2014
Nonja peters aapi ccat lecture may 2014
 
Pasar Saham - 10 Event Penting (Key Events)
Pasar Saham - 10 Event Penting (Key Events)Pasar Saham - 10 Event Penting (Key Events)
Pasar Saham - 10 Event Penting (Key Events)
 
Digital Citizenship
Digital CitizenshipDigital Citizenship
Digital Citizenship
 
Pasar Saham - 16 Support dan Resistance
Pasar Saham - 16 Support dan ResistancePasar Saham - 16 Support dan Resistance
Pasar Saham - 16 Support dan Resistance
 
Politics News and U.S. Elections Coverage
Politics News and U.S. Elections CoveragePolitics News and U.S. Elections Coverage
Politics News and U.S. Elections Coverage
 
Real Club de Golf el Prat
Real Club de Golf el PratReal Club de Golf el Prat
Real Club de Golf el Prat
 
mastery journey timeline
mastery journey timelinemastery journey timeline
mastery journey timeline
 
사포교회 코이노니아
사포교회 코이노니아사포교회 코이노니아
사포교회 코이노니아
 
High Connect S.A./ introduction
High Connect S.A./ introductionHigh Connect S.A./ introduction
High Connect S.A./ introduction
 
Pasar Saham - 05 IPO Market 2
Pasar Saham - 05 IPO Market 2Pasar Saham - 05 IPO Market 2
Pasar Saham - 05 IPO Market 2
 
Technology and Science News - ABC News
Technology and Science News - ABC NewsTechnology and Science News - ABC News
Technology and Science News - ABC News
 

Ruby女孩1/6