Posted on 2 Comments

An Introduction To Big O Notation

Big O Notation Isn’t That Hard

Big O notation is a big topic (see what I did there 🙂 ) in computer science, used to describe algorithmic complexity. MIT defines Big O as the following

Big O notation (with a capital letter O, not a zero), also called Landau’s symbol, is a symbolism used in complexity theory, computer science, and mathematics to describe the asymptotic behavior of functions. Basically, it tells you how fast a function grows or declines.

From MIT’s website

Basically Big O notation breaks down how many steps an algorithm takes to complete. We use the letter O because we are finding the order of the function also called the rate of growth. As the input of a function grows, how does the function scale?

There are many ways to write an algorithm, but you want to always make sure your algorithm can perform the same with large input sizes as they do with small input sizes. This is why when analyzing an algorithm you count the number of steps it will take to complete said algorithm. Let’s take an example

function myLoop(n){
  int x = 0;
  for(int i=0; i < n; ++i){
     x += n;
   }
  return x;
}

This algorithmic complexity is O(n), why? It is O(n) also called Big O of n because this algorithm grows proportionally to the size of the input n. Let’s break down the steps.

int x = 0;

This is O(1) also called constant time because the computer will always take the same amount of time and resources to create an assigned variable. No matter if n = 100 or n = 100000, int x = 0 will always take the same amount of time.

for(int i=0; i < n; ++i){
     x += n;
   }

We have to go through every element in n for this function. In this case we have to go through every element, then we are doing an addition which like variable assignment is constant time, so this analysis is O(n)+O(1).

So overall this algorithm runs O(1)+O(n)+O(1). We can drop the constants so this simplifies the algorithmic complexity to O(n).

Rule of thumb if you see a for loop you will more than likely have O(n) somewhere in your analysis. Every NESTED loop will add an exponent to your analysis so this would be O(n^2) because you have to go through the loop n^2 times

for(int i=0; i < n; ++i){
     for(int i=0; i < n; ++i){
     x += n;
   }
   }

Big O Notation & Data Structures

Some of you have had the unfortunate experience of doing a technical interview and were asked to give the run time of the algorithm that you created and were stumped. The best advice I can give you is memorize and understand basic data structures. Most algorithms will use basic or variations of the most common data structures such as lists, queues, hash maps, etc. Knowing these and how they work will drastically reduce the complexity of technical analysis. I have a Big O notation cheat sheet that breaks down the complexities of common data structures. It really helped me and I know it can help you too!

Summary

Big O notation is just a fancy word for “How does this function scale as input increases over time”. In this blog I gave a theoretical overview into what Big O is and in my next post I will do more deep dives into data structures and break down their algorithmic complexity. Big O isn’t something you are going to get on the first try or first attempt so I will be breaking it down into bite size chunks and we will go forward a blog at a time!

Posted on Leave a comment

CodeLife 2020

2020 Is Going To Be Monumental

I have spent the last few years of my life creating the building blocks for this year. All of the late nights building prototypes, time spent building my social media presence on Twitter and Youtube and time spent networking has all culminated to this year. All the pieces are here and it is time to put it into action.

With my apps in place I am not creating any NEW projects in 2020, all my time will be spent augmenting and improving the apps I already have on my servers and Android developer account. This includes spending more time blogging on this very website. This website will serve as a central hub for my progress this year on all my entrepreneurial endeavors in 2020 it’s all about ownership and controlling the narrative.

CloudMed Billing, Trusts Generator, QF Credit, TMAH, 401K Apps

These are the apps that I am focused on for 2020, all of them have brought me income or are in the position to bring income in 2020. CloudMed Billing was the first app that ever brought me residual income and is the center piece in my article from a couple years ago. It is a web app used by healthcare clinics to collect post-insurance payments on medical collections. It’s still going strong and I haven’t made any improvements to the app in about a year. My goal for 2020 is to make it a PWA and gather at least 3 additional clinics as clients. I actually do not plan on this being a long term asset that I scale up, right now it’s just a cool residual stream. If anything my exit strategy is to try and sell the app once I acquire 10 clinics.

Trusts Generator has done VERY well in its first few months of existence, I am really proud of the progress it has made and even prouder that I have created a product that directly helps the lives of people. Trust Generator is a PWA and Android application that allows for anyone to create a trust. The feedback I have gotten from those who have used my service is heart-warming. Especially in the black community we lose a lot of what little wealth we have to death and probate so to be able to provide a solution to that and make it affordable is a win-win. In 2020 my plan is to improve the UI/UX and do some targeted marketing campaigns.

QF Credit was the last app I put out in 2019. It too is a web app and Android application that assists with removing fraudulent and negative items from your credit report. Simply fill out the form and we will take care of reaching out to your creditors for you! All for the low cost of $9.99! The feedback for this has also been phenomenal and as a result I will be focused on rebuilding the UI/UX and doing heavy marketing campaigns.

Treat Me At Home took a back seat this year as I was figuring out legality issues with service providers in specific fields. Now that that has been sorted out I am spending this year growing my provider list in the Louisville area and FINALLY rolling out the product. The PWA and Android app are live and the iOS app will be finished soon.

Lastly there is 401K Apps! This is probably going to be my long term baby! It’s an investment app that allows you to own percentages of apps and websites and will be verified on the blockchain! It will be open to accredited and non-accredited investors! The app is being developed currently and more details will emerge over this next 2 quarters.

Stay Tuned!

I feel like I have finally mastered this codelife thing 🙂 I will be keeping everyone posted on here and my Youtube page as well as Twitter. If I can live this life, you can too and I want to serve as motivation, here is to a clear 2020!

Posted on Leave a comment

When Should My Side Gig Become My Main Gig?

I Want To Quit My Job And Work Full Time On My App!

This is the number one comment I receive from app entrepreneurs. Many people have read my article describing my decision to pursue residual income full time and want to live that same lifestyle. I understand the allure and the desire for this however I always give them the same answer…it depends. In my most recent Tech Talk I discussed what those variables are but here is a synopsis.

How Much Do You Make A Year?

This is the first question I ask aspiring app entrepreneurs. Your lifestyle always adjusts depending on your income. With that being said if you make $100,000 USD a year and you have an app that makes $50,000 a year it might not make sense to quit your main gig just yet IF that $50,000 cannot provide the same standard of living that you are currently living.

What Is Your App’s Time/Income Ratio?

Back to the concept of app income, one of the next questions I ask app entrepreneurs is “What is your app’s time/income ratio?”. Meaning how much time are you having to put in to this app to generate the income you are receiving.  Going back to the example of making $50,000 a year from one of your apps, if you have to spend 200 hrs/week just to maintain that $50,000 then it might make more sense to keep your $100,000 main gig and outsource development for your app (let’s say $10,000) and collect the rest and supplement income.

What Is The Life Expectancy Of The App?

Not all applications are meant to be around long term. If your app isn’t going to be around for more than 5-10 years. Don’t quit your main gig, it just does not make sense. There is ONE exception and that is if your app is making crazy amounts of money like Flappy Bird money

For A More In Depth Discussion Check Out The Tech Talk

Don’t forget to join my Tech Talk live broadcasts on Tuesdays and Thursdays and join the conversations in real time! If you enjoyed this content like and share this video and subscribe to my Youtube channel!

Posted on Leave a comment

Creating A Voice Powered Note App Using Web Speech

Web Speech API Is A Powerful Feature!

Using this Web Speech JavaScript API you can enable your web apps to handle voice data. The API is broken down into two parts SpeechSynthesis and SpeechRecognition. SpeechSynthesis also known as text-to-speech allows your web app to read text aloud from your speakers. SpeechRecognition allows your web app to convert voice data from your microphone into text.
 

What Are We Building?


speech-notes-screenshot
To adequately demonstrate the power of the web speech API I decided to break the project up into steps. Step one is a simple voice dictated note taking app. The premise is very simple, you create an account and on the dashboard you have a list of your notes as well as a button to add a new note. Once that button is pressed you are prompted to allow access to your microphone. The SpeechRecognition API will transcribe your speech and when complete saves it to the database. In case you missed the livestream here is a link to the source code as well as a link to the live app.
 

What Are The Next Steps?

As you can see there isn’t much coding or difficulty setting up the API. Bear in mind I barely scratched the surface of what SpeechRecognition can do (for a more detail examination I suggest reading here). In my next livestream I will expand on this app and add SpeechSynthesis functionality into the program. You will be able to pick different voices, adjust the pitch and rate of speech and  allow the browser to read your notes back to you! I hope to see you all on the next stream, if you haven’t already subscribe to my channel and to this blog. If you have any questions or concerns please drop them in the comment section below until next time happy hacking!