If we're honest code style (like the famous 'nested else') is silly little problem that we all care way too much about. Objective Clean is a Mac app makes it super easy to fix. My development team decided to take a stab at keeping style rules using the app and we're loving it.
The simple purpose of the app is to set and enforce rules for code style.
On my last team we spent hours every week making each other go back and fix code style faux pas. With Objective Clean my team was able to go through all of the rules (you do it on their site) and make sure we could agree. The app doesn't change your code for you. It simply nudges you in the right direction with either compiler warnings or errors (you decide which). One of our developers went through the code and, thanks to the app, cleaned it all pretty quickly.
The Creative Process
You know Kibuishi nailed it when he said: "Creative process: 1) This is going to be awesome 2) This is hard 3) This is terrible 4) I'm terrible 5) Hey, not bad 6) That was awesome"
You know he nailed it because it received over 7,600 retweets and over 4,600 favorites. And you know he nailed it because you personally have felt the same in any creative endeavor you've attempted. It seems to be true for any skill in art or performance. It seems to be true for any knowledge in a domain or trade.
If you've ever tried then you know it's true for learning to program.
This is going to be awesome
I've had countless friends and colleges come to me and ask me how I did it. They say: "It would be so cool to learn how to make iOS apps. I have to take some time to learn. I wish I was there."
Most people never even have that inclination. They don't ever find themselves thinking "how cool would it be if". If you're here, you're already a step ahead.
This is hard
It's hard to even take the time to sit down and attempt to learn. We all say we're going to write more. Or design more. Or take more pictures. When you plan to learn some new skill it's hard. It's hard to find time and it's hard to get it right.
It's impressive when you finally do it because of the millions of people that chose to watch Breaking Bad while you were breaking your app.
This is terrible
Yup. You heard me: breaking your app. Because whatever you are trying to build, it sucks. It isn't very good. We've all been there. And when you are pushing the boundaries of your skill something is going to break.
I have clients and co-founders ask me frequently for an app portfolio. I don't even want to show them half of it. Why? Because it's terrible. You remember the Ira Glass quote:
All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you.
Your work sucks for now. You know it. And I know it.
There is a risk is that you'll to start thinking it's you that sucks instead of just your work.
You think it's you. And then as Glass points out, " A lot of people never get past this phase, they quit." They quit because even a good artist can see that what he's building is terrible and start to think of himself as terrible.
You're not terrible. You just need to keep going. Build a ton. Write a ton. Take a ton of pictures. Eventually you'll start to see that glimmer of hope that you don't suck.
Hey, not bad
This time will come soon. You're going to get to the big #5 in Kibuishi's list. This is when the world opens up to you.
Then you get to the point that you start solving problems on your own. You start smoothing the edges of the work you're creating. You start doing something that's completely yours.
More importantly you start feeling proud of your work. It's something you feel like you can share. This is where the flywheel starts working.
When you share with others you're going to learn and grow even faster. So as you start to feel good about your code and share it with others you'll start to get some amazing feedback and advice from people you respect.
That was awesome
I had an amazing designer pull me aside yesterday and show me something cool in an app. It was small but it was really well done. He asked me: "how did they do that? What do you need from me so that we can do that?"
You'll get to this point. Someone is going to look at your app and say: 'how did you do that?' Heck, you're going to look at your app and say: 'how did I do that?'
Over and over
We all go through these steps every time we push ourselves to be something more. I can't tell you how many times I've gone through all 6 as I learned to code.
In the end it's simply about growing. I want to say "That was awesome" as many times as I can in one life.
Going for Gold
What I want
Let me start with a simple fact: I want the golden iPhone. I was depressed on launch day when, only 80th in line, I didn't get my new gold colored device. In fact, it was the first launch day I wasn't rewarded for waiting in line with a new iPhone. It was a bitter pill to swallow.
Even more bitter was the vocal minority on Twitter that began squeeling as if only someone that cared about showing off that they had the latest (or a belly dancing gypsy) would prefer the color of gold. Hmmm?
This isn't the first time I've had someone make fun of my iPhone color choice. I wanted the white iPhone 5. I knew it from the second I saw it. Gorgeous. We're still talking about a silly phone; but it really was the most beautiful silly phone I'd ever seen. Everyone mocked me:
You seriously got the white one?
Yes. I seriously ordered, and loved, the white one. Within a year, every one of my friends had told me they wished they had opted for white for one reason or another. The most common reason being the way the black bevel showed scuffs too easily.
We'll see what they say about gold. But I'm not holding my breath that they'll pine for a golden iPhone. It's all about fashion, and we often disagree about fashion:
What is the real reason
Guy in line: "No one is going to get the gold. There will be plenty."
Me: "Which color do you want?"
Me: "Everyone is going to get the golden iPhone."
Gil: "Everyone is bashing on it."
Me: "Ha. That 'everyone' is a minority."
17 year old brother: "Why is gold so popular? Because it's new?"
Me: "Which color do you want?" (He's ordering one today.)
Me: "Why do you want gold?" (My brother is very fashionable.)
17yob: "I think it looks the best. I like the golden ring around the home button. It's the coolest style."
Luxury and Fashion
The iPhone is a fashion accessory and Apple wants to be a luxury brand1. It seems to me that being fashion forward means pushing trends just a little too far. To be truly fashionable sometimes one needs to be a bit ostentatious. Going gold was certainly considered a bold (and awful) move by tech bloggers, because they saw it as too ostentatious. However, I don't thing gold is ostentatious today.
I asked my wife what she wanted for her birthday (coming up on Thursday). She wants a gold watch. Ashley is always dressed very conservatively. She doesn't wear flashy styles. So I was surprised at first to hear that she wanted something that sounded ostentatious.
It sounded ostentatious until I persused pinterest for example watches. Check it out and you'll see there has been a major influx of golden jewlery (i.e. watches, bracelets, earings, necklaces, and even purses). This is what is in style, it is what 'normal' people are going to choose for their wedding rings and everyday jewelry.
Platinum and silver have become commonplace. Everyone has silver or white-gold colored wedding rings, bracelets, and necklaces. The color doesn't look luxurious anymore. It doesn't look elite. Fashion is about standing out, and luxury is about standing above. Gold is the luxurious color. If you don't believe me, just go visit the strip in Las Vegas.
Newness isn't enough
If you're someone mocking me and my golden iPhone you probably don't wear the current fashions from broad market clothing designers (you may even mock them).
- Rolled up skinny slacks or jeans
- Sock-less boat shoes
- Bright colored pants
- Short shorts (prep-length)
- Geek glasses with no prescription
- A fedora
Some of you probably wear some and eschew others of those styles. Maybe you have prep-length shorts, but think fedoras are a joke.
This is not an extreme list. They are 'middle of the mall' styles. It's nothing you wouldn't see in a J-Crew order catalogue. For that matter, wouldn't you expect to see the golden iPhone (rather than the silver or space gray) in a J-Crew or Banana Republic catalogue? That's not a department store designer; that's a 'middle of the mall' clothing store.
I fully admint that for many customers the golden iPhone represents newness. If you want to show off that you have a new iPhone the best way is to purchase the gold colored version. You may want the newest phone. You may even want to show off that you have the newest phone. But if you aren't willing to take a step into forward in fashion, the newness probably isn't enough to make you buy an iPhone color with (you deem) no sense of style.
If you were thinking the golden iPhone is in-style and you'd like it for your device but you are resisting it because you don't want to be one of those people that are getting it because it's new, well that would just be silly.
Subtlety was important
Apple needs to sell a ton of iPhones2. They are in a business that is attempting to reach a broad market with a luxury brand. This means they need to be subtle while also being fashion forward. Being too ostentatious will simply turn off the majority of their customers.
The new iPhone 5s is actually more of a muted gold or 'champaigne' color. I know when the rumor mills were cranking the mockups were all a gaudy-dehydrated-urine yellow. If the actual gold iPhone were a deep-bronze color I wouldn't want it, and neither would (I believe) 80% of the people that are waiting an extra 2-3 weeks to get their new device.
The color matters and the style matters. Apple didn't release something out of style to which mindless sheep are flocking because it's new. Apple released something in-style to which millions are flocking because it's attractive.
The golden iPhone 5s was made for customers that do have a sense of style - the same sense of style as the iPhone 5s designers3.
1) If you don't think a $600 phone or $1000 laptop is luxurious you are in serious need of a broader world view. ↩
3) Yes, I realize that I'm effectively claiming that I 'have a sense of style'. I'm assuming that you believe that you have a sense of style as well. If you think the golden iPhone is ugly we can assume, for better or worse, that the designers at Apple disagree with your sense of style. ↩
Programming Is The New MBA
It’s obvious to me that learning to program could be one of the best things you could do for your own career. Similar to an academic graduate program (like an MBA) programming will open many doors.
I love my job. There are definitely non-monetary benefits to this career. As a developer I feel like part of a brotherhood with millions of other developers. I see the world differently from the way I saw it before I learned to program.
There are also, indeed, monetary benefits that make learning to program that much better. There are many opportunities that are available to me because I learned to program.
Programmers earn a lot of money
I want to be very careful in how I introduce this post. This is meant to be a 'well that's an interesting way to think about it' type of post. I would not advocate that everyone learns to program rather than attend a graduate program in another study (like an MBA). I will say, that for many of the people that read this blog learning to program was (is) as valuable as getting an MBA.
This morning Ben Podgursky uploaded a list with household income reported for developers that contribute to open source projects. The list is ordered for income for the given programming language.
It's old news that programmers can make a lot of money. In Silicon Valley the average salary for a developer was $118,900 according to a study by Riviera Partners - it was as high as $130,000 for database programmers.
Programming is the new MBA
I thought it was interesting to compare the income from Podgurky's chart for a programming language with the average starting salary1 after graduation from an MBA program. Here is a simple chart listing a couple of the languages from the research (Rounded to nearest $1000):
MBA Program (Ranking)
UCLA - Anderson (11)
USC - Marshall (23)
Yale - School of Management (13)
Duke University - Fuqua (10)
UC Berkeley - Haas (8)
Dartmouth College - Tuck (14)
MIT - Sloan (7)
If you work for a 5-7 years as a programmer in one of these languages (honestly, likely any language with the exception of PHP2) you could very likely apply for a senior position getting paid a very respectable salary.
Similarly, if you apply for a top MBA program it's very likely that you've spent 5 years building your resume/work-experience. You go to school for 2 years and exit with a very respectable salary.
We are very blessed
If you're trying to pick between an MBA and becoming a developer you are a unique individual. Most people choose their path based on their personality. Some people are born to program software, and some people are born to lead in management roles. If you're a natural programmer I hope this gives you confidence that you're in a great position. Learning to program was like getting into one of the best MBA programs in the US.
Regardless of the comparison, we are very blessed to be in this industry. This job is new (relatively), and the influence and value of developers over the next couple decades will only continue to grow. I feel blessed for the mentors and opportunities that have allowed me to be numbered among you.
1) Here is a massive caveat: if you can get an MBA from one of the top 20 programs it is very likely that you'll earn much more than the immediate 'post-grad' salary. Graduates of MBA programs not only have an instant boost in income, but also a long term increase in salary for years after graduation. In fact, according to a Forbes study, the average salary 5 years after graduation the top 5 MBA programs was over $200k. ↩
2) This is meant to be tongue in cheek. There are other languages that are just as bad as PHP. ↩