-
Notifications
You must be signed in to change notification settings - Fork 15.8k
Open
Description
Checks
- This is not a duplicate of an existing issue (please have a look through our open issues list to make sure)
- I have thoroughly read and understand The Odin Project Contributing Guide
- Would you like to work on this issue?
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 orMap) 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
Labels
No labels