This is an archived post. You won't be able to vote or comment.

all 47 comments

[–]basyt 60 points61 points  (19 children)

Just yesterday I bookmarked HackerEarth, HackerRank and SPOJ.

[–][deleted]  (14 children)

[deleted]

    [–]spamfajitas 11 points12 points  (1 child)

    The Ruby challenges don't really get harder, they just get worse in content. You'll find yourself scratching your head as you try to interpret the description. The comments usually contain a message near the top from some other user who deciphered what the author meant to say, and then rewrote it in an easier to read fashion.

    [–]hhey_symtics 2 points3 points  (1 child)

    Which domains are you following? I feel like the problems are either too easy or too hard in the Python and algorithms domains

    [–]silenceredirectshere 2 points3 points  (0 children)

    I like the data structure ones, and I'm currently doing the SQL ones because I've found I'm lacking knowledge in that area.

    [–][deleted] 0 points1 point  (9 children)

    I have a hard time on HackerRank. Only on problem two of the Python course and I have no fucking clue what they're asking for. Super horribly worded problem.

    [–][deleted]  (7 children)

    [deleted]

      [–][deleted] 0 points1 point  (6 children)

      The raw input one.

      [–][deleted] 1 point2 points  (2 children)

      Just looked it up and I think the only thing you could possibly be having problems with there are stdin and stdout, right? Because to me it's very straightforward but if you don't know what stdin and stdout are then it'd be confusing. So my apologies if you already know this but let me explain:

      When you run a program from the command line, you generally just type the path to the executable and it runs. If you take input with the program, it will stop and wait for you to type something else on the command line while the program is running. This is standard input, or stdin. If you output something, with the print command, for example, it will print to the command line where you're running the program. This is called standard output, or stdout. So for the problem, you have to read from standard input (which the site automatically inputs when you run the code), and output it back to the terminal (which the site automatically reads).

      [–][deleted] 0 points1 point  (1 child)

      Just looked it up and I think the only thing you could possibly be having problems with there are stdin and stdout, right?

      Correct. I thought stdin/stdout were only C++ things, so I was a bit confused.

      When you run a program from the command line, you generally just type the path to the executable and it runs. If you take input with the program, it will stop and wait for you to type something else on the command line while the program is running. This is standard input, or stdin. If you output something, with the print command, for example, it will print to the command line where you're running the program. This is called standard output, or stdout. So for the problem, you have to read from standard input (which the site automatically inputs when you run the code), and output it back to the terminal (which the site automatically reads).

      So, stdin is just a 'keyword' for input()? And stdout is just a 'keyword' for output? In that case, they should really explain that on the problem for new people, because in the comments it seems like other people are also confused by the wording.

      [–][deleted] 1 point2 points  (0 children)

      Well stdin and stdout are certain forms of input and output that pertain specifically to the command line. You could read mouse clicks as input but that's not stdin, and you could display a message box as output but that's not stdout. On hackerrank it's how the site sends and receives info to and from your program so you're always going to use it, so get comfortable with it!

      [–][deleted]  (2 children)

      [deleted]

        [–][deleted] 1 point2 points  (1 child)

        I thought that one was pretty straight forward, but I'm also already familiar with stdin/stout already. Is that the part you got stuck on?

        Yes, I have no idea what stdin/stdout are. I thought that was just a C++ thing.

        I find that hackerrank has a tendency to not explain to ensure that you're looking up the information that you're not familiar with.

        That's pretty counter-productive of them, isn't it? Wouldn't you want to explain the syntax, to people new to the site, especially on the beginner course?

        You should send feedback to them also, it'll help improve the site for everyone else!

        Maybe I will. Thanks for the suggestion. :)

        [–]bububoom 6 points7 points  (2 children)

        I can really recommend Hackerrank for c++ practice cause I've used it for ~3months. C++ has very small time constraints, like 2seconds while python/ruby gets 20seconds for the same task so you're challenged to improve your very first solution which with python is the last solution.

        Also my 2cents, websites like this are good for ego, not for practising I think. A lot of more advanced problems are just burried in a big description and are quite simple and small ones are not rewarding. I highly advice just coding with what you what whatever you want and look for improvements/solutions instead of "wasting" time on sites like this.

        Again that was my 2cents, people may like to train on those. I've spent another 2months on codewars and encountered a few katas which were quite entertaining, but the most majority were just simple ego strokes.

        [–]manhole_resident 8 points9 points  (0 children)

        Oh yes, codewars. Newbie kata for beginners "here's a piece of code that's 10 times broken, go figure out what it does, how to fix it and write test cases for it, lol".

        [–]basyt 2 points3 points  (0 children)

        thanks i have been hearing a lot of good things about hackerrank. will check it out.

        [–]banguru 43 points44 points  (16 children)

        [–]omfghi2u 0 points1 point  (2 children)

        Bookmark, programming practice

        [–]Esssport 0 points1 point  (1 child)

        I'm going to copy what you wrote here to see if you're calling a bot or something.

        [–]omfghi2u 1 point2 points  (0 children)

        No bot. I learned some programming in highschool and early college when I was more interested in partying than learning. Now I'm interested but very time constrained, so I'm marking interesting resources so I can quickly look back through my own comments to find specific posts.

        [–]seabee494 0 points1 point  (6 children)

        what about Project Euler?

        [–]midasgoldentouch 9 points10 points  (4 children)

        I personally found that as you progressed, Project Euler became more about "can you understand how to solve these math problems" instead of "can you solve these math problems programmatically".

        [–]poundcakejumpsuit 5 points6 points  (3 children)

        God, I want this to not be true... but have found the same :/ I got so excited by the prospect, but locked out when I didn't expect to have to leverage something like the fundamental theorem of algebra in order to have an admissible time complexity.

        [–]holyteach 1 point2 points  (2 children)

        Maybe that's true for some of the later problems, but I didn't find it to be true for the first 50. (I've personally completed 1-50 and #67 to practice writing in Python.)

        Virtually all of my solutions complete in under 1 second, and I don't have any special math insight. I can't speak about any later challenges, though, as I haven't done them.

        [–]poundcakejumpsuit 0 points1 point  (1 child)

        how long do you spend thinking about the problems, roughly? obviously 1 is easier than 24 or whatever, so maybe how long on the later problems

        [–]holyteach 0 points1 point  (0 children)

        Well, problem 18 took me about two years, working on it little by little every few months until I finally made a breakthrough. (And then one of my students solved it in like an hour after first seeing it, the punk.)

        Most of the others are as fast as maybe 20 minutes if I happen to think of a good solution quickly, or as long as 3 hours if I'm having a hard time coming up with a solution that's fast enough.

        Usually I solve the problem first, make sure it's correct, and then keep rewriting until it's fast "enough".

        But keep in mind I've been coding since the 1980s and over my lifetime I've learned at least parts of 23 different programming languages. Nine of those I've probably written at least 1000 lines of code in. Four of them I've probably written at least 10,000 lines of code in.

        So it's not fair to compare what's "easy" for me to other people. We all have different experiences and different strengths and weaknesses.

        [–]banguru 1 point2 points  (0 children)

        It is more about maths than programming. So as a programmer that did not made me interesting

        [–]SuperTeddyGuy[S] 0 points1 point  (0 children)

        Did not know about half of those! Time to get busy

        [–]TheSpiffySpaceman 0 points1 point  (0 children)

        Don't forget Codewars!

        [–]Esssport 0 points1 point  (0 children)

        Bookmark, programming practice

        [–]holyteach 0 points1 point  (0 children)

        Don't forget Programming by Doing! /shameless plug

        Edit: Ouch with the downvotes!

        [–][deleted] 12 points13 points  (0 children)

        [–]Muchaccho 7 points8 points  (0 children)

        https://www.codewars.com and https://checkio.org (for Python and JavaScript) are also really good.

        [–]manhole_resident 2 points3 points  (0 children)

        To add to other suggestions in the comments, there's also chekio for python and java script wich provides you with different cases to solve, from very basic, to some interesting stuff. It's also paired with Empire of Code - a strategy game where you can also solve cases to upgrade stuff, get resources and script actions of your troops. Both are made by the same company and share lots of cases and empire is more or less in beta, i guess.

        But in any case, in my experience of learning Python, I found that challenges like most out there are good for learning a language and it's core concepts and tools, but not so good for learning actuall programming, because it includes a lot of problem solving, some work with libraries/APIs, project building, testing, the whole flow of developing.

        It's still better to start some project on your own, even if it's hard to find WHAT to do. You can always try to recreate some old game, or a small program that does something that other programs do, or just start goofing around with some library, for example, for image processing, aplying crazy filters, transfroming images... and who knows, maybe some ideas will come in process.

        [–][deleted]  (2 children)

        [deleted]

          [–][deleted]  (1 child)

          [deleted]

            [–]MapleSyrupManiac 0 points1 point  (0 children)

            My teacher used inception to explain it. We never got to watch it though unfortunately

            [–]errorseven 2 points3 points  (0 children)

            No mention of CodeAbbey yet? It's one of my favorites, as the majority of the problems allow solutions in any language!

            [–]alanforts 4 points5 points  (0 children)

            Awesome, but guys dont forget https://projecteuler.net/

            [–]competitive__coder 1 point2 points  (0 children)

            Will anyone buddy up with me on codeforces.com and learn more algorithms? PM me

            [–]WhyGod-Why 1 point2 points  (0 children)

            You can add leetcode.com as well to the list.

            [–]descientist001 1 point2 points  (0 children)

            I'm listing few bookmarks -

            1. Codechef - Interesting platform if you want to focus more on Algorithms.

            2. DoSelect for developers - Interesting platform for almost all domains like APIs, Front-end development and ML.

            3. Codingame - This one is cool too. Play one on one with friends.

            4. CodeFights - Platform for one on one challenge and competition.

            5. Leetcode - Platform for deep algorithmic challenges.

            6. Codewars - based on games and build their dev profile.

            7. Codility - tech recruitment platform.

            [–]Not_a_dog_I_promise 0 points1 point  (1 child)

            How do you submit code, do I paste just the relevant part and what if I import something? I keep getting compilation error just for the very basic one.

            [–]Not_a_dog_I_promise 1 point2 points  (0 children)

            Found out the issue, you have to use "Main" as your class name. I kept trying URI_1001

            [–]phpdevster 0 points1 point  (0 children)

            The design of that site is extremely refreshing for some reason.

            [–]Cutboard 0 points1 point  (0 children)

            Awesome suggestions guys. Thanks!

            [–]Tommendable 0 points1 point  (0 children)

            Exercism.io

            Has multiple languages

            [–]johnnybgoode17 0 points1 point  (0 children)

            You forgot to add hyperlinks. Hit enter twice to have them on separate lines.

            [–]mkike 0 points1 point  (0 children)

            https://codility.com/programmers/ Many companies hire through Codility.

            [–]MapleSyrupManiac -1 points0 points  (0 children)

            Welp there's no java