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.
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.
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.
Even if thats the case, there’s still a good reason to do it (which I’ll get to, I promise)
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:
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.
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.
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.
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.
In the Scrum process you would have a scrum board like the one Jared from Silicon Valley is using.
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
For the Vue coders out there you can use Vue Native, which is essentially a Vue wrapper for React Native. More info here
Fullstack Software Engineer