|HackerRank - Advance Your Coding Through Problem Solving
|Written by Nikos Vaggalis
|Tuesday, 31 May 2016
Page 2 of 2
Ready for a challenge
The next entry point is the Domains (technically the 30 days of code is a domain itself) which in essence are categorized challenges. There are many categories to choose from such as Data Structures, Algorithms, Artificial Intelligence, Java, Databases, SQL, Security etc.
Each category is split into subcategories, which are subsequently split into the challenges. For example the Databases category is split into the subcategories of:
In turn Relational Algebra is comprised of :
The database normalization material looked especial useful,
Striving for fame and fortune
As with the 30 days of code, each domain has its own leader-board, with each player's score being calculated from their performance in the rated contests of that domain. A bit of Stackoverflow influence is evident as based on those scores you also collect Badges and Medals.
Scores, points, ranks, badges and medals serve just one purpose: build self confidence to reach a status of fame that earns you job opportunities at top tech companies.
Another way to get fame and money is through the organized hackathons or Contests, which serve as a third entry point. For example, in the May World CodeSprint! you have 24 hours to prove how well you can code by solving 8 new challenges, ranging from basic programming to advanced algorithms.
Top 100 coders will win $15,000 in prizes:
You put your skills to the test and must complete the challenges as fast and as accurately as possible.
We had a go at the Regular Expresso 2 challenge, which although ended was archived and thus still accessible, which required finding the correct regular expression to a series of text patterns, using the following languages: Java, Perl, PHP, Ruby or Python, within 24 hours.
Assigning the scores was well thought out indicating perhaps how seriously the tasks are taken:
Please refrain from discussing strategy during the contest. All submissions are run through a plagiarism detector. Any case of code plagiarism will disqualify both users from the contest.
The very first challenge was :
Write a regular expression that matches all of the High Calorie menu item names, and does not match any of the Low Calorie item names. Your regex must pass all test cases, and should be limited to 15 or less characters
We came up with:
$Regex_Pattern = '^[^WGE].*[^sp]$';
which passed all tests except one, matching 'Courgetti Bolognese' when it shouldn't.
So where does that leave us? The options are going back to the drawing board, or having a peek at the answer by going through the Editorial tab, something that renders our attempt invalid and collects us no points for it.
This was the answer that DOSHI, the creator of this challenge provided:
Problem Setter's code :
This also highlights that the platform and its materials and challenges, are made by Programmers for Programmers.
Wrapping up, the platform is a great hangout for programmers no matter their experience, who want to learn their language or domain of choice, in depth, or gain experience of a brand new one. And what better way to do that than hands-on problem solving. You get involved with the programming paradigms and bolster algoritmhic thinking by getting into challenges on Data Structures, Stacks, Queue, Arrays, Dictionaries, Search algorithms, Greedy algorithms and more.
After mastering the general concepts you can advance to more specific subjects like Graph Theory, Mathematics, Game Theory or Artificial Intelligence.
Finally, challenges, games and potential tech interviews play a role in keeping you excited so you keep putting more effort into it, which reveals the pedagogical design behind the platform of the more effort you put the more knowledge you gain...
|Last Updated ( Wednesday, 07 December 2016 )