Comment Coding – Coding for Visual Learners

Visual Learning iOS Coding
Visual Learning iOS Coding

I’ve mentioned this in my online courses as well as classroom courses and its usually overlooked.  I think its an important design technique for those of us who are Visual Learners.

What’s a Visual Learner?

Many people, prime examples are asian students, are great at math because they are quick to grasp abstract tasks.  They can read a sentence or paragraph and understand everything the first time.  Not me!

I’m the kind of person that has to read concepts 10 times over and still have trouble applying it.  I need visual representations of concepts in order to understand them.  As a matter of fact, I review iOS and Cocos2D books and my comments are usually “We should insert a sketch here showing how a block of code is passed to a method and executed at a given time…”.

We visual learners have a hard time organizing concepts in our mind unless we write things down or sketch what we believe is being said.

 

Coding in 3 Steps:

1.  Draw it!

Creating an app or game is just like understanding an abstract concept.  I usually start out drawing a storyboard on paper.  I need to see a sketched drawing of what the app’s views are going to look like.  I usually draw views and some important controls that transition between one view and the next.  I also try to visualize the flow of data from one view to another.  This can get a little tricky but if one sheet of paper won’t do, Ill usually end up with 4 sheets taped together, a whiteboard of which I take pictures of or Penultimate.  Unfortunately Penultimate runs on an iPad whose screen I wish were bigger 🙂

iOS Sketch Comment Coding
iOS Sketch Comment Coding

2. Comment it!

This is where the magic happens.  I will basically open up Xcode, create the classes I drew out as objects and comment all my ideas.  What Ill do is go into a class and create its methods, at least the methods I think it should have.  Originally these method names were simple, such as:

somehowGetDataFromFlickr

somehowShowDataInConsole

popAlertToUser

makeCopyOfData

showListOfDataToUser

but eventually, as I picked up more knowledge, learned that many tasks are repetitive patterns and understood UX and coding techniques, those names evolved:

downloadDataFromWeb

parseDataIntoFoundationObjects

notifyUserDataDownloaded

notifyUserDataIsParsed

shareDataWithObservers

logDataInCoreData

updateUIScreenWithNewData

So now I know, in layman’s terms, what I need to do.  This would, at first, take me to Google.com and eventually to StackOverflow.com.  I would basically append “How to…” that proposed name method and “…in iOS”.  This would give me some code samples and I would begin researching the examples I found.  Eventually I learned how to read Apple Documentation (How to Read iOS or Mac OS Programming Documentation) and Apple documentation took precedence over Google and StackOverflow.

What I would do next is take a particular method and insert comments of what that method should do:

-(void)downloadDataFromWeb{

//1. NSURLConnection

//2. Get data from delegate methods

}

Then I would begin coding right underneath each comment.

 

3. Code it!

Finally I would take examples from any source I found online and download them and tinker with them until I made sure I understood what they do.  In time this is replaced by understanding how OOP works and its many useful patterns.  This is when coding gets to be a pleasure!

So it takes a while, but you WILL eventually have FUN coding.  But its a lot easier to get to the fun part if you are a Visual Learner and use Comment Coding to get you there with a decent bit of sanity left 🙂

Enjoy Coding!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s