Paras vastaus
Vaikuttaa melkein hyödyttömältä vastata, koska mitä tarkoitat sanalla ”hyvä”? Mitä haluat saavuttaa?
Jos haluat palkattua, se voi ajatella olevan hyvä tapa palkata, mutta se näyttää epätodennäköiseltä, ellet todellakaan ole erittäin hyvä kuuma laukaus. Mutta on vaikea tietää, miten tekisit. Olen melko varma, että on parempia tapoja löytää työpaikka, jos osaat koodata hyvin ja pystyt todistamaan sen. Laita esimerkiksi hyvä, hyödyllinen koodi githubiin.
Olen viettänyt siellä paljon aikaa viime aikoina (kuukausien ajan). Kuten kaikkien oppimispyrkimysten kohdalla, se auttaa hallitsemaan itseäsi samalla kun teet sen. Vihreiden tarkistusmerkkien, kultarahojen ja parempien merkkien ansaitseminen voi olla riippuvuutta aiheuttavaa, joten varokaa tuottamatonta tasangoa.
Ihmiset kritisoivat päivittäisiä haasteita, mutta huomaa, että päivittäisen haasteen tekeminen on myös luova prosessi, ja kommentit -osiosta on apua.
Jos haluat vain oppia kieltä, on Arcade-osio, jossa voit selvittää ongelmat omaan tahtiisi. Näyttää siltä, että ihmiset luokitellaan pelkästään valmistumisjärjestyksen mukaan, joten se ei ole kilpailukykyinen asia. Minusta tämä oli erittäin hyödyllistä perehtyäksesi PHP-toimintoihin ja matriiseihin, ja työskentelen myös OO-menetelmien kanssa.
Pidän päivittäisiä haasteita erittäin jännittävinä, mielenkiintoisina (tuolloin) ja haastava. Jos pystyt aina tekemään sen, se on liian helppoa. Kuvauksen lukeminen on taidetta. Joskus aloitan koodaamisen liian nopeasti, ennen kuin tiedän kuvauksen oikein, ja sitten katun sitä. Ajattelen myös joskus ratkaisua, joka ei ole oikea, ja aloitan koodaamisen, ennen kuin olen ymmärtänyt, miten ongelma voidaan ratkaista oikein. Viime aikoina on ollut joitain erittäin haastavia ongelmia, jotka tarvitsevat dynaamisen ohjelmoinnin tekniikoita niiden ratkaisemiseksi, ja niitä oli kolme, joita en voinut tehdä määritetyssä ajassa.
Jos haluat tehdä haastavia pulmia ja harjata koodaustaidoista PHP: ssä, C ++: ssa, Java: ssa tai MySQL: ssä tai Javascriptissa tai oppia hienoa kieltä, kuten Haskell tai Python tai R tai Ruby jne., niin sanoisin, että Codefights on loistava sivusto, johon mennä.
Vastaus
Olen käyttänyt molempia käyttöympäristöjä melko laajasti tietorakenteiden ja algoritmien tietämyksen parantamiseksi.
Hackerankin vahvuudet
- Tonnia, ja tarkoitan tonnia kysymyksiä, jotka on järjestetty kappaleiksi. Haluatko oppia käyttämään säännöllisiä lausekkeita / Java / SQL / Algorithms / Data Structures / Python / Math? Jokaisella näistä aiheista ja muilla on tietyt polut tietyillä alaaiheilla.
- Jos käytät näitä sivustoja haastattelun valmisteluun, monet yritykset lähettävät koodaushaasteensa Hacker-listan kautta erillään haastatteluprosessista. , joten on hyvä tutustua. Expedia, GE, Goldman Sachs ja Optiver muutamia mainitakseni
- Saat lähes kaikki toiminnot (ellei kaikki) verkkosivustolta ilmaiseksi. Leetcodessa ilman maksettua tilausta on tiettyjä haittoja.
- Esimerkiksi et aina voi toimittaa ratkaisua heti, johtuen siitä, miten he käyttävät ratkaisua sijoittuakseen muihin ratkaisuihin.
- Lähes kaikissa ongelmalausekkeissa on esimerkkejä yhdestä tai kahdesta testitapauksesta ja vastauksesta sekä melko perusteelliset selvitykset siitä, miksi vastaus on sellainen kuin se on. Se on paljon harvinaisempaa Leetcodessa.
- Jokaisella Hackerrankiin lähetetyllä kysymyksellä on vahvistettu ratkaisu Toimituksellinen-välilehdellä. Kaikilla Leetcode-kysymyksillä ei ole yhtä (vaikka saat helposti vastauksen molemmilta alustoilta napsauttamalla keskustelut-välilehteä)
- Molemmilla sivustoilla on näkyviä testitapauksia, joiden avulla koodi voidaan suorittaa ennen lähettämistä. Hackerrank tekee melko hyvää työtä tekemällä niistä näkyvät tavallisiksi tapauksiksi, kun taas Leetcode käyttää melkein aina reunakoteloa näkyvässä testissä.
- Hackerrackilla on vim-sidoksia! (Jos olet sitä mieltä)
Leetcode-vahvuudet
- Leetcodessa rakastan jotain, että heillä on suoraan ongelmanratkaisut. Hackerrankilla on taipumus olla vähän pitkiä esittelyjä ja piirrettyjä skenaarioita, jotka peittävät varsinaisen tehtävän.
- Esimerkiksi: Hackerrank voi olla kuin ”Sally rakastaa suklaata, mutta vain haluaa syödä suklaata, jossa on pienin määrä natriumia. Anna joukko natriumpitoisuuksia palauttamalla pienin suklaa, jossa on alhaisinta natriumia.
- Leetcode-ekvivalentti olisi ” Annettaessa joukko kokonaislukuja, palaa min-elementti ”
- Sekä Hackerrank että Leetcode vertailevat algoritmin ajoaikakustannuksia ajoittamalla ratkaisun testitapauksiin. Kun ratkaisusi on kuitenkin hyväksytty, se listaa sen kaikkiin hyväksyttyihin ratkaisuihin samalla ohjelmointikielellä ja prosenttiosuuden siitä, kuinka monta ratkaisua voitat nopeuden vuoksi.
- Testausympäristö on paljon parempi. Kun kirjoitat mukautetun testitapauksen, siinä on myös oikea ratkaisu, jotta voit heti tietää, onko sinun oikein vai väärin.Mukautetun testitapauksen suorittaminen Hackerrankissa ajaa vain ratkaisusi.
- Toinen asia, jota rakastan, koodausrajapinta vaatii jokaisen ongelman käsittelyä vain ennalta määritetyn funktion allekirjoituksen kanssa. Hackerrankissa joudut usein käsittelemään tuloa / lähtöä, ja se suorittaa merkkijonovastauksen vahvistaakseen vastauksen, mikä voi olla hieman ärsyttävää.
- Vakavasti … miksi minun pitäisi tulostaa ”KYLLÄ” tai ” EI ”, kun nopeampi vastine on vain loogisen objektin säilyttäminen?
- Leetcodessa on kyse fancy ” Kysymyksen esitti X Company Y-taajuudella ”, , johon pääset tilauksella. Olen henkilökohtaisesti sitä mieltä, että tämä työkalu ei ole niin hyödyllinen, ja antaa väärän vaikutelman, että ihmiset voivat vain muistaa kaikki nämä erityiskysymykset saatuaan haastattelun X-yrityksen kanssa.
Pidän henkilökohtaisesti LeetCodesta paremmin ja lopulta se riippuu siitä, mihin sitä käytät.
Vastuuvapauslauseke : Nämä ovat mielipiteeni siitä, mitkä vahvuudet ja mitkä ovat heikkouksia ovat. Jotkut ihmiset saattavat nähdä, että heikkous on todella vahvuus ja vise päinvastoin.