I was recently introduced to the Advent of code. It’s an Advent Calendar of code challenges!

Image for post
Image for post

You get 25 days worth of little code challenges.

On the first day the challenge was

When it comes to working on a project, I find it best to plan as much as you can before hand before even writing down a single line of code.

Planning out your data architecture and wireframes in advance can help you see the big picture while you’re coding and also guide you when you get stuck. It also helps you see problems/ issues before they even come up.

Here are some tools I use when it comes to planning.

The classic

Good ol pen and paper. Mostly accessible, can use it where ever you are. …

When I attended a coding bootcamp, part of our assignments was to write a technical blog. To be honest, I hated it. I don’t like writing. But the more I thought about it, the more I saw the benefits.

Image for post
Image for post

But I hate writing / I’m bad at writing

Yeah, that was my first thoughts. But writing a technical blog isn’t about how good you are at writing. Also, you don’t have to be a great writer. Even if its just dumping your thoughts onto a screen it can be beneficial.

No one will read it

Even if thats the case, there’s still a good reason to do it (which I’ll get to, I promise)

I don’t know what to write about

I’m going to pick a random kata from code wars and document my thought process as I go through it.

The Kata chosen is:

Image for post
Image for post

So for this Kata I need to find the first non repeating character in a string.

My thought is, I can pop the first letter of the string, and check it against the remaining string. If it’s included in the string, move on to the next letter and test it.

The first thing I have is

def first_non_repeating_letter(s) # Code go here answer = "" array = s.split("") answer = array.shift if array.include?(answer) p answer return…

The other day I was watching a video and noticed that when they would “git add” and “git commit” they would type “ga” and “gcm”. I became so intrigued by it. A way to type even less? Count me in!

Creating aliases in ZSH is pretty simple. First you need to open your .zshrc file. This file is located in your home directory on mac.

Image for post
Image for post
i like to edit using vscode

Once we have our .zshrc file open, we can add aliases. I just added mine to the bottom of the file.

Previously I talked about using recursion and memoization top-down approach to solving recursive problems(specifically the Fibonacci Sequence). This week I want to go over dynamic programming using an iterative bottom-up approach.

In the Fibonacci sequence a number in the sequence is equal to the previous two numbers in the sequence. n = (n-1) + (n- 2)

The recursive way would solve f(n) = f(n-1 ) + f(n -2) over and over even it it’s solved f(n). In the memoization way, it would check if f(n) was already solved and use that answer. …

Last week I talked about Recursion and the Fibonacci Sequence. This week I’m going to go into using a dynamic programming technique called memoization.

When we did the recursive approach we noticed a lot of the same subproblems we solved were solved multiple times which isn’t very efficient.

Image for post
Image for post
boxes in red are being solved multiple times. not efficient

Using memoization, we will store the answers to subproblems that have been solved into an array.

Recursion. What is it? It is where a solution to a problem depends on solutions to smaller instances of the same problem. Let’s use the Fibonacci Sequence for this article.

What is the Fibonacci Sequence?

In a Fibonacci sequence a number is the sum of its two preceding numbers. For example, 1 1 2 3 5 8. 8 is made up of 5 and 3, 5 is made up of 2 and 3, 3 is made up of 2 and 1, etc.

We can say, a number is equal to the sum of the number minus one and the number minus 2 in the sequence.

First off, what is Scrum? Scrum is an Agile methodology that is used to facilitate a project. Typically a scrum team would consist of around 7 developers that would work on a two week sprint. So why am I talking about using it on a one-person team? There are key principles that I feel will help even in single player mode.

The Scrum Board

Image for post
Image for post

In the Scrum process you would have a scrum board like the one Jared from Silicon Valley is using.

So you’ve learned JavaScript. You start wondering, “How can I build actual programs not just websites.” or “How can I build mobile apps for my phone?”
Luckily, you know Javascript and can get started right away!

Image for post
Image for post

Mobile Apps

What options do you have to build mobile apps using Javascript?

Do you know React?

You can use React Native to start building native mobile applications for iOS and Android. Some apps that were built using React Native are Facebook, Instagram, AirBnB. More info here

Do you know Vue?

For the Vue coders out there you can use Vue Native, which is essentially a Vue wrapper for React Native. More info here

Do you know Angular?

Alex Duterte

Fullstack Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store