I'm not 'new' anymore... but there are new things to learn every day!
Things unfold differently for everyone. Here's how it went for me - and some advice on how to learn a lot faster!
Elementary School
We played Number Munchers and Oregon trail... and I played some text-based games at The Boys and Girls Club... some tank missile trajectory... and that game with the helicopter guys that fall into the hay carts... but that was the most computer stuff we had around in the early 90s. My parents weren't the computery type.
Junior High
AOL
Yep, I had 'America Online' and we got those free disks when I was in Junior High. I could go on there - and try and get some Mortal Kombat fatality codes... but it was pretty slow. I might go make dinner while the page loaded.
I didn't really hang out in chatrooms or play online games. I was busy skateboarding, smoking cigarettes in the bushes, building forts, climbing up inside freeway overpasses, and getting into trouble!
I think I just kinda missed that online window.
But I had a computer! A Mac at my Dad's and eventually a Compaq Presario with Windows 95 at my Mom's.
Computer games
I really liked to play these games: Load runner, Lemmings, and The Incredible Machine. (I'm not old enough to have had a commodore 64 and I'm a little jealous.. but I also had Nintendo!)
I didn't really think about it until right now - when I'm writing this... but those games are A LOT like programming! You have limited resources and a goal and logic and loops and even asynchronous events.
I never thought to build an HTML webpage though. It didn't occur to me. I did think... "Yikes! These things are pretty ugly!"
Because I was smoking those cigarettes in the bushes, I got in trouble (just a little ;) - and so, I moved to live with my Dad for the last 1/4 of 8th grade. They had a bunch of computer classes at that school and I got to take extra electives because of how things lined up.
There was a graphic design class, and then also an 'invention' class. I learned how to use some vector-based graphics and had my first hand at page layouts.
In the invention class, I basically invented the iPod and XM-radio licensing systems and drew out the hardware and a plan for how everyone could have the rights to listen to the music they purchased - even if they lost the CD, and I made a funny boom-box thing that the iPod-like controller fit into. So, I guess I was thinking about docks too. If only I knew what to do with that idea! haha
But I certainly didn't know anything about "code" yet.
High school
I went to an arts magnet high school. I was in the 'visual art' department - and part of that was one day a week of computer/design class. The teacher, Doug - was cool. I learned how to use Photoshop. (Mrs Hill was cool too ; )
I also created a font and worked through branding exercises for a pretend skateboard company I was calling "DISEASE." Apparently, I was worried about corporate greed? and somehow I was going to take that angst and make t-shirts out of it. My ideas usually make a point, and then I move on to the next stage of learning. Maybe I can find something with the font! {{insert here}}
.
And - I was painting this whole time too and making art and so, I'm thinking about visual design stuff. We were learning about critique and drawing naked people.
I managed to talk my dad into buying me an apple G4 tower so that I could use Photoshop and Premiere. Digital video and linear editing were super new. Big ask! It was a SUPER computer. I spent a lot of time on LiveJournal and changing the Mac operating system interface with ResEdit. That was my first social-media or 'chat room' type of thing.
College
I got a good scholarship to The California College of Arts and Crafts (now called: CCA | California College of the Arts) (because they are silly and thought that 'crafts' was an outdated idea... but were clearly wrong...).
I thought I wanted to be an illustrator. This guy Barron Storey taught there and I just thought he was the coolest. Amazing artist and he knew all about synthesizer and the "cool" stuff. He seemed very authentic and edgy and I wanted to feel authentic. But I didn't really want to practice drawing that much... and that's another story.
My Dad had gotten a hold of a copy of Macromedia Flash 5 from a friend and sent it to me. I learned how to make some timeline animations and a little ActionScript - and the next thing I knew, I was at an internship for a well-known porn company lined up by my Dad when ie was at some "adult conference?". However, they didn't really have anything for me to do - so, it just petered out.
Flash seemed like the obvious future of the web. My friend Deth P Sun, who was at CCAC too, was building his own website with HTML and iframes {{insert name of the art/portfolio thing people were using}}
. It looked super confusing and I told him he was silly! (I was definitely wrong about that)
Around that time - my birth-father (I'm adopted) was trying to figure out what to do with all of his old synthesizers that he wasn't using. He sent them out to me and I started learning about MIDI and how to connect music machines and build sequences. To design a "patch" in say, a Yamaha DX7 - there are hundreds of options that make up a sound. It's more like 'configuring' than programming, but it was certainly the beginning.
I kept up with the Flash and tried to make websites for all of my friends.
1st lesson of web design: getting content from people is 20x more difficult than writing any code.
I got lots of practice though.
With the sequencers and synthesizers, my housemates and I started a band. This is about the time MySpace appeared. It was a social network like LiveJournal but as a band you could put music up and book shows and it was an exciting tool to meet more people. We liked this band "The Faint" at the time - and whoever was doing their web design was inspiring. They had this cool Flash website with an interactive keyboard and you could play with their music samples. They also have a matching MySpace page - and I just had to figure out how they pimped out their MySpace. (BTW someone made a replica recently if you want to see how it was at the time: spacehey.com)
MySpace allowed you to author a "style-sheet." I didn't have any idea what CSS was, but I knew that if I took the Faint's style-sheet and changed things one-by-one, that I could start to amend it to our band's branding. There were things like "background-image" and if I changed that image... and some colors... then we could change it! But it was all abstract. It was all a complete mystery.
I wasn't taking "Design" courses at the SF campus but I was learning about the history of printmaking, doing screen-printing and making posters, and painting, and learning a lot about critique. My good buddy, Derek McCall and I were building funny lighting sculptural project and we learned a little about MAX/MSP in our multi-media class.
After college, I worked at Pizzaiolo for three years. I had to learn a little programming to build out excel sheets to maintain wine inventory / but I was kinda floundering and partying too much and my Girlfriend at the time wanted to move to LA to be closer to her art gallery.
Moving to LA
I moved to LA in 2009ish. That was a weird year! I thought my resume and working at Pizzaiolo would get me a job in a snap. Nope! The economy was messed up. I promptly joined a band called holloys. iPhones had come out and it was clear that everyone's websites weren't very fun to use on them! A designer had just redone holloys' website - and it was pretty cool! Looked great, But it wasn't flexible enough for smaller screens.
I saw this random website of the band 'Cage the Elephant.' (couldn't find it on the wayback machine, but here's an example). I was mystified. This wasn't the same MySpace layout I was used to. We can put anything anywhere?
I learned some stuff about Dreamweaver and I rebuilt the band website to be fluid. I still didn't know what was really happening. I still didn't really know what HTML did. I was just trying not to mess it up. There were so many pages... and every time we needed to change the menu - we'd go and copy-paste to all of the pages. Every time you make any little thing with a page-builder like Dreamweaver or Webflow... it just keeps spitting out MORE code and it's insane.
Learning "to code?"
I started dating Jen Adam. She was a Graphic designer - and did stuff for print. She didn't seem interested in web development... but I insisted that she was going to have to transition. People weren't making as many fancy printed catalogs.
I started learning some of the real foundational stuff for the first time - so that I could attempt to sway her: "See, it's so easy!" And it worked. BUT... it was fun... and I couldn't really stop. My friend Conor Collins was learning a little code and was encouraging me to get into JavaScript.
Time for a change
I was working at this sorta dead-end restaurant because they would let me have a loose schedule and let me go on tour for months at a time. They were nice to me - but in 2011 I just thought... this can't go on. I've got to learn this web development stuff for real. I need some financial security - and if I need to focus on that full time, I'm going to do it.
Lynda.com
I took a few courses on Lynda.com (since gobbled up by LinkedIn). The first one was an HTML and CSS course from Bill Weinman. It was good! It really cleared things up. BUT - it was at a turning point. It was all "absolutely" positioned and didn't work out on small screens. "Adaptive" and "Responsive design" and the @media rule were just coming into focus so, after that class - I went all responsive and I've been building responsive layout all-day every-day since.
The other course I took was Chris Coyier's course on WordPress. That REALLY connected everything. Once I understood how templates worked and how the data was being dynamically inserted... and just how the whole "create" "read" "update" "delete" type thing worked was blowing my mind. I was super impressed with Chris and CSS-tricks. I think I was listening to a lot of Shop Talk Show too.
It all made sense now! Most of the mysteries were solved (or so I thought!).
Freelancing
I figured I could quit the restaurant and just start making websites! One of the first ones I made is still up!
But freelancing is super hard! I mean... drumming up work is hard. Knowing how to price things is hard. I had to learn A LOT really fast... and I put in thousands of hours into building things over and over.
One of my first clients was Cam and Benny. They are storytellers and animators. They had a really image-heavy website idea. It was like 20 websites in 1 worth of learning. http://camandbenny.com. It may not look that crazy... but it's a weird combo of 'adaptive' and 'responsive' layouts and positioning and a lot of related resources and well, it was A LOT of work. Image sprites, hovers - and a lot of jQuery stuff that was all new to me. A lot of "but what is a callback - how do you know where to put it?" type StackOverflow Questions. I'm very thankful for the experience - but I'm pretty sure I ended up getting like $1 an hour! haha. LOTS TO LEARN besides just the code. It was my education.
Like I always say... it's going to probably cost you $50,000 to learn this stuff... so - you can pay in money, or time - or any combination - but you're going to pay.
If you factor in opportunity cost... It could cost you millions of dollars to learn / instead of 50k.
ANYWAY...
It was rough staying afloat and getting clients and Conor pushed me to get a job at an actual job. Smart guy! I found a few jobs on craigslist and I applied.
First official developer role
Nouveau Studios was a small team. I got the job because all of my portfolio pieces had responsive layouts and that was (and still is) hard - and Mike knew how to sell the clients on it. I think I started at $700 a week.
I met all the types of people. The salesman, the Brogrammer, the quiet stoners, the hipster, the leader, the UX nerd, the programmer, and the designer. There's way too much wrapped up in that... but I learned A LOT about people, and code and teams and everything.
They hadn't adopted version control or Sass or working locally and so we all learned how to streamline the team together.
We were doing good work - but I was still just kinda memorizing some jQuery as if it were a shape. I was really confident with HTML, CSS, SCSS, and responsive techniques - but I just knew enough PHP and JS to sneak by. I learned a lot about WordPress
$('button').on('click', function() {
$('something').toggleClass('active');
});
I would write things like this... and all I knew... was that it would break if I typed it wrong. I didn't have any model for how to understand 'function' or the DOM. I still wasn't totally sure what was JavaScript and what was jQuery or how anything really worked. I got the feeling that A LOT of people were working this way. This is probably 2014?
Well, even though they were the number 1 rated design studio on Yelp... and things seemed great - they didn't work out. People were fired, some projects went way south. They closed up shop.
Back to freelancing
I had learned a ton from Alex, Ian, Mike, Jared, and the rest of the team.
Now I could actually price my stuff! I had a bunch of big projects to point to and I was able to get a lot more money. I could now take on contract work for $1,500 a week! Wow! Some people have projects that make a lot of money - and then they pay you a lot.
But - I am pretty strong-willed. I don't want to make something if it's going to be crappy. I want to strive for really really great "DESIGN" - and I wasn't sure what that really meant to me yet. I wanted the project to be really successful - and not to just be "a website."
I quit a lot of well-paying gigs. Not always professionally. and I didn't just rest on my savings... I slept on a floor - and I ate beans. For whatever reason... my idea of what is "right" is stronger than my desire to be financially stable.
AJAX
Remember how I was talking about MySpace? Well... you could go to a band page - and you could play the music. But, if you then clicked on the band photos... you'd be taken to another page and the music would stop.
I became obsessed with finding a way to have the HTML pages all work like HTML - but also to have an "app"-like feel and to be able to maintain things like that music player while navigating. Keep in mind - I still don't really understand JavaScript... but I'm trying to do this AJAX thing that Jesse James Garrett was talking about.
From working at the shop and just thinking about this stuff and building prototypes all the time - I ended up thinking a lot more like a "Product Designer." I cared about the code... but the user experience was much more important. I could figure it out enough to get where I needed to be without really understanding the code.
Angular JS (v1.5)
I was contracting for this health food company. We were talking about how cool it would be to have a "recipe" type of 'app.' I'd already been kinda checking out this new JavaScript framework that incorporated all that AJAX stuff and solved a lot of the problems.
Angular was easy to pick up in certain ways... and I put together some pretty technical systems to take ingredients and diets and filter recipes. Users could check off lists when they bought them at the store - and I was even making little timers and other interactive components. The idea of a useful functional web-app was coming together. But I still didn't really even know how to write a basic JavaScript function. It's still abstracted away!
First Start-Up
A bunch of those people from the design shop got funding for a social-media play. It was actually super smart / if they could pull it off. The only problem was: if Instagram and Twitter and Facebook decided it was a problem... they could just turn us off! That's another story.
So, I've learned a LOT more stuff... and these guys bring me on as the "front-end" developer. I built out a bunch of Angular prototypes and things were super fun. We (meaning mostly Alex) built the app with Django/Python.
Honestly can't really remember how things went down... but - that ended at some point.
Consulting
Making websites was pretty fun... but during that time - it became clear that people didn't really need a website as much as they needed help figuring what to do. A website is just a tool. Just "having one" doesn't help you.
By calling myself a "consultant" I could manage expectations.
Having a "Designer" (a magical creative creature that just pulls from the source of...) - NO NO NO
Having someone mock up some extremely detailed series of photoshop documents and then a million meeting... and feelings and then passing it over to some web developers... and then reviewing... YUCK. That's super expensive and it's just this long slog... and the client is always just exhausted at the end.
That whole "waterfall" thing is trash. Most of the time - the client doesn't need what they get 'designed.'
This idea that there are "Creatives" and "Coders" started to become a clear problem.
By calling myself a "consultant" I could manage expectations. I no longer wanted to be a person who wrote code for projects that were already decided. I know myself - and no amount of money will satisfy me - if the project isn't going to have a chance at being truly successful.
I was transforming what my idea of "Design" really was.
Ember.js
During this time I've been learning A LOT about Ember.js - but I was running into all the same old problems. I can tell my questions are wrong. I'm asking questions like someone who doesn't know JavaScript. Why? (you guessed it!)
I decide that it's time. Just like I did with HTML and CSS - it's time to go all the way back to the beginning. I decided to finally dig in and learn JavaScript. (still learning now!)
Organizing teams
I got hired to help clients plan the "what" and choose team members. I got hired to rethink the "how." I was called in to audit some pretty big codebases. I'm meeting with the team and organizing the visual designers - and teaching them about style-guides, how to prepare assets for developers - and I'm teaching the developers how to prototype and rely less on on the visual-designers as 'production artists.'
I've been using CodePen this whole time - but now I'm using it as a funny framework to teach component architecture. This stuff is really fun.
Marketing yourself
When you're working hard - there's not a bunch of time to do business development! I didn't think I had time to write. I SHOULD HAVE. If I had been writing a blog consistently since 2012, I'd probably be very well known by now. That's just numbers.
So, - GO WRITE THINGS. Write about your work! A LOT. Start now. Future you will thank you.
(remember that guy Chris Coyier and his website CSS-tricks? Well, on Jan 19th 2021: they published one of my articles)
I had a couple jobs that paid me $3,000 a week to audit their team and give them a plan - and they just straight up said:
"We love what you're doing. We're not going to take any of your advice right now - but just keep doing what you're doing."
I eventually told them I just couldn't do it anymore. WHAT? What is wrong with me?
I didn't have a pipeline in place to grow as a consultant, so - I started taking some "web development" jobs again.
Marketing web dev
Luckily I got a few really great marketing teams to hire me for contract work. They had really neat projects and I got to work with fun tools - and I got to focus on the front-end stuff I like the most.
But the waterfall was still difficult for me to deal with. I wanted to have a lean team - and prototype and test and iterate and move fast - and do lots of cool stuff! Marketing work has deadlines and a lot of stakeholders... and it can be quite stressful.
Corporate startup
Again, my friend Conor was probably watching me spin out and he's much more pragmatic - and he suggests: "Why don't you just get a Corporate job? They pay big and they work slow - so, you can probably relax."
Ok. So, I drank a bunch of beers and went on AngelList and applied to a few jobs. I'm pretty sure I forgot... so, when they called me for an interview - I thought it was just through word of mouth or something.
I took the job as "Senior Product Designer" (they let me choose between a few titles).
I learned A LOT of stuff... and I can't really get into it here - because this article is WAY to long and it's time to wrap up.... but - that was another wildly interesting set of people.
I had to quit. The money was really great. But - it also took me 1.5 hours! to drive to the other side of LA, and they really weren't giving me the tools to do my job properly. It was also - selling a mysterious pill... so - yeah.
More Digital Marketing
I got a job opportunity at a really great digital marketing company. Really nice people - honest and really care about the movie industry and all the stuff they are working on.
But - I found myself in the same situation. The "Creatives" and the "Coders" were comically separated and I couldn't stop thinking about all of that 'lean' "DESIGN" team stuff. They were totally into growing and changing but it wasn't going to be fast enough for me - and really - it was my fault for taking on a Senior Developer Role - when I now know that I've evolved into something else.
Teaching
I haven't worked in every part of this field - but I've covered a lot of it. Design, research, content strategy, information architecture, user experience, user interface, user testing, HTTP, HTML, accessibility, CSS, SVG, visual design, PHP, Git, MySQL, WordPress, CMS, JavaScript, build tools, animation, performance, Vue, Ember...
Compared to your average developer (who may know much more about Docker or React than me) - I've seen a lot of stuff.
I've been teaching people the whole time - at all different levels... but it's hard. Everyone has a TOTALLY different set of skills and education and experience. Just like I was floating by with almost no knowledge of jQuery... people have very distorted models for these things work.
If you take 2 self-taught, 2 computer-science majors, and 2 boot-camp grabs - you'll probably have 6 completely different ideas of how things work / tools - and how teams work. There's also a lot of fear and ego. People are afraid to pair program - and people don't want to be exposed for their blind spots. It's not a culture of sharing as it could be.
Perpetual Education
There are thousands of ways to learn.
I know that "passive income" and "classes" and "boot camps" are all the rage --- but that's not what we're doing.
is our program to teach ALL of that stuff that took me 10 years... and reorder it all... cut out all the distractions - and teach the real full-stack.
design, research, content strategy, information architecture, user experience, user interface, user testing, HTTP, HTML, accessibility, CSS, SVG, visual design, PHP, Git, MySQL, WordPress, CMS, JavaScript, build tools, animation, performance, frameworks
All together - on small teams / and we do it all in 2-3 hours a day - over 6-months.
It's my dream job to teach people and level them all up at the same time.
ok... that's the story! If you read that whole thing... then you are a champ! I kinda phoned in this last part... I'll probably take another run at it.
The End?
.
.
.
OH - and "some advice on how to learn a lot faster!"
Time is precious! You're going to battle through some things for sure. There's no way around the actual act of "learning" - but it can be a lot more to the point.
Make friends with people who want to learn programming.
I spent WAY too much time walking around in the dark by myself. Real life people in your neighborhood is best... but with places like /r/programmingbuddies (they also have a dischord) and the CSS Discord (links to discords for all the languages/frameworks in there) - there's a TON of ways to connect.
Get your mindset in order
However, people are people. They get excited, shoot off in all directions, and can be flakey - or burn out... and maintaining an 'online' community is a bit rough too. So, you'll need a framework for learning. Some people like freecodecamp or the odin project, but - I recommend that you find those friends... and you dig into this book together:
Pick a learning framework
Exercises for Programmers (book) --
and Also, these other books too.
Learn about the whole design-thinking process
That's all for now. I'll come back and tidy this up as I think of more. : )
Top comments (4)
Was really fun and informative to hear about your life, and get an overview of your learning path and life experience. Definitely worth the read!!
and now I know how you made the curriculum for Perpetual Education's Design For the Web so effective!
It was all an accident. Hahaha... but - it's fun to think that I could simplify it for other people. It's always going to be challenging!! but we can leave out the unessesary stuff and save energy for the bigger challenges!
WOW!!! Now that's a story!!! Super interesting and if If you're looking for exterior painters in London, these professionals specialize in transforming the outside of buildings, from homes to commercial properties.
WOW!!! Now that's a story!!! Super interesting to hear how it all came together. Thanks for sharing. It really paints a clear picture of the quality and approach at Perpetual Education.