Teaching/learning programming

Let's do it right

@jjmerelo | JMERELO@cpan.org

faking till you make it

Change is nigh

(Programming) Languages all look the same

object MaxOnes extends Function1[Vector[Boolean],Double]
       with Fitness[Vector[Boolean],Double] {

  def Fitness( ev: Vector[Boolean]):Double = 
    ev.foldRight(0.0)((a:Boolean,b:Double) 
      => if (a == true) b+1 else b )

  def apply(v1: Vector[Boolean]): Double = Fitness( v1 )

}
onemax :: Seq Bool -> Int
onemax v = 
    Data.Foldable.foldl (\y -> (\x -> if x then y+1 else y)) 0 v

They have a finite lifespan

Never stop learning

Surrender to change

Real tasks

Real code

Any language

Embrace the Internet

Stand in the shoulders of giants

Empower the user

There is no true paradigm

But functional looks pretty awesome

Teach ecosystems

Softwaree has free in it

Why would anyone want to follow this manifesto?

Go full stack

And full event queue, full log, full datastore, full *

Polyglot is the norm

Hit the ground running

Get the job done

Some highlights

Start with expressions

Functions are a thing

Pay attention to errors

Do stuff in the cloud

I need you

github.com/JJ/prog21

Thanks!