54
# Data First Teaching coders not to give up Ato Mensah Cofounder, Bitstrapped

Data First: Teaching coders not to give up

Embed Size (px)

Citation preview

Page 1: Data First: Teaching coders not to give up

# Data First Teaching coders not to give up

Ato  Mensah  Co-­‐founder,  Bitstrapped  

Page 2: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

The  Problem  

An  es&mated  1M  tech-­‐related  jobs  will  go  unfilled  by  2020  

The  largest  por;on  of  these  jobs  are  so=ware  development  roles  

How  do  we  create  more  coders  ?  

Page 3: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Web  Development  

This  discussion  will  focus  on  coders  of  web  applica&ons  

Because  the  top  5  most  valuable  companies  in  the  world  are  Apple,  Google,  Facebook,  Amazon,  Microso=  

   

Their  so=ware  creates  interac;ons  powered  by  the  web  

Page 4: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Steps  to  NOT  give  up  coding  

Learn  how  to  design  interfaces  

Find  a  purpose  

Define  yourself  

Learn  a  Database  

Learn  to  write  procedures  

Page 5: Data First: Teaching coders not to give up

Finding  purpose  

Data First: Teaching coders not to give up   Entrecoder.com

Page 6: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

I  couldn’t  learn  coding  because  it  was  boring  and  I  had  to  go  through  the  boring  stuff  to  get  the  interes;ng  stuff.  And  my  teacher  was  boring.    I  was  good  at  math  and  like  computers,  but  didn’t  quite  know  what  I  was  geNng  into.  I  started  with  cobal.    

-­‐  Ashley  

Page 7: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Common  excuses  for  giving  up  

Page 8: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Coding  is  Boring.  

Page 9: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Coding  requires  too  much  math.  

Page 10: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

It’s  too  ;me  consuming.  

Page 11: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Coding  is  for  nerds.  

Page 12: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Too  Many  Languages.  

Page 13: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Syntax  is  confusing.  

Page 14: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Teachers  are  boring.  

Page 15: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

No  Goals.  

Page 16: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

It’s  too  free  to  learn.  

Page 17: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

No  Purpose.  

Page 18: Data First: Teaching coders not to give up

We  give  up  when  we  can't  relate  what  we  are  doing  to  a  real  problem  

Data First: Teaching coders not to give up   Entrecoder.com

The  truth  is  …  

Page 19: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

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)  

   

Page 20: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Are  you  a    coder,  a  programmer  or  a  soLware  engineer  

Define  Yourself  

Page 21: Data First: Teaching coders not to give up

 

Don  Knuth  “I  might  be  1  person  of  50”    

 3%  of  people  can  think  computa;onally  

   

h]ps://www.youtube.com/watch?v=ajlh7l1KCW8    

Data First: Teaching coders not to give up   Entrecoder.com

Page 22: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Typically  refers  to  a  programmer  with  limited  experience  who  writes  simple  programs.      

Coder    

A  so=ware  engineer  is  a  licensed  professional  engineer  who  is  schooled  and  skilled  in  the  applica;on  of  engineering  discipline  to  the  crea;on  of  so=ware.  

SoLware  Engineer  

Programmer  A  person  who  writes  computer  programs.  Typically  can  pick  up  any  language  with  some  ;me.  

Page 23: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Layers  of  soLware  development    

Coders,    Programmers  

SoLware  Engineers  Computer  Science  Math    Computa;onal  

Page 24: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Layers  of  soLware  development    

FRONT-­‐END  HTML,  CSS,  JavaScript,    

BACK-­‐END  PHP,  Node.js,  Ruby,  JAVA,  Python  

BACK-­‐END  (Database)  MySQL,  Postgres,  SQL  

Page 25: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

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  

Page 26: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

We  assume  that  because  we  are  teaching  web  development,  we  need  to  start  with  HTML,  CSS  JavaScript,  the  languages  of  

the  web  browser  

Assump&on  

Page 27: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

The  longer  it  takes  a  student  to  learn  databases,  the  longer  they  stay  

disconnected  from  the  data,  the  purpose  behind  the  app.  

Maybe  we  are  wrong…  

Page 28: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Learn  a  Database  

Page 29: Data First: Teaching coders not to give up

Everything  is  a  data    

InpuNng  /  Storing  /  Retrieving  Data  is  the  most  important  concept  in  programming  

Data First: Teaching coders not to give up   Entrecoder.com

Page 30: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Learn  a  Database  

#Data  First  

Page 31: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Data  First?  

SQL  =  The  Language  of  the  Database  

The  9  Most  In-­‐Demand  Programming  Languages  of  2016  

Structured  Query  Language  (SQL)  

Page 32: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

MySQL,  PostgreSQL  and  Microso=  SQL  Server  power  are  big  businesses,  small  businesses,  hospitals,  banks,  universi;es.    

 Almost  every  interac;on  you  have  with  technology  eventually  touches  

something  SQL.    

All  mobile  have  access  to  a  SQL  database  called  SQLite.  They  also  store  everything  in  central  databases  over  the  cloud.  

Learn  these  databases  

Page 33: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

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    

Page 34: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

{            name:  “Sarah  Sheppard”,            age:  30,            descrip;on:  “Movie  Maker”  }  

Data  Structure    (JSON)  

Form  submission  over  the  internet  

Page 35: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Database  Table  

Page 36: Data First: Teaching coders not to give up

Learn  to  write  procedures  

Data First: Teaching coders not to give up   Entrecoder.com

Page 37: Data First: Teaching coders not to give up

Computers  are  good  at  following  instruc;ons,  but  not  at  reading  your  mind.  

 -­‐  Don  Knuth  

Data First: Teaching coders not to give up   Entrecoder.com

Page 38: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Procedure  

A  series  of  ac;ons  conducted  in  a  certain  order  or  manner  

Page 39: Data First: Teaching coders not to give up

The  ac;ons  of  a  procedure  are  a  set  of  instruc;ons  wri]en  in  a  

language  

Data First: Teaching coders not to give up   Entrecoder.com

Page 40: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Choose  a  programming  language  

?  

Page 41: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Choose  a  programming  language  

PHP   Ruby  on  Rails   Node.js   Python  

Page 42: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Picking  up  your  kid  up  from  school    

Picking  up  li^le  Adrienne    

Language  =  Engrish  

Think  Procedurally  

Page 43: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Time  (data storage)

You  current  State  (data storage)

Computa&ons  (inputs)  (data + thinking)

Ac&on  (Decision)  (Functions)

 Wed,  3:15pm  

           

Wed,  3:16pm                  

   Wed,  3:18pm  

       

   Wed,  3:20pm  

           

Wed,  3:22pm  

 SiNng  on  couch  watching  

Judge  Judy          

Becoming  a  li]le  anxious      

             

Off  the  couch,  walking  to  the  kitchen  for  a  snack    

         

   Grabbing  keys  

         

SiNng  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  ;me  

•  Oh,  last  ;me  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  be]er  consider  traffic  too.  

     •  Did  I  fill  the  gas  tank?

             

Shi=  posi;on                          

Stand  up  start  walking            

Reach  for  keys                

Walk  to  door,  lock  the  door  and  head  to  the  school  

 

Page 44: Data First: Teaching coders not to give up

"I  think  you  can  learn  any  subject  be]er  if  you  have  a  way  to  express  it  as  a  procedure  (algorithm)  instead  of  a  set  of  facts".      

-­‐  Don  Knuth  

Data First: Teaching coders not to give up   Entrecoder.com

Page 45: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Humans  do  a  lot  of  ac;ons  by  following  procedures  backed  by  data  stored  in  memory  and  environment  data  processed  in  real-­‐;me  

   

What  we  do  wrong  when  teaching  code:    

1.  We  take  a  long  ;me  to  get  to  the  procedures  2.  We  spend  a  lot  of  focus  on  fundamentals  of  programming  3.  Defini;ons  and  Facts    4.  Latest  and  greatest  frameworks  (“best  prac;ces”)  5.    We  teach  with  bias  based  on  our  experience    

Page 46: Data First: Teaching coders not to give up

 We  over  complicate  so=ware  and  the  process  

because  of  our  experience  

Data First: Teaching coders not to give up   Entrecoder.com

Page 47: Data First: Teaching coders not to give up

#Data  First  

Data First: Teaching coders not to give up   Entrecoder.com

DataFirst  means  you  learn  how  about  the  database  first,  before  learning  to  code  the  procedures  to  interact  with  it.  

Page 48: Data First: Teaching coders not to give up

Learn  Data  before  you  master  coding  

Data First: Teaching coders not to give up   Entrecoder.com

Page 49: Data First: Teaching coders not to give up

A  be]er  way  to  master  coding    

If  you  are  not  formally  trained  computer  scien;sts  

Data First: Teaching coders not to give up   Entrecoder.com

Page 50: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Learn  how  to  design  interfaces  

This  topic  will  not  be  covered…    DATA  FIRST  

Page 51: Data First: Teaching coders not to give up

Data First: Teaching coders not to give up   Entrecoder.com

Learn  more  database  and  more  procedures  

Page 52: Data First: Teaching coders not to give up

Resources  to  manage  a  local  database:    

Data.World  Social  network  for  Datasets.  Download.  

 PgAdmin  

h]ps://www.pgadmin.org    

MySQL  Workbench  h]ps://www.mysql.com/products/workbench  

 SQLPro  for  MSSQL  

h]ps://www.macsqlclient.com      Data First: Teaching coders not to give up   Entrecoder.com

Page 53: Data First: Teaching coders not to give up

Download  this  presenta;on  at:    

entrecoder.com    

Follow  me  on  Twi]er:    

@realmensah        Data First: Teaching coders not to give up   Entrecoder.com

Page 54: Data First: Teaching coders not to give up

   

Thank  You  

Data First: Teaching coders not to give up   Entrecoder.com