Tech 101 @ delray tech spaces

Post on 12-Apr-2017

184 views 2 download

Transcript of Tech 101 @ delray tech spaces

Tech 101 @ Delray Tech Spaces

Leo Hernandez@leojh

We need your input!

Introductions

The very basics of computing● Basic function of a computer is to take in

input of commands and data to operate on.● Commands are small tasks for computers:

● Add● Subtract● Put things in and out of memory

Consider1 + 1

What is the operation and what is the data?

Consider1 + 1

What is the operation and what is the data?

In this case you’re giving the computer the numbers to add as data and the operation to perform, add.

Let’s go through some history of tech.

1s and 0s● Binary Code - the raw machine language in

1s and 0s● Example of Binary code:

10 0011 = 431010 0000 1001 = 2569

Assembly● Because working with 1s and 0s sucked● Let’s you program directly on chip but at

least using symbols

mov $1, %rax # system call 1 is write

mov $1, %rdi # file handle 1 is stdout

mov $message, %rsi # address of string to output

mov $13, %rdx # number of bytes

syscall # invoke operating system to do the write

(Because working with Assembly also sucked)

Higher Level Languages

C● Still a popular early high level language. ● Was created by Bell Labs to port UNIX from

Assembly.● Lets you get close to the metal by

manipulating memory directly.● Used mostly by systems, drivers, database,

and game developers

C++● C’s offspring. It’s a superset of C, meaning it

contains all of C’s features plus more.● Introduced Object Oriented Programming.● C and C++ exploded in late 80s as PCs

began to support them● Used mostly by systems, drivers, database,

and game developers

Java● The magic language from the 90s.● It made Object Oriented Programming

mainstream.● It runs on a Virtual Machine so you’re higher

from the metal but leaves the memory management to the Virtual Machine.

● Resurging because of Android

This turned out to be mostly a pipe dream at the time.

.Net● King in South Florida● Kind of a copy of Java.● Catered strongly to Corporations and big

Enterprise companies● Centers around a closed ecosystem of

Microsoft tech (think Comcast bundle)● Currently going through a “glasnost” moment

PHP - Python - RubyOpen Source languages mostly used for Web DevelopmentEmphasis on strong tooling, community, and ease of useLead the way of anti-enterprise movementThey get out of your way

JavaScriptArguably the most important language in the world right nowRuns in every web browserUsed to be the redheaded stepchildCurrently going through its Golden Age

Two popular kinds

Databases

Relational Databases● The most popular one mostly everyone is

familiar with or has heard of● Access and write data with SQL language● Stores data in tabular tables that have

relationships with each other● Hard to design properly and refactor● Examples: SQL Server, MySQL, Oracle,

SQLite

NoSql Databases● Kind of a new thing● Stores data as whole objects● Access data through API● Typically faster to read/write than Relational

Databases● Examples: MongoDB, Cassandra,

Memcached

You ain’t seen nothing yet!

Looking at the future

How will the future be possible?● Artificial Intelligence and Data Science will

lead to more indirect automation and autonomy of systems.

● Social impact of these emerging technologies will be huge (more job displacement, automation, disruption of traditional industries)

The self driving car● Autonomous car only possible because of

fringe technologies● Apparently coming sooner than later● Will completely change society● Will disrupt Auto and Insurance industries

forever

We hope to have you back!

Reach out to me: @leojh

Thank you!