Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Data Structures and Algorithms in JavaScript (github.com/amejiarosario)
369 points by admerox on Aug 7, 2019 | hide | past | favorite | 40 comments


I bought the book, and so far it's a good overview of big-O notation. However, I'm halfway through the first chapter and I've already found a handful of typos. I commend OP for taking the risk and self-publishing but please have someone proofread your work before you start selling it!


Thanks for reading the book and commenting here! Could you please open an issue with the typos https://github.com/amejiarosario/dsa.js-data-structures-algo... or create a pull request with fixes? I'll be more than happy to go over them and fix/merge them. I've spent weeks proofreading the material, but apparently, some slipped through the cracks. Thanks again for taking the time.


Sorry, but since the book itself isn't open source, I'm not going to do your editing for free. There's plenty of paid editor sites out there. If you give me co-author credit and a slice of sales, though...


The book is open-source! All the book's chapters and exercises are open to anybody to see and edit. E.g. First chapter is here: https://github.com/amejiarosario/dsa.js-data-structures-algo.... The offline formats (PDF, ePub, Mobi) are there for convenience (and to solve the limited support Github has for asciidoc's `include` directives) but all the text/code is open.


I apologize for my snark! You're right, and thank you for releasing this open source :)

To attempt to excuse myself, it's not obvious on mobile that the book is included in the repo.

Cheers, then, I'll open a PR.


Off topic, but nice use of `<details>` & `<summary>` elements in the README!


The relationship map is neat.

A quick reverse-image search of the logo pointed me to the visualization tool https://kumu.io/


I think one of the point of using Markdown is that you can read it unformatted. Using `<details>` & `<summary>` kinda breaks that mentality don't you think?


Those elements are fairly semantic though, aren't they? Making reading them unformatted still easy?


right?! I love using that in Readmes!


Can you turn this into an interactive thing like Duolingo where you grind through the exercises? Much needed in the developer community...

PS. If anyone else is interested in building this, happy to collab!


Not to discourage this rally cry (go for it!) I found that Exericsm was a pretty good place to practice stuff: https://exercism.io/


Small plug-- this is what I tried to do with https://algodaily.com - going from the easiest algorithms (like "Reverse a String") all the way to Union-Find, while sprinkling implementations of BST, graphs, etc. along the way.


I just tried signing up but I'm getting an error. "The change you wanted was rejected. Maybe you tried to change something you didn't have access to. If you are the application owner check the logs for more information."


Fyi if you're going to handle any kind of account signup you should be running in TLS/SSL. I know this is just algo practice but these are best security practices.

Also, I don't see how this is any different from leetcode/hackrank etc. You just support less languages. Your first question is a "island" style problem which isn't a CS algo question, it's just a brainteaser like leetcode often gives you.


Good points!

1 - It does have TLS/SSL, just changed the referring link to https and redirecting all http to https

2 - That's a fair assessment, check out https://algodaily.com/challenges/validate-palindrome for a sense of how it differs: a) the step-through visualization button helps you know what's going on at each step, b) the trivia style questions help you "piece together" the solution before answering it fully, and c) each walkthrough walks you through the actual solution step by step, in plain English.


just tried to sign up but got the following error:

"The change you wanted was rejected. Maybe you tried to change something you didn't have access to.

If you are the application owner check the logs for more information."


Hmm just tried to signup and seems to work on my end. Could you try again? Thanks for taking a look!


Hey I'm also interested in this app, sounds like a great idea! However I experienced the same issue trying sign up just right now.


Doesn't work here as well.

Also, do you really need me to signup with a password? These days I'm skeptical of putting passwords out there, and it's just a mailing list.


Looking into it now!

And definitely do not need a password. You only need a password if you want an account to save your progress.

If you just want to sign up for the mailing list, you can do so on the popover, at the bottom of https://algodaily.com/sample_newsletter, or at the bottom of any lesson like https://algodaily.com/lessons/how-to-get-better-at-coding-in...


Hmm, the subscribe button changes color, but doesn't seem to do anything. My email address ends in '.tv' if that matters.


This should be resolved! Could you try again?


"Reverse a string" is actually one of the hardest interview questions to implement.


Lol. This is so true unless the string is limited to fixed length encodings only, ie ASCII.


Agreed. Sites like HackerRank are great for learning test taking but are not optimized for learning the underlying material. Would like to see modern human language learning techniques applied to small data structures and algorithms exercises.


I'm interested! I created an issue at https://github.com/marcelosousa/million-dollar-ideas/issues/... where we could start a discussion.


That’s a great idea. I’ll look into it.


you mean convert the book into anki flash cards ?



Off Topic: GitHub has so many navigation bars nowadays. Just look at the incorrect overflow caused by the overlapping project name and the buttons on the side: https://i.imgur.com/iXCgXYH.png . I don’t need to be an expert in UI/UX to know the GitHub UI is cluttered with an unnecessary amount of buttons. I can predict a redesign in less than a year or so, mark my words.


Hmm, it seems like you made this repo to sell a book.


and?


The title used to be "Show HN: I made this repo to practice Algorithms in JavaScript", which the GP commented on. It has since been changed to "Show HN: Data Structures and Algorithms in JavaScript".


I find it interesting that you consider an LRU Cache an 'algorithm' rather than a 'Data Structure'. I was just curious if you could explain that?

Great stuff though!


You can store the items in any kind of data structure. Figuring out the LRU items is the major concern, and that's an algorithm.


Different ways to determine / order Least Recently Used so I guess it could be classified as an algorithm.


Recently there was an interesting post about a similar topic posted here. It was a fun read. I'm not affiliated with the author in any way.

Link: https://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndD...


Very nice, tidy and educational!


Pretty cool!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: