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.