Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Hei taas! Artikkelin otsikko puhuu puolestaan. Kurssin alkua odotellessa Tietojen insinööri Suosittelemme ymmärtämään, keitä datainsinöörit ovat. Artikkelissa on paljon hyödyllisiä linkkejä. Hyvää lukemista.

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Yksinkertainen opas tietotekniikan aallon saamiseen kiinni ja sen raahaamatta sinua kuiluun.

Näyttää siltä, ​​​​että kaikki haluavat nykyään datatieteilijöitä. Mutta entä tietotekniikka? Pohjimmiltaan tämä on eräänlainen data-analyytikon ja datatieteilijän hybridi; Tietosuunnittelija on yleensä vastuussa työnkulkujen, käsittelyputkien ja ETL-prosessien hallinnasta. Näiden toimintojen tärkeydestä johtuen tämä on tällä hetkellä toinen suosittu ammattislang, joka on aktiivisesti saamassa vauhtia.

Korkeat palkat ja valtava kysyntä ovat vain pieni osa sitä, mikä tekee tästä työstä erittäin houkuttelevan! Jos haluat liittyä sankarien joukkoon, koskaan ei ole liian myöhäistä aloittaa oppiminen. Tähän viestiin olen kerännyt kaikki tarvittavat tiedot, jotta voit ottaa ensimmäiset askeleet.

Joten aloitetaan!

Mitä on tietotekniikka?

Rehellisesti sanottuna ei ole parempaa selitystä kuin tämä:

"Tutkija voi löytää uuden tähden, mutta hän ei voi luoda sitä. Hänen on pyydettävä insinööriä tekemään se hänen puolestaan."

– Gordon Lindsay Glegg

Tietosuunnittelijan rooli on siis varsin merkittävä.

Kuten nimestä voi päätellä, tietotekniikka koskee dataa, nimittäin sen toimittamista, varastointia ja käsittelyä. Näin ollen insinöörien päätehtävänä on tarjota luotettava infrastruktuuri datalle. Jos tarkastelemme AI-tarpeiden hierarkiaa, tietotekniikalla on 2–3 ensimmäistä vaihetta: kerääminen, siirtäminen ja varastointi, tietojen valmistelu.

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Mitä tietoinsinööri tekee?

Big datan myötä vastuun laajuus on muuttunut dramaattisesti. Jos aiemmin nämä asiantuntijat kirjoittivat suuria SQL-kyselyjä ja tislativat dataa käyttämällä työkaluja, kuten Informatica ETL, Pentaho ETL, Talend, niin nyt tietosuunnittelijoiden vaatimukset ovat lisääntyneet.

Useimmilla yrityksillä, joilla on avoimia työpaikkoja tietoinsinöörin virkaan, on seuraavat vaatimukset:

  • Erinomainen SQL- ja Python-tuntemus.
  • Kokemusta pilvialustoista, erityisesti Amazon Web Services -palveluista.
  • Java/Scala-taito katsotaan eduksi.
  • Hyvä SQL- ja NoSQL-tietokantojen tuntemus (tiedon mallinnus, tietovarasto).

Muista, että nämä ovat vain oleellisia. Tämän luettelon perusteella voidaan olettaa, että tietoinsinöörit ovat ohjelmistokehityksen ja taustajärjestelmän asiantuntijoita.
Jos yritys esimerkiksi alkaa tuottaa suuria määriä tietoa eri lähteistä, sinun tehtäväsi tietosuunnittelijana on järjestää tiedon kerääminen, käsittely ja varastointi.

Tässä tapauksessa käytettyjen työkalujen luettelo voi vaihdella, kaikki riippuu näiden tietojen määrästä, sen vastaanottamisen nopeudesta ja heterogeenisuudesta. Suurin osa yrityksistä ei käsittele big dataa ollenkaan, joten keskitettynä tietovarastona, ns. tietovarastona, voit käyttää SQL-tietokantaa (PostgreSQL, MySQL jne.), jossa on pieni joukko skriptejä, jotka syöttävät tiedot varastosta.

IT-jättiläisillä, kuten Googlella, Amazonilla, Facebookilla tai Dropboxilla, on korkeammat vaatimukset: Pythonin, Javan tai Scalan tuntemus.

  • Kokemus big datasta: Hadoop, Spark, Kafka.
  • Algoritmien ja tietorakenteiden tuntemus.
  • Hajautettujen järjestelmien perusteiden ymmärtäminen.
  • Eduksi katsotaan kokemus datan visualisointityökaluista, kuten Tableau tai ElasticSearch.

Toisin sanoen on menossa selkeä siirtymä kohti big dataa, nimittäin sen käsittelyssä suurilla kuormituksilla. Näillä yrityksillä on lisääntyneet järjestelmän vikasietovaatimukset.

Tietosuunnittelijat vs. datatieteilijät

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?
Okei, se oli yksinkertainen ja hauska vertailu (ei mitään henkilökohtaista), mutta todellisuudessa se on paljon monimutkaisempi.

Ensinnäkin sinun pitäisi tietää, että datatieteilijän ja tietoinsinöörin roolien ja taitojen määrittelyssä on paljon epäselvyyttä. Toisin sanoen voit helposti hämmentyä siitä, mitä taitoja menestyvä tietoinsinööri edellyttää. Tietysti on tiettyjä taitoja, jotka menevät päällekkäin molempien roolien kanssa. Mutta on myös useita täysin vastakkaisia ​​taitoja.

Datatiede on vakavaa bisnestä, mutta olemme menossa kohti toiminnallisen datatieteen maailmaa, jossa ammatinharjoittajat voivat tehdä oman analytiikkansa. Tietoputkien ja integroitujen tietorakenteiden käyttöönotto edellyttää tietosuunnittelijoita, ei datatieteilijöitä.

Onko tietoinsinööri kysytympi kuin datatieteilijä?

- Kyllä, sillä ennen kuin voit tehdä porkkanakakkua, sinun on ensin kerättävä, kuorittava ja varastoitava porkkanat!

Tietosuunnittelija ymmärtää ohjelmoinnin paremmin kuin kukaan datatieteilijä, mutta tilastojen suhteen asia on päinvastoin.

Mutta tässä on tietotekniikan etu:

Ilman häntä prototyyppimallin arvo, joka koostuu useimmiten datatieteilijältä saadusta kauheasta laatukoodista Python-tiedostossa, ja jollain tapaa tuottaa tuloksen, on yleensä nolla.

Ilman tietosuunnittelijaa tästä koodista ei tule koskaan projektia, eikä mikään liiketoimintaongelma ratkea tehokkaasti. Tietosuunnittelija yrittää muuttaa tämän kaiken tuotteeksi.

Perustiedot tietoinsinöörin tulisi tietää

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Joten jos tämä työ tuo valoa sinussa esiin ja olet innostunut - voit oppia sen, voit hallita kaikki tarvittavat taidot ja tulla todelliseksi rocktähdeksi tietotekniikan alalla. Ja kyllä, voit tehdä tämän jopa ilman ohjelmointitaitoja tai muita teknisiä tietoja. Se on vaikeaa, mutta mahdollista!

Mitkä ovat ensimmäiset askeleet?

Sinulla pitäisi olla yleinen käsitys siitä, mikä on mitä.

Ensinnäkin tietotekniikka viittaa tietojenkäsittelytieteeseen. Tarkemmin sanottuna sinun on ymmärrettävä tehokkaat algoritmit ja tietorakenteet. Toiseksi, koska tietosuunnittelijat työskentelevät tiedon parissa, on välttämätöntä ymmärtää tietokantojen periaatteet ja niiden taustalla olevat rakenteet.

Esimerkiksi perinteiset B-tree SQL-tietokannat perustuvat B-Tree-tietorakenteeseen, samoin kuin nykyaikaisissa hajautetuissa arkistoissa LSM-Tree ja muut hash-taulukoiden muunnokset.

*Nämä vaiheet perustuvat loistavaan artikkeliin Adilya Khashtamova. Joten jos osaat venäjää, tue tätä kirjoittajaa ja lue hänen postaansa.

1. Algoritmit ja tietorakenteet

Oikean tietorakenteen käyttäminen voi parantaa merkittävästi algoritmin suorituskykyä. Ihannetapauksessa meidän kaikkien pitäisi oppia tietorakenteista ja algoritmeista kouluissamme, mutta tätä käsitellään harvoin. Joka tapauksessa, koskaan ei ole liian myöhäistä tutustua.
Joten tässä on suosikkini ilmaiset kurssit tietorakenteiden ja algoritmien oppimiseen:

Älä myöskään unohda Thomas Cormanin klassista algoritmityötä - Johdatus algoritmeihin. Tämä on täydellinen viite, kun haluat virkistää muistiasi.

  • Voit parantaa taitojasi käyttämällä Leetcode.

Voit myös sukeltaa tietokantojen maailmaan upeilla Carnegie Mellon Universityn Youtube-videoilla:

2. Opi SQL

Koko elämämme on dataa. Ja jotta voit poimia nämä tiedot tietokannasta, sinun on "puhuttava" samaa kieltä sen kanssa.

SQL (Structured Query Language) on tietoalueen viestinnän kieli. Riippumatta siitä, mitä joku sanoo, SQL on elänyt, on elossa ja tulee elämään hyvin pitkään.

Jos olet ollut kehitystyössä pitkään, olet luultavasti huomannut, että huhuja SQL:n välittömästä kuolemasta nousee ajoittain. Kieli kehitettiin 70-luvun alussa ja on edelleen erittäin suosittu analyytikoiden, kehittäjien ja yksinkertaisesti harrastajien keskuudessa.
Ilman SQL:n tuntemusta tietotekniikassa ei ole mitään tekemistä, koska joudut väistämättä luomaan kyselyitä tietojen hakemiseksi. Kaikki nykyaikaiset suuret tietovarastot tukevat SQL:ää:

  • Amazonin punainen siirto
  • HP Vertica
  • oraakkeli
  • SQL Server

... ja monet muut.

Hajautettuihin järjestelmiin, kuten HDFS:ään, tallennetun suuren datakerroksen analysoimiseksi keksittiin SQL-moottorit: Apache Hive, Impala jne. Katso, se ei johda mihinkään.

Kuinka oppia SQL:ää? Tee se vain käytännössä.

Tätä varten suosittelen tutustumaan erinomaiseen opetusohjelmaan, joka on muuten ilmainen Tilan analyysi.

  1. Keskitason SQL
  2. Tietojen yhdistäminen SQL:ssä

Näistä kursseista tekee erikoisia se, että niissä on interaktiivinen ympäristö, jossa voit kirjoittaa ja suorittaa SQL-kyselyitä suoraan selaimessasi. Resurssi Nykyaikainen SQL ei tule olemaan turhaa. Ja voit soveltaa tätä tietoa Leetcode tehtäviä Tietokannat-osiossa.

3. Ohjelmointi Pythonilla ja Java/Scalalla

Miksi sinun pitäisi oppia Python-ohjelmointikieli, kirjoitin jo artikkelissa Python vs R. Parhaan työkalun valinta tekoälylle, ML:lle ja tietotieteelle. Mitä tulee Javaan ja Scalaan, suurin osa työkaluista valtavien tietomäärien tallentamiseen ja käsittelyyn on kirjoitettu näillä kielillä. Esimerkiksi:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Ymmärtääksesi kuinka nämä työkalut toimivat, sinun on tiedettävä kielet, joilla ne on kirjoitettu. Scalan toiminnallinen lähestymistapa mahdollistaa tehokkaan rinnakkaisen tiedonkäsittelyn ongelmien ratkaisemisen. Python ei valitettavasti voi ylpeillä nopeudella ja rinnakkaiskäsittelyllä. Yleisesti ottaen useiden kielten ja ohjelmointiparadigmojen tuntemus on hyvä ongelmien ratkaisumallien laajuudelle.

Voit sukeltaa Scalan kieleen lukemalla Ohjelmointi Scalassa kielen kirjoittajalta. Twitter julkaisi myös hyvän johdanto-oppaan - Scalan koulu.

Mitä tulee Pythoniin, uskon Sujuva Python paras keskitason kirja.

4. Työkalut ison datan parissa työskentelemiseen

Tässä on luettelo big datan maailman suosituimmista työkaluista:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Löydät lisätietoja suurten tietolohkojen rakentamisesta tästä hämmästyttävästä interaktiivinen ympäristö. Suosituimmat työkalut ovat Spark ja Kafka. Niitä kannattaa ehdottomasti opiskella, on suositeltavaa ymmärtää, miten ne toimivat sisältä käsin. Jay Kreps (Kafkan toinen kirjoittaja) julkaisi monumentaalisen teoksen vuonna 2013 Loki: Mitä jokaisen ohjelmistokehittäjän tulisi tietää reaaliaikaisesta tietojen yhdistämisestäMuuten, tämän Talmudin pääideoita käytettiin Apache Kafkan luomiseen.

5. Pilviympäristöt

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Vähintään yhden pilvialustan tuntemus on tietoinsinöörin tehtävään hakijan perusvaatimuslistalla. Työnantajat suosivat Amazon Web Services -palvelua, jossa Googlen pilvialusta on toisella sijalla ja Microsoft Azure on kolmen parhaan joukossa.

Sinulla on oltava hyvät tiedot Amazon EC2:sta, AWS Lambdasta, Amazon S3:sta, DynamoDB:stä.

6. Hajautetut järjestelmät

Bigdatan käsittely edellyttää itsenäisesti toimivien tietokoneiden klustereiden läsnäoloa, joiden välinen viestintä tapahtuu verkon kautta. Mitä suurempi klusteri, sitä suurempi on sen jäsensolmujen epäonnistumisen todennäköisyys. Jotta voit tulla suureksi datatieteilijäksi, sinun on ymmärrettävä hajautettujen järjestelmien ongelmat ja olemassa olevat ratkaisut. Tämä alue on vanha ja monimutkainen.

Andrew Tanenbaumia pidetään edelläkävijänä tällä alalla. Niille, jotka eivät pelkää teoriaa, suosittelen hänen kirjaansa "Hajautetut järjestelmät", se voi tuntua pelottavalta aloittelijoille, mutta se todella auttaa sinua hiomaan taitojasi.

Olen sitä mieltä Data-intensiivisten sovellusten suunnittelu Martin Kleppmann paras johdantokirja. Muuten, Martinilla on ihana blogi. Hänen työnsä auttaa systematisoimaan tietoa nykyaikaisen infrastruktuurin rakentamisesta big datan tallentamiseen ja käsittelyyn.
Niille, jotka haluavat katsoa videoita, on Youtubessa kurssi Hajautetut tietokonejärjestelmät.

7. Dataputket

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Tietoputket ovat jotain, jota ilman et voi elää tietosuunnittelijana.

Suurimman osan ajasta tietoinsinööri rakentaa ns. datapiilin, eli hän luo prosessin tietojen toimittamiseksi paikasta toiseen. Nämä voivat olla mukautettuja komentosarjoja, jotka menevät ulkoisen palvelun API:lle tai tekevät SQL-kyselyn, täydentävät tietoja ja sijoittavat ne keskitettyyn varastoon (tietovarastoon) tai jäsentämättömään tietosäilöön (datajärvet).

Yhteenvetona: perustarkistuslista tietosuunnittelijalle

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Yhteenvetona voidaan todeta, että tarvitaan hyvä ymmärrys seuraavista:

  • Tietojärjestelmä;
  • Ohjelmistokehitys (Agile, DevOps, Design Techniques, SOA);
  • Hajautetut järjestelmät ja rinnakkaisohjelmointi;
  • Tietokannan perusteet - suunnittelu, suunnittelu, käyttö ja vianetsintä;
  • Kokeiden suunnittelu – A/B-testit konseptien todistamiseksi, luotettavuuden, järjestelmän suorituskyvyn määrittämiseksi ja luotettavien polkujen kehittämiseksi hyvien ratkaisujen nopeaan toimittamiseen.

Nämä ovat vain muutamia tietotekniikan vaatimuksista, joten opi ja ymmärrä tietojärjestelmiä, tietojärjestelmiä, jatkuvaa toimitusta/käyttöönottoa/integrointia, ohjelmointikieliä ja muita tietojenkäsittelytieteen aiheita (ei kaikkia aihealueita).

Ja lopuksi viimeinen mutta erittäin tärkeä asia, jonka haluan sanoa.

Tie tietotekniikaksi ei ole niin yksinkertainen kuin miltä se saattaa näyttää. Hän ei anna anteeksi, hän turhauttaa, ja sinun on oltava valmis tähän. Jotkut hetket tällä matkalla voivat saada sinut luovuttamaan. Mutta tämä on todellista työtä ja oppimisprosessia.

Älä vain sokeroita sitä alusta alkaen. Matkustamisen tarkoitus on oppia mahdollisimman paljon ja olla valmis uusiin haasteisiin.
Tässä on hieno kuva, jonka löysin ja joka havainnollistaa tätä kohtaa hyvin:

Keitä tietoinsinöörit ovat, ja miten sinusta tulee sellainen?

Ja kyllä, muista välttää loppuunpalamista ja lepoa. Tämä on myös erittäin tärkeää. Onnea!

Mitä mieltä olette artikkelista, ystävät? Kutsumme sinut mukaan ilmainen verkkoseminaari, joka järjestetään tänään klo 20.00. Webinaarin aikana keskustellaan siitä, kuinka pienillä kustannuksilla rakennetaan tehokas ja skaalautuva tietojenkäsittelyjärjestelmä pienelle yritykselle tai startupille. Käytännössä tutustumme Google Cloud -tietojenkäsittelytyökaluihin. Nähdään!

Lähde: will.com

Lisää kommentti