Here is some anecdotal evidence that I will use as a statistical fact; “There has been a dramatic decline in the use of recursive functions in solutions in the past 10 years ” — Facts. Science? Ok, maybe not. However, I write, review, and read code quite a bit, and I do tend to see iteration (loops iterators, higher order functions, etc.) much more frequently than I do recursive functions. Maybe, this is to be expected, more on this in a minute.
Recursion is an extremely necessary concept to understand if you are trying to pursue a career as a software developer. It is the foundation of many algorithms, think merge sort, etc., …
Great! Yet Another article deep diving into algorithms I can’t use! This is part 2 of the ‘Back to the Basic series’ and as I mentioned before, this is not intended to evangelize any one algorithm, but to visit (or revisit) foundational constructs, algorithms and structures. In the first part I discussed bubble sort, possibly the “most popular” or rather “most understood” sorting algorithm. Not because it’s a good algorithm, its most often the first taught in introductory programming courses.
“Bubble Sort is to sorting algorithms as Singleton Pattern is to design patterns.”
Developer A: “What’s your favorite Design Pattern?”
Developer B: “Singleton — it’ can be applied to so many things.” …
First off, I wish I could throw more technology at that title.
Let me start with the set up. I will say I am no DBA, I am simply an architect/developer that often has to solve problems quickly and move on.
I was recently tasked with extracting data from an MS SQL Database; I was given a database backup and a short timeline. The first thing I needed to do was set up MS SQL Server and recover the database from the backup file to begin working.
I wanted to do this quick, and easy, and I needed to do this without provisioning a server, or installing SQL Sever, etc. After all I have a Mac and It is not like I can easily install SQL Server. …
Great! Another article deep diving into algorithms I cant use. The aim in this series is not to evangelize any one algorithm, but to visit (or revisit) foundational constructs, algorithms and structures. The first in this series deals with arrays as our data structure and both bubble and insertion sort as our sorting algorithms.
First off let’s address the elephant in the room. Both of these sorting algorithms are “NAIMC” algorithms (Not Appropriate In Most Cases). These algorithms do not scale; with a worse case, quadratic time complexity of O(n²); more on this in a few.
So why learn these algorithms? Simple. To develop better heuristics. Being well armed with an ‘algorithm arsenal’ can develop mental shortcuts that allow us to solve problems efficiently and develop code that scales. This is true for algorithms that are both good and bad. We can begin to identify patterns to avoid and to adopt when approaching problems. …