Updated Review of LLM Based Development

I tried developing using GPT mid-2022. While I was amazed by the potential, I was not impressed enough to add it to my daily development workflow. It fell off my radar as a development tool, outpaced by a far more impactful use of text generation and image creation. A toolset that has significantly changed my day-to-day productivity.

Recently, a group of peers convinced me to give coding with LLM another shot. They loved using A.I. to develop code in languages they were not comfortable with. Or, as a manager, a way to better explain what they wanted to see in a project from their team. What convinced me to try it again was their highlighting of how well the results were formatted, syntactically correct, and well documented from the get-go. While they admitted the development of code may not be faster, the prospect of all those benefits culminating into a cleaner, well formatted final product convinced me to develop with GPT again in earnest.

I began my reexamination of the tooling via demos, as we often do. I was very impressed. I converted code into PowerShell (which I don’t know well) and re-created functionality I came across in weeks prior. I was so impressed, I showed my team examples of how the work they completed in the past could’ve been done with the help of GPT instead.

After those successes, I committed to using GPT to develop. Over the next few weeks I made sure to use it on projects I was working on.

While the technology showed incredible advancements since I tried it last year, it still hasn’t become my go-to in the same way using ChatGPT has for writing content.

Here are some areas I was both impressed with but left wanting:

  1. Code completion
    • Pro: Impressive. The look-ahead came in handy similarly to code-completion functionality of the past, with the added benefit of more contextual relevance that was not just a “cookie cutter” snippet.
    • Con: It gave me a useless hint quite a bit and I found myself typing almost as much as before with the incumbent “dumb completion”. I think it is because my mind is moving ahead to what I want the code to do, not necessarily what it is doing on the console at the moment. In the end, it is using patterns to make predictions. So, any new code that is a result of changes to my approach, or my on-the-fly reworking to fix a bug (that was not due to syntax issues) took as much time to develop as non-GPT-based code completion.
  2. Testing
    • Pro: When it comes to testing an existing application, the A.I. hits it out of the park. Ask it to “write a test for myFunction() using Jest” it creates an awesome base test case that I would have hated to write for each function.
    • Con: Some of the same issues outlined in the “Code Completion” and Functional Development” can be problematic here. It doesn’t always create a great test for code I haven’t written yet. (i.e. TDD) However, if the code is already there, it uses that context I’ve provided and its LLM to unpack what it the function is suppose to do and generate all the mocks and assertions needed to create a well written unit test.
  3. Functional Development
    • Pro: Much like helping me get past the dreaded blank page in text generation, I found it more useful than Google searches and StackOverflow reviews to develop a series of functions I wanted, without developing entirely from scratch. Better than code snippets, the snippets A.I. gave were pre-filled based on my prompts, variables, and existing object definitions. That was appreciated. I didn’t have to review the documentation to tweeze out the result I wanted. The A.I. pulled it all together for me.
      Additionally, the fact that it almost always has an answer goes under appreciated in other reviews I’ve read. The part that makes it so advanced, is it fills in a lot of grey area even if I (as a stupid human) carelessly leave out an instruction that is critical in generating a solution. If I were to get the response, “could not understand your request” due to my laziness, I would never use it. The assumptions it makes are close enough to my intent that I am either using the solution, learn a new path, or see what my explanation is missing so I can improve how I communicate with it.
    • Con: The end result did not work out of the gate most of the time. Sometimes it never got it correct and I had to Google the documentation to figure the issue. This was due to what I think was more than one documentation existing for various versions of the library I was using. I’m not sure. While the syntax was correct, the parameters it assumed I needed, or the way the calls were made to interface with a library/API led to errors.
  4. Debugging
    • Pro: Per the “functional development” points above, I was impressed at how I could respond to a prompt result with “I got this error when using the code above: [error]”. It recognized where it went wrong, and attempted to rewrite the code based on that feedback.
    • Con: Each response had a different result than the original. So, instead of fixing what I found was wrong (like a param missing) it also added or removed other features from the code that were correct. This made the generated result difficult to utilize. In some cases, it could never understand the issue well enough to generate working code.

One limitation I am not too surprised about, and am hopeful to see evolve in the future, is the AI’s understanding of a project in its entirety. Done so in a way that context is used in its function creation, making the solutions it provides “full stack”. Imagine a Serverless.com config, for an AWS deployment, that generates files and code that creates and deploys workflows using Lambda, DynamoDB, S3 and so on, all being developed based on prompts. With the yearly (and more recently) weekly leaps, I don’t think we are to far away.

As of today, I find myself going to GPT when filling in starter templates for a new project. I find it’s a much better starting point than starting from cookie cutter function as I set up my core, early, “re-inventing the wheel”-type, skeleton.

For example, I will use a Gitlab template for my infrastructure (be it GL Pages, Serverless, React, nodejs or Python and on and on), then fill in the starter code an tests via a few GPT prompts, and copying them over. Beyond that copy, I find myself detaching from GPT for the most part, and returning to occasionally “rubber duck” new framework functions.

Examples referenced above

Here I asked for a non-3rd-party use of promises (only await/async) which worked. Then I asked to modify the code by adding a zip task, and it re-introduced the promisify utility when it added the zip process.

Don’t sell the sale

Being on either end of a sales call can be tricky. The aim is to either engage with potential customers and sell, or for a buyer, get the transparency needed and end with the best bang-for-the-buck. One of the most effective strategies adopts the “simple” art of not talking. It may sound easy, but the drive to make conversation is deeply embedded in our culture. Filling space, or finding it awkward to rest in open space, can push us further from our goal. There are a few simple ways you can remember to avoid falling into conversational land mines that work against your best interests.

Selling the Sale

The first example of this mistake is described by my group of friends as “selling the sale”. One of us will try to convince the other to take part in an activity. Say, you want to convince your friends to go on a ski trip. On the call you get through the first couple reasons you’ve prepared to convince them. Your friends unexpectedly agree. But, you are so excited to present the rest of your “great reasons” that you continue on. Even after they have agreed, you continue pitching the idea. In that moment you may hear my group call you out: “Hey man, I said yes. Don’t sell the sale”. Why do my friends call this moment out? Well, once a person says “yes” they are “in”, anything else out of your mouth can only work against you. You have gone from summiting a mountain of agreement to barreling down a hill filled with land mines. In short, once an agreement is reach – Don’t sell the sale and create opportunity to lose the ground you’ve gained. Don’t forget that your goal is to convince them, not show them how great of a sales pitch you can make. In other words, don’t sell the sale, sell the product.

Silence is Powerful

Another advantage of creating space in a conversation is humans have a bias to assume silence means “disagreement.” It means no such thing. For example, I was once on a call with a vendor. The sales rep ended their pitch and gave me their price. I said nothing. Honestly, I had no idea if it was expensive or not. Moments later I heard “…but we can do cheaper if that’s too high.”

I have seen this uncomfortable silence change rates, contracts, and features with not so much as a whisper.

Literally.

By allowing statements to sit – and breath – you allow the other person to find time to air out what is running through their mind, be it doubt, logic, or ethics. At the end of their thought process they may realize their asking price is too high, for example, or their proposed agreement is too strict as their conscience felt icky once the words left their mouth and they wish they could take it back. This approach can sound like a silly game, but it is not. It is simply allowing non-verbal communication to fast-forward any snake oil quips or rehearsed phrases. It allows the party to turn their asks into a discussion. Best of all, it required very little added effort from you.

Invest

Finally, while I haven’t researched it, I have found in practice that giving a person space to speak creates a sense of comfort. They remember the experience having went well.

Whether it be by building rapport, establishing a connection, and creating a sense of trust and collaboration, you can make your goals on a call much more achievable by practicing the art of silence. The next time you are on a call, try to allow for longer gaps of silence and see the difference it can make.

“We all have a comfort zone, a learning zone, and a panic zone.Aim toward the outer edges of the learning zone. While you don’t want to panic, you’ll grow the most when you’re past your comfort zone and stretch yourself to learn something new.”

Lev Vygotsky

Finding hidden talents lost to your childhood

The reason why I suck at writing, hate reading and have never been able to pick up languages – and how I proved myself wrong.

I’m sitting in my dimly-lit, third-grade classroom. My mom and I are sitting in hard, vibrantly-colored, plastic chairs. My English teacher, who is sitting across from us, is your typical sweet southern grandma, until she opens her mouth.

“I know I’m not supposed to say it,” she says anyway, from her wrinkled, fuzz-covered lips, “but, if I were you, I’d go home and give him a good spanking.”

I don’t know if my mom nodded, ignored it, or what came after, other than the feeling of betrayal from my teacher, mom, and the educational system. I wasn’t a bad kid or bully. This discussion wasn’t the result of my lobbing spitballs. This was Mrs. Manard’s solution to my “C” level performance.

Looking back, I tried to do the things required to excel in school but, try as I might, I couldn’t do them the way I was supposed to. I disliked the slow pace of English class and reading large books that seemed irrelevant to my life. I already knew how to read, write, and speak. Knowing the rules as to why one should never end a sentence with a preposition felt unimportant.

Without knowing it, Mrs. Manard redirected my educational trajectory, and, by 10 years old, I decided, “I suck at English.”

My foreign language class wasn’t much different. Aside from having a much nicer teacher, I didn’t do well memorizing all the rules. There was no satisfaction in the months of repetition required to eventually say, “Your cow is fat.”

I had another epiphany at 12 years old. I was never going to be able to pick up new languages.

——————————————————————————————

Some stories, like mine above, become obsolete in adulthood, but never get a makeover.

Being a “bad speller,” “bad at math,” or “not being witty” are a few examples of stories you may have calcified during childhood. They are either told to us, beat into us, or remnants of unwanted consequences we had to endure.

These stories are as relevant to us now as a favorite toy or blanky. They are anchors that swaddle us in chains, leaving us comfortably limited. We see these features as foregone conclusions, but, somehow, we are unable to remember when these features formed or when we last questioned them.

Maybe it’s time to update our stories.

The story above is part of my history. It made me who I am today. But, it’s based on old experiences and, therefore, outdated. 

If a 10-year-old kid walked up to me now and told me how to live my life, I would think it was a joke. Yet, somehow, my 10-year-old self is still telling me how to respond to my environment. 

I can’t continue to rationalize this logic. It is time to update my stories and make them more relevant to my current environment, social circles, and interests. It’s not about changing who I am, but ensuring I am not limited to who I thought I once was.

Like the rest of the world, the isolation of COVID provided me with an opportunity to pause, reflect, and assess. An opportunity to dissolve the negative assessments of my capabilities. This simple reframing immediately altered my perspective. I went from reasserting my shortcomings out of habit to searching for ways to reexamine them. 

Take languages, for example. Soon after I took this new approach, I caught myself responding to the question,  “Do you speak any other languages?” with a canned,  “I am good with learning software languages, but have never been able to grasp foreign ones.”

The first time I used that response was in high school. High school?! It has been a reflex, hidden, very literally, under my nose for decades. 

I decided to test the theory. I began looking for language apps. If one didn’t suit me, I tried another. I found groups at work that were studying languages (turns out a lot). I Googled hacks to learn languages quickly. I found platforms that connect users to native speakers around the world, so they could learn for pennies on the dollar. I kept what I liked and threw out what didn’t work for me.

A year later, I’m speaking French and Spanish at an Intermediate level. I now see the world in a new light. Like a veil being lifted around me, I now recognize the lyrics of foreign songs, follow dialogue in foreign flicks, and eavesdrop on tourists at my local coffee shop. I didn’t just learn languages. By challenging my old thinking, and with little effort, I illuminated a new world.

Enthused by the results of this formula, I applied it to my “sucking at English” and so many other false truths weighing me down over the years. 

Through this experience, I had an epiphany: Maybe, I have always loved English and languages. Maybe, I just hated a few child classes that unfortunately bound me to a false narrative. 

Let’s close the book on these old narratives and make room for a new, liberating reality.

Redefining your reality 

Introspection is paramount in discovering and redefining outdated stories.I had to catch myself repeating old facts to others, and then determine whether it is outdated. 

That’s your clue. 

Then, reset and re-create that truth from scratch.

  1. Catch yourself. When you hear yourself assertively self-deprecating what you’re capable of, replace it with, “I haven’t taken time to be good at it.”
  2. Step back and see if you can pinpoint when you formed that opinion. Who were you then? Is it possible you’ve evolved in other ways since then? Are the issues that blocked you still present now?
  3. Cut out what’s no longer serving you. Do you spend hours on the phone or TV? Maybe cooking everyday is a burden and ordering out once a week removes it. Can you trade a day, hour, or activity to investigate this question? Maybe block your work calendar for 30 mins, one day a week, or add an activity to your wake-up or sleep ritual. Maybe you mow the lawn one fewer time a month, and it grows just a bit longer. These are a few trade-offs you can make to open yourself up to new possibilities. Personally, I deleted all my social apps and replaced them with Duolingo.
  4. Chose one thing from #1 and start researching ways to engage it for a few minutes gained in #2.
  5. Give it 6 months and see if your story changes.

From a writing hater, to a writing lover

Where the hatred started

Writing has never been easy for me. It isn’t for a lack of wanting. My experience in school wasn’t helpful.

Since I can remember, I yearned for the ability to get all my thoughts, observations and theories onto paper. My hands just couldn’t keep up. When I took a shot at writing quickly, the results were illegible. When I took the time to write cleanly, the thoughts would slip through my fingers.

I couldn’t strike a balance and wasn’t willing to push through the torture of building skill through the slow, methodical, practice of writing and rewriting my ABCs. I neither had the penmanship nor the patience. And, with that, I could only assume writing wasn’t my thing.

This frustration as a child turned into a hatred toward writing, and that hatred turned into avoidance.

I slogged through school and found creative ways around my poor penmanship. It’s not like I didn’t love other art forms, but putting pen to paper felt dull, overly academic, and unimportant. I didn’t see how writing could have the same beauty and value as a Picasso, or express the emotions of a Rachmaninov.

In an adolescent, cool-guy way, I would take a sort of pride in “not being a writer.” Or, I’d say, “I’m good at other things — how about you write it up?” It was easier to do than admit I was bad at it. The way most children respond when they try to justify a lack of skill in some area.

That became my story. And it was left unedited for decades.

Along the way, with the advent of the computer, I thought I was saved. I was one of the lucky ones where writing by hand became obsolete in my lifetime. Good riddance. I could finally leave handwriting in the rearview.

Once I was out of school and gaining balance in the real world, I took another crack at writing. Now that writing by hand was no longer a blocker, and spelling and grammar was managed by machines, maybe I could become a writer after all.

Confronting what I now realize are years of excuses, I decided writing would no longer be a weakness in my armament of tools. It was time to revise my story. Since then, I’ve had a lot of catching up to do.

Okay, let’s try that again

In my 20s, when I started my first company, I realized the power of the written word. In order to communicate a vision at scale, one must codify their thoughts so others may follow. In order to improve, I started a blog and set out to post daily for a year. While I evolved considerably from my first post to my last, I still had a long way to go.

Years later, after hitting a plateau and going on hiatus, I decided to hire a writing coach. She swore by the power of “morning pages” laid out in the book “The Artist’s Way” by Julia Cameron. In it, the author believes one must return to the written form to connect with one’s inner artist. My new teacher passed on that requirement to me, and with it, I had come full circle. In order to learn to be a writer, I had to once again slog through my pitiful excuse of penmanship.

What surprised me about this go around was, for the first time, this teacher told me she didn’t care about how my writing looked or what it said. To her, none of that was important. She just wanted me to use my hand to write — anything. As long as paper and pencil were involved, she’d be happy.

It was — freeing.

It shut down the overly critical side of my brain, further imprisoned by early schooling.

I had a second wind.

I began to write in my notepad, about nothing, for five minutes a day. Through aches in my fingers, and in spite of all my ideas vanishing right as I picked up my pencil, I followed the prescription. I planted notebooks, pencils and sharpeners around the house, so nothing could get in the way when the compulsion to write struck. At times, when I had nothing to say, I would scribble some variation of, “I am writing this even though I can’t think of anything so that I don’t stop writing until my time is up.”

After a few weeks, I could see a connection forming between my hand and my mind. Where thoughts used to swirl around in my head and go nowhere, now they had an exit route. I developed a pavlovian reaction to search for paper when the marble in my head began to rattle. And, unlike the brevity of notes I took on my phone or computer, I found my handwritten entries getting longer at each session.

The potential was certainly there, but I still had one issue to overcome: I couldn’t read any of it.

Tech to the rescue

I’m a gadget guy. And, I’ve used my affinity toward doodads as a mental hack, tricking my mind to focus on important things I need to do that I have no interest in doing otherwise. Sure, I could vacuum and begrudgingly roll over the carpets while wishing I was doing anything else, but I prefer to get a Roomba, configure it, and whistle while it works.

“Hold on!” I thought one night, staring at my pad and pencil, mustering the strength to start yet another writing session. “Can this trick help solve my aversion to writing? If a pencil and paper is a painful reprise to teenage angst, modernizing my workbench with A.I. apps that digitize hand-written text via an iPad and Apple Pencil is a different beast entirely.”

I can get behind this.

I scoured the app store for apps that could recognize my chicken scratch, while providing the right amount of tech-nerdiness to put a spoonful of sugar into my writing regiment.

I knew I found “the one” with Nebo.

The app perfectly merged modern digital tech with old-school writing and I found myself looking forward to engaging with the experience. I went from being forced to do “morning pages” each day, to feeling like I couldn’t stop journaling, writing or editing my work. What started as a few sentences a day has now blossomed into pages. In fact, this very text is being tapped out on my iPad using my Apple Pencil while laying in bed at 11:14PM with my wife asleep beside me, and I am having trouble stopping.

Whether one considers me a writer or not is unimportant, for I have fallen in love with writing, and with it my story has finally been rewritten.

I finally mastered my reading list!

Over the years, I’ve tried a number of ways to plow through the never ending suggestions of books that I “need to read”. I’ve kept lists in paper notebooks, Facebook books, Goodreads, my iOS Notepad, and even as a Reminders list. The list keeps getting longer. I buy books I don’t end up liking or reading, or just forget to place one in the barrel next time a get some free time to read.

Recently I discovered a way to automatically manage my list and get the book in my hands in almost any format or device — for free! Here’s how:

First, download the Libby app.

Libby is an app by Overdrive that helps make checking out books from the library easy. No, don’t worry, it’s not a way to checkout paper books. Libby is focused on helping you download audiobooks and digital books and allows you to push them to your Kindle, iBooks or whatever works for you.

Now, before you disregard the power of your local library (the institution your tax dollars pay for) let’s flip the script. Libby allows you to grab books you’re interested in.

So, think of how it plays out: You hear about a book that “you need to read.” You search for it on your Libby app, and you place a hold on it. Yes, there is a wait list for your book, and popular ones often have longer wait lists. But, guess what? You don’t care!

This is your reading list!

When books are available, they pop onto you phone or Kindle. If you don’t have time to read it, just put it back into the hold lists for the next go around. If you want to read a few chapters and put it away, that works too. The hold queue isn’t just some arbitrary list you keep that is disconnected from the act of reading — they are one and the same.

I have been doing this for the past year and love the fact that I don’t need to feel bad about falling behind on my reading. I know I’ll just read the next book that becomes available, and not think twice about my queue.

It took a while to get to “reading zen”, so I thought I’d share it. Hope it works for you too!

Biohacking: The Iceman Runneth

Ever heard of Wim Wof? If not, take a minute to Google him. What you’ll find will garner a few reactions. First, amazement as you watch videos of him climbing K1 or Everest in just his skivvies. Maybe, a feeling of disbelief when the Dutchman characterizes his extraordinary feats as simply an act of “mind-over-matter”.

What really perked my ears, however, was the Vice episode I came across that reported how science has been able to not only prove his ability to “focus and breathe” his way into recovery from an injection of a viral disease, but also an ability to teach his others how to harness the same powers. By being repeatable and very much teachable, I thought, “Hey, maybe this Iceman guy and process is legit.”

While watching the Vice episode, I caught a short glimpse of Wim teaching the correspondent a breathing lesson that is supposed to trigger an adrenaline response that will keep them warm when they take a swim in the frigid Amsterdam waters. I caught, “breath deeply longer than you breathe out.”

That stuck with me.

land-on-your-forefoot-700_0

I wouldn’t call myself a runner. At my peak running condition a few years back, I ran a 5K once or twice. I haven’t run much since, and, lately, when I’ve gone for a jog, I’d clocked myself around a 10″ mile. It isn’t an easy run either.

Shortly after I saw the Vice episode on Wim Wof, I went for a jog with my buddy Vishal. He is a far better runner than I, running marathons in the past. He always dusts me on the last leg of our jogs, proving just how much he holds back in the beginning. For some reason, the thought of Wim’s breathing method and how it spikes one’s adrenaline came to mind.

I started to breathe in deep – hold – and breathe out quickly; repeat. A minute later, Vishal began to slow down.

Soon I realized that he wasn’t slowing down at all, but, in fact, I was speeding up. It was happening effortless to boot. My lungs felt like they were stretching beyond comfort, but I wasn’t out of breath. My legs didn’t feel like they were moving any faster – I felt like I was gliding. It was a wonderful feeling. By the time I stopped, Vishal was a block or so behind and he said it was odd. That  seemed to start pulling away in front but that I didn’t look like I was even trying hard.

I explained the story of the Iceman and the breathing I used and a week later, he told me that he used the same technique and he went from a 9min mile, to a 7min mile in a matter of a couple days.

Again, just like the Vice episode I saw, the process is repeatable, teachable and the results are amazing. The Iceman now runneth.

I’m not sure whether it is simply a question of focus spawned my my focus on breathing, or if I am in fact manipulating my physiology through a control of my adrenaline, like the Iceman claims to do. But One thing is for sure, I have found a new way to run and I am loving it!

Creating your deck: 5 tips to avoid common pitfalls

A deck is often the first impression a VC, Angel or potential customer will have of your product or company. How can you make sure it is a great one?

First off, I get that there is much to love about your business, and I assume you’ve worked really hard to get it to where it is today. It isn’t surprising you’d want to share those experiences with others to impress upon them your level of commitment and demonstrate your ability to overcome obstacles.

That being said, nothing conveys your understanding of a problem, its solutions and its potential obstacles more than your ability to clearly deliver a compelling message. The goal of a deck is to do just that.

Here are some tips to help make it happen:

Tip #1 – Less is More.

Your deck is an intro to your business. It tells the reader concisely what the problem is,  how you’re solving it and that they too can benefit from your success. Everything else is a peripheral to those points and are better located in an appendix or follow up.

If you don’t think you can convey your problem and solution clearly, or you feel you need to say a lot to convey your value, then take a step back and try to find ways to trim down and prioritize your message. It is imperative that you can do more with less.

Worried your reader will miss out of some great nuggets? Try thinking of it this way: if you’ve grabbed someone’s attention in your deck then rest assured, they will have follow up questions. All that extra data you are eager to show off will find its way to the surface eventually, and at a time where it will make a greater impact.

An adage that hopefully drives the point home: “if everything is important then nothing is”.

Tip #2: No, You Will Not Just “Get Through All the Slides Quickly.”

A common rebuttal to #1 is, “Yes, there is a lot of information but it’s necessary. We will get through them quickly.” Heck, I use to say that too when working on my decks. The truth is, you’re wrong in more ways than one.

Ask yourself, when have I ever found any points impactful and important when I am rushed through them? Could you imagine the climax of your favorite movie in fast-forward? If anything, “let’s get through it quickly” is a clear sign that someone has other more important things to do.

If your points are important then give them due justice. Be sure to convey them impactfully. Pauses in speech can create that, and leveraging a few, carefully selected words and images do too.

Think about the mixed signals you are sending if your plan of attack is to rush through slides. For example, you may be saying, “I want you to see these slides because they are important, but not important enough to allow you to take the time to understand them.” or  “I want to make an impact on this point, but I also think my time is better spent elsewhere.”

Trust me, I get that you have 15-30 minutes to make your pitch, maybe less. What I am trying to impress upon you is that speed is not your saviour. Prioritization of your key points and trimming the rest are.

Tip #3: Follow Guy Kawasaki’s 10/20/30 rule

Guy Kawasaki has a great rule of thumb for creating a slides:

10 Slides

20 Minutes

30 point font

You can diver deeper into his 10/20/30 rule here: http://guykawasaki.com/the_102030_rule/

Tip #4: If the information you present doesn’t impress the reader move on or change the information

You will not change someone’s mind by adding more information. If they like your angle they will be in touch to learn more. If they like what you have had to say they will ask questions. If they are having trouble making them time to take in everything you have to say then it’s over before it started.

What are some reasons people may pass on your deck?

  1. They are not interested in your space or industry
  2. They don’t understand what you are doing
  3. There is a conflict of interest
  4. They are not in a position to take action

It is hard to change the results for #1, #3 or #4 with your deck, it may be best to move on and find someone better suited for you. As for #2, you will likely need to step back and refine your messaging. Even if the reader is the wrong audience for you, the ability for them to understand may help push your deck to someone that is a better fit.

Tip #5: Be Critical.

Assume you received your deck in an email on a busy day. Would you take the time to dive into each of its 30 slides filled with hefty bullet-point lists?

The more critical you can be with yourself the more time you will save with advisors, customers, and investors. Hopefully the tip above can help make that happen.

 

 

Predictably Irrational by Dan Ariely

Don’t read this book please! If you do you’ll make it much harder for me and others to sell you something.

In all seriousness though, this book has completely evolved the way I look at pricing, marketing, positioning, and more. One major take away is this:

People have a hard time comparing things that are different from one another. Give people the opportunity to recognize your goal in that context, as a comparison between similar things. Of those similar things, make it obvious that your goal is the best option.

In the context of pricing, try to place the juicy orange you want to sell next to a dying one, and place both oranges next to an apple of any kind. You will sell more oranges.

In the context of mating, be sure you hang out with someone that looks similar to you but less attractive. You will end up being more attractive than anyone in the room.

Wash. Rinse. Repeat.

There are other gold nuggets in the book, such as how providing a sense of ownership to a buyer (before they buy) can garner an items maximum value. And, how a strong grasp of “market norms” and “social norms” can provide you with harder working employees.

But, the book is more than a few tips and facts, Dan takes you through the experiments and their results so you can understand the genesis of his conclusions.

Since reading Predictably Irrational by Dan Ariely I have been able to benefit from many of its conclusions in my everyday life. It is very much worth the read. If you are thinking about selling a product, service or good read this book first!

I’ve copied some of my notes from the book below. Let me know if you have any comments, discussion points or ideas around them – I’d love to hear about them!

The discipline that allows me to play with this subject matter is called behavioral economics, or judgment and decision making (JDM).

humans rarely choose things in absolute terms.

We don’t have an internal value meter that tells us how much things are worth.

most people don’t know what they want unless they see it in context.

I found the recurring theme in the book to be: pricing (or in a larger scope, decision making) is more about a person following a path of least resistance than a true evaluation of values and rationale. The context you give helps to guide that path.

The decision between the Internet-only and print-only options would take a bit of thinking.

The path of least resistance equates to the path with the least requirement to think. The way you balance your offering helps decrease the need for thought.

Sam also knows that given three choices, most people will take the middle choice (as in landing your plane between the runway lights). So guess which television Sam prices as the middle option? That’s right—the one he wants to sell!

I’ve heard this concept before, but just creating a “middle” is over simplifying what is really going on here. It is more about the previous point of context. Provide things a person can compare most easily and but that beside something too different to compare without a deeper level of thought. For example, if you want someone to buy an orange, put it next to a similar orange – then put those oranges next to an apple. Well, I’ll let him explain it ….

It was the mere presence of the decoy that sent 84 of them to the print-and-Internet option (and 16 to the Internet-only option). And the absence of the decoy had them choosing differently, with 32 for print-and-Internet and 68 for Internet-only.

we not only tend to compare things with one another but also tend to focus on comparing things that are easily comparable—and avoid comparing things that cannot be compared easily. That may be a confusing thought,

Studies even find that countries with the “happiest” people are not among those with the highest personal income.

pinstripe suit for $455 and decide to buy it, but then another customer whispers in your ear that the exact same suit is on sale for only $448 at another store, just 15 minutes away. Do you make this second 15-minute trip? In this case, most people say that they would not. But

The only question you should ask yourself in these cases is whether the trip across town, and the 15 extra minutes it would take, is worth the extra $7 you would save.

We compare the relative advantage of the cheap pen with the expensive one, and this contrast makes it obvious to us that we should spend the extra time to save the $7. At the same time, the relative advantage of the cheaper suit is very small, so we spend the extra $7.

We made this mistake  A LOT on our trip. When prices adjust we found ourselves worrying about 50 cents on a $1 charge BECAUSE we couldn’t help think “hey, this is off by 50%!”

This is also why it is so easy for a person to add $200 to a $5,000 catering bill for a soup entrée, when the same person will clip coupons to save 25 cents on a one-dollar can of condensed soup.

we find it easy to spend $3,000 to upgrade to leather seats when we buy a new $25,000 car, but difficult to spend the same amount on a new leather sofa (even though we know we will spend more time at home on the sofa than in the car). Yet

we could better assess what we could do with the $3,000 that we are considering spending on upgrading the car seats. Would we perhaps be better off spending it on books, clothes, or a vacation?

“I don’t want to live the life of a Boxster,” he told the New York Times, “because when you get a Boxster you wish you had a 911, and you know what people who have 911s wish they had? They wish they had a Ferrari.”

Another very relevant point to my recent experiences. I took a trip to eject from the cycle of not-enoughism.

Harry Winston, the legendary gemstone dealer. Winston agreed to put them in the window of his store on Fifth Avenue, with an outrageously high price tag attached. Assael, meanwhile, commissioned a full-page advertisement that ran in the glossiest of magazines. There, a string of Tahitian black pearls glowed, set among a …

Above was a great example of context. The marketer simply positioned a non-precious item along with extremely precious things.

not only that goslings make initial decisions based on what’s available in their environment, but that they stick with a decision once it has been made. Lorenz called this natural phenomenon imprinting…

… once we buy a new product at a particular price, we become anchored to that price.

The basic idea of arbitrary coherence is this: although initial prices (such as the price of Assael’s pearls) are “arbitrary,” once those prices are established in our minds they will shape not only present prices but also future prices (this makes them “coherent”).

the students with the highest-ending social security digits (from 80 to 99) bid highest, while those with the lowest-ending numbers (1 to 20) bid lowest.

This was a very impressive experiment. Just using high numbers in your context, *even if they have ZERO relevance to a price or your product*, effect the value a person places on your good. Just – wow.

But price tags by themselves are not necessarily anchors. They become anchors when we contemplate buying a product or service at that particular price. That’s when the imprint is set. From then on, we are willing to accept a range of prices—but as with the pull of a bungee cord, we always refer back to the original anchor. Thus the first anchor influences not only the immediate buying decision but many others that follow.

high-definition television on sale for $3,000, for instance. The price tag is not the anchor. But if we decide to buy it (or seriously contemplate buying it) at that price, then the decision becomes our anchor henceforth in terms of LCD television sets. That’s

The only way out of this box, in fact, is to rent a home in the new location for a year or so. That way, we adjust to the new environment—and, after a while, we are able to make a purchase that aligns with the local market.

“Well, I listened previously to that annoying sound for a high amount. This sound is not much different. So since I said a high amount for the previous one, I guess I could bear this sound for about the same price.”

you think to yourself. “People are standing in line.” So you stand behind these people. Another person walks by. He sees three people standing in line and thinks, “This must be a fantastic restaurant,” and joins the line. Others join. We call this type of behavior herding.

It happens when we assume that something is good (or bad) on the basis of other people’s previous behavior, and our own actions follow suit.

you think to yourself. “People are standing in line.” So you stand behind these people. Another person walks by. He sees three people standing in line and thinks, “This must be a fantastic restaurant,” and joins the line. Others join. We call this type of behavior herding. It happens when we assume that something is good (or bad) on the basis of other people’s previous behavior, and our own actions follow suit.

self-herding. This happens when we believe something is good (or bad) on the basis of our own previous behavior. Essentially,

Herding is a fairly obvious occurrence, but self-herding was more of an eye-opener.

the prices at the two places; and, of course, the cost (or value) of walking a few more blocks to get to Dunkin’ Donuts. This is a complex computation—so instead, you resort to the simple approach: “I went to Starbucks before, and I enjoyed myself and the coffee, so this must be a good decision for me.” So you walk in and get another small cup of coffee.

Buying coffee at Starbucks has become a habit with you.

Starbucks did everything in its power, in other words, to make the experience feel different—so different that we would not use the prices at Dunkin’ Donuts as an anchor, but instead would be open to the new anchor that Starbucks was preparing for us.

Could it be that the lives we have so carefully crafted are largely just a product of arbitrary coherence?

Could it be that we made arbitrary decisions at some point in the past (like the goslings that adopted Lorenz as their parent) and have built our lives on them ever since, assuming that the original decisions were wise? Is

it might seem to us that this is just one decision, without large consequences; but in fact the power of the first decision can have such a long-lasting effect that it will percolate into our future decisions for years to come.

with the price and quality of the truffle, and then made their choice. About 73 percent of them chose the truffle and 27 percent chose a Kiss. Now we decided to see how FREE! might change the situation. So

But what a difference FREE! made. The humble Hershey’s Kiss became a big favorite. Some 69 percent of our customers (up from 27 percent before) chose the FREE!

The critical issue arises when FREE! becomes a struggle between a free item and another item

Why? I think it’s because humans are intrinsically afraid of loss. The real allure of FREE! is tied to this fear. There’s no visible possibility of loss when we choose a FREE! item (it’s free). But suppose we choose the item that’s not free. Uh-oh, now there’s a risk of having made a poor decision—the possibility of a loss. And

Suppose I offered you a choice between a free $10 Amazon gift certificate and a $20 gift certificate for seven dollars. Think quickly. Which would you take?

a $20 gift certificate for seven dollars delivers a $13 profit. That’s clearly better than getting a $10 certificate free (earning $10). Can you see the irrational behavior in action?*

immortal words of Woody Allen: “The most expensive sex is free sex.”

In line with the ethos of market norms, those who received five dollars dragged on average 159 circles, and those who received 50 cents dragged on average 101 circles. As expected, more money caused our participants to be more motivated and work harder

He doesn’t mention it, but this chapter dances between the cost/benefits of capitalism, socialism as well as charities. Where does hard work truly stem from, and what motivates truly great work?

The results showed that on average they dragged 168 circles, much more than those who were paid 50 cents, and just slightly more than those who were paid five dollars.

people will work more for a cause than for cash.

This is yet another good reason to always look for the societal benefits in what you bring to market. Tangentially or directly.

AARP asked some lawyers if they would offer less expensive services to needy retirees, at something like $30 an hour. The lawyers said no. Then the program manager from AARP had a brilliant idea: he asked the lawyers if they would offer free services to needy retirees. Overwhelmingly, the lawyers said yes. … What was going on here? …

When money was mentioned, the lawyers used market norms and found the offer lacking, relative to their market salary. When no money was mentioned they used social norms and were willing to volunteer their time.

Why didn’t they just accept the $30, thinking of themselves as volunteers who received $30? Because once market norms enter our considerations, the social norms depart.

The structure he defines between market norms and social norms is very compelling. Definitely good food for thought in your everyday life.

IN THE PREVIOUS experiment, then, those who got paid 50 cents didn’t say to themselves, “Good for me; I get to do this favor for these researchers, and I am getting some money out of this,” and continue to work harder than those who were paid nothing. Instead they switched themselves over to the market norms, decided that 50 cents wasn’t much, and worked halfheartedly.

no one is offended by a small gift, because even small gifts keep us in the social exchange world and away from market norms.

They reacted to the explicitly priced gift in exactly the way they reacted to cash, and the gift no longer invoked social norms—by the mention of its cost, the gift had passed into the realm of market norms.

As it turned out, the students who had first worked on the “salary” task struggled with the puzzle for about five and a half minutes before asking for help, whereas those who had first worked on the neutral task asked for help after about three minutes. Thinking about money, then, made the participants in the “salary” group more self-reliant

In fact, after thinking about money these participants were less willing to help an experimenter enter data, less likely to assist another participant who seemed confused, and less likely to help a “stranger” (an experimenter in disguise) who “accidentally” spilled a box of pencils.

The inherent philanthropic traits we hold are pretty inspiring.  Even if subliminal.

the participants in the “salary” group showed many of the characteristics of the market: they were more selfish and self-reliant; they wanted to spend more time alone; they were more likely to select tasks that required individual input rather than teamwork; and when they were deciding where they wanted to sit, they chose seats farther away from whomever they were told to work with. Indeed, just thinking about money makes us behave as most economists believe we behave—and less like the social animals we are in our daily lives.

How do you balance this fact with setting up the most effective work environment?

For example, what happens when a customer’s check bounces? If the relationship is based on market norms, the bank charges a fee, and the customer shakes it off. Business is business. While the fee is annoying, it’s nonetheless acceptable. In a social relationship, however, a hefty late fee—rather than a friendly call from the manager or an automatic fee waiver—is not only a relationship-killer; it’s a stab in the back.

If you’re a company, my advice is to remember that you can’t have it both ways. You can’t treat your customers like family one moment and then treat them impersonally—or, even worse, as a nuisance or a competitor—a moment later when this becomes more convenient or profitable.

There is much more of a responsibility a company has when they use the sense of “family” with customers or employees. There are a greater consequences between benefits and failures.

In this 24/7 work environment social norms have a great advantage: they tend to make employees passionate, hardworking, flexible, and concerned. In a market where employees’ loyalty to their employers is often wilting, social norms are one of the best ways to make workers loyal, as well as motivated.

If corporations started thinking in terms of social norms, they would realize that these norms build loyalty and—more important—make people want to extend themselves to the degree that corporations need today: to be flexible, concerned, and willing to pitch in. That’s what a social relationship delivers.

we could elevate the social norm, making the officer feel that his mission is worth more than his base pay

MONEY, AS IT turns out, is very often the most expensive way to motivate people.

You move mountains with gospel, not cash. Create a vision and sell it.

to make informed decisions we need to somehow experience and understand the emotional state we will be in at the other side of the experience.

Go back to a home built before we had to have everything, for instance, and check out the size of the closets. Our house in Cambridge, Massachusetts, for example, was built in 1890. It has no closets whatsoever. Houses in the 1940s had closets barely big enough to stand in. The closet of the 1970s was a bit larger, perhaps deep enough for a fondue pot, a box of eight-track tapes, and a few disco dresses. But the closet of today is a different breed. “Walk-in closet” means that you can literally walk in for quite a distance. And no matter how deep these closets are, Americans have found ways to fill them right up to the closet door.

The average American family now has six credit cards (in 2005 alone, Americans received 6 billion direct-mail solicitations for credit cards). Frighteningly, the average family debt on these cards is about $9,000; and seven in 10 households borrow on credit cards to cover such basic living expenses as food, utilities, and clothing.

like the self-imposed deadlines I gave to Gaurav and his classmates (the deadlines that offered personal choice, but also had penalties attached for the procrastinators)? This might be the perfect compromise between authoritarianism, on the one hand, and what we have too often in preventive health today—complete freedom to fail.

Would you be willing to commit to a $200 deposit, refundable only if you arrived at the appointment on time? If so, you will have replicated the condition that I offered Gaurav’s class, a condition that certainly motivated the students to be responsible for their own decisions.

The reminds me of two thoughts, a Ulysses Contract and/or libertarianism vs. dictatorship.

HOW ELSE COULD we defeat procrastination in health care?

the “endowment effect,” we predicted that when we own something … we begin to value it more than other people do.

A powerful concept. In short, give a person the sense of ownership before the sale is made to maximize value.

Those who owned a ticket, on the other hand, demanded about $2,400 for it. Like Joseph, they justified their price in terms of the importance of the experience and the lifelong memories it would create.

The first quirk, as we saw in the case of the basketball tickets, is that we fall in love with what we already have. … The second quirk is that we focus on what we may lose, rather than what we may gain…The third quirk is that we assume other people will see the transaction from the same perspective as we do.

OWNERSHIP ALSO HAS what I’d call “peculiarities.” For one, the more work you put into something, the more ownership you begin to feel for it. Think about the last time you assembled some furniture. Figuring out which piece goes where and which screw fits into which hole boosts the feeling of ownership.

There’s another way that we can get drawn into ownership. Often, companies will have “trial” promotions. If we have a basic cable television package, for instance, we are lured into a “digital gold package” by a special “trial” rate (only $59 a month instead of the usual $89). After all, we tell ourselves, we can always go back to basic cable or downgrade to the “silver package.” But once we try the gold package, of course, we claim ownership of it. Will we really have the strength to downgrade back to basic or even to “digital silver”? Doubtful. At the onset, we may think that we can easily return to the basic service, but once we are comfortable with the digital picture, we begin to incorporate our ownership of it into our view of the world and ourselves, and quickly rationalize away the additional price.

More than that, our aversion to loss—the loss of that nice crisp “gold package” picture and the extra channels—is too much for us to bear. In other words, before we make the switch we may not be certain that the cost of the digital gold package is worth the full price; but once we have it, the emotions of ownership come welling up, to tell us that the loss of “digital gold” is more painful than spending a few more dollars a month.

But, once we change our possessions we have a very hard time going back down.

Would this keep our participants from clicking on it anyhow? No. To our surprise, they continued to waste their clicks on the “reincarnating” door, even though its disappearance had no real consequences and could always be easily reversed. They just couldn’t tolerate the idea of the loss, and so they did whatever was necessary to prevent their doors from closing.

philosopher Erich Fromm wrote a book called Escape from Freedom. In a modern democracy, he said, people are beset not by a lack of opportunity, but by a dizzying abundance of it. In our modern society this is emphatically so. We are continually reminded that we can do anything and be anything we want to be. The problem is in living up to this dream. We must develop ourselves in every way possible; must taste every aspect of life; must make sure that of the 1,000 things to see before dying, we have not stopped at number 999. But then comes a problem—are we spreading ourselves too thin? The temptation Fromm was describing, I believe, is what we saw as we watched our participants racing from one door to another.

THE OTHER SIDE of this tragedy develops when we fail to realize that some things really are disappearing doors, and need our immediate attention. We may work more hours at our jobs, for instance, without realizing that the childhood of our

What we need is to consciously start closing some of our doors. Small doors, of course, are rather easy to close.

I have based a lot of my life on a similar theory.

But the bigger doors (or those that seem bigger) are harder to close. Doors that just might lead to a new career or to a better job might be hard to close. Doors that are tied to our dreams are also hard to close.

We need to drop out of committees that are a waste of our time and stop sending holiday cards to people who have moved on to other lives and friends. We need to determine whether we really have time to watch basketball and play both golf and squash and keep our family together; perhaps we should put some of these sports behind us. We ought to shut them because they draw energy and commitment away from the doors that should be left open—and because they drive us crazy.

WHEN WE BELIEVE beforehand that something will be good, therefore, it generally will be good—and when we think it will be bad, it will bad. But how deep are these influences?

Reminds me of Stumbling On Happiness a bit.

But the advantage of Coke over Pepsi was due to Cokes’s brand—which activated the higher-order brain mechanisms.

But because a stereotype provides us with specific expectations about members of a group, it can also unfavorably influence both our perceptions and our behavior.

Research on stereotypes shows not only that we react differently when we have a stereotype of a certain group of people, but also that stereotyped people themselves react differently when they are aware of the label that they are forced to wear (in psychological parlance, they are “primed” with this label).

placebos work. One is belief—our confidence or faith in the drug, the procedure, or the caregiver. Sometimes just the fact that a doctor or nurse is paying attention to us and reassuring us not only makes us feel better but also triggers our internal healing processes.

The second mechanism is conditioning. Like Pavlov’s famous dogs (that learned to salivate at the ring of a bell), the body builds up expectancy after repeated experiences and releases various chemicals to prepare us for the future.

it is easy to imagine that a $4,000 couch will be more comfortable than a $400 couch;

When it comes to medicines, then, we learned that you get what you pay for. Price can change the experience.

In 2004, the total cost of all robberies in the United States was $525 million, and the average loss from a single robbery was about $1,300.18

In general, a compelling stat.

In the control condition, in which cheating was not possible, participants solved on average three problems (out of 20). In the second condition, in which the participants could pocket their answers, they claimed to have solved on average 5.5 problems. What was remarkable was the third situation—in which the participants pocketed their answer sheets, but had also signed the honor code statement. In this case they claimed to have solved, on average, three problems—exactly the same number as the control group.

The effect of signing a statement about an honor code is particularly amazing

Just an honor code can do so much. It reminds me of a study of how much more giving people were if they watched superman or info on a charity before the test.

occasional swearing of oaths and occasional statements of adherence to rules are not enough. From our experiments, it is clear that oaths and rules must be recalled at, or just before, the moment of temptation. Also,

we are able to “bend” reality, see the world in terms compatible with our selfish interest, and become dishonest. What

We are very irrational with our ethics. In short, ask yourself which is worst : stealing a $1 pen or stealing $1 in cash. Why?

Do you see what we were doing? Would the insertion of a token into the transaction—a piece of valueless, nonmonetary currency—affect the students’ honesty? Would the token make the students less honest in tallying their answers than the students who received cash immediately? If so, by how much?

He related this compulsion to our use of “tokens” as a way to separate our minds from the cash value we place upon an expense.

the tendency to order alcoholic beverages that were different from what other people at the table had chosen and a personality trait called “need for uniqueness.” In essence, individuals more concerned with portraying their own uniqueness were more likely to select an alcoholic beverage not yet ordered at their table in an effort to demonstrate that they were in fact one of a kind. What these

people, particularly those with a high need for uniqueness, may sacrifice personal utility in order to gain reputational utility.

Did he just describe a hipster? 😉

In Hong Kong, individuals also selected food that they did not like as much when they selected it in public rather than in private, but these participants were more likely to select the same item as the people ordering before them—again making a regrettable mistake, though a different type of mistake, when ordering food.

Perhaps restaurant owners should ask their customers to write out orders privately (or quietly give their orders to the waiters), so that no customer will be influenced by the orders of his or her companions.

but maybe we can realize that we have such biases and listen more carefully to the advice and feedback we get from others.

You can check out other reviews I’ve posted about books I’ve read here, or check out my read books list on FB here.

Key links to finally learning iOS development

If you haven’t picked up any iOS development skills yet, now is the time. It’s never been easier. Below are my reasons to finally take the plunge (successfully), followed by some helpful links to help you learn to create your first app too.

Contrary to popular belief, I’ve never coded up an iOS app myself. My excuse? For one, hiring great iOS developers gave me more time to focus on building great teams and products for my startups.  In addition, Objective-C has a unique syntax and requires a deeper understanding of handling memory, which demanded even more learning time. Finally, there was an immense level of complexity involved in testing, certifying and delivering native iOS apps to market. As a matter of fact, those higher than normal learning curves inspired many startups (including a few that I launched) to focus on making developing apps easier.

Since I already had a strong web development background, I always found it easier to build prototypes for my ideas using the latest web-based, app-building, technologies. Year-after-year a new product claimed to have “the right stuff” needed to create an iOS app that felt fully native, without needing to learn to code directly in Objective-C. Year-after-year I found those claims to be more wishful thinking than reality. Although quicker to develop, those technologies always left the final product feeling hacky, unresponsive or limited, and, in order to go full steam ahead with a project, a fully native version would be necessary.

Earlier this year I took another shot at using a new piece of web tech to build out a mobile app idea I had. This time I learned Polymer 1.0. I loved it as a web framework, but my hopes that Google had managed to finally develop an SPA framework that translated into a smooth functioning mobile app was, yet again, overly optimistic.

It isn’t really the technology’s fault though. The rendering mechanisms for HTML/Web (et al.) just weren’t made to process smooth app-like features. It renders top to bottom, grabs all its assets remotely, makes a lot of inferences, is based on standards that try and work across an array of products made by a variety of companies, and manages general security measures that must be spread across every site. In the web world, the browser is the ad-hoc gatekeeper, and its fighting to keep up. The mission of a browser is critically different to that of apps: to allow a user to serendipitously browse a large breadth of sites in a single view, all the while protecting the user from exposure to malicious pages that are inherently sprinkled into a user’s browsing session. Native apps are different. Both the user and the developer have a strong working agreement between what the developer would like you to see and how the user would like to see it. With that level of trust the developer is able to confidently create an experience specifically tailored to the goal of the app and the interest of the user; the OS can focus on greasing the wheels.

Sorry, I digress. Point is, yet again I was disappointed in what the web (and web wrappers) could offer, and, almost as a yearly tradition, I took a stab at learning how to develop directly in iOS again. This time, I’m glad I did!

Maybe it was due to all the free time I had while on our year long trip, but I doubt it; it came rather easily this time around. No, I think the main contributor to my smooth transition is that Apple has done a stellar job incrementally improving the life of an iOS developer over the years. I think the real turn was the release of Swift in 2014. The language is a natural leap from other common languages, as compared to its Objective-C counterpart. Also, there is no longer a heavy requirement to understand how to manage an app’s memory and delegations. The other power ally in creating ease for iOS developers is XCode’s more powerful yet simplified environment, along with interactive interfaces like Storyboards, segues,  IB Designables and more. In addition, now that TestFlight is fully integrated with iTunes Connect and Xcode, testing an app on a device, releasing it to external testers, and pushing it to the App Store is only a few clicks worth of effort; fairly brainless really.

All this added up to a surprisingly easily made V1 of my very first fully native iOS app! Yay! This will be fun 😀

Links to Learning iOS

Here are some key links I bookmarked while learning Swift in Xcode 9.0, including: vides, Q&As on StackOverflow, and tutorials. I strongly recommend learning the language by working toward implementing an idea you want to bring to life. Not only does it give you an inherent direction in what needs to be learned, but it also helps you push through the tough parts of learning that would otherwise spell defeat. The app I built used APIs, JSON, CoreData, Table Views (for listing data), Audio, and more. Hope this list helps!

 

UI Table View Controller

Prototyping a Custom Cell

http://www.ioscreator.com/tutorials/prototype-cells-tableview-tutorial-ios8-swift

View at Medium.com

http://stackoverflow.com/questions/25541786/custom-uitableviewcell-from-nib-in-swift

Adding Animated Effects to iOS App Using UIKit Dynamics

How to Create A Dribbble Client in Swift

https://grokswift.com/uitableview-updates/

Async Calls

Search Bar

http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/

Storyboards Navigation and Segues

http://stackoverflow.com/questions/26207846/pass-data-through-segue

http://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2

http://makeapppie.com/2014/09/15/swift-swift-programmatic-navigation-view-controllers-in-swift/

http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them

http://sree.cc/uncategorized/creating-add-target-for-a-uibutton-object-programmatically-in-xcode-6-using-swift-language

http://stackoverflow.com/questions/25167458/changing-navigation-title-programmatically

http://stackoverflow.com/questions/29218345/multiple-segues-to-the-same-view-controllerhttp://stackoverflow.com/questions/24584364/how-to-create-an-alert-in-a-subview-class-in-swift

Reusable Xibs

Core Data

https://www.andrewcbancroft.com/2015/02/18/core-data-cheat-sheet-for-swift-ios-developers/#querying

http://stackoverflow.com/questions/28754959/swift-how-to-filter-in-core-data

http://jamesonquave.com/blog/developing-ios-apps-using-swift-part-3-best-practices/

http://stackoverflow.com/questions/1108076/where-does-the-iphone-simulator-store-its-data/3495426#3495426

Network and Observers

http://stackoverflow.com/questions/24049020/nsnotificationcenter-addobserver-in-swift

http://stackoverflow.com/questions/25398664/check-for-internet-connection-availability-in-swift

https://www.andrewcbancroft.com/2015/03/17/basics-of-pull-to-refresh-for-swift-developers/

http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/

http://stackoverflow.com/questions/24466907/passing-optional-callback-into-swift-function

Gestures

http://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-part-1

http://useyourloaf.com/blog/creating-gesture-recognizers-with-interface-builder.html

Designables

http://iphonedev.tv/blog/2014/12/15/create-an-ibdesignable-uiview-subclass-with-code-from-an-xib-file-in-xcode-6

Page View Controller (Pages on swipe control)