Oamenii mă întreabă adesea „cum pot intra în programarea competitivă?”

Răspunsul meu a fost întotdeauna simplu: practicați cât mai multe probleme de algoritm și structuri de date.

Dar astăzi am ceva mai concret pentru tine. O provocare care vă va extinde cunoștințele de informatică și matematică – toate acestea oferindu-vă o mulțime de practici de programare.

Se numește # ProjectEuler100. Și o mulțime de oameni au acceptat deja public provocarea.

Provocarea poartă numele lui Leonhard Euler, unul dintre cei mai prolifici matematicieni din istorie.

Va prezentam provocarea ProjectEuler100 „Sufletele intunecate ale realizarilor de
Leonhard Euler – matematicianul elvețian din secolul al XVI-lea, această provocare poartă numele.

Reprezintă învățarea în modul greu. Finalizarea acestei provocări va necesita creativitate și abilități de rezolvare a problemelor pe care nici nu știați că le aveți. Te va transforma într-un dezvoltator incredibil de resursă. Vă va oferi încredere în abordarea celor mai ambițioase proiecte.

Pe scurt, provocarea # ProjectEuler100 va fi un creuzet în care eul tău Super Saiyan este forjat, gata să-ți dezlănțuie geniul ingineresc latent asupra lumii.

Va prezentam provocarea ProjectEuler100 „Sufletele intunecate ale realizarilor de
Goku merge super saiyan.

Ce este Project Euler?

Project Euler este un site web creat în 2001. Acesta găzduiește o colecție de aproximativ 600 de probleme algoritmice diferite care devin din ce în ce mai grele, până la punctul în care chiar și persoanele cu doctorat în matematică încă se luptă cu ele.

Acestea fiind spuse, primele 100 de probleme sunt total realizabile de un nou dezvoltator. Mii de oameni au finalizat primele 100 de probleme Project Euler de-a lungul anilor.

Este pur și simplu brutal. Ca … Dark Souls tare.

Actualizare 2020 ProjectEuler100 si AWSCertified Challenge
Dark Souls este un joc video renumit pentru că este ridicol de greu. Dar devine mult mai ușor cu o practică consecventă – la fel ca aceste probleme algoritmice.

Îmi plac problemele Project Euler. Le-am folosit pe scară largă când învățam prima dată să codez. Îmi plac atât de mult încât am adăugat aceste probleme Project Euler la secțiunea Pregătirea interviului Routech.

Acestea îți vor distruge creierul. Dar vor fi recompensatori. Sunt duri, dar corecte. Și dacă sunteți dispus să vă înghițiți mândria și să coborâți câteva găuri de iepure Wikipedia, le puteți rezolva și.

Deci ce crezi. Sunteți pregătit pentru rezolvarea primelor 100 de probleme Project Euler? Iată regulile.

Regulile provocării # ProjectEuler100

Am rezumat totul la aceste 6 reguli simple pe care toți participanții trebuie să le respecte.

  1. Trimite o fotografie cu tine însuți, ridicând degetul mare și anunțând că te angajezi la provocarea # ProjectEuler100.
  2. Creați un depozit GitHub.
  3. De fiecare dată când finalizați o provocare, adăugați soluția la depozitul dvs. GitHub și trimiteți un link către acesta folosind hashtagul # ProjectEuler100.
  4. Apoi derulați prin hashtag-ul # ProjectEuler100 și dați feedback de susținere cu cel puțin 2 tweets de la alți dezvoltatori.
  5. Treceți la următoarea provocare Project Euler. Nu poți sări înainte. Trebuie să finalizați toate cele 100 de probleme în ordine. Dar puteți utiliza orice limbaj de programare pe care doriți să îl rezolvați.
  6. După ce le-ați terminat pe toate 100, trimiteți pe Twitter o fotografie de sărbătoare cu laptopul deschis la repo GitHub.

Unde îmi fac codarea?

Puteți utiliza site-ul web Project Euler, vechi de 20 de ani.

Sau puteți utiliza versiunea Routech.org – care vă permite să codați direct în browserul dvs. și are teste încorporate.

Sau dacă vă simțiți picant, vă puteți construi propriul site web pentru rezolvarea acestor provocări. (Toate problemele Project Euler sunt licențiate Creative Commons și sunt gratuite pentru utilizare necomercială.)

De ce trebuie să pun soluțiile pe GitHub?

Punerea soluțiilor dvs. în GitHub (sau GitLab sau BitBucket) realizează mai multe lucruri:

  1. Vă oferă o înregistrare publică frumoasă a progresului dvs. pe care o puteți împărtăși cu alte persoane.
  2. Acesta va face ca profilul dvs. GitHub să arate super activ pentru angajatorii / clienții care doresc să vă angajeze.
  3. Vă oferă ceva ce le puteți arăta nepoților.

Pot să mă uit la soluțiile altora?

Puteți privi soluțiile altor persoane pentru probleme pe care chiar dvs. le-ați rezolvat.

Fiecare provocare poate fi rezolvată în multe moduri diferite – unele mai elegante decât altele. Și puteți complimenta alte persoane cu privire la abordările lor.

Acestea fiind spuse, este anul 2020. Realitatea este că soluțiile la aceste probleme sunt deja piperate pe web. S-ar putea să dai peste o soluție din greșeală dacă cauți indicii.

Dacă sunteți expus la soluția unei provocări pe care încă nu ați finalizat-o, nu ar trebui să utilizați absolut codul pe care îl vedeți acolo. Trebuie să veniți singur cu soluții de cod pentru fiecare dintre aceste probleme.

Pot transmite în direct încercările mele?

Da. Cu toate mijloacele. Așa cum am spus, soluțiile la aceste probleme sunt deja peste tot pe web. Și mulți dintre oamenii care ar fi în acord cu Twitch sau YouTube nu vor face provocarea – se vor bucura doar să urmărească fluxuri de programare în general.

Deci, nu vă faceți griji cu privire la „stricarea” nimic în timpul fluxurilor dvs. live.

Vom transmite în direct live # încercări ProjectEuler100 canalul YouTube Routech.

Acestea fiind spuse, dacă creați ghiduri video sau articole pe care oamenii le-ar folosi ca referință la aceste probleme, vă încurajez să includeți avertismente despre spoiler. Oamenii doresc indicii, astfel încât să poată fi dezlănțuite – nu soluții complete.

Cât de repede am nevoie pentru a le rezolva?

Pentru a cita un om grozav:

„Nu contează cât de încet mergi, atâta timp cât nu te oprești”. – Leonhard Euler

(OK, citatul respectiv este atribuit în mod obișnuit lui Confucius. Dar tot felul de citate sunt atribuite greșit lui Confucius, așa că îi atribuiesc greșit acest citat băiatului meu Euler.?)

Primele câteva probleme sunt relativ ușoare. Dar cresc rapid cu dificultate. Până când ajungeți la ultimele 20 sau 30, este posibil să petreceți zile pentru a rezolva o singură problemă.

Așadar, nu faceți greșeala de a spune „Voi termina acestea peste 100 de zile” sau ceva de genul acesta. Continuă să lucrezi puțin la acestea în fiecare zi. Aveți în jurul vostru o întreagă comunitate care să vă ajute să treceți de linia de sosire.

Comunitatea este aici pentru a vă sprijini

Suntem cu toții împreună în asta. Suntem strânși în jurul hashtag-ului # ProjectEuler100 pe Twitter. Acest lucru este inclus în regulile provocării. („Regula # 4: derulați prin hashtagul # ProjectEuler100 și dați feedback de susținere cu privire la cel puțin 2 tweets de la alți dezvoltatori.”)

Veți sprijini alți dezvoltatori care se angajează în această provocare. Și vor fi acolo pentru a vă sprijini.

De asemenea, vă încurajez să alăturați-vă camerei noastre de chat # ProjectEuler100 Discord unde puteți discuta despre provocare și puteți obține ajutor.

Si tu poti urmați botul nostru # ProjectEuler100 Twitter.

Deci, dacă sunteți gata, faceți primul pas. Trimite o fotografie cu tine însuți, ridicând degetul mare și anunțând că te angajezi la provocarea # ProjectEuler100.

Ai asta.