Learning Swift with TeamTreehouse

Now, fair warning, this code involves many concepts that you aren’t familiar with, but that’s okay.

We could have used only the concepts that we know so far to build this app, but our code would not have been elegant, well-formed, or anything resembling the code you would actually write in the real world.from class transcript. A startling admission to what we had learned to date.

There are times when this has to be the most frustrating courseware I have ever experienced for learning anything.

Instead of continuing to invest in codebase’s, or making a large investment in engineering talent, for the simple and not so simple apps. we are developing, I thought I might take a few months to deep dive into a course on Swift. Learning new skills and acquiring new knowledge is a pretty essential part of life and I thought there might be some ancillary benefits from having some programming ability. Designers should code. The benefit where I might change from senior designer to junior iOS dev. seems more like a pipe dream at this point.

Generally speaking TeamTreehouse’s production values are pretty high and you are more likely guaranteed a level of quality that you might not be assured of on other platforms like Udemy (though I have found a couple great design courses there).

Here are some of the problems I had, am having:

  • Learning programming concepts is an absolute bore. This may have as much to do with my own interests and abilities as this courseware ’s approach. The actual creating part of programming is fun of course, I still remember the first C programs I wrote. Some courseware I have used speeds you through the material, gets you creating “apps” as soon as possible, then adds complexity later. Others get students to actual outcomes faster – ever more advanced “hello World”‘s. – TeamTreehouse doesn’t take this approach.
  • I’m not convinced that using video alone or how they deliver the material via video is effective. There is at times a tremendous amount to unpack within a video. Often its very difficult to parse meaning, or to capture all that the instructor is saying. Rewatching videos over and over again is extremely inefficient. Not all the platforms I have experienced have this difficulty.
  • I could in no way rely upon the course material alone. In fact, I used 3 other textbooks to teach myself the topics introduced in the videos. I realize that constantly searching for answers is a required part of programming but at this level I would prefer a more complete course.
  • Answers to questions are slow to come. Often they do eventually come, and the community is great, but I prefer to be able to ask questions in something approaching real time. Often times what the instructor is teaching is unclear or he makes a giant leap in logic, with no one to answer questions, you need to pause your learning until someone is available to help.
  • Basic concepts are taught using more advanced, often complex, examples. The upside to this is that you are immediately given more realistic coding challenges. The downside is that if you don’t understand the concept being introduced before using in a more realistic situation you tend to get frustrated. I think it interferes with learning, and I prefer the more graduated approach I have seen in books from Big Nerd Raunch. First learn the skill, then gradually add more realistic usage through practice.

What has made me stick with the platform to this point is the desire to actually finish the course I started. I hate in-completes. I might also be a victim of the sunk cost fallacy.


Camren’s Crazy Stickers

I’ve wanted to do this for awhile but time, schedule and my son Camren’s changing interests haven’t made the stars align. But a recent query from Camren as to exactly what I do for a living, and my failure to give an adequate explanation, gave me a push to spend some time this summer giving him some experience in some of the more accessible parts of my field. First up is creating some of the silly stickers that he and his friends like to send back and forth, then some UI work on an app., then a code warrior camp and finally he can help me with some usability testing. A sort of hands on look at product development/user experience.

All our work is created in Sketch and he has taken to the app. fairly well, especially considering that he is only 11. This is his superpower I think, if the task is enjoyable he will find a way to learn, usually via YouTube. He’s become a master of minecraft, various magic tricks, and other things this way. Just don’t ask him to memorize Chinese poems. Smart kid.

His first set of stickers are available now on the app. store.


Mainly play the things on the piano which please you, even if the teacher does not assign those. That is the way to learn the most, that when you are doing something with such enjoyment that you don’t notice that the time passes. I am sometimes so wrapped up in my work that I forget about the noon meal.
Albert Einstein, giving advice to his son


Sleep plays an important role in the brain’s ability to consolidate learning when two new potentially competing tasks are learned in the same day, research at the University of Chicago demonstrates.

Other studies have shown that sleep consolidates learning for a new task. The new study, which measured starlings’ ability to recognize new songs, shows that learning a second task can undermine the performance of a previously learned task. But this study is the first to show that a good night’s sleep helps the brain retain both new memories.New research from the University of Chicago