Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Overview of Programming Languages
Search
Philip I. Thomas
November 03, 2014
Programming
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Overview of Programming Languages
Presented at Hackbright Academy
Philip I. Thomas
November 03, 2014
More Decks by Philip I. Thomas
See All by Philip I. Thomas
Staffjoy Seed Round Pitch Deck
philipithomas
1
9.5k
Decision Algorithms In Production.
philipithomas
0
310
Staffjoy Dec 2015 Angel Round Pitch Deck
philipithomas
1
9.4k
Staffjoy Y Combinator Fellowship Demo Day Pitch Deck
philipithomas
1
8.7k
Predictive Analysis using JuMP
philipithomas
0
430
Optimization in Julia
philipithomas
0
1.9k
Other Decks in Programming
See All in Programming
The Rails Doctrine Decade
koic
2
460
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.5k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
260
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
380
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
290
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
170
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
すこし踏み込む CancellationToken
htkym
2
1.6k
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
470
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
JRuby: Past, Present, and Future
headius
0
220
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Un-Boring Meetings
codingconduct
0
440
4 Signs Your Business is Dying
shpigford
187
23k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
The Limits of Empathy - UXLibs8
cassininazir
1
700
Accessibility Awareness
sabderemane
1
230
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
We Are The Robots
honzajavorek
0
380
Transcript
Overview of Programming Languages Philip I. Thomas Engineer, OpenDNS www.philipithomas.com
@philipithomas
Me • Philip I. Thomas • Engineer, OpenDNS • www.philipithomas.com
•
[email protected]
• @philipithomas
About OpenDNS • Recursive DNS (50 billion queries a day)
• Security Research and enforcement • 200 employees 208.67.220.220 208.67.222.222
Goal Expose new programmers to different programming languages
Agenda 1. What’s a Programming Language 2. Language Tour a.
Ruby b. PHP c. Java d. C 3. Next Steps
What’s a Programming Language
Programming Languages • Formal way to communicate instructions to a
machine • Standard is “Turing Completeness” • Each language has its own strengths, weaknesses, and idiosyncrasies
Turing Completeness Complete: • Ruby • Javascript Incomplete: • HTML
• CSS
Some Differences • Syntax • Interpreted vs. Compiled • Typing
• Paradigms
Syntax Source: LearnXinYminutes.com
Interpreted vs. Compiled
Typing Strong vs. Weak 10 + “10” • Ruby: Error
• Javascript: “1010” • PHP: 20 Dynamic vs. Static i = “hello” Do we have to explicitly specify that “i” is a string?
Paradigms • Machine Code • Procedural • Object-Oriented “Higher Level”
Language Tour
Section Languages: • Ruby • PHP • Java • C
Covering: • Basics • Where it’s used • Culture
Ruby (1995) • Interpreted • Object-Oriented • Strong-typed, Dynamic •
Everything is a class! • Emphasizes humans over computers http://learnxinyminutes.com/docs/ruby/
Who Uses Ruby
Ruby Culture
PHP (1995) • Interpreted • General Purpose / Object- Oriented
• Weak-Typed and Dynamic • There’s a function for everything http://learnxinyminutes.com/docs/php/
Who Uses PHP
PHP Culture
Java (1995) • Compiled • Strong-Typed and Static • “Write
Once, Run Anywhere” • Robust, Secure, Concurrent • Most-used language in the world http://learnxinyminutes.com/docs/java/
Who Uses Java
Java Culture
C (1972) • Compiled • Strong-Typed and Static • Procedural
(low-level) • Manual memory management • Second most-used language http://learnxinyminutes.com/docs/c/
Who Uses C
C Culture
Next Steps
Programming Advice • Learn to Learn • Ask Questions •
Build projects • Don’t be intimidated
A word on imposter syndrome • There’s a lot you
can know • You only need a subset to build something that people love • It helps to understand what’s out there - curiosity is good; being intimidated is bad
Further Reading • LearnXInYMinutes.com • 7 Languages in 7 Weeks
• Stack Overflow
Conclusion
Goal Expose new programmers to different programming languages
Agenda 1. What’s a Programming Language 2. Language Tour a.
Ruby b. PHP c. Java d. C 3. Next Steps
OpenLate Meetup • Tech Talks and Evening Hack Lounge •
Every other Tuesday, 7PM-Midnight • Meetup.com/OpenLate
Overview of Programming Languages Philip I. Thomas Engineer, OpenDNS www.philipithomas.com
@philipithomas