Should I build my idea while taking a course, or after?

I’ve been hearing this question a lot lately, as it’s been posed many times in the Devslopes community, as well as in everyday conversations about building mobile apps.

I thought I’d share my thoughts on the subject in the hopes that people can easier navigate the  0-60 learning curve.

First off, this post starts with a few assumptions:

  • You’re brand new to coding – Aside from writing a few cool formulas in excel, the general thought of brackets & exclamation points out of context look pretty scary.
  • You’re taking a Devslopes course – or something comparable.  The course I chose to learn develoment was Mark Price’s Beginner to Paid Professional.  I highly recommend it to anyone that’s new to development, and wants to dive right into learning to code mobile apps 🙂

 

Step 1: Wireframe your idea

This part doesn’t require any code, but it will help you begin to think like a programmer 🙂

The more time and thought that goes into the wireframes the better.  You should know exactly what every button and action should do, how it’s supposed to look, and what’s supposed to happen afterwards.  Many people stay shallow when going through this process, and it’s imperative you dig as deep as you can.

Bad example:

Action: When the user taps the “Follow” button, that user begins following that user and is now able to see their posts.

OK – Cool! But in terms of building out an actual application, you’ll begin to ask yourself the following:

  1. What does the button look like in the “Followed” state?
  2. Where are the followers saved?
    1. Should the end user be able to see their followers?
    2. Should I be able to see who I’m following
  3. What benefits do users get from following?

Good Example:

Action: When a user taps the “Follow” button:

  1. The button changes from “Follow,” to “Following” and changes color from blue to green
  2. If the user taps it again, they can unfollow the user
  3. User follower count is displayed and updates accordingly
  4. Users now can see all posts from the users they are following
  5. Followers are saved in a contacts section that can be accessed from the main menu

Some bonus questions:

  1. Should you be able to follow yourself?
  2. If the user is already followed, how does the user unfollow that user?
    1. What is the process to unfollow?  Is there an alert box with a confirmation, or does it happen immediately after clicking the button?
  3. Should a push notification be sent to that user?

Step 2: Go through the course in its entirety 

Let’s face it, software development is a never ending sea of puzzle pieces, and nobody has a clue what the final picture is supposed to look like.  The Devslopes beginner courses do an AMAZING job and taking the essential puzzle pieces, putting them in their own boxes, and then showing you a picture of what it’s supposed to look like.

I often use the analogy that learning software is like wanting to write a best selling novel, and not having a clue what the alphabet is.  Although its important to have a well written novel, deep plots and interesting dynamic characters, great marketing & an awesome launch campaign, the first step is learning the alphabet & having an understanding of basic sentence structure.

Going through the course will help you understand the basics, and as you add more concepts to your “toolbox” of knowledge, you’ll begin to put the pieces together & know where to look when you start building out your own idea 🙂

Step 3: Take notes!

As I went through the course, I took a ton of notes.  It’s really hard to absorb & memorize everything from the beginning.  I think our school system does a really good job at placing importance on the ability to regurgitate information from memory, and because of that our brains are wired to think that’s what we need to do in order “move on to the next step.”  In this part of the learning phase, I think it’s just important to understand what’s going on and how everything is connected.  You’ll reference your notes later, and the concepts will really be engraved in memory when you start to implement them out of context (aka: building your own app)

I also took notes on concepts I knew I could use in certain functions & features of my app (Good thing you wireframed out your app already! :))  For example, when introduced to tableviews and custom cells, I took notes on how I would implement that into my own app.

Step 4: Dive in head first

You now have the tools to begin! You have your awesome wireframes, & notes on how they can be implemented.  You have your new set of tools & concepts you just learned, and now it’s a matter of building it out.

It’s also important to note that building software is iterative.  You will at some point end up re-writing code in your app, so don’t worry about making it super perfect on the first shot.  Once things get up and running, you’ll be able to revisit and refine!

As with anything new, it will be a bumpy ride at first.  I was continually on stack overflow and googling questions, but now you know *the right questions to ask*.  The sky’s the limit now 🙂

 

Advertisements