9 ms·
Ask HN: What coding challenge sites should I try next?
I'm learning PHP for a new position and tried using codewars and codefights. I'm not impressed by the UX with either of them, they're over gamified. The quality of Kata on codewars is not good (at least the easy stuff) and both are broken in random trivial places.
Can you offer suggestions on similar platforms that are less gamified, higher quality challenges, and more reliable?
- cag_ii 9y agoMaybe just skip the game sites. Go to github, find a project that you find interesting and relevant to your position. Take a look at the open bugs and try to fix some. Even if you don't feel comfortable sending a pull request you can learn a lot by going through the whole process on a real project. Alternatively, take a look at the recent commits and what they fix... https://github.com/topics/php https://github.com/topics/php
- lakechfoma 9y agoGood call on at least reviewing fixes on github. I was going for the game sites because I just want to get the trivial gotchas of the language out of the way, get a feel for what error messages look like on some basic stuff.
- zamalek 9y agoAlong those lines, find projects that have "up for grabs"[1]. I was trying to learn Go for personal enrichment and learned tons about real-world Go by opening a PR. [1]: http://up-for-grabs.net/#/tags/PHP http://up-for-grabs.net/#/tags/PHP
- arwhatever 9y agoMy recent interviewing experience, while anecdotal, would suggest that you'd actually be better off with the coding challenge sites, assuming that succeeding at interviewing is your goal. I think this is unfortunate, irrational, and that contributing to Github projects would actually build your practical skills while adding some value to the universe. But having spent more time working on coding challenges, algorithms and puzzles would have been more beneficial to my most recent several interviews.
- DavidWoof 9y agoIt's a trade-off. One thing that's definitely going to get you more and better interviews is a section on your resume that lists major open-source projects you've contributed to. But yes, once you hit the interview you still might hit the old-style puzzle questions depending on the company.
- whatyoucantsay 9y agoWhat top companies exist that don't ask candidates to solve coding challenges?
- balls187 9y agoYou don't need to make a trade off. You can do both contribute meaningfully to an open source project AND practice on Codewars.
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- SlyShy 9y agoProject Euler (projecteuler.net) has great algorithmic and mathematical challenges. I like to go through their problems when learning new languages.
- VLM 9y agoAgree with your good suggestion, and extend with rosalind.info for kinda the same experience but for bioinformatics instead of math. Now what I'd be VERY interested in is an implementation of a list of "Like Project Euler, but for X" where X is all manner of things. WRT various values of X, I know there are periodic security challenges but nothing long term/permanently ongoing, I'd greatly enjoy being proven wrong. I'd be particularly personally and professionally interested in "Project Euler for HFT". How about "Project Euler for VLSI design"? Yeah, yeah, If I want it, I should do it, and its true I probably could, other than the lack of infinite spare time.
- Insanity 9y agoI love Project Euler. Each time I pick up a new language I actually go to PE and solve some problems (often times ones that I have already solved) just to get a better feel for the syntax of the new language I am learning. Afterwards I'd just go make some standard 'mock projects' that require a bit more of software architecture. Such as building Game of Life, a twitter clone, a HN clone,.. Depending a bit on if I actually liked the language :-)
- swyx 9y agocodewars Kata get hard soon enough. maybe its because youre doing it in PHP but ive had no complaints at all on python and javascript. agree with cag_ii that you should just work on projects given that you're keen on PHP
- lakechfoma 9y agoIt wasn't that they were too easy, too easy is fine. I'm doing this to understand where the good docs are, what error messages read like, and what the common mistakes and gotchas of the language will be. It's just like no one proofread some of these, repetitive concepts, one Kata had a blatantly wrong test condition, etc. Reviewing commits on github will be useful in understanding what contributing to mature projects looks like though.
- jmcgough 9y agoCodewars isn't being maintained very well. Some of the languages aren't current - their version of Elixir is over a year old, and they have no plans to upgrade it.
- lawrencewu 9y agoI'm the founder of Daily Coding Problem (https://dailycodingproblem.com/ https://dailycodingproblem.com/). We send high quality programming questions every day. You can sign up to our mailing list for free to get problems starting tomorrow at 9AM PST. I hope you enjoy our problems!
- artwr 9y agoI tried signing up via the form but could not do so.
- lawrencewu 9y agoSorry! There was a bug in the subscription logic. It should be fixed now. Mind trying again?
- artwr 9y agoIt seems fixed, thanks for the quick turnaround.
- THEUW 9y agoIf you want to have some data science practice, you can try out DataCamp. They have a selection of python projects https://www.datacamp.com/projects https://www.datacamp.com/projects
- rayalez 9y agoYou don't really need platforms to help you learn how to code. Find some good video courses and create practical projects by following the instructions, that's the best way to learn, especially if you're into webdev. I suggest trying Udemy, TutsPlus, or CodeSchool. Unfortunately, I can't recommend anything PHP-specific. Though if you're just getting started and aren't stuck with PHP, I recommend going with Django or Node instead. Udemy has excellent courses on Node(https://www.udemy.com/the-complete-nodejs-developer-course-2/ https://www.udemy.com/the-complete-nodejs-developer-course-2...), so if you're looking for the best place to learn webdev, I highly recommend going there.
- lakechfoma 9y agoFor sure, it's just the little language gotchas that I'm trying to understand before really leaping in to anything. For example I didn't realize an array in PHP is actually a key/val set until it bit me on some easy challenges. Thanks for the recommendations though. I'm not necessarily stuck with PHP and would prefer to move towards Python if possible.
- khedoros1 9y agoA couple of years ago, I had some slack in my schedule, and decided to combine learning Python with starting a project in it. It took me a couple weeks to feel really comfortable, but it also got me to a kind of "MVP" implementation, and I was able to take the next month or so after that to fill in the features. Starting out, I spent a few days in standard tutorials, then just started writing. As I implemented features, I'd research the standard Python idioms for doing various things. It might not work for every program, or for every learning style, but that script has been part of our build infrastructure for 2 years at this point, and maintenance for the last year and a half has mostly been limited to feature additions as our needs change.
- bitlax 9y agoAnybody know some good resources for advanced sql query practice? Multiple nested subqueries, more obscure functions, etc?
- jpamata 9y agoHave you tried pgexercises or hackerrank? https://pgexercises.com/ https://pgexercises.com/ https://www.hackerrank.com/domains/sql https://www.hackerrank.com/domains/sql
- sedzia 9y agoWe're going to start more business-oriented dev challenge soon, more info https://dev.to/msedzielewski/voucherify-developer-challenge-57m https://dev.to/msedzielewski/voucherify-developer-challenge-...
- MitjaBezensek 9y agoAdvent of code just started, so you might try that: http://adventofcode.com/ http://adventofcode.com/
- calebtroyer 9y agoRealistically, the best way to learn a language is to make a small project that does something useful. But if you're still wanting to do challenges rather than a project, you're just in time to participate in Advent of Code 2017 [0]. The only 'gamified' part is the leaderboard which is based on how long it takes you to generate a correct answer since the challenge became available. Another challenge that, while not generally suited for a PHP programmer but still possible, is the Synacor Challenge [1] , which involves creating a virtual machine and running a provided binary in that virtual machine to find codes to submit. [0] https://adventofcode.com/ https://adventofcode.com/ [1] https://challenge.synacor.com/ https://challenge.synacor.com/
- banachtarski 9y agoBuild your own toy version of the following: - compiler - neural network - graphics engine - web server - physics LP solver - JIT compiler - garbage collector - memory controller - operating system
- tartrate 9y agoOP said he's learning PHP.
- wohlergehen 9y agoSo? OP clearly wants a challenge :-)
- hawski 9y agoUncharted territories are quite a challenge. But probably there are projects out there that are doing those already.
- lancew 9y agoThis site has been mentioned here a few times, good if you want a challenge in your language or a variety of languages. Https://codegolf.io
- recursive 9y agoThis link does not go anywhere.
- subrat_rout 9y agoI am surprised no body has mentioned Exercism yet. Go to exercism.io and there are around 60 problems for PHP that you can start working on it. The good part is, it has tests built into it. You can gradually work on a solution by progressive approach and thus passing each test successively.
- lancew 9y agohttps://codegolf.io https://codegolf.io This site has been mentioned on HN and reddit a few times. Good if you are looking for sharp code, and perhaps to span languages.
- rb808 9y agohttps://code-golf.io https://code-golf.io
- antognini 9y agoI like Programming Praxis: https://programmingpraxis.com/ https://programmingpraxis.com/ There's a pretty extensive collection of problems there now, and they span a variety of topics, from basic CS stuff (e.g., implement a stack or a binary tree), to cryptography, number theory, and trivia (e.g., write a quine, calculate the date of Easter, or solve a Sudoku puzzle). Note that the chronological list of exercises isn't up to date.
- marsrover 9y agoI'm pretty surprised that LeetCode hasn't been mentioned. There are a lot of low quality questions on it but if you sort by "Top 100", you'll find some pretty interesting problems.
- ferdbold 9y agoI personally love https://www.codingame.com/ https://www.codingame.com/, but it's geared more towards university students. The challenges get pretty hard, and they all pretty much gravitate around game AI if that's your thing. The cool thing is that some challenges are multiplayer, in the sense where you need to develop an AI for a given game, and then send your AI on a ladder to compete against other coders' AI.
- plg 9y agohttps://adventofcode.com https://adventofcode.com
- mattpk 9y agoGoogle Codejam has some great problems. https://code.google.com/codejam/ https://code.google.com/codejam/
- rb808 9y agohttp://www.hackerrank.com http://www.hackerrank.com - most popular, lots of corps use for first line recruiting so worth knowing. http://www.interviewbit.com http://www.interviewbit.com - teaches you at the same time.
- johnsonjo 9y agoOne similar to Hackerrank is hackerearth [1]. [1] https://www.hackerearth.com https://www.hackerearth.com
- muzani 9y agoCodility is really well written. I'm not sure if they have PHP but they seem to have the major languages. They're one of the few which tests and teaches your code's performance. They're also very popular for hiring tests.
- autogn0me 9y agoWhat about the original "challenge" website? http://www.pythonchallenge.com/ http://www.pythonchallenge.com/
- songzme 9y agoHi! I'm teaching a coding bootcamp and one of my students built http://jsstation.com http://jsstation.com If you could share with us what you could like to see, we can make it happen!
- loeg 9y agoSynacor Challenge is a pretty good one: https://challenge.synacor.com/ https://challenge.synacor.com/ I wasn't a fan of the text adventure puzzle, but the rest is great.
- bhollan 9y agoI'm shocked Codility isn't on here yet. https://codility.com/programmers/lessons/1-iterations/ https://codility.com/programmers/lessons/1-iterations/ They're really strong on language-agnostic testing with emphasis on CS concepts. That's great and typical, but they have the study material linked directly to each lesson. I've had great interview experiences through their platform. (shameless plug warning) I liked it enough that when I went through Flatiron School, I made a Ruby gem to see their lessons in the command line. https://rubygems.org/gems/rubedility https://rubygems.org/gems/rubedility
- segmondy 9y agoNone, go build something. Build a clone of something, facebook, twitter, HN, google, slack.
- indigochill 9y agoOne I like is Wechall. It's sort of an index of other challenge sites (including a nifty API that can track your progress through some of their indexed sites), although they have a few of their own challenges as well. The sites it indexes tend to be geared towards security topics like web security and cryptography, though there are some more general programming challenges as well.
- johnsonjo 9y agoIf you don’t mind competitive programming sites then you can try codeforces [1] which is probably one of the hardest sites to compete in. You could also try codechef [2] which has long challenges so you can compete over the span of a week rather than over two hours like on codeforces. [1] http://codeforces.com http://codeforces.com [2] https://www.codechef.com https://www.codechef.com
- exikyut 9y agoPHP is an unusual situation; for PHP, I would recommend reading bug reports and learning what has not been fixed for years that will bite you badly. Lots more info here: https://news.ycombinator.com/item?id=15815830 https://news.ycombinator.com/item?id=15815830 If you want an honest appraisal of PHP, you'll find it in the above link.
- lakechfoma 9y agoHa yeah that's been my experience at a smaller scale so far. Why are "arrays" actually key value sets? Not at all intuitive. I figured that out when I used array_unique() only to discover that some index values had gone missing. Of course that function provides no option to "treat $array like an actual array". I found a solution of array_keys(array_flip()) which I read also happens to be faster than array_unique(). Wat.
- aaron-santos 9y agoI had a great time going through the challenges at http://www.4clojure.com/ http://www.4clojure.com/
- 0x54MUR41 9y agoWhen I was taking algorithm courses in my university, my lecturer used SPOJ [0] and Uva online judge [1] as part of coding exercises. For example, today, I learn about greedy algorithm, my lecturer find a problem on those website about greedy algorithm problems. Someone already mentioned CodeForces. It likes SPOJ and Uva. But, CodeForces usually has a coding competition regularly. The websites above will affect you on how to solve a problem quickly because it's timed. It helps for job interview. If you want to learn about software engineering, e.g. architecture or what's going on in real industry, it's different in my opinion. You should know well the problem, use cases and of course, the contexts. To be honest, I agree with @cag_li. Involve in open source projects or build a real project! [0]: http://www.spoj.com http://www.spoj.com [1]: https://uva.onlinejudge.org/index.php https://uva.onlinejudge.org/index.php
- j45 9y agoIt might be something fun to build something that solves a need that someone or a group of people have.
- zapperdapper 9y agoAs others have said try building something. I would add the following: Start with something really, really simple - like a single page website (and I mean literally a single page of HTML). Then incrementally add features, adding the PHP code to, for example, read content from a database. Every day add a little feature or a tweak or fix a bug. After a couple of months you will be surprised by what you have achieved. But you don't need to stop there. Keep adding little features - eventually you will end up with a CMS. The thing about this approach is you never burn out because you work in small doses, and the project never "runs out" because there's always something new you can add. But because you work on it incrementally you are more likely to get somewhere than if you sit down one day to "write the next Google". Hope that helps and good luck!
- cdancette 9y agoI really like https://www.crackthatcode.com/ https://www.crackthatcode.com/
- whatyoucantsay 9y agoCode Forces is an ugly, ungamified site but the calibre of its contestants is of a far higher grade. If you can do well there, you'll have no need to ever again worry at your ability to solve smaller coding-related problems. Silicon Valley tech company interviews will also feel easy in comparison.
- mvdschaaf 9y agohacker.org is pretty good. Some of the challenges can be brute forced easily, and some have only been solved fully by one person. The puzzles are good, but the real fun is in the challenges. Some of the ones I've unlocked have only been solved by less than 100 people.
- MithrilTuxedo 9y agohttp://www.codeabbey.com/ http://www.codeabbey.com/ is more CpSc oriented but very similar to https://projecteuler.net/ https://projecteuler.net/. https://uva.onlinejudge.org/ https://uva.onlinejudge.org/ has too many problems to sum up easily, but they have online solution checking. http://acm.timus.ru/ http://acm.timus.ru/ and http://www.spoj.com/ http://www.spoj.com/ are similarly massive.
- toAnswerIt 9y agohttp://codeforces.com/ http://codeforces.com/ and https://www.topcoder.com/ https://www.topcoder.com/ have really good algorithmic challenges with frequent Competitions.
- markfer 9y agoI would personally recommend taking the 10x Club course (note: I work at the parent company, and yeah I know about the name)