Do you need a CS degree to work in software engineering? Sort of.

Introduction

In some circles I am used to provide some inspiration to aspiring software engineers with non-traditional backgrounds. A non-traditional background here just means the lack of a college degree in either computer science, mathematics, or electrical engineering. The difference between a traditional and non-traditional background has profound socioeconomic implications. It’s not really a secret that non-traditional candidates have to overcome unusually high barriers to entry to enter the field of software engineering. While the idea of facing more obstacles as an outsider is not controversial, few lack the first-hand experience to tell you how hard it is, and insiders underestimate the difficulty. In my case, I was more non-traditional than most: No formal CS education, no bootcamp, and no network. I also did well for myself: I eventually had offers from Microsoft and Facebook (though it was not my first job in SE). That said, I have unusual but first-hand advice for people looking to get into software engineering from non-traditional backgrounds.

Continue reading “Do you need a CS degree to work in software engineering? Sort of.”

Generalized partition sort

Introduction

Generalized partition sort is the very cool, mysterious algorithm you’ve never heard of. What surprises me about this algorithm is that it’s so performant, but I haven’t seen it discussed explicitly and in the way I am about to show you. By customizing generalized partition sort with the right function, it can solve any of the following problems:

  • Find the smallest k elements from a collection
  • Find the largest k elements numbers in one-dimensional space
  • Find the closest k elements to k’ in euclidean space
  • Find the closest k to j elements from k’ in euclidean space

All of the above are reformulations of the same general problem: Find the slice of elements from a set of values ordered by their image of some function.

Continue reading “Generalized partition sort”