I took the CodeNewbie Challenge and selected the Blog More challenge. This is the first part of my series on #CNC2018. (CodeNewbie)
I took the CodeNewbie Challenge and selected the Blog More challenge. This is the first part of my series on #CNC2018. (CodeNewbie)

One of my goals for 2018 was to blog more, and I was happy to hear that CodeNewbie created a project that included blogging as one of the challenges. If you don’t know what CodeNewbie is, it’s a supportive community of people learning to code. I highly recommend that you join the community by following CodeNewbies on Twitter and subscribing to the CodeNewbie mailing list.

CodeNewbie has evolved way past its original format of a weekly Twitter chat into a podcast (one of which, I should disclose, I appeared on), tech conference, an amazing new podcast about the foundations of learning how to code, blog, and forum. CodeNewbie is always evolving, and I’m personally hoping for the CodeNewbie action figure and fingernail polish. :-)

Back to the CodeNewbie Challenge 2018 (#CNC2018). I see #CNC2018 as a project to start a new year on the right foot with measurable progress towards a goal. Instead of making resolutions that rarely survive first contact with the first few weeks of a new year, #CNC2018 is designed to provide tangible achievements that participants can track to validate their success. The #CNC2018 challenges were Start Coding (7 weeks, 7 Missions), Code More (5 weeks, 5 missions), Blog More (7 weeks, 7 missions), and Get a Job (9 weeks, 9 missions).

As I said, I chose the Blog More challenge because, while I’ve had a blog for several years, I’ve never been a consistent blogger. I almost chose the Code More challenge, but coding is already part of my job, and, since my blog is powered by Jekyll and hosted on GitHub, coding is part of maintaining it.

Blog More - Pre-Mission

I received my first assignment in the Blog More challenge a week ago:

PRE-MISSION: Read 3 tech blog posts you wish you wrote. Jot down why you like them and what you’d change.

GOAL: Find examples of good tech writing to see what you’d like to incorporate into your own posts, and what you might want to avoid. You’ll refer back to these later in your challenge.

The assignment went on to explain that blog posts fall into three categories: tutorial, explainer, or project. The job was to find three tech blog posts in each category and write three things I liked and three things I would do differently. The assignment provided a lot more information so you should join the Blog More challenge to get all of the details!

Since I’ve been thinking about making an iOS trivia app, I focused on finding blog posts in each category related to this topic. Here’s what I found.

Tutorial - raywenderlich.com - Availability Attributes in Swift

The tutorial on availability attributes in iOS (raywenderlich.com)
The tutorial on availability attributes in iOS (raywenderlich.com)

This blog post describes availability attributes which provide ways to make iOS code backwards compatible with previous versions.

  • Three Things I Liked
    1. Described the topic well: Availability attributes are clearly described including why they are important.
    2. Included plenty of screen shots and code samples: I didn’t have any trouble following along what I should be doing in XCode because of the screen shots and code samples provided.
    3. Provided code samples: A link to download a starter project was provided at the beginning of the tutorial as well as a downloadable completed project at the end.
  • Three Things I Would Do Differently
    1. Format for readability: This post could benefit from more white space between the sections. I had trouble visually separating them.
    2. Reduce the calls to action: This is a nitpick about the site itself (instead of the post), but there are a lot of prompts to do something with the site (e.g., two prompts to check out the site’s video courses, a prompt to sign up for the newsletter, a prompt advertise on the site, etc.)
    3. Keep the conversation going: There were several questions that readers asked in the comments, but, since the article was more than six months old, the last comment was from a moderator that no more questions would be supported. I understand that answering questions requires work, but I think that a published post should respond to requests for help indefinitely or at least provide another way to contact the writer.

Explainer - jaxenter.com - It’s time to get proficient at Swift

The explainer on the importance of Swift (jaxenter.com)
The explainer on the importance of Swift (jaxenter.com)

This article takes a step back and explains why Swift is an important language to learn right now (at least, as of December 29, 2017).

  • Three Things I Liked
    1. Made the content approachable: This post is written at a very high level and doesn’t get lost in jargon or technical details.
    2. Explained the why: This post also describe why Swift is important to learn at this point in time. It’s less verbose than Objective-C, is open source, and has the support of Apple.
    3. Formatted for readability: This post used white space and bullet points very well. I had no trouble digesting the chunks of the article as they flowed down the page.
  • Three Things I Would Do Differently
    1. Number the points: The heading above the title says, “6 reasons why”, but the post did not number the reasons. This is a pet peeve of mine, but I think that if the title mentions a number of things, then the article should clearly number those things.
    2. Include the context of history: I wish the article went into more detail about the history of Swift. That would be valuable context for how the language has evolved.
    3. Add more citations: The post makes a few statements without providing citations to back them up. For example, it says, “Over the past few years, Swift programming has become one of the leading programming languages…” Well, what does this mean? Is it based on surveys of developers, Google searches, or some other empirical method? The post also claims, “I have come across many people who claim that code created using Swift is as fast as compiled C code,” and then says, “Apple claims search algorithms are completed up to 2.6 times faster than Objective-C and up to 8.4 times faster than Python 2.7.” Are there any measures of Swift’s speed other than the company behind it?

Project - tinyhearts.com - How I Quit My Job and Built My First App

The Tiny Hearts project (tinyhearts.com)
The Tiny Hearts project (tinyhearts.com)

It was harder than I thought to find a good project type blog post to analyze. A lot of the posts I surfaced through Google search were summaries or just observations. However, I eventually found this post that told the story of Tiny Hearts.

  • Three Things I Liked
    1. Went beyond code: The post did a great job of not just describing code by including the research, marketing, and management needed to successfully complete the project.
    2. Explained the stakes: I liked how the author explained why the project was important by linking it to his recent marriage and the upcoming birth of his child.
    3. Described the process: The author did a good job of describing the process his team used to get the app built and deployed to the App Store.
  • Three Things I Would Do Differently
    1. Explain the pain: The article was written with a little too much of a positive spin. I would have liked to know more about what went wrong with the project.
    2. Teach the tech: The article was written more from the standpoint of a founder, and I would have liked more technical detail.
    3. Mention the metrics: The author described project achievements like making the Top Paid category in the App Store, but I would include more internal and external metrics used to track the success of the project.

This concludes my first assignment in the Blog More #CNC2018 challenge! If my intuition is correct, then I’m looking forward to writing my own tutorial, explainer, and project blog posts in future missions!