Hej , chciałbym się dzisiaj podzielić z wami moją poranną katą. Otóż ostatnio ćwiczę lepiej basha bo przydaje się do zadań aktualizacyjnych. Poniżej daję kod ale także chciałbym się z wami podzielić moimi wrażeniami na temat Kata.
Dzisiejsza kata na przykładzie bubble sorting w bash. (21.03.2022).
#!/bin/bash
sortSample=(10 23 11 244 33)
function bubbleSort {
declare arr=("$@")
declare sortSampleCount=$(echo "${arr[*]}" | wc -w)
declare flag=1
for (( i=0; i < $sortSampleCount - 1; i++ )); do
flag=0
for (( j=0; j < $sortSampleCount - $i - 1; j++ )); do
if [[ ${arr[$j]} -gt ${arr[$j+1]} ]]; then
temp=${arr[$j]}
arr[$j]=${arr[$j+1]}
arr[$j+1]=$temp
flag=1
fi
done
if [[ $flag -eq 0 ]]; then
break;
fi
done
echo ${arr[*]}
}
sortedSample=$(bubbleSort ${sortSample[*]})
echo "Unsorted array is ${sortSample[*]}, and sorted: ${sortedSample[*]}"
Moim zdaniem dobrym punktem startu w różnych językach czy utrwalenia wiedzy są codzienne katy. W sumie to cenna wiedza wyniesiona od innych ale też świadomość, że ćwiczenie utrwala i właśnie kata to ćwiczenie zazwyczaj tych samych prostrzych algorytmów dzięki czemu mamy rozeznanie w innych językach na różnice czy łatwiej zapamiętujemy i przyswajamy potrzebną składnię czy triki.
Planowanie katy zazwyczaj zależy od naszego czasu jaki możemy zagospodarować, wymaga to pewnej dyscypliny, samozaparcia i determinacji w obliczu błędów ale sugeruję robiąc Kata wyznaczyć sobie jedno zadanie docelowo na dzień czyli jeśli rozwiążemy problem w ciągu danego dnia to kolejnego przechodzimy do następnego i powtarzamy katę co tydzień albo co 3 dni. Jeśli się przedłuży to najpierw należy ukończyć bierzące zadanie np następnego dnia i wyciągnąc głębsze wnioski. Polecam zrobić sobie retro wtedy przy kawie i szybki storming co poprawić. Katę można podciągnąć pod mikado w bardziej zaanwasowanym cyklu i zastanowić się czy każda zmiana ma sens, jeśli nie to ją odrzucić i poprawić rysując drzewko. Średni czas to około 2 godziny w moim przypadku przeciętna kata a taka z pokryciem testami nawet do 3,5. Jeden algorytm o ile się uda w ciągu katy piszę trzy razy. Pierwszy krok to nie ukrywam że szukam w internecie wzorców i próbuję wyciągnąć nauki i je połączyć. W końcu to schematyczne algorytmy, powinny być zawsze dostepne i jeśli dodamy coś od siebie i dorzucimy lepsze praktyki wykrywając te złe to znaczy, że jesteśmy do przodu i wtedy myślę, że wystarczą dwie iteracje tego prblemu przy jednej sesji. Też nie należy przepisywać algorytmów bezmyślnie z internetu a je przemyśleć na tyle by dążyć do płynnego zrozumienia. Mam nadzieję, że zachęciłem cię do wdrożenia własnego Kata :) .