Tips for accepting feedback with grace and dignity.
Like writing, programming is personal and intimate. You pour your creativity and thoughts into a machine through your fingertips. It is no surprise, then, that you may feel a little angry when you read critical reviews on your code.
How do you handle criticism? For one, stop sulking and think before leaping into defending yourself or lashing out at others. Below is a guide to what I think about when I read code reviews.
Code review plays a crucial role in software quality assurance. A good piece of feedback may uncover defects — program correctness, performance issues, security vulnerabilities — before your code ever reaches the users. …
CSS grid, linear-gradient, neumorphism, and a moment in Go history.
I was inspired to write about Go after watching The Queen’s Gambit recently. Something is alluring about learning a five-hundred-year-old chess opening move. The modern computer can simulate millions of game patterns in a fraction of a second. But it will never know the joy of learning the name and history behind a move.
This article will feature the famous opening sequence in a match between Go Seigen and Honinbo Shusai Meijin in HTML and CSS.
On October 16, 1933, the 18-year-old Chinese-born prodigy Go Seigen faced Honinbo Shusai Meijin, the 21st head of the Honinbo house — the most prominent Go institution in Japan since 1612. It was dubbed the game of the century at the time, for it was the epitome of a generational war against a backdrop of rising tension between the two men’s respective native countries. …
Tips for implementing pay transparency at your workplace.
I spent three years building a human resource information system at a startup. Our team was in charge of building performance reviews, cascading goals, salary history, and other talent management tools.
We also had to implement an incredibly flexible permission system to manage who has access to which piece of information in the product. Because some companies took extraordinary care around their data, while others left everything out in the open. I was always fascinated by how companies treat their data and what it says about their company cultures.
A couple of years later, I talked to Pascal Roy, owner of Elapse Technologies, who opened my eyes to open-book management. …
Elevate your skills with deliberate practice.
In her book Grit: The Power of Passion and Perseverance, Angela Duckworth interviewed dozens of high achievers and noted the importance of deliberate practice in their successes. Below is how Duckworth describes the way experts practice:
First, they set a stretch goal, zeroing in on just one narrow aspect of their overall performance. Rather than focus on what they already do well, experts strive to improve specific weaknesses. They intentionally seek out challenges they can’t yet meet.
This article will identify fundamental strengths crucial to software development and design specific routines to get you into coding shape. …
Tips for choosing your organizational designs.
I first heard about Kent Beck’s product development triathlon metaphor in 2016 when he visited the ThoughtWorks office in New York. Kent Beck identified three stages of the product development cycle — Explore, Expand, and Extract, and proposed that either agile or waterfall development model could be appropriate depending on which stage you are in.
The framework has helped me find words to describe how organizational designs should evolve based on the product development cycle. Below I will outline three patterns of organizational design to complement Kent Beck’s 3X.
When you are launching or planning for a new product, you are exploring a new market. You are the new kid on the block. Your resources are limited — a couple of software developers, a three-month cash runway, and your day job. It is time for making lots of small bets and hopes for at least one big win. …
Tips for improving your coding style
As a new programmer, you may find it frustrating to have to consistently write grammatically correct sentences in order for the computer to understand you. This is because — unlike human languages — programming languages are unforgiving. A misspelling or misplaced punctuation can render an entire program unusable.
However, a programming language is a communication medium for both computers and humans. After overcoming the obstacle of making computers compile your code, you have to work on making your code legible to other programmers so that it is easy to extend and maintain. Your coding style reflects where you learned to program, what editor you use, which languages you favor, and how you collaborate with others. …
Solving the wrong problem is often more costly than building the wrong solution.
As a software developer, I am a natural problem-solver. I take one look at a problem and immediately start thinking about how to solve it in my head. However, plunging head-first into a solution without seeing the big picture first is often counter-productive.
In this article, we will take a look at three software development practices that can help us find the right problem to solve. But before we talk about coding, let us first take a page from product management–the profession specializes in finding problems.
The product development process consists of two stages — problem space and solution space. Problem space is where you attempt to identify a customer need. Solution space is the product that addresses the need. Working in problem space involves listening to customers, capturing their needs, and asking questions to paint a picture of their situation. …
Take off the coding training wheels!
My partner recently enrolled in a virtual coding boot camp. As I watched her tackle her first programming lessons, I was surprised to find out how much of what I learned in school did not translate to work.
In this article, we will identify four programming constructs that may have been foundational when you first discover how programming works–but will slow you down on the next leg of your journey.
Loops are one of the first constructs you learn as a student of computer programming. …
You, too, can bake a perfect Chrome Extension following this recipe!
Chrome is the most popular web browser on the planet and takes up nearly 70% of the market share. Chrome Extensions are small software programs that spice up your web browsing experience.
I don’t want to use Redux for state management. What are my options?
Redux is the default state management solution for many. However, we shouldn’t fall for the law of the instrument. In this post, we will explore several alternative state management techniques using React Hooks.