Skip to content

Computer Science: Remove Hash Map lesson and project #30247

@JoshDevHub

Description

@JoshDevHub

Checks

Describe your suggestion

There are a few issues I have with the current Hash Map content in the Computer Science course, and in light of them, I'm proposing that the content be removed.

  • I'm wary of the Computer Science section being bloated. With recursion, linked lists, hash maps, binary search trees, and graph content via Knight Travails, there's a lot going on for a section of the curriculum that I think should be more of an introduction to DSA concepts than a deep dive. The hash map content presents the easiest thing to cut because I think it has the least value (discussed in the next two points).
  • I've come to think that constructing a Hash Map from scratch fits weirdly with higher level languages like JavaScript and Ruby. There are a couple of issues (how the languages handle overflowing 64bit ints, how the languages handle indexing above an array's length) that make building a Hash Map from scratch awkward in a way they wouldn't be if we were teaching something like C. Or even languages like Java or C# that have explicit int types and statically sized arrays. Although I realize this is partially an anecdotal argument, I think these types of problems make the content confusing for our learners, leading to lots of trouble working through the project and lots of maintenance overhead dealing with issues on GitHub regarding the lesson and project.
  • I think the content has low practical utility. Linked lists, recursion, binary search trees, and graph problems are well trod areas in "leetcode" type interview questions, even in working with higher level languages. I find it unlikely that JS or Ruby devs are asked to construct a Hash Map from scratch in interviews. If anything, I think they're much more likely to engage with problems that ask them to use the languages' builtin Hash Map types (Ruby's Hash, JavaScript's object literals or Map) to solve problems where they're the right structure for the job. And the current content doesn't explore this.

Interested in people's thoughts on this (maintainer as well as learners who've worked through that lesson and project). Although I'm a maintainer on the DSA team, this isn't for sure going to happen, and I'm willing to be swayed into keeping the content around. I'm definitely curious to know if people find the content valuable or not.

Path

Ruby / Rails, Node / JS

Lesson Url

https://www.theodinproject.com/lessons/javascript-hashmap-data-structure

(Optional) Discord Name

No response

(Optional) Additional Comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions