The past weekend I had the pleasure of attending the Women Who Code hackathon in Austin, Texas. It was my first hackathon and it was a humbling experience. I recruited two friends, Alice a fantastic UX designer and Joe a great developer.
During those 36 hours of writing code, designing, and preparing for our presentation a lot of things happened. A lot of bad but humbling things. Here’s everything I learned.
Dynamic programming is an intimidating subject to grasp; even more, intimidating to get in a technical interview. This post will help you understand exactly what it is, when to use it, and how to use it.
Before getting into the specifics we should briefly define what dynamic programming is.
Dynamic programming is a way to optimize the time complexity of a recursive algorithm by caching previously calculated results.
There are a few more nuanced complexities to dynamic programming than this, but it’s a sufficient base to go off for now. …
Before we go into other data structures in this series, we need to talk about bit manipulation. Well, we don’t need to, but it should be addressed. It’s not necessary that you know this, but knowing it will enable you to come up with very clever solutions that may “wow” the interviewer on your next technical interview.
Before we begin and go into all the nitty gritty details of bit manipulation, let’s do a very high level overview of what bits are.
Bit stands for Binary Digit and is the smallest unit of data in a computer. …
I’ve already briefly talked about sorting algorithms in the previous post here. After a little bit of deliberation, I’ve decided to make an entirely separate post on sorting since it plays such an integral role in all branches of computer science and has a good chance of showing up on your next technical interview.
Sorting algorithms are important to both know and study because we can take away key designs and implementations from each algorithm. The takeaways from sorting algorithms are different for every skill level, so developers are always learning something by studying them.
A person new to computer…
Arrays are a fundamental data structure in every language. Its ability to provide O(1) random access to elements is something that should not be disregarded. Due to its importance, arrays are guaranteed to be on your next technical interview. Here’s a quick tool kit on techniques and strategies you can employ.
Before going into a deep dive in array manipulation let’s brush up on some array trivia.
I started my journey as a self-taught developer about a year ago. About 3 months into my journey, I fell into tutorial hell. I was going through freeCodeCamp, Code Academy, Udemy, and blog tutorials every week and felt like I was unable to progress.
I knew the general syntax, but was completely unable to piece code together on my own. I vented my frustration to a friend who worked in the industry and he told me bluntly:
“If you can solve this problem you’ll be fine. If you can’t I don’t know what to say.”
That problem was FizzBuz. For…
Recursion is a concept that is unnecessarily feared by new programmers. Much like the movie Jaws and the fear of sharks, recursion is scary because of 2nd year CS students complaining to 1st years about how difficult it is.
What they fail to mention is how prevalent it is in the world. The mathematical constant, the Golden Ratio, is recursive. The famous Sieve Triangle, a triangle made up of 3 sub triangles which are all made up from sub triangles, is recursive. Strings, arrays, lists, trees, graphs are all recursive.
From the first day that we are introduced to programming…