We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Keynote: The Creative Programmer

00:00

Formal Metadata

Title
Keynote: The Creative Programmer
Title of Series
Number of Parts
34
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Catt Small is a product designer, game maker, and developer. She is currently making awesome things at SoundCloud. She started programming interactive games at the age of 10 and has been going ever since. In her spare time, Catt organizes events and teaches game development with The Code Liberation Foundation.
Programmer (hardware)Multiplication signRule of inferenceBitValue-added networkComputer animationJSONXMLProgram flowchart
Product (business)CodeProduct (business)CodeMultiplication signGroup actionOpen sourceTournament (medieval)RandomizationComputing platformInteractive televisionWebsiteGame theoryDifferent (Kate Ryan album)Computer programmingTouchscreenBitDemoscene
CodeWebsiteSpiralMereologyGame theoryComputer programmingFunctional (mathematics)Projective planeMultiplication signBlogPoint (geometry)Ruby on RailsPhysical law
Social classMereologyMultiplication signProgramming languageFormal languageStudent's t-testPoint (geometry)Constructor (object-oriented programming)CodeQuicksortComputer programmingData conversionHierarchy
Java appletFormal languageMereologyType theoryProgrammer (hardware)DampingProjective planeString (computer science)Multiplication signOnline helpScripting languageHierarchyDiagram
Functional (mathematics)Point (geometry)Multiplication signVideo gameHierarchyDiagram
FamilyMultiplication signSoftware frameworkGoodness of fitProgrammer (hardware)Real numberComputer programmingMereologyFormal languageHierarchyVideo gameProcess (computing)Operating systemOpen sourceRight angleCodeXML
MathematicsComputer programmingProgrammer (hardware)Real numberMultiplication signMathematicsIntegrated development environmentVideo gameXMLComputer animation
Semiconductor memoryProcess (computing)Inheritance (object-oriented programming)Hand fanJSONXML
Inheritance (object-oriented programming)RandomizationGame theoryEmulatorHand fanMultiplication signComputer animation
Multiplication signComputer fileWebsiteSheaf (mathematics)Point (geometry)Video gameFocus (optics)Computer animation
CodeComputer fileInheritance (object-oriented programming)WebsiteFile archiverAreaXML
Computer-assisted translationWebsitePixelType theoryRandomizationCodeCombinational logicComputer animation
BlogWebsiteTable (information)Frame problemMultiplication signVideo gameSign (mathematics)
InternetworkingCodeStorage area networkComputer fontGraph coloringMyspaceVideo gameCASE <Informatik>Multiplication signSource codeXML
WebsiteProcess (computing)WebsiteCodeElement (mathematics)Task (computing)Latent heatGoogolMultiplication signGeometryWebdesignProjective planeWeb-DesignerSocial classShift operatorQuicksortCuboidFormal languageDifferent (Kate Ryan album)Web 2.0Java appletScripting language
Game theoryWebdesignGame theoryPoint (geometry)Computer programmingGroup actionGastropod shellProduct (business)CodeTask (computing)Computer animation
Computer programmingProcess (computing)Arithmetic meanCore dumpMultiplication signData conversionXMLComputer animation
CodeVector potentialProduct (business)InternetworkingWebsiteCodeVector potentialWebsiteTwitterMobile appFlickrVideo gameMedical imagingElectric generatorFreewareProduct (business)
Clique-widthTouch typingMeta elementCASE <Informatik>Computer configurationStudent's t-testPrototypeMobile appRange (statistics)
Game theoryGame theoryProcess (computing)Interactive televisionVisualization (computer graphics)Phase transitionGenderDressing (medical)Covering spaceComputer animation
Inheritance (object-oriented programming)CodeMereologyDressing (medical)Physical computingLetterpress printingComputer programmingDifferent (Kate Ryan album)
CodeLine (geometry)Expression
CodeInteractive televisionOnline chatBuildingChatterbotTwitterRobotRoboticsComputer animation
Programmer (hardware)Programmer (hardware)Computer-assisted translationMereologyPressureComputer programmingReal numberProcess (computing)CodeComputer animation
CodeProgrammer (hardware)Projective planeMetropolitan area networkWordProgrammer (hardware)Multiplication signFormal languageCodeMobile appSet (mathematics)Software frameworkComputer animation
EmailPower (physics)FreewareJSONXMLComputer animationProgram flowchart
Transcript: English(auto-generated)
So it's like so cool. This is actually my first bangbang con, but I've been like admiring it from afar for a very long time
So I'm so happy to be here And I wanted to talk a bit about my personal experience and also this is great because we talked about the social rules and I feel like some of this will actually kind of
Sound familiar or like hopefully y'all will kind of empathize with it or maybe learn something new and if not, that's also totally fine So yeah a little bit about me I am a product designer at SoundCloud Anyway full screen anyway So I'm a product designer at SoundCloud
I am the co-founder of Brooklyn Gamery where we like design and ship games for different platforms I also help to run code liberation Which is a group that teaches women's a program in New York and now also in London And I also make a lot of really random stuff So like random websites that do stupid things I help to make a gaming tournament
I make games by myself as well as with friends And I also recently got into making zines which is fun because I used to make comics So I like doing lots of random stuff. That's like interactive and a lot of it has to do with code So today we're going to discuss a couple of things
Programming culture and when I say programming culture, I specifically mean competitive programming culture Creativity and My path to code and hopefully this will be interesting to you because I don't know I don't know how many of you got into coding like when you were younger versus when you got into college But I've heard lots of stories about you know people coming to it at different times
And I think it could be kind of cool to discuss that So let's start by talking about code culture And again when I say code culture what I specifically mean is the competitive kind of culture around things like well Actually, so this will be fun So something that I feel based on my experience is that programming is inherently creative
We're creating solutions to things, you know And it's a skill that requires a lot of creative thinking like problem-solving is so important and is so much of what we do But very often instead of focusing on the how the what or the whys and the what's behind the solutions
We think about the how like how are we gonna make something? What are we gonna use and why are we using this and why is it better than this other tool? so something that I've noticed when I talk to a lot of traditional engineers who kind of came from a schooling backgrounds that when we start talking about a project they immediately jump into
How like what are we gonna use rather than how should it actually work? So for example, I wanted to create a website that showcased some games that my friends and I were working on But before we actually figured out the functionality we were kind of saying hey, this could be like a blog Do we want to have these other features? But we didn't even get to flesh all of that out
But people were already looking up like the best Ruby on Rails setup to use and it was kind of like what are you? Doing stop. We don't even know what we're doing yet This is gonna and so what happens every time that we have that discussion we just spiral into this You know constant comparison of like the different tools that we can use and then the projects keep failing and this has happened to me
Like five times by now, so at this point I stopped people mid-sentence and I'm just like what are we trying to do? You know like let's stop thinking about how we're doing it and just you know Think about what we're trying to do first And as I mentioned I believe that part of this is partially because of how code is taught in traditional educational settings
Teachers are often focusing on you know teaching through lectures rather than actually teaching through doing so For example the singular time that I took a programming class because I'm mostly self-taught I took a PHP class. I'm sorry and That was actually a fun comment that I probably shouldn't have said anyway, but fun times see it still happens
But so the singular time that I took a programming class the teacher Focused on the lectures through the entire class and we never actually got to do any programming during the class So I was very confused and frustrated and had to fumble through it by myself and at a certain point
I just started coding in the class and ignoring what the teacher was saying because it helped me understand what I was doing faster And I actually ended up dropping out of the class which says a lot, but the point here is that Maybe we need to teach programming in a different way because when you think about it a lot of programming languages are actually
Logically quite similar and yes, they have different ways of being used in different constructions but a lot of the concepts are still there no matter which language you switch between so Another thing to note about this is that people often comment I don't know if you've ever heard this but some people comment that when a student leaves a school
They actually don't really know how to build things they've memorized so many things but they don't actually know how to make something work and that to me is quite troubling because a Lot of what we're doing with programming is actually creating things and trying to make stuff work So if we're leaving schools without actually knowing how things work, that's not okay in my opinion
So by centering conversations around what to use we also Create this hierarchy of sorts. So as you heard me say when I talked about learning PHP I apologize because to a lot of people PHP is like what why would you use that? And this goes back to this like mentality of like which languages are the best languages I just threw Python there because I could it's not particularly a language I care about
But to some people Python is the best language or so some I don't know who but some people think that like JavaScript is the best Language or Ruby or whatever everyone's got their own like language that they think is the best and this Can also not be good because imagine that you're a new programmer and you're just asking hey
What language should I start with a lot of times people will say their best like what they think is the best language Rather than which language is the least complicated for noobs to get into So for example, I learned JavaScript first and it's kind of really accepting of everything and that's a good thing and a bad thing
But you know the nice thing about it is if you make a mistake like yes It'll tell you what to do, but you don't have to like for example define what type of variable is Guesses from the thing that you put at the end of the variable definition Which is really great for getting into it because then later you can switch to something like C sharp and say oh
Okay, now I get that there's like a string type and a float type and all this stuff But at the beginning it's really great to start with the basics And a part of this again goes back to what happens if someone Decides to stop coding because the language that they start with is just so confusing and frustrating So using the best language isn't always the best idea
And the other thing about it is that even if you're an experienced programmer and you want to try the best language Maybe it doesn't help you progress on projects that you're trying to get done And then additionally within a language is even more hierarchy I don't know how many of you have experienced this but this is basically my life all the time You know, it's like oh god
Do I use this one or that one or do I try react or do I go with angular or whatever? And it's really just so distracting because the whole point of all of this is to just Make something and we end up concentrating so much on What we're using and we don't actually get to the thing that we're trying to make and instead of doing all this Maybe we should be focusing on more if the tool serves the function that is needed rather than comparing all
The things that we've heard are awesome The other part of this is the whole real programmer thing I struggle with this all the time and I don't know how like how many of you struggle with the real programmer thing if any of You yeah, so that's fun. I
Some people call it like imposter syndrome but I think it's you know caused by a certain competitiveness that we are all very used to that comes from similar veins of the Hierarchy stuff I mentioned and My little joke is that even if you use a good language and a good framework You're not a real programmer unless you never stop coding and build your own operating system with your own blood
But that's not how it should be right, you know, like that's not possible But if you look at people online you start comparing yourself, right and if you're not coding all the time And if you don't love coding, you know, like you feel like maybe I'm not a real programmer Like look at all these people doing open source stuff I just I don't know if I can do that or I don't have the time and that's just really not sustainable
Right, like some of us have families like most of us have families I'm sure of some different kinds like we have friends we have lives We have things we want to do outside of programming and it's okay Also to just view programming as a job rather than something that has to kind of like in consume your entire life
so What I'm saying with all of this is that programming culture the competitive kind that I was talking about actively hurts people and Real programmers are people who try to be real programmers often get sick or burnt out They like some people have become depressed and some people have actually hurt themselves
and that's really not helpful or you know healthy and It can actually scare people off from joining the industry Like we're all making such cool things and I don't know about you but like the thing that really excites me is building something and then you know, just typing stuff in and then seeing it come to Life and I feel like so many people would enjoy that like that is such a really wonderful feeling and it's amazing
And I think the important thing to note here is that that's quite artistic in a way like we're actually creating things, you know all the time and Artistic people could be learning to code and using those in their everyday lives to express themselves even more But they're not partially because of the way that we're portraying programming to them
And so I think programming culture needs to change The environment is kind of hostile when you think about it as a very competitive place and that can hurt us in ways Like yes, it's important to be inspired by each other But if it's hurting us, that's also not good and there's so many opportunities out there and you know
There's so many different things that we could be doing and so we need more people in this industry especially diverse people not less So now I'm going to talk about my story and how this can be example of the change that I hope will happen I Specifically love coding because I love creating
And I started coding around the age of 10 and I was really fascinated with making stuff when I was younger. I Like some of my earliest memories are just drawing very specifically Sonic the Hedgehog fan art I'm also wearing a fun shirt today
So yeah kind of a nerd but basically my parents threw technology at me at a very young age And I fell in love with it and I was really fascinated with it because it was just fun and it wasn't because I wanted A job particularly which you know, some people wanted as a job and that's fine, too But very specifically I was a huge fan of anime and as you see
Pokemon stuff and so Sailor Moon specifically was like one of my favorite shows and I Spent a lot of time like drawing fan art around the age of like 10 And like visiting anime websites and like playing all these games and I like downloaded it like emulators and stuff And I was really into just finding random Sailor Moon games. It was very strange
But I was always like very very artistic and as I mentioned my parents introduced me to technology at a very young age I was their only kid. So it wasn't really like a gendered thing It was just kind of like technology is the future like just do it. It seems cool And I stumbled upon this website one day while I was searching for Sailor Moon art and it was called otaku worlds and for those of you who don't know otaku is like slang for a young socially
awkward person Who's like really obsessed with something to the point that they like stay in their house and only do that thing and this is usually in reference to anime and video games so on otaku world there was this section for these interactive dress-up dolls called kiss dolls and
Of course they were like very anime focused So I fell in love immediately because I also really liked fashion at the time and I like to draw my own original characters So I was very much like I need to make these these seem cool So I found some tutorials that they had listed on the site and they were literally just text files And they had separate areas where you could download the these LZH files
Which were these archives of the like dolls themselves? And so you could just kind of mess with them and it was super duper cool So they were just text files. This one was made in 1996 and updated in 1999 and I recently looked at it Okay, it's still there, which is amazing
but using these tutorials like I was a 10 year old and I was just ripping stuff apart and Modifying it and I came up with my own dolls and I checked and they're still on that site So this one's so happy But yeah, I can go back and see 10 year old cats random dolls These are all from me being 10, which is really cool in my opinion, but I really loved it
It was just so fun and even now like I just get so excited thinking about the hours that I just spent kind of like making these things come to Life and at first I copied other people's designs but then I learned that that was a bad thing and so I started making my own and it was a very refreshing feeling again as I mentioned earlier, you know It was great to be able to type something in and then just load it up and then see it happen
And that was like so invigorating because before that I was just working with paper and paper was not like that Like you had to do everything by hand and then it you couldn't actually see it get animated or anything and with this I was just you know saying move a tail or whatever and it would just happen automatically and that was so cool The other thing about this is that I it helped me to learn how to do pixel art and stuff
So it was kind of like this combination of art and code and that's how I grew up thinking about programming And Overall, this taught me a lot and actually still influences the stuff that I do today So eventually what happened is I looked at other people's dolls and I noticed that they have these cool
www signs next to them and when you press them, they'd go to their website and I was like Whoa, I need a website because that is so cool so then I decided to make my own website to showcase my dolls off and this was like my first foray into whatever a portfolio site was and Before this I'd messed around with AOL home if anyone remembers AOL home. Yay
But I never actually brought one to life or had one that was public and this was my first time actually using HTML and CSS and this was like back in like yeah, 2000 2001 So it was frames and tables. Yay, but it worked which was great And then when I got older
I found out about And live journal and like myspace and all of those and the cool thing about Zenga and live journal specifically It was that you could actually modify the HTML and CSS. So again, this was another chance for me to kind of experiment and To express myself and I had a lot of fun just messing with colors fonts and all those kinds of things I don't really know what I was doing like here
I used comic sans and it was you know, like it worked at the time and it made me seem fun and cool But this was an example of me getting to kind of express myself as a teenager Which was really important at the time So I kind of grew up with code and you know it let me express myself again and it was another case in which I felt like it was very creative and just a fun way
to kind of see myself on the internet come to life and then I got into actually doing like professional website designs and Throughout high school and early college I kind of kept like working on personal projects and I would upload them to Geo cities rest in peace But yeah, so by the time I actually got into college, you know
I'd learned enough to actually start designing websites for other people and that was really cool because that was a mental shift for me to Actually see wow This can be a job like this whole time I've been coding and I didn't know that people got paid for this kind of thing so I made another portfolio site that was just more focused on actually highlighting some work and
I got a couple of internships and that's how I learned to actually debug code for people and you know I had them walk me through things and in my second internship I learned JavaScript which was intense because I had never like my first language was a scripting language But it was very proprietary and I didn't understand how JavaScript worked very specifically But they asked me to make a website with drop-down menus and a sidebar with scrolling inspirational quotes like yeah fun
So what I ended up doing was I didn't really have the money to go to a JavaScript class specifically But I did find a book Within a box of other books on the street very convenient That was a JavaScript 101 book and it was from CUNY shout out to CUNY
And what I ended up doing is going through the book I read the entire book and started putting things on post-it notes that were relevant to what I was trying to do I ignored things like modulus because they didn't really make sense to me at the time but you know, I would I would copy down things that made sense like
You know identifying Different elements and things like that and then I scanned all those notes and digitized them in illustrator and then printed them all out on a cheat sheet and That helped me like this whole process of writing everything down and then like writing it again and printing it out Helped me to kind of understand like okay. This is what I have to do And by the end of that semester, I actually had the website up and it's still somewhere on my portfolio
If you search hard enough And so this was an example of how I learned to program it was a lot of self-study and a lot of experimentation and just a lot of googling and a lot of just Cutting things out and figuring out how it works with a specific purpose in mind with a specific task that I wanted to accomplish
And I think that helped me to form a certain relationship with code as a paintbrush of short of short sorts of shorts So over time I kind of kept working with web design and web development and then I ended up here in this place where I
Designed products for SoundCloud. I create games This is one of the games that I created called prism shell and then this other game is called Al the chemist and this transition Happened very naturally as you can probably see and I'm sure I'm not alone in this I don't know if anyone else was a web designer at any point, but like yeah. Yay web designers But yeah before the specialization of tasks happen
Like obviously we've always had people who were specifically focusing on programming and people who were kind of more focused on design But there was much more of emerging together. And so even though my title is designer now I still use code a lot every day in the work that I do And so I hope I that you've realized a couple of things from my story Which is that programming can be quite artistic and it can be incredibly creative
But at its core at least for me It's a means to an end and I think that all of your jobs are amazing and I love my job as well Because we're all turning ideas into reality all the time But just remember that the tool doesn't always matter more than what you've made And it's very very easy to get sucked into conversations that are focused on those tools
But you know, make sure to also step back of it and remember what you're trying to make. I Just also wanted to say that code has so much creative potential and you can use it to make lots of things So here are a couple examples of stuff that I've made as well as my friends have made So websites, of course, this website specifically was a generator that used Twitter and Flickr
I keep saying Twitter. It's like really that'd be a cool site But anyway, Twitter and Flickr's API to generate inspirational quote images So this is one the best things in life are free concert tickets, lol merch lol everything lol, basically
And you can also make apps of course I made a shopping app But this one specifically was because I was a broke college student and I need to figure out how much money might I spend So I created a thing that calculates a range Between like, you know the cheap option and the more expensive option and I found that to be pretty fun to also Actually learn how to work with angular which is really great for cases like these when you want to prototype something. I
also made I make a lot of games like quite often and it's a really fun way to kind of express yourself and to think about Like what people don't need like a lot of my my day job is like what do people need and how can I? Solve those problems and with games
it's more like what can I do to just make people like feel completely confused and wacky and This one specifically was more of like a serious autobiographical game and it includes dress-up So again going back to kiss dolls phase But it also includes like visual novel style interaction and it covers topics like race gender and microaggressions
So it's a really great way to actually tell stories and to just make people think as well as confuse the hell out of them I also Have a friend who creates clothing using code and so she actually Has this dress where if you touch certain parts of it and they're usually in very inconvenient places, of course so they start screaming at you when you touch the flowers and
Yeah, super fun and she does all of this with like physical computing and with programming So you can also of course do things like 3d print shoes and different kinds of clothing as well So there's lots of stuff that you can do specifically with code Same thing with food Ariel is like obsessed with screaming things, but this
Make when you eat this these pieces of chocolate, they actually start moaning and then they start screaming. So Yeah, so this specifically was to kind of express how chocolate makes you feel happy at first and then you're just like Why did I eat so much chocolate? But it's a great way again to like mess, you know, like merge the lines between art and code and it's really fun
Um Ghe made a book that lights up in different ways when you interact with it So and again like interactivity and code and you can put them in books You can also make fun chat bots and Twitter bots, but please build in failsafe so that they don't become racist. Thank you And of course you can code robots, right?
Like you can make the cute kind or you can make the murderous death kind But they're both really fun and you can do that all with code You can actually do that in JavaScript now since Arduino is in JavaScript work together. Yay And of course if you want to make programming tools as well That's so cool because you're making things that help other people make things and you're still solving problems and coming up with creative solutions
but what I'm trying to say here all in all regardless of what you're focusing on making is that I would like if you celebrated the things that you made make sure to find satisfaction in that because I don't know if you ever have this situation where You're just kind of like crap I could have done this better or what if I had used meteor? But that happens to me sometimes and I really have to you know
Kind of smack myself in the face very lightly and just say cat you made something cool Okay, and like don't get hung up on the fact that you couldn't make it more awesome or whatever Like you did something and that's cool. And I also just wanted to say to all of you I know a lot of you raised your hands. Just remember that you already are a real programmer
Okay, like don't let anyone pressure you into feeling like you're not try not to compare yourself to other people's experiences because you don't know The whole picture, you know part of it and you know Even if you don't like to program or if you don't like code, I assume that you probably all do because you're here But that's okay. You know, you're a real programmer because you program things and that's what matters at the end of the day
So again, like many painters aren't in love with their paintbrushes and a lot of plumbers aren't in love with the pipes that they use The same applies to you. You just have to like making the stuff that you're making hopefully or it's a job and money is great So in summary
Try to focus on the project and all the tools Pick the language and framework that makes the thing that you're trying to make happen You can use code to create lots more than apps and you know Try to experiment sometimes and see if whatever you're familiar with you can use it to make something that you're not familiar with And also remember to celebrate what you you've actually created and don't always, you know say like man
I could have done this better just step back sometimes and say I did something cool and like high-five yourself somehow That's just a clap But you know pat yourself on the back or something and just you know Feel happy about what you're doing sometimes because it's so easy to compare yourself to other people Like it's it just happens all the time
But you have to stop yourself from doing it and lastly remember that you already are a real programmer So to all of you I have a final simple set of words which is go out there and make cool stuff. Okay Thank you