Red-Green-Code

Deliberate practice techniques for software developers

  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter

Programmer Skills (and Salaries) According to Stack Exchange

By Duncan Smith Leave a Comment Sep 21 0

In July of this year, Stack Exchange Inc. released an online tool that lets you calculate how much money you would make if you worked there. The number you get out of the tool is based on four factors. There’s a salary floor based on the position you select (e.g., Developer or Product Designer), an […]

Continue

Getting Past a Competitive Programming Plateau

By Duncan Smith Leave a Comment Sep 14 0

In the Peak book, the authors describe the following learning challenge in a section called “Getting Past Plateaus”: When you first start learning something new, it is normal to see rapid — or at least steady — improvement, and when that improvement stops, it is natural to believe you’ve hit some sort of implacable [immovable] […]

Continue

Three Ways to Solve UVa 108

By Duncan Smith Leave a Comment Sep 7 0

UVa 108 is rated as a Level 1 (easy) problem by uHunt, but its solution nevertheless contains some interesting techniques. Here’s a summary of the problem statement: Given an $N \times N$ array $A$ of positive and negative integers, print the sum of the nonempty subarray of $A$ that has the maximum sum. The sum […]

Continue

Competitive Programming Training Tips

By Duncan Smith Leave a Comment Aug 31 0

Over the past couple of weeks, I have been writing about deliberate practice as described in Peak by Anders Ericsson and Robert Pool. The book describes three types of practice: Naïve practice, purposeful practice, and deliberate practice. The latter two types of practice are both effective, but there’s a key difference that makes deliberate practice […]

Continue

Achieving Peak Performance in Competitive Programming

By Duncan Smith Leave a Comment Aug 24 1

Last week, I wrote about the concept of mental representations, an important topic in Peak by Anders Ericsson and Robert Pool. According to the authors, learners seeking expertise should have as their goal a virtuous cycle between mental representations and deliberate practice: Deliberate practice should produce more effective mental representations, and more effective mental representations […]

Continue

Mental Representations for Competitive Programming Practice

By Duncan Smith Leave a Comment Aug 17 0

Psychologist and deliberate practice pioneer K. Anders Ericsson has been studying and writing about deliberate practice for decades, and his landmark 1993 paper provides an accessible introduction to the topic. This year, he published his first book-length exploration of deliberate practice for a general audience. Peak: Secrets from the New Science of Expertise explains the […]

Continue

Three-Dimensional Dynamic Programming for UVa 10755

By Duncan Smith Leave a Comment Aug 10 0

Two weeks ago, I introduced the concept of memoization for dynamic programming, using as an example UVa 787. That problem involves operations on a sequence of integers, a one-dimensional structure. UVa 10755: Garbage Heap increases the problem complexity by organizing its integer data into a three-dimensional shape, a rectangular parallelepiped. Nevertheless, we can use memoization […]

Continue

Getting Answers to Your Competitive Programming Questions

By Duncan Smith Leave a Comment Aug 3 0

This week, there was a question on Meta Stack Overflow about the right way to ask Competitive Programming questions on Stack Overflow. To the uninitiated, Stack Overflow might seem like a good place to ask questions about Competitive Programming. It’s the standard place on the Web to ask programming questions, and competitive programming is about […]

Continue

Dynamic Programming Basics for UVa 787

By Duncan Smith Leave a Comment Jul 27 4

In programming contests, some algorithms and techniques get more emphasis than they do in school or in professional programming work. One such technique is dynamic programming. CP3 has this to say about dynamic programming: This technique was not known before 1940s, nor frequently used in ICPCs or IOIs before mid 1990s, but it is considered […]

Continue

Write Your Own Manual

By Duncan Smith Leave a Comment Jul 20 0

You can become a better software developer by improving your ability to organize information. A key part of that skill is being able to communicate what you know in writing. Whether you’re enlightening your peers on Stack Overflow or writing FAQs for your team, it’s good to have a reputation as a person who Knows […]

Continue
  • « Previous Page
  • 1
  • …
  • 39
  • 40
  • 41
  • 42
  • 43
  • …
  • 49
  • Next Page »

Getting Started

Are you new here? Check out my review posts for a tour of the archives:

  • 2023 in Review: 50 LeetCode Tips
  • 2022 in Review: Content Bots
  • 2021 in Review: Thoughts on Solving Programming Puzzles
  • Lessons from the 2020 LeetCode Monthly Challenges
  • 2019 in Review
  • Competitive Programming Frequently Asked Questions: 2018 In Review
  • What I Learned Working On Time Tortoise in 2017
  • 2016 in Review
  • 2015 in Review
  • 2015 Summer Review

Archives

Recent Posts

  • Do Coding Bots Mean the End of Coding Interviews? December 31, 2024
  • Another Project for 2024 May 8, 2024
  • Dynamic Programming Wrap-Up May 1, 2024
  • LeetCode 91: Decode Ways April 24, 2024
  • LeetCode 70: Climbing Stairs April 17, 2024
  • LeetCode 221: Maximal Square April 10, 2024
  • Using Dynamic Programming for Maximum Product Subarray April 3, 2024
  • LeetCode 62: Unique Paths March 27, 2024
  • LeetCode 416: Partition Equal Subset Sum March 20, 2024
  • LeetCode 1143: Longest Common Subsequence March 13, 2024
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2025 Duncan Smith