Coding refreshers and getting started in iOS dev

Some links to material I’ve been using to refresh / learn some coding skills. It’s been ages since I wrote any code from scratch, so I needed something that would not be too high-level, but I also wanted it to get into practical applications really quickly.

All the material below is free, and combines video, lecture notes and templates.

Stanford courses

Excellent free access to courses from Stanford via iTunesU (for video) and course websites (for lecture notes and examples)

106A Programming methodology

From nothing to coding in Java, explaining principles of programming and logic along the way.

I’ve been using the Spring 2011 version of the handouts etc.

106B Programming Abstractions

C++ course, that assumes no prior C++ knowledge, but does assume you know a bit about programming.

Course contents for 106B


Developing Apps for iOS

Definitely assumes you know another language, but then takes you through the iOS dev environment, Interface design and MVC model. I started with this course, then moved back to the other 2 for a bit to brush up on some of the groundwork. I did manage to follow the instructions and complete the first couple of assignments before doing that, so it definitely gives enough guidance to get you started.

iTunes U

Lecture materials


For a bit of variety, I also went through this series of tutorials that walk you through your first app.

Topics are:

  • Beginning iOS Development: Setting Up The Development Environment
  • Beginning iOS Development: Building Fortune Crunch
  • Beginning iOS Development: Using Interface Builder
  • Beginning iOS Development: Xcode Fundamentals
  • Beginning iOS Development: Windows, Views, and View Controllers
  • Beginning iOS Development: Debugging Fundamentals
  • Beginning iOS Development: Data Persistence

They also have tutorials on loads of other aspects of programming and languages (I’ve been having a look at some Ruby on Rails stuff too)

If it’s specifically iOS development that you’re interested in, then you need to sign up to the iOS development programme. The Developing Apps for iOS material shows you how to do this. You don’t need to pay unless you actually want to run your app on a device. Until you get to that point, a free account will let you run an emulator that comes with the suite of iOS development tools available from the apple developer website.


What’s Your Start-up’s “Bus Count”? 7 Myths of Entrepreneurship and Programming

1. Myth: You have to hire “ninjas”.

The myth of the hero hacker is one of the most pervasive pathologies to be found in Silicon Valley start-ups: the idea that a lone programmer, fueled by pizza and caffeine, swaddled in headphones, works all hours of the night to build a complex system, all by himself. Time out. Software development, it turns out, is a team sport. All start-ups grow, if they experience any meaningful success. What works for a lone programmer will not work in a company of 10. And what’s worse, encouraging the hero mentality leads to corrosive dysfunction in software teams. Invariably the developers who do a yeoman’s 9-to-5, week after week, cranking out solid features that the business is built on, lose out to the grasping egomaniacs who stay up all night (usually just one night) looking to garner lavish praise. Rather than reward the hero, it’s better to cultivate a true esprit de corps.

There are 6 more myths in this article. I recognise at least 4 of them, and agree with most. As with all Tim Ferriss’ stuff, it is a bit more black and white than most situations allow, or call, for, but it’s a good reminder to sense-check some of your working practices.

The Case Against Drop-down Identities | Smarterware

It's complicated, on Google Profiles

The screenshot above is Google Profiles’ Relationship field drop-down of possible responses. For me, relationship status is a minefield of potential misunderstanding, because if I select “married,” people often assume I’m heterosexually married. If I could answer this question in an open text field, I’d fill in “gay-married.” That’s how I want to characterize and specify my relationship status, not the overly cutesy and vague “it’s complicated,” or the doesn’t-give-us-enough-credit-for-all-the-crap-we-went-through-to-get-legally-married “In a relationship.”

One of the most interesting things about this post is the comments! It’s amazing how many people think they can tell someone else what they *should* use for their relationship status.

I am in a civil partnership, and choose that as my relationship status when the option is there. When it’s not there, I complain, and then choose married. I’m not married though – the UK government made it clear when they wrote the law. So for me it’s a political act to keep highlighting the differences, but if that option is not there then I’ll use “Married” to highlight the similarities.


Life inside Facebook: how head of developers organises 500 people

Ever wondered what it’s like to be an engineer inside Facebook? We got an exclusive interview with Mike Schroepfer, vice president of engineering at the company, who has previously been named one of the 50 most important people on the web, to ask him how he gets things done in an organisation that’s not only growing fast – but also setting the pace when it comes to a lot of web implementations.

Schroepfer is in charge of a team of 500-odd developers who do everything on the site

Ah, he makes it sound so simple – I’d love to know more about what infrastructure supports this development arrangement, and what their investment in automated testing has been. It’s a bit of an obsession for me at the moment.