the creative programmer - codess seattle 2015
TRANSCRIPT
@cattsmall@cattsmall
@cattsmall@cattsmall
● Product Designer at SoundCloud
● Game maker w/ Brooklyn Gamery
● Event organizer & teacher
● Lover of making things with code!
A little about me:
@cattsmall@cattsmall
Technology isa thing now!
@cattsmall@cattsmall
More marginalized people in tech
@cattsmall@cattsmall
Great perks!
@cattsmall@cattsmall
Makers, not just consumers
@cattsmall@cattsmall
That’s awesome!
@cattsmall@cattsmall
It’s not all joy & joyness.
@cattsmall@cattsmall
Programming education can be hostile.
@cattsmall@cattsmall
LecturesThe mysqlnd replication and load balancing plugin is implemented as a PHP extension.
It is written in C and operates under the hood of PHP.
During the startup of the PHP interpreter, in the module init phase of the PHP engine, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods.
At PHP runtime, it inspects queries sent from mysqlnd (PHP) to the MySQL server
If a query is recognized as read-only, it will be sent to one of the configured slave servers. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been chosen for running the previous query, and the query started with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server.
I’m not coding at all in this class...
@cattsmall@cattsmall
HomeworkI don’t have
time to do all this at home!
@cattsmall@cattsmall
Expensive books
MSRP $40 MSRP $25 MSRP $50 MSRP $20
@cattsmall@cattsmall
Confusing tutorials
??? ???
@cattsmall@cattsmall
Imitation & hacking
@cattsmall@cattsmall
Programming education has high barriers to entry,
low barriers to frustration.
@cattsmall@cattsmall
Programming culture often celebrates code
over creativity.
@cattsmall@cattsmall
Hierarchy of languages
PHPJava SQL C++ASP.NET
JS C#Ruby Objective C
Python
@cattsmall@cattsmall
Hierarchy of frameworks
JS
Angular EmberBackbone
Node ReactIO
@cattsmall@cattsmall
“Real programmer”I haven’t slept in weeks!
export class Just<A> extends Maybe<A> {
constructor(public value: A) { super(); };
export class Nothing<A> extends Maybe<A> {
constructor() { super(); };
fold<R>(match) { return match.nothing; }
export function of<A>(value: A): Maybe<A> {
return new Just(value);
export function zero<A>(): Nothing<A> {
return new Nothing();
export function map<A, B>(fn: (a: A) => B): (m: Maybe<A>) => Maybe<B> {
return function morphism(ma) {
return ma.fold({
just: (a) => { return new Just(fn(a)) },
export function bind<A, B>(fn: (a: A) => Maybe<B>): (m: Maybe<A>) => Maybe<B>
return function morphism(ma) {
return ma.fold({
export function zipWith<A, B, R>(fn: (A, B) => R): ((ma: Maybe<A>, mb:
Maybe<B>) => Maybe<R>) {
return function(ma, mb) {
</> </>
@cattsmall@cattsmall
Programming culture puts code before humanity.
@cattsmall@cattsmall
Programming culture is hurting people.
@cattsmall@cattsmall
Programming culture is turning people away.
@cattsmall@cattsmall
I love coding...
@cattsmall@cattsmall
I love coding...because I love creating.
@cattsmall@cattsmall
Anime fandoms
@cattsmall@cattsmall
The Big KISS
@cattsmall@cattsmall
Learning to code
@cattsmall@cattsmall
My own KISS dolls!
@cattsmall@cattsmall
KISS doll portfolio + blog
@cattsmall@cattsmall
Xanga + LiveJournal design
@cattsmall@cattsmall
Website designs
@cattsmall@cattsmall
WordPress
@cattsmall@cattsmall
I learned to code in a way that made me love it.
@cattsmall@cattsmall
Cross-platform products & games
@cattsmall@cattsmall
Sketching
@cattsmall@cattsmall
User flow
@cattsmall@cattsmall
Make stuff!
@cattsmall@cattsmall
Programming isa means to an end.
@cattsmall@cattsmall
Programming isartistic.
@cattsmall@cattsmall
Programming iscreative.
@cattsmall@cattsmall
Programming isn’tthe most important thing
in the world.
@cattsmall@cattsmall
Celebrate what gets made.
@cattsmall@cattsmall
You don’t haveto love code to be a
programmer.
@cattsmall@cattsmall
Websites
@cattsmall@cattsmall
Apps
@cattsmall@cattsmall
Games
@cattsmall@cattsmall
Clothing
Photo by Brady Dale for Technically Brooklyn
@cattsmall@cattsmall
Food
Photo by Brady Dale for Technically Brooklyn
@cattsmall@cattsmall
Books
technolojie.com
@cattsmall@cattsmall
Robots
@cattsmall@cattsmall
Programming tools
@cattsmall@cattsmall
Use code tomake things you love.
@cattsmall@cattsmall
Keep your mind active with side projects.
@cattsmall@cattsmall
Stay true to who and what you want to be.
@cattsmall@cattsmall
In summary:● You already are a real programmer.● Focus on the project, not the tools.● Side projects are important.
@cattsmall@cattsmall
Tips for creative programmers:
● Start on paper.● Define the goals for your project.● Pick whatever language & framework will
make your project happen.● Cut your project into small chunks.● Celebrate what you’ve made! Don’t get stuck
on what you couldn’t make.
@cattsmall@cattsmall
Go out there & make cool stuff!