Posts

Showing posts from January, 2021

The Pros and Cons of DRY Code

Image
The post The Pros and Cons of DRY Code first appeared on Qvault . Clean code is like clean garbage – it’s only truly clean if it doesn’t exist. In other words, the only clean code is no code . Let’s start with an acknowledgment that a perfectly clean (empty) codebase is useless. With that in mind, our pursuit of clean code will necessarily consist of tradeoffs. We’ll trade usefulness for cleanliness, complexity for speed, ownership for ease of development, and abstractions for reusability. DRY (don’t repeat yourself) code is often held aloft as an ideal in the quest for clean code. Let’s explore why I think DRY can be a good heuristic , but far from an absolute. What is DRY Code? According to Wikipedia : Don’t repeat yourself  is a principle aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy. Every piece of knowledge must have a single, unambiguous, authoritative representation with...

The Benefits of Gamified Learning

Image
The post The Benefits of Gamified Learning first appeared on Qvault . Why was that adjustment to college classes so hard? Sitting through hours of lectures and PowerPoints can be challenging for even the most dedicated students. When it comes to online learning, many options are structured similarly. The main difference between college and online courses is that with online platforms you’re watching a recorded lecture which results in even less student interaction. We need a way to involve and motivate students. Gamified learning is the answer. What is Gamified Learning? Gamified learning is an approach to education that’s intended to make learning fun, engaging, and rewarding. It utilizes the structures and employs the elements of popular videogames to help improve comprehension. This can be done in several ways, including the following: Beating levels Unlocking achievements Earning badges Solving puzzles Staying within time restrictions Completing objectives Advantages...

Building an NLP Engine Is Hard, but Not as Hard as Defining Terms

Image
The post Building an NLP Engine Is Hard, but Not as Hard as Defining Terms first appeared on Qvault . In my full-time role at Nuvi , I’ve been lucky enough to work on a team where we’re able to push the boundaries in the natural language processing field. We built out several different “facets” that we score text on, including sentiment, emotion, vulgarity, tense, and currently, we’re working on promotion detection. While the technical side of NLP is hard, one of the hardest things was unexpected – defining the boundaries between the categories in question. Which words count as vulgar? Does anticipation entail positive emotions? Can a single tweet exude anger and fear at the same time despite being opposites according to Plutchik? In this article, we’ll explore some of these questions and how we ended up answering them. Emotion Facets The eight emotions we set out to build a classification engine for are defined by Plutchik’s wheel : Anger Fear Joy Sadness Trust Disgust A...

The 8 Crucial Mistakes Holding You Back From Getting a Programming Job

Image
The post The 8 Crucial Mistakes Holding You Back From Getting a Programming Job first appeared on Qvault . If you’re reading this article, you’re well aware of the great benefits that come with a programming job – high salaries for programmers , an expanding job market , exciting opportunities .  You’re also aware that employers are increasingly desperate for seasoned, qualified, talented programmers. DAXX blog writes that in 2020, while there are 1.4 million unfulfilled jobs, there will be only 400,000 computer science graduates. Of course more hobby coders or bootcamp programmers might fill in some of those ranks, but overall, the demand for the jobs far outweighs the supply of programmers. That’s what makes it all the more frustrating when you count yourself as one of those skilled programmers, but you still can’t get a programming job.  Nowadays, so much online material that’s designed to help you learn coding or programming emphasizes getting you a job – fast. But ...

Writing a Binary Search Tree in Python – With Examples

Image
The post Writing a Binary Search Tree in Python – With Examples first appeared on Qvault . A binary search tree, or BST for short, is a tree whose nodes each store a key greater than all their left child nodes and less than all of their right child nodes. Binary trees are useful for storing data in an organized way, which allows for it to be fetched, inserted, updated, and deleted quickly. The greater-than and less-than ordering of nodes mean that each comparison skips about half of the remaining tree, so the whole lookup takes time proportional to the number of nodes in the tree. To be precise, binary search trees provide an average Big-O complexity of O(log(n)) for retrieval, insertion, update, and delete operations. Log(n) is much faster than the linear O(n) time required to find items in an unsorted array. Many popular production databases such as PostgreSQL and MySQL use binary trees under the hood to speed up CRUD operations. BST Step 1 – BSTNode Class Our implementa...

Building a Linked List in Python with Examples

Image
The post Building a Linked List in Python with Examples first appeared on Qvault . A linked list is a linear data structure where elements are not stored next to each other in memory. The elements in a linked list are linked using pointers or references. Linked lists are an ordered collection of objects, similar to a normal list. Linked lists stand apart from lists in how they store elements in memory. While regular lists (arrays or slices) use a contiguous memory block to store references to their data, linked lists store references (pointers) as part of each element. source A normal list is just a pointer to the first element in the list, and a specific item can be retrieved by providing a memory offset. A linked list is also just a pointer to the first element in the list, but memory offsets won’t do us any good. We need to examine the first...

The Best Ways To Get a Programming Job with No Experience

Image
The post The Best Ways To Get a Programming Job with No Experience first appeared on Qvault . It sounds like a pipe dream. A well-paid programming job, with no experience? Get out of town. Well, as it turns out, it’s both just about as difficult as you believe, but probably easier than you think. As with most things, the main obstacle standing in the way of you getting a programming job with no experience is yourself. So what are the best ways to get a programming job with no experience? And are you willing to put in the effort? It’s going to take a lot of preparation, so let’s jump right into it. Know Your Stuff This sounds braindead, I know, but you’d be surprised how many people apply for positions they’re absolutely unqualified for. And I’m not saying that they don’t have the requisite experience or education boxes checked – I mean these people apply for jobs that they have no way to succeed at. There’s nothing a prospective employer hates more than hiring someone who can’...