Another relatively new tool I have noticed being thrown around in the dev world is GraphQL.
With very little bandwidth to dive deep into both tools, I was delighted to find a comprehensive FREE video tutorial that covers both topics:
Building Your First GraphQL Server with Node and TypeScript
So, what can you achieve by completing these challenges? Here are 7 key takeaways from my own rewarding experience:
Did I mention this tutorial is 100% free? …
Aside from the two-pointer technique demonstrated in my previous post, I have been grokking another popular algorithmic mental model: the sliding window.
If you have never heard of the sliding-window technique, I strongly recommend watching this video tutorial before diving into the example below. Even if you don’t have 36 minutes to spare, be sure to watch the first 8 minutes, which contain multiple well-executed animations.
As its name suggests, this technique involves taking a subset of data from a given array or string, expanding or shrinking that subset to satisfy certain conditions, hence the sliding effect.
When dealing with strings and arrays in the context of algorithm challenges, our first instinct usually revolves around built-in methods.
Let’s take a look at this seemingly easy problem:
Given a sorted (ascending) array of integers,
write a function that returns a sorted (ascending) array
which contains the square of each number.
square([0, 1, 2, 3, 4, 5])
// => [0, 1, 4, 9, 16, 25])square([-7, -3, 2, 3, 11])
// => [4, 9, 9, 49, 121]
Like many others, my immediate reaction was to make use of
sort() method after mapping out (
map()) the squared version of each integer, like…
I had that moment again when approaching the challenge of creating movable text shadows.
As it turns out, there is an HTML global attribute called
contenteditable that allows the user to edit targeted text on the browser.
According to the MDN’s documentation,
contenteditable is an enumerated attribute (meaning it has a list of possible values, as opposed to a boolean value) where
true or an empty string indicates that the text is editable, and
false otherwise. …
Technical interviews come in all shapes and sizes. Some companies go for the traditional algorithm challenges, others tend to be more creative, such as this Fullstack Engineer interview I had the other day.
Toward the end of a fun, relaxing conversation, the interviewer gave me a quick challenge: Answer a series of trivia-like tech questions that involve varying levels of knowledge in software development.
I got roughly a third of them right, which wasn’t too bad considering the time constraints and my “freshness” in the field.
During the 5-minute exercise, I also jotted down as many questions as I could in order to share with you all, my beloved Medium community. …
Last week I shared three handy dev tools that let us format our console outputs beyond the plain-old
console.log(). Today I learned one more neat trick to "prettify" our console.
This trick is so simple, all you need to do is add a special indicator inside your
Let’s see how it works with pure strings:
%c, at the start of the string.
That’s it! Feel free to play around on your browser…
console.log() to debug, print out variables, and log results of our current operations to make sure we are on the right programming path.
Indeed, console.log() seems powerful enough, but did you know there are other cool methods in the Console API that can also make your life easier?
Recently I came across console.table() in a tutorial, which prompted me to investigate alternative approaches to the plain-old console.log(). Here are 3 formatting tools that I have added to my debugging toolkit:
As the name suggests,
console.table() prints your output in a nicely formatted table, instead of a cluster of text from
Unlike coding tests, where you solve algorithm problems with a keyboard silently, coding interviews go beyond keyboard communications.
It can be a daunting task, as the interviewer can see every move you make on a shared screen.
And if that wasn’t nerve-racking enough, you also need to speak out, expressing your thought process to not only elicit some hints from the interviewer but also keep the conversation flowing.
That’s why I was thrilled to see this algorithm design template when attending a coding practice hosted by Women Who Code San Diego:
When practicing solving algorithm problems, we often see questions that make us wonder if we would ever encounter similar situations in the real world (e.g. spiral traversal of a matrix).
This time, however, I came across an interesting algorithm challenge that makes practical sense to me.
Here’s the task:
You are given a list of tasks, some of which depend on others.
Write a function
tasksInOrderthat takes a subset of those tasks and returns an ordered list of all the tasks to run.
const tasks = [
task: "make a sandwich",
depends: [ "buy groceries" ]
task: "buy groceries",
depends: [ "go to the store" ]
task: "go to the store",