Learning to program isn’t the hard part

Posted: February 10th, 2012 | Author: | Filed under: Code, Random Musings, Web | 7 Comments »

Via Murat on twitter, I saw this article today about Kaitlyn Trigger, the girlfriend of Instagram co-founder Mike Krieger. She wanted to understand more about his world and so she set herself a challenge to learn to code. With some friends she came up with this super cute idea – Lovestagram

She spent weekends and countless hours learning Python and how to make the idea a reality. She is obviously a smart lady and huge props to her for not giving up. But the thing (for me) that was the really *really* telling and interesting part, was this quote.

“Learning to program isn’t the hard part. The biggest challenge is figuring out how all the moving parts of a web application fit together. There’s no book for that.”

This is so spot on. The coding of the frontend is one matter. The backend is another. Linking the APIs together. Then it’s buying a domain. Setting up the domain. Ftping the files in. Testing it out across all your web browsers and phones. Making sure all that stuff works. This is what making things for yourself and putting them live in the real world teaches you. It opens questions that you hopefully can answer but trying it out. As Aristotle put it -

For the things we have to learn before we can do, we learn by doing.

It also highlights the slight problem I have with ‘learning to code’ initiatives like Codecademy. Don’t get me wrong in any way. Getting people to learn to code is awesome. But having been through a heck of alot of the exercises on that site, I’m just not sure it is really that useful. On one hand the exercises are not really task based but syntax based. E.g. learning the syntax of a ‘for’ loop.

The other issue for me is that they teach you javascript – the client side scripting language created for web, yet they teach you no practical web based tasks.

A better approach in my opinion is to set clear fun tasks and you learn to code by proxy. So to try to answer this question, I’m going to commit myself to developing a short set of tutorials that will try and teach some practical code by recreating art. Because I believe this is a really easy metaphor to understand, and people respond really well to visual outputs of coding.

I’ve already sketched out a few tutorial ideas so hopefully these will start rolling out in a few weeks.


Why We’re Hiring Creative Technologists

Posted: November 9th, 2011 | Author: | Filed under: Advertising, Code | 5 Comments »

This weekend I was invited to the AppNation conference in Atlanta to speak a 4A’s panel titled ‘THE NEW CREATIVE DIRECTOR: MEET THE CREATIVE TECHNOLOGIST’. It was a great panel moderated by Chick Foxgrover and I was humbled to speak with Raghu Kakarala and Paul Hernacki about our (different) thoughts on what all this creative technologist fuss is about.

The debate moved onto a recent blog post written by Igor Clark from Wieden + Kennedy (an agency I am very familiar with as I used to work at their London office) titled ‘Why we are not hiring creative technologists’. This post has gone down a storm. A pretty large response in the comments and on other blogs on the post was congratulating Igor for being so candid and saying what needed to be said – The broad strokes being – The title ‘Creative Technologist’ has become so watered down it is now useless, so Wieden + Kennedy is hiring real coders only.’

I’ve read Igor’s post a LOT of times. So I really, really, really understand his points. Because on MANY levels I agree, and most of this post I am agreeing…but I still think he is still missing a subtle nuance.

He says in big letters. Stop hiring creative technologists – hire coders. Well I would never hire a creative technologist who couldn’t code and make prototypes of their ideas. I don’t think any of my peers would either, and I’ve spoken to a lot of them about this. So I’m really interested why Igor thinks people with no coding skills are getting hired in these roles. Name some names Igor. Point those people out and we can all call them charlatans to their faces. Maybe even burn them at the stake.

Seriously. Who really gives a damn why people get hired and what they are called. Does it effect who you hire? No not at all. You’ll hire people who are skilled to do the job you want them to, not what BS is on their CV. From looking through linkedin as I’ve been trying to hire, I’ve seen loads of people with too much tech on their portfolio and not enough evidence of abstract creative thinking. So I have the same problem – Just from a different perspective.

Also rather than pointing out the failure of “creative technology” courses, why not point out some courses, identify the curriculum and find out more from the course tutors on why you think the students coming out of those courses don’t fit your bill. The type of place I would look to see young talent would be from the RCA Design Interactions, ITPEyebeam, Umea Insitute of Design, MIT Media Lab, Parsons etc etc Places excelling in teaching students how art, design, practical experience of technology and user experience can all meld together. I wouldn’t go cruising the alumni of Imperial College for engineers and computer scientists even though they produce some of the best in the world.

Igor talks about “people who engineer excellent software” but who can also “come up with amazing ideas”. Well here is the thing. There are a handful of people in the world who fit this bill and less so who want to work in advertising. There is a massive shortage of engineering talent in this world and silicon valley has a hard enough time hiring in. Why would I pay the vastly inflated salary to get a brilliant engineer in. I don’t need brilliant engineers who can deploy a Hadoop Stack or chew my ear off about how they despise SOAP.

I need brilliant people who can solve communication problems with creative approaches and be able to build fast prototypes to help demonstrate those ideas.

Most “proper” developers would vomit at my code. I learnt to be a developer like most people I know. Did an an engineering / computer science degree and fell into making things for the internet during the late 90′s boom. I then fell into advertising when I started to realise I could work on projects with brilliant brands and great budgets. Where I could put forward useful ideas and not just the usual campaign fluff.

The people I want to hire go to dorkbots to make new friends or hackspaces to play with that new toy they have there. They buy a Kinect and start making a game concept they’ve been kicking around for a while. They make things that get featured on MAKE magazine. They are inventive. They are curious. They can explain their ideas. They are open to collaboration and can understand the nuance of a brand, for example how an idea for Nike should ‘feel’ like.

This I think is the nuance that isn’t expressed in Igor’s post. I’m of the perspective that the best creative techs are probably not the best engineers out there. Most electronic engineers totally piss on the Arduino for ‘dumbing down’ electronics. But look. It liberates people. It lets anyone with a modicum of know how, make their idea possible. That is what a creative technologist is to me.

If I’m sort of implying engineers and hardcore coders can’t be creative then you have to understand there are differing scales of creativity. There are people that can take 1k filesize and make an amazing demo out of it with incredibly creative coding and there are there are people that can come up with and make Baker Tweet. Both examples of creative technology and both at widely different ends of the tech spectrum.

Igor is bang on the money about creating an environment for coders to come and play. But I think he has swung the needle too far into the coding camp and he has downplayed the ‘creative’ aspect.

My take is that the challenge is how to bring non-traditional people inside an advertising agency without the bullshit job titles.

Oh and for the record. I hate the job title ‘Creative Technologist’. I’ve said it all along. In a perfect world you would ban all job titles. You certainly don’t have ‘creative art director’ so why do we need ‘creative’ slapped on there. But then it starts to cause more problems if you get rid of the title. I’m not just a ‘developer’ and I’m not a tech director. I would be loathe to start writing technical scopes, functional specs and architectures. This is the stuff I left behind years ago. I’m interested in coming up with concepts and not being too bogged down with all the implementation nuts and bolts.

Yes divorcing the concept from the execution is a complete brainmelt. But I really truly believe that if you have people in your agency who are armed with the ability to create prototypes of ideas, then a model of outsourcing can work. Look at Hollywood. The film studios are run by producers who pull in the best talent when they need it. They outsource all of their creativity. Yes, yes I know this is a simplistic approach, but if you design your agency to work in a certain way by having the key people in the right places then I think you can crack most things.

To bring it back to the point.

Work with educational establishments to make sure they are teaching in the ways you might need and hire who is right for you.

P.S. Igor if you are ever in NYC then let’s go have a steak, a beer and chew the fat. On me.

P.P.S Any junior Creative Techs who might want to work in advertising. Drop me a line. @sermad


spotify.fm

Posted: March 1st, 2011 | Author: | Filed under: Code, Hackproject, Interaction, Music, Programming, Random Musings | 4 Comments »

Would you like to listen to music a friend is playing, at the same time as them?

With spotify.fm you now can.

It is an experiment in musical serendipity.

Sometimes the best way to find new things is to just follow someone else.

No clever systems. Just people.

When a friend plays a track you love, you want to punch the air and send them a thank you. It’s brilliant.

Near realtime shared experiences are fab.

Heavily inspired by Olinda by Berg.

More detail

The app is basically a mashup of the last.fm and Spotify.

I find the list of friends playing music (scrobbled by last.fm) and then when the friend is selected, I find the track with the Spotify Metadata API.

I then launch the spotify specific URL and spotify plays it. I refresh the webpage at the end of the song to get the new track.

This is obviously very experimental and very buggy – just highlighting a feature spotify *should* have.

Future developments / Bugs

Ads get in the way and cause the timings to go bezerk.

People can load their own music into spotify – which you cannot play.

Some tracks are only available to premium subscribers or people in certain countries.

I would like to make it a chrome plugin or a desktop app

Thanks to the opensource community as I’m using a Last.FM API class and a tweaked Spotify Metadata API wrapper.

The code is very buggy. It’ll be up on github soon.

I would love someone at last.fm to get in touch as I could speed things up if they tweaked their API for me.

Thanks to @iamdanw@mikesten and @willsh for testing it and giving me some top feedback.


What is a creative technologist?

Posted: December 8th, 2010 | Author: | Filed under: Advertising, Code, Random Musings | 15 Comments »

I gave this talk to the agency I work at, as i’m the first ‘creative technologist’ there.

My thoughts on what my job means, where I think the advertising industry is going and some inspirational stuff in the back end.

In a nutshell.

I come up with ‘ideas’ and I make things to demonstrate them.

Comments would be greatly appreciated – This is my point of view – Would love to work with others to understand how they interpret the role (especially across other industries). You can download the keynote from slideshare and see my speaker notes – Some of the slides need this.

Credit to Mark Avnet, Scott Prindle and Richard Schatzberger for helping me frame my thoughts.


Delicious Vs Packrati.us

Posted: November 9th, 2010 | Author: | Filed under: Code | No Comments »

Delicious the bookmarking service. It is also the best social network I use for finding great links – Better than Digg? Stumbleupon? I think so.

The ability to create a network of likeminded people and view their bookmarks is the killer feature. But recently it has become overrun by links from Packrati.us. If you use this service, then any link from a tweet get’s automatically added to Delicious. Great you say – A total timesaver.

Indeed it is, but now my Delicious network is full of untagged tweets and way too much noise. So I had to start unfollowing people from Delicious to get my network feed back to normal.

Then I thought that was a bit annoying because those people still gave good linkage inbetween the torrent of Packrati.us.

So I did something about it – I created my own version of the Delicious network page that filters out any Packrati.us links.

It uses the JSON feed for my network, then parses it with a little bit of PHP. I used PHP as my host runs this and it has super easy JSON decoding function. It doesn’t exactly replicate the actual delicious network page as annoyingly the feed doesn’t include all of the data. So I’ll explore trying to adding in those elements through the Delicious API.

If anyone wants to run the script, feel free to download the source and deploy it. You’ll need change a couple of variables in the code…which was written in about 20 minutes so don’t expect masterful class construction here.