Reklāma:

Programmētāja prāta asināšanai

Vai tu esi piedalījies informātikas olimpiādēs? Informātikas olimpiādes man ir bijušas sava veida nākamais solis pēc matemātikas olimpiādēm. Problēmas vairs nebija tikai matemātiskas, bet gan arī algoritmiskas. Es pats diezgan veiksmīgi pirmajā matenes olimpiādē norāvu pirmo vietu, otrajā otro, trešajā jau trešo, bet pēc tam tālāk par atzinības rakstu neesmu ticis. Līdzīgi gāja arī ar informātikas olimpiādēm. Ja neņem vērā to, ka tajās man ir tikai viena pati bronzas medaļiņa. Neskatoties uz neveiksmēm, visi tie NEKOREKTI IEVADDATI man uzdzen siltas atmiņas.

Augot lielākam, pār mani nāca nevāja apgaismība – tos uzdevumus, kurus šķīlu bērnībā, tagad vairs nespēju. Tāpēc pirms dažiem gadiem nolēmu, ka tam ir jāpieliek punkts. Un kā punktu var pielikt? Risinot problēmas. Tad, nu, padalīšos ar kaudzīti resursu, kuros vēl aizvien laiku pa laikam iegriežos, lai paprovētu pierādīt sev, ka nav vēl viss pulveris tutū.

Šādi prāta un spēju asināšanas uzdevumi nereti noder jaunu valodu apguvē. Teiksim, ja esi nolēmis beidzot apgūt paitonu, tad ir vērts parisināt dažādas interesantas problēmas izvēlētajā valodā.

Project Euler
Uzdevumi ir biežāk matemātiskas dabas, kas atgādina olimpiādes. Aizraujoši paliek tad, kad saproti, ka pilnā pārlase vairs nedarbojas.
Facebook: Engineering Puzzles
Daži aizraujoši uzdevumi, kurus risināt varētu būt interesanti. Ja esi pārliecināts par savām spējām un vēlies strādāt feisbukā, vari savus variantus nosūtīt viņiem. Risinājumiem ieteiktu pieiet radoši :)
Google Code Jam
Protams, kā gan bez šī. Ikgadējais gūgles konkurss ar nopietnām balvām, nopietniem uzdevumiem un vēl nopietnāku konkurenci. Ir arī uzdevumu archivs.
TopCoder
Pirms gūgles koda vasaras šīs bija vienas no nopietnākajām tiešsaistes programmēšanas sacīkstēm. Tagad tādas rīko kurš katrs, bet topkoderis ir un paliek vērtība.
Programming Praxis
Detalizēti paskaidroti uzdevumi. Uzdevumi lielākoties ir triviāli.
phpGolf
Kad palūdzu atgādināt šī projekta nosaukumu vienam puisim skaipā, viņš piebilda bolditalikanderlainā vārdu vājprātīgais. Vairākkārtīgi. Faktiski tas attiecas uz tiem gadījumiem, kad vēlies būt topā. Tur tu netiksi. Nekad. Ja tiksi, uzsaukšu alu. Ne vienu vien. Tur tiek programmēts ar PHP kļūdu un nedokumentēto iespēju palīdzību.
Code Golf, anarchy golf
Līdzīgi projekti. Pirmais ir nopietnāks, otrais ir savādāks.
Sphere Online Judge (SPOJ)
Simtiem problēmu, kuras, visticamākais, ja ne visas, tad liela daļa būs atrodama pārējās lapās.

Ja nu es kādu esmu piemirsis, bet tu atcerējies, papildini.

Labi. Padomāju un nolēmu, ka atzīšos. Ierakstu lika uzrakstīt viens nesens atgadījums. Pirms kāda laika vienam pazīstamam kantorītim palīdzēju intervēt PHP programmētājus. Aldziņa maziņa, programmētāji knapiņi. Taču, viena lieta mani samulsināja. Es ceru, ka tagad nevienu neaizvainošu.

Kā praktiskais uz vietas risināmais uzdevums tika dots FizzBuzz. Programmai nepieciešams izdrukāt skaitļus no 1 līdz 100. Ja skaitlis dalās ar trīs, tā vietā jāraksta Fizz. Ja tas dalās ar pieci, tad Buzz. Ja dalās gan ar trīs, gan ar pieci, tad rakstam nevis skaitli, bet gan FizzBuzz. Kā jau minēju – uzdevums jāatrisina uz vietas. Kandidātam priekšā ir dators ar atvērtu teksta redaktoru un PHP interpretatoru. Internets nav pieejams. Laiks – 15 minūtes vai mazāk. Neviens uz pirkstiem neskatās.

3 (trīs!!!) no pieciem to neizdarīja arī 20 minūtēs. Labi, trešais to izdarīja, bet kļūdaini. Attiecīgi – divi no viņiem uzrakstīja ātri, un bez kļūdām. Viens no viņiem to veica ļoti labi un smuki (ja šos vārdus var attiecināt uz tik triviālu uzdevumu). Taču trīs. TRĪS!

Tad, nu, lūdzu. Atrotam piedurknes un risinām, domājam, mēģinām. Savādāk no jums sanāks vien tie paši vecie labie script-kiddies. Ja neizdodas atrisināt, pamēģinam pasēdēt pāris stundas gūglē. Pameklējam piegājienus. Algoritmus. Atceramies skolas matemātikas un ģeometrijas vielu. Tu atceries, kas ir LKD? Kā to atrod? Neatceries? Ej, un uzmeklē.

Šie ir tie 27 komentāri

    • #5. arnico 2011. gada 18. aprīlī, plkst. 03:53
    • ar slimi (par phpGold) es domaaju – uzdevums atrast iisaako celju no A liidz Z kartee kuraa ir skjeerslji kas jaapiet .. manas domas ir uzreiz paaris lapas gars kods … vinju pirmaas domas ir 200 simbolu gars kods … kas beigu beigaas tiek saiisinaats liidz 140 simboliem, principaa divaam rindinaam koda

    • Saite uz šo komentāru
    • #8. Dindālis 2011. gada 18. aprīlī, plkst. 12:08
    • Par informātikas olimpiādēm labas atmiņas. 1998. gadā vēl pirmkodus nepārbaudīja. Tad nu nepaspējis uzrakstīt pēdējo programmu, kurai jārēķina un jāatbild ar JĀ vai NĒ, “aiz ekrāna malas” paslēpu random. Rezultātā paveicās un dabūju pirmo vietu rajonā…

    • Saite uz šo komentāru
    • #9. hehe 2011. gada 18. aprīlī, plkst. 19:45
    • spicausi – uzreiz biju iedomājies ko līdzīgu tevis dotajam kodam un apkritu gandrīz kad ieraudzīju piu kodu :)

    • Saite uz šo komentāru
    • #10. artisare 2011. gada 18. aprīlī, plkst. 20:58
    • Izlasīju tavu rakstu, iekšēji nedaudz sabijos, fiksi uzrakstīju pirmo ideju kas ir galvā un atviegloti nopūtos :) Palasīju komentārus un pasmaidīju – izrādās mana rezerves plāna doma ar bija pareiza. Tātad neesmu vēl norakstāms :)

      P.S. fizzbuzz phpgolf.org stilā iespārda. Atceros, ka Kirils (kirils.com) savulaik ar k-ko līdzīgu aizrāvās – visu uzrakstīt maksimāli īsi.

    • Saite uz šo komentāru
    • #11. Ivars 2011. gada 18. aprīlī, plkst. 21:12
    • uzzini, kas tas par lietotāju “spicausis” tajā phpgolf un viņam vari uzsaukt aliņu :D

    • Saite uz šo komentāru
    • #14. fredero 2011. gada 19. aprīlī, plkst. 03:35
    • Uzdevumaa nav teikts, ka string “FizzBuzz” ir vienkaarshi kaut kaads string, vai tas ir divu ieprieksh mineeto stringu salikums. Uzdevumaa runa ir par 3 stringiem (neatkariigiem, jo nav noraadiits savaadaak), taadejaadi, nav atljauts sakrustot pirmos divus mainiigos (kaa laacz piedaavaatajaa algoritmaa), lai ieguutu tresho, tikai taapeec, ka taa vizuaali izskatas pareizi.

    • Saite uz šo komentāru
    • #15. Infants 2011. gada 19. aprīlī, plkst. 19:23
    • Neesmu īsts programmētājs, bet šādu uzdevumu varētu 2 minūtēs risināt (garajā variantā). Kas tad bija tie 3 džeki?

      Par matemātikas olimpiādēm? Nebiju tas, kurš braukāja jaunākajās klasēs uz olimpiādēm. Piedalījos tikai 2 reizes (11. un 12. klase). 12. klasē norāvu rajonā 2. vietu. Neviens neticēja! :D

    • Saite uz šo komentāru
    • #20. Another 2011. gada 22. aprīlī, plkst. 11:46
    • Lietotājs piu saņemtu + pie vēlmes nākt darbā par jaunāko programmētāju.
      Lietotāju spicausis es, droši vien, darbā paņemtu kā normālu vai vecāko programmētāju, atkarībā no apstākļiem, bet ir iespēja, ka pāŗbaudes laiku viņš neizturētu – komandas darba apstākļos koda optimizēšana stipri traucē nodot darba vienības uzturēšanā vājākiem izstrādātājiem, viņi smadzenes izmežģīs mēģinot kautko pamainīt. Savukārt, labu koderi turēt uz uzturēšanu parasti nerentējas. Tipiska “frīlanceru” iesaistīšanas problēma ;)

    • Saite uz šo komentāru
    • #21. Mr.Key 2011. gada 23. aprīlī, plkst. 11:51
    • <?php for ($i=1;$i<=100;$i++) {if ($i%15==0) echo 'FizzBuzz'; else if ($i%3==0) echo 'Fizz'; else if ($i==5) echo 'Buzz'; else echo $i; echo '’.PHP_EOL;}
      Pirmais, kas iešāvās prātā un rakstīšanas ātrumā.

    • Saite uz šo komentāru
    • #23. Mr.Key 2011. gada 23. aprīlī, plkst. 12:08
    • Kas attiecas uz vājajām zināšanām. Ne jau cilvēki ir vainojami pie tā, ka viņi nezin. Vide.. vide ir tāda, ka ļoti, ļoti maz cilvēku iespringst uz tādām lietām un .. vai viņiem tas ir nepieciešams?

      Mazliet atraktīvāks variants.
      <?php for ($i=1;$i

    • Saite uz šo komentāru
    • #26. ZBH 2011. gada 26. aprīlī, plkst. 10:29
    • jaaatziist, ka spicausha #6 kods iraid labaak saprotams par Laacza #2 kodu, jo nenodarbojs ar visaad mainiigo izvadi, kuriem kodaa pirms tam jaameklee, kaads iist veertiibs tiek pieskirts, un vadoties peec kaa.
      nesaku, ka #6 idej iraid slikt. taa vnk neir tik uzskataam, un nodarbojs ar liekaam darbiibaam (tuksu rindu saturosa mainiigaa izvadi).

    • Saite uz šo komentāru

Moderācija: Daži vārdi var gadīties, ka ir iz melnās listes (viagra and stuff). Tādi komentāri tiek aizturēti, pirms parādās lapā. Ja Tavs komentārs neparādās uzreizi, būs vien jāpagaida, līdz es jamo izlasīšu. Protams, ka paturu tiesības sev netīkošos komentārus dzēst, iemeslu neminot.