Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Overview of Programming Languages
Search
Philip I. Thomas
November 03, 2014
Programming
0
510
Overview of Programming Languages
Presented at Hackbright Academy
Philip I. Thomas
November 03, 2014
Tweet
Share
More Decks by Philip I. Thomas
See All by Philip I. Thomas
Staffjoy Seed Round Pitch Deck
philipithomas
1
9.3k
Decision Algorithms In Production.
philipithomas
0
300
Staffjoy Dec 2015 Angel Round Pitch Deck
philipithomas
1
9.3k
Staffjoy Y Combinator Fellowship Demo Day Pitch Deck
philipithomas
1
8.5k
Predictive Analysis using JuMP
philipithomas
0
420
Optimization in Julia
philipithomas
0
1.7k
Other Decks in Programming
See All in Programming
チームの境界をブチ抜いていけ
tokai235
0
180
Devoxx BE - Local Development in the AI Era
kdubois
0
130
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
230
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
220
Introduce Hono CLI
yusukebe
4
1.6k
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
350
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.2k
XP, Testing and ninja testing ZOZ5
m_seki
3
670
CSC509 Lecture 05
javiergs
PRO
0
300
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
1k
Serena MCPのすすめ
wadakatu
4
1k
Leading Effective Engineering Teams in the AI Era
addyosmani
6
440
Featured
See All Featured
Making Projects Easy
brettharned
120
6.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Site-Speed That Sticks
csswizardry
12
900
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Scaling GitHub
holman
463
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
20
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Statistics for Hackers
jakevdp
799
220k
BBQ
matthewcrist
89
9.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
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