Red-Green-Code

Deliberate practice techniques for software developers

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

Archives for October 2016

Why is Competitive Programming Hard?

By Duncan Smith Leave a Comment Oct 26 0

Difficulty

When I came up with 12 Reasons to Study Competitive Programming, I picked the following for reason #3: Studying competitive programming gives you a way to practice solving hard problems.

(As I pointed out in the article, this is also a reason that some people give for not studying competitive programming. They claim that most software developers work only on trivial problems. So they don’t see any reason to practice solving hard problems. That has always seemed to me like a backwards argument).

What does it mean for a problem to be hard? To answer that, I’ll borrow part of the definition of deep work: a problem is hard if it requires specific training and experience to solve. While some ad-hoc competitive programming problems can be solved by any programmer willing to spend an hour or so thinking and coding, modern contests contain problems that only programmers who have spent considerable effort practicing can solve in a reasonable amount of time.

That’s the type of hard problem that I’m talking about. To be hard, a programming problem doesn’t have to involve an unsolved research question. But it does need to provide a challenge to people who spend a lot of time solving puzzles.

What makes competitive programming hard? Here are some factors.

« Continue »

Questions About Competitive Programming

By Duncan Smith Leave a Comment Oct 19 0

Topics

If you have a question about competitive programming, Quora is a good place to find the answer. Quora’s Competitive Programming topic attracts experienced competitive programmers, and they have written answers to a variety of common questions that beginning and intermediate programmers have about the subject.

It has been a few years now since the Quora topic was created, and most questions about the fundamentals of competitive programming have been asked and answered. While there are still new questions about specific problems, and about current events, it’s rare to see a new question about fundamentals.

« Continue »

Three Perspectives on Coding Interviews

By Duncan Smith Leave a Comment Oct 12 0

Interview1
Interview2

It’s October, the time of year when leaves start to fall from the trees, and companies start to recruit college students for summer internships. Last week, I spent half a day interviewing some of those candidates. I also came across a long Hacker News thread called I Hate HackerRank. So I thought it would be a good time to revisit the dreaded coding interview.

« Continue »

The Benefits of Demystifying Tacit Knowledge

By Duncan Smith Leave a Comment Oct 5 0

Knowledge

Can you learn anything you want by reading a book? A blog post by Scott Young last week got me thinking about claims that some subjects are unteachable. Here are some examples:

Claim: Some knowledge and skills can only be learned using an apprenticeship approach.

  • Scott contrasts two learning techniques. One is the standard school model that we’re all familiar with: a student reads textbooks, attends lectures, and turns in assignments. The other model has more in common with apprenticeship: a student finds an expert practitioner, observes what they do, and tries to replicate it.

Claim: You have to figure out your own path to success. You can’t learn the path from someone else.

  • In his book Linchpin, Seth Godin writes: “Telling people leadership is important is one thing. Showing them step by step precisely how to be a leader is impossible.”

Claim: It’s not always possible to teach someone to be a top performer, despite the best efforts of teacher and student. Factors other than practice time explain why some people perform better than others.

  • In her contribution to the deliberate practice debate, psychological scientist Brooke Macnamara published a meta-analysis arguing that practice doesn’t have a large impact on the performance differences between expert performers.

« Continue »

Stay in the Know

I'm trying out the latest learning techniques on software development concepts, and writing about what works best. Sound interesting? Subscribe to my free newsletter to keep up to date. Learn More
Unsubscribing is easy, and I'll keep your email address private.

Getting Started

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

  • 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

  • LeetCode 1288: Remove Covered Intervals January 20, 2021
  • LeetCode 227: Basic Calculator II January 13, 2021
  • A Project for 2021 January 6, 2021
  • Lessons from the 2020 LeetCode Monthly Challenges December 30, 2020
  • Quora: Are Math Courses Useful for Competitive Programming? December 23, 2020
  • Quora: Are Take-Home Assignments a Good Interview Technique? December 17, 2020
  • Quora: Why Don’t Coding Interviews Test Job Skills? December 9, 2020
  • Quora: How Much Time Should it Take to Solve a LeetCode Hard Problem? December 2, 2020
  • Quora: Quantity vs. Quality on LeetCode November 25, 2020
  • Quora: LeetCode Research November 18, 2020
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2021 Duncan Smith