Codewars : Τώρα και με υποστήριξη Bash scripting


Σήμερα θα αναφερθούμε στο Codewars, μια online πλατφόρμα όπου καλείστε να ακονίσετε τις δεξιότητές σας στον προγραμματισμό επιλύοντας διάφορα μικρά ή μεγάλα προβλήματα, διαφορετικού επιπέδου δυσκολίας. Πλέον πέρα από τις C/C++, C#, Javascript και Python υπάρχει η δυνατότητα να επιλέξετε Bash scripting.

Δεν πέρασε καιρός από τότε που στο Cerebrux αποφασίσαμε να πούμε κάποια πράγματα για το bash scripting. Κακά τα ψέμματα, οποιοσδήποτε θέλει να «μάθει» όπως λέμε το Linux, αυτή η γνώση βαδίζει το δύσβατο μονοπάτι του τερματικού. Μη φοβάστε όμως. Πλέον το codewars υποστηρίζει bash (από τον Απρίλιο να είμαστε πιο ακριβείς) και αυτό είναι από μόνο του ένα εξαιρετικό νέο.

Τι είναι το Codewars μάστορα;

Το codewars είναι μια από τις πολλές πλατφόρμες που ειδικεύονται στο Kata.

Ανάθεμα και αν καταλαβαίνω…

codewars-bash-samurai

To kata programming και πιο συγκεκριμένα ο κώδικας kata, είναι μια μορφή προγραμματιστικών ασκήσεων με κύριο σκοπό να βοηθήσει τους προγραμματιστές να βελτιώσουν τις ικανότητες μέσω της εξάσκησης και της επανάληψης. Ο όρος προήλθε από τον Dave Thomas, συγγραφέα του βιβλίου «The pragmatic programmer» ως φόρος τιμής στη γιαπωνέζικη έννοια του Kata που με τη σειρά του προέρχεται από τις πολεμικές τέχνες.

Η πλατφόρμα Codewars

Η πλατφόρμα του Codewars αποτελείται από αρκετές γλώσσες προγραμματισμού πάνω στις οποίες καλούμαστε να λύσουμε κάποια προγραμματιστικά challenges που αφορούν τη γλώσσα της επιλογής μας.

Η δυσκολία των Kyu είναι αντιστρόφως ανάλογη της αρίθμησης τους. Τα δυσκολότερα είναι αυτά με τη μικρότερη αρίθμηση

Η επιτυχής επίλυση καθενός από αυτά μας δίνει πόντους που ανάλογα με το βαθμό δυσκολίας (kyu)  είναι περισσότεροι, με απώτερο στόχο να ανεβούμε level και φυσικά να βελτιώσουμε τις γνώσεις/τεχνικές μας στην επίλυση κάποιων ομολογουμένως ζόρικων γρίφων.

Πως λειτουργεί;;

Αφού κάνουμε την εγγραφή μας με το email ή το github (προτείνεται) θα κληθούμε στην επόμενη οθόνη να λύσουμε ένα απλό προγραμματιστικό πρόβλημα. Αυτό γίνεται προκειμένου να προχωρήσουν μόνο όσοι έχουν μια τουλάχιστον βασική γνώση της γλώσσας προγραμματισμού στην οποία θα επιλύσουν challenges.

Στη συνέχεια ανάλογα με το επίπεδο που εκτιμούμε ότι είμαστε, θα επιλέξουμε ένα challenge. Προσωπική συμβουλή να ξεκινήσετε με ένα ευκολότερο για να δείτε τον τρόπο λειτουργίας του codewars.

Ας δοκιμάσουμε σε bash ένα kyu με δυσκολία 8

Το ραβασάκι της Τζένη

Διαλέξαμε κάτι απλό για το πρώτο μας challenge στο codewars για να αποκτήσουμε μια πρώτη επαφή πως το codewars βαθμολογεί τις λύσεις μας. Η άσκηση μας έχει να κάνει με μια κοπέλα, τη Τζένη (πολλές φορές οι ιστορίες είναι ξεκαρδιστικές) που αγαπάει το Γιάννη (Johnny). Για να του δείξει την αγάπη της, έφτιαξε ένα bash script που επιστρέφει ένα χαιρετισμό αλλά στην περίπτωση του Γιάννη επιστρέφει ένα λίγο πιο… προσωπικό χαιρετισμό. Όμως έκανε ένα λάθος στο script και έτσι ο έρωτας της θα μείνει κρυμμένος στον κώδικα, εκτός και αν βοηθήσουμε λίγο την κατάσταση.

Ο κώδικας είναι

#!/bin/bash

if [ "$1" -eq "Johnny" ]; then
  echo "Hello. my Love!";
fi
echo "Hello, $1!"

Σκοπός μας είναι να βρούμε το λάθος και να γλιτώσουμε την Τζένη από την ερωτική απογοήτευση.

Αφού σώσαμε την κατάσταση και βαδίζοντας προς τους αρραβώνες των παιδιών υποβάλουμε το σωστό κώδικα. Πριν την υποβολή όμως καλό είναι να τρέξουμε τα sample tests που επιβεβαιώνουν ότι ο κώδικας μας τρέχει σωστά.

codewars kata
Πρώτα τρέχουμε τα sample tests για να βεβαιωθούμε ότι ο κώδικας μας λειτουργεί σωστά.

Αν βεβαιωθούμε ότι τα sample tests εκτελούνται επιτυχώς τότε προχωρούμε στην επιλογή attempt για να υποβάλουμε τη λύση μας. Υπάρχει όμως περίπτωση να έχει γίνει λάθος και ο κώδικας να μην είναι σωστός. Με την επιλογής attempt o κώδικας μας υποβάλλεται σε περισσότερες δοκιμές από τα sample tests και ενδεχομένως σε κάποια από αυτά να επιστρέψει λάθος. Μόνο με την επιτυχή έκβαση του attempt μπορούμε να υποβάλλουμε τη λύση μας και να πάρουμε τους πόντους.

codewars all tests
Μόνο μετά την επιτυχή έκβαση των tests μπορούμε να υποβάλλουμε τη λύση μας

Practice makes perfect

Το σημαντικότερο όλων είναι ότι η εξάσκηση μας βοηθά να διατηρήσουμε τις γνώσεις μας σε καλό επίπεδο αλλά και να μάθουμε νέες συζητώντας με την πολυπληθή κοινότητα του codewars.

Ακόμη μπορούμε και οι ίδιοι να συνεισφέρουμε με τη δημιουργία των δικών μας kata. Εσείς εξασκείτε τις τεχνικές σας μέσω kata; Αν ναι, πείτε μας σε ποια sites εξασκείστε; Όσοι δεν εξασκείστε, ποτέ δεν είναι αργά. Εξοπλιστείτε με καφέ και περισσή υπομονή και ο κόσμος του προγραμματισμού και των kata είναι εδώ για να τον εξερευνήσετε.

Advertisements

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s