Building My First App: The Process

A ton of beginners believe that they need to learn an immense amount of code before they can ever build anything useful. I’ve felt like that before, hell I still get that feeling of extreme self-doubt but its less frequent than before. I’m here to prove you CAN build an app that serves a purpose with very limited programming knowledge. There’s a few prerequisites that you must have that are not even coding related before you decide to build just anything. I’ll list the ones I find most important:

  1. Do you really want to solve problems and build things that make a difference for people?
  2. Can you identify a need or want that you have a desire to solve?
  3. Are you willing to put aside leisure activities to solve this problem?

I find the most successful programmers are not the people with the best coding skills, its the people who want to genuinely make a difference.  If you’re still struggling with those aspects then you maybe need to re-look at the whole reason you are in this game.

Ok so if you’ve got those 3 questions above answered, then we can move on. Just as a little background, I currently work at a marketing agency and we use a program called Google Adwords to setup and deploy advertisements. Without getting into too much boring details, we use these things called ‘keywords’ to basically figure out who we want to show the ads to when people search for things on Google. There’s a few modifications we can make to these keywords to alter their properties. For example, I can take the word “find a plumber” and change its properties in 3 different ways, like this:

+find a +plumber

“find a plumber”

[find a plumber]

I used to manually adjust these keywords one by one so it took a stupid amount of time to complete. I knew there had to be a better way, so I searched around and found this cool website called Keyword Toaster. This was great because I could now save a ton of time by just copying/pasting my chunk of keywords here and have this website convert them for me. Though, there were a few problems I identified that I feel could be improved:

  1. Prepositions shouldn’t be include for modified broad keywords
  2. I had rather edit the keywords in the same window as Adwords

So it dawned on me, what if I just made a Chrome Extension that fulfilled these needs? All the app is essentially doing is taking a string, altering it, then returning the altered string in an output box. Easy right? Well, kinda…

I looked into what it takes to create a Chrome Extension and found that I should primarily be using Javascript. One thing that made me go with a Chrome Extension is A) I could use the extension in the same window as Adwords and B) No backend/server-side coding needed. I rarely see anyone suggest creating a Chrome Extension to newbies but this was the easiest, most straightforward platform to launch my simple app to the world.

Alright so, I had a minimal amount of JS knowledge beforehand but I knew I really needed to brush up on the basics. So I went through a highly recommended course on watchandcode.com that taught me these essential concepts:

  • How to read Javascript
  • How to debug
  • Functions/Arrays
  • Basic DOM manipulation

The course basically teaches you how to create a simple Todo app in your browser. This is perfect because all a Todo app does is take an input and display an output. If you think about it, that’s almost the core function of most applications at a very basic level. So what I did was run through the whole course once, then a second time. During the second pass of the course, I essentially took what was being taught and applied to to the concept of the app I was trying to create. I was able to take 80% of the code taught and use it in creating Keyword Modifier. The only real difference in this case was altering the output, which I accomplished with a little REGEX.

To live test the code I was writing I used glitch.com. This made it super easy to see my changes in real time for an app of this size. I wasn’t overly worried about CSS so it looked pretty fugly but all I cared about was the core functionality. Trust me, I make it sound like this was a simple process but even though most of the code I used was from the Watch and Code lesson, I had to reach out to people on different Slack channels and refer to Stack Overflow countless times for help.

After many months, my first little application was born on the Chrome Web Store. Here is a link to the first version I had initially launched.: https://github.com/Beznet/keyword-mod . Its a little cleaner now after some refactoring and added functionality, so you will see some minor changes to it if you download it today.

The point of this whole article is to prove that if you have the desire to create and build, its going to carry you through the hurdles of coding regardless of how little you know.

 

If you’re reading this and currently struggling with your idea for an app, leave me a comment! I’d be happy to talk about your process and help you along.

 

Changing My Mindset: Coding is a Marathon

Photo by Robert Murray on Unsplash

I used to hold this idea that learning code was something that I needed to plunge full force into. Spend hours each day coding until I couldn’t stand to look at my screen any longer and get up to speed as quickly as possible. While Im sure this can work for some people, it sure as hell flopped for me. Only until recently have I changed that awful “sprint” mindset where I attempted to get the most done in the shortest amount of time. Although some blame should be placed on these coding ‘bootcamps’ that have been popping up all over the place promising to get you job ready in as little as 3-6 months. This propagates this ‘sprint’ learning mindset that many people then adopt as the norm for a code-learning timeframe.

If you’ve done any programming, you know that it is like learning an entirely different way of thinking. You’re essentially re-wiring your brain to follow an oder of operations that feels almost inhuman (which well, it is). For me to get my mind wrapped around a lot of these concepts it took time to let these concepts marinate. After trying and failing for many months to put in multiple hours of coding every day, I finally had a series of breakthroughs that changed my thought process on the whole thing.

1.) I realized that I will forever be learning how to code and that there’s no end-game to this. Once that reality hit, this learning time-frame which was arbitrarily short and ever moving forward was abolished. I now realized I can easily learn in little chunks every day and be better off than attempting to blast ass through huge concepts in record time.

2.) I surprisingly found out that Im most receptive and learn best early in the morning before work. This was mind-blowing because I’ve always been a night owl and have done any and everything after 5pm. Once I realized this I made it apart of my routine to wake up an hour early and code in my company’s cafe until 8am hits. I’ve tried coding at home and have a lot less luck than if I leave the house.

3.) Much like having a workout buddy in the gym makes you more accountable, having a coding buddy is just as beneficial. So every morning me and a coworker meet up to work on our own projects. My coworker actually isn’t even learning code, she’s just working on her own side project but the fact that we both set a goal to meet every morning helps keep us accountable and consistent.

There ya have it, those 3 changes above have made a world of difference for me. Ironically, the whole idea is to do less but do less more often. Its consistency that has been the driving variable of success these past few months. Lastly I want to mention that I’ve included a new portion of the site dedicated to my daily coding activities. I initially kept a log of what I learned/accomplished in a Google Doc but I figure might as well share it with the world.