The document proposes a "Data First" approach to coding which advocates learning about data storage, databases, and data patterns before writing code. It argues this would boost productivity for coders of all experience levels. A Data First approach means learning databases first before coding procedures to interact with data. This provides a better way for people to master coding, especially those without formal computer science training.
1. #DataFirst approach to coding
How software engineering at all levels can be more
productive by learning data first.
Ato Mensah
Co-founder, Bitstrapped
2. Data First: Understand data storage, databases, and data patterns, then writing code
There will be an estimated 30M software globally by 2024
The largest portion of developers are self taught
How do we create more
coders and boost their productivity?
All of them would benefit from a “data-first” approach to
coding to boost productivity, no matter what their
experience level is.
3. Data First: Understand data storage, databases, and data patterns, then writing code
A better approach to learning to code
Learn how to design interfaces
Find a purpose
Define yourself
Learn a data and databases
Learn to write procedures
#DataFirst
4. Data First: Understand data storage, databases, and data patterns, then writing code
Common excuses for giving up
5. Data First: Understand data storage, databases, and data patterns, then writing code
Coding is Boring.
6. Data First: Understand data storage, databases, and data patterns, then writing code
Requires deep math
understanding.
7. Data First: Understand data storage, databases, and data patterns, then writing code
Too Many Languages.
8. Data First: Understand data storage, databases, and data patterns, then writing code
Syntax is confusing.
9. Data First: Understand data storage, databases, and data patterns, then writing code
Teachers are boring.
10. Data First: Understand data storage, databases, and data patterns, then writing code
No Purpose.
11. We give up when we can't relate what we are
doing to a real problem
Data First: Understand data storage, databases, and data patterns, then writing code
The truth is …
12. Data First: Understand data storage, databases, and data patterns, then writing code
Do it because you want to solve your own problems.
Automate and improve your life. Build an app to help
people.
- Andrei Soare
(The Next Web)
13. Don Knuth
“I might be 1 person of 50”
3% of people can think computationally
https://www.youtube.com/watch?v=ajlh7l1KCW8
Data First: Understand data storage, databases, and data patterns, then writing code
14. Data First: Understand data storage, databases, and data patterns, then writing code
Typically refers to a
programmer with limited
experience who writes
simple programs.
Coder
A software engineer is a
licensed professional
engineer who is schooled
and skilled in the
application of engineering
discipline to the creation
of software.
Software Engineer
Programmer
A person who
writes computer
programs. Typically
can pick up any
language with
some time.
15. Data First: Understand data storage, databases, and data patterns, then writing code
Layers of software development
Coders,
Programmers
Software Engineers
Computer Science
Math
Computational
16. Data First: Understand data storage, databases, and data patterns, then writing code
Layers of software development
FRONT-END
HTML, CSS, JavaScript,
BACK-END
PHP, Node.js, Ruby, JAVA,
Python
BACK-END (Database)
MySQL, Postgres, SQL
17. Data First: Understand data storage, databases, and data patterns, then writing code
Learning Web Development
FRONT-END
HTML, CSS, JavaScript,
BACK-END
PHP, Node.js, Ruby, JAVA,
Python
BACK-END (Database)
MySQL, Postgres, SQL
Degree of Difficulty
Easiest
The Interface
The Language
The Storage
18. Data First: Understand data storage, databases, and data patterns, then writing code
We assume that because we are teaching
web development, we need to start with
HTML, CSS JavaScript, the languages of
the web browser
Assumption
19. Data First: Understand data storage, databases, and data patterns, then writing code
The longer it takes a student to learn
databases, the longer they stay
disconnected from the data, the data flow
behind the app.
Maybe we are wrong…
20. Data First: Understand data storage, databases, and data patterns, then writing code
Learn a Data and databases
21. Everything is a data
Inputting / Storing / Retrieving Data is the most
important concept in programming
Data First: Understand data storage, databases, and data patterns, then writing code
22. Data First: Understand data storage, databases, and data patterns, then writing code
Learn a Databases as a means
to becoming a better coder
#Data First
23. Data First: Understand data storage, databases, and data patterns, then writing code
Data First?
SQL = The Language of the Database
The 9 Most In-Demand Programming Languages of 2016
Structured Query
Language (SQL)
24. Data First: Understand data storage, databases, and data patterns, then writing code
PostgreSQL, MongoDB and MySQL power a lot of internet companies.
Almost every interaction you have with technology eventually touches
something SQL or an equivalent Structured Query language.
All mobile apps have access to a SQL database called SQLite. They also store
everything in central databases over the cloud.
Learn these databases
25. Data First: Understand data storage, databases, and data patterns, then writing code
Classic Web Form
Movie Maker
Sarah Sheppard
1. Learn to collect basic form data
2. Learn to process the data
3. Learn to place it in a database
4. Learn to later retrieve this data and display it
26. Data First: Understand data storage, databases, and data patterns, then writing code
{
name: “Sarah Sheppard”,
age: 30,
description: “Movie Maker”
}
Data Structure (JSON)
Form submission over the internet
27. Data First: Understand data storage, databases, and data patterns, then writing code
Database Table
28. Learn to write procedures that
interact with the database
Data First: Understand data storage, databases, and data patterns, then writing code
29. Computers are good at following instructions, but
not at reading your mind.
- Don Knuth
Data First: Understand data storage, databases, and data patterns, then writing code
30. Data First: Understand data storage, databases, and data patterns, then writing code
Procedure
A series of actions conducted in a certain order or manner
31. The actions of a procedure are
a set of instructions written in a
language
Data First: Understand data storage, databases, and data patterns, then writing code
32. Data First: Understand data storage, databases, and data patterns, then writing code
Choose a programming language
?
34. Data First: Understand data storage, databases, and data patterns, then writing code
Picking up your kid up from school
Picking up little Adrienne
Language = English
Think Procedurally
35. Data First: Understand data storage, databases, and data patterns, then writing code
Time
(data storage)
You current State
(data storage)
Computations (inputs)
(data + thinking)
Action (Decision)
(Functions)
Wed, 3:15pm
Wed, 3:16pm
Wed, 3:18pm
Wed, 3:20pm
Wed, 3:22pm
Sitting on couch watching
Judge Judy
Becoming a little anxious
Off the couch, walking to the
kitchen for a snack
Grabbing keys
Sitting in Car
• On wed teacher usually lets the
kids out 10 minutes late.
• But I probably want to get
ahead of the other parents
in the parking lot queue or
we will waste more time
• Oh, last time I was late he
had a fit
• But damn, this episode of
Judge Judy is so good, I want
to watch another 5 minute.
• I guess I better consider
traffic too.
• Did I fill the gas tank?
Shift position
Stand up start walking
Reach for keys
Walk to door, lock the door
and head to the school
36. "I think you can learn any subject better if you
have a way to express it as a procedure (algorithm)
instead of a set of facts".
- Don Knuth
Data First: Understand data storage, databases, and data patterns, then writing code
37. Data First: Understand data storage, databases, and data patterns, then writing code
Humans do a lot of actions by following procedures backed by data
stored in memory and environment data processed in real-time
What we do wrong when teaching code:
1. We take a long time to get to the procedures
2. We spend a lot of focus on fundamentals of programming
3. Definitions and Facts
4. Latest and greatest frameworks (“best practices”)
5. We teach with bias based on our experience
38. We over complicate software and the process
because of our experience
Data First: Understand data storage, databases, and data patterns, then writing code
39. #Data First
Data First: Understand data storage, databases, and data patterns, then writing code
DataFirst means you learn how about the database first, before
learning to code the procedures to interact with it.
40. Learn Data before you master
coding
Data First: Understand data storage, databases, and data patterns, then writing code
41. A better way to master coding
Especially if you are not formally trained
computer scientists
Data First: Understand data storage, databases, and data patterns, then writing code
42. Data First: Understand data storage, databases, and data patterns, then writing code
Learn more database and more
procedures
43. Resources to manage a local database:
Data.World
Social network for Datasets. Download.
PgAdmin
https://www.pgadmin.org
MySQL Workbench
https://www.mysql.com/products/workbench
SQLPro for MSSQL
https://www.macsqlclient.com
Data First: Understand data storage, databases, and data patterns, then writing code
44. Thank You
Data First: Understand data storage, databases, and data patterns, then writing code