Wahandisi wa data ni nani, na unakuwaje mmoja?

Habari tena! Kichwa cha makala kinajieleza yenyewe. Kwa kutarajia kuanza kwa kozi Mhandisi wa Data Tunapendekeza uelewe wahandisi wa data ni akina nani. Kuna viungo vingi muhimu katika makala. Kusoma kwa furaha.

Wahandisi wa data ni nani, na unakuwaje mmoja?

Mwongozo rahisi wa jinsi ya kupata wimbi la Uhandisi wa Data na usiruhusu likuburute kwenye shimo.

Inaonekana kila mtu anataka kuwa Mwanasayansi wa Data siku hizi. Lakini vipi kuhusu Uhandisi wa Data? Kimsingi, hii ni aina ya mseto wa mchambuzi wa data na mwanasayansi wa data; Mhandisi wa data kwa kawaida huwa na jukumu la kudhibiti utendakazi, uchakataji wa mabomba na michakato ya ETL. Kwa sababu ya umuhimu wa kazi hizi, hii kwa sasa ni jargon nyingine maarufu ya kitaalamu ambayo inashika kasi.

Mishahara ya juu na mahitaji makubwa ni sehemu ndogo tu ya kile kinachofanya kazi hii kuvutia sana! Ikiwa unataka kujiunga na safu ya mashujaa, hujachelewa kuanza kujifunza. Katika chapisho hili, nimekusanya taarifa zote muhimu ili kukusaidia kuchukua hatua zako za kwanza.

Basi tuanze!

Uhandisi wa Data ni nini?

Kwa uaminifu, hakuna maelezo bora zaidi kuliko haya:

β€œMwanasayansi anaweza kugundua nyota mpya, lakini hawezi kuiumba. Itabidi amuombe mhandisi amfanyie hivyo."

-Gordon Lindsay Glegg

Kwa hivyo, jukumu la mhandisi wa data ni muhimu sana.

Kama jina linavyopendekeza, uhandisi wa data unahusika na data, ambayo ni utoaji, uhifadhi na usindikaji wake. Ipasavyo, kazi kuu ya wahandisi ni kutoa miundombinu ya kuaminika ya data. Ikiwa tutaangalia safu ya mahitaji ya AI, uhandisi wa data unachukua hatua 2-3 za kwanza: ukusanyaji, harakati na uhifadhi, utayarishaji wa data.

Wahandisi wa data ni nani, na unakuwaje mmoja?

Je, mhandisi wa data hufanya nini?

Pamoja na ujio wa data kubwa, upeo wa wajibu umebadilika sana. Ikiwa hapo awali wataalam hawa waliandika maswali makubwa ya SQL na data iliyochapwa kwa kutumia zana kama vile Informatica ETL, Pentaho ETL, Talend, sasa mahitaji ya wahandisi wa data yameongezeka.

Kampuni nyingi zilizo na nafasi wazi za nafasi ya mhandisi wa data zina mahitaji yafuatayo:

  • Ujuzi bora wa SQL na Python.
  • Uzoefu na majukwaa ya wingu, haswa Huduma za Wavuti za Amazon.
  • Ujuzi wa Java/Scala unapendelea.
  • Uelewa mzuri wa hifadhidata za SQL na NoSQL (kuiga data, kuhifadhi data).

Kumbuka, haya ni mambo muhimu tu. Kutoka kwenye orodha hii, inaweza kuzingatiwa kuwa wahandisi wa data ni wataalamu katika uwanja wa maendeleo ya programu na backend.
Kwa mfano, kampuni ikianza kutoa kiasi kikubwa cha data kutoka vyanzo mbalimbali, kazi yako kama mhandisi wa data ni kupanga ukusanyaji wa taarifa, uchakataji na uhifadhi wake.

Orodha ya zana zinazotumiwa katika kesi hii inaweza kutofautiana, yote inategemea kiasi cha data hii, kasi ya kupokea kwake na heterogeneity. Kampuni nyingi hazishughulikii data kubwa hata kidogo, kwa hivyo kama hazina kuu, kinachojulikana kama ghala la data, unaweza kutumia hifadhidata ya SQL (PostgreSQL, MySQL, n.k.) na seti ndogo ya hati zinazolisha data ndani. ghala.

Wakubwa wa IT kama vile Google, Amazon, Facebook au Dropbox wana mahitaji ya juu zaidi: maarifa ya Python, Java au Scala.

  • Uzoefu na data kubwa: Hadoop, Spark, Kafka.
  • Ujuzi wa algoriti na miundo ya data.
  • Kuelewa misingi ya mifumo iliyosambazwa.
  • Uzoefu wa zana za kuona data kama vile Tableau au ElasticSearch utakuwa wa manufaa zaidi.

Hiyo ni, kuna mabadiliko ya wazi kuelekea data kubwa, yaani katika usindikaji wake chini ya mizigo ya juu. Kampuni hizi zimeongeza mahitaji ya uvumilivu wa makosa ya mfumo.

Wahandisi wa Data Vs. wanasayansi wa data

Wahandisi wa data ni nani, na unakuwaje mmoja?
Sawa, huo ulikuwa ulinganisho rahisi na wa kuchekesha (hakuna chochote cha kibinafsi), lakini kwa kweli ni ngumu zaidi.

Kwanza, unapaswa kujua kwamba kuna utata mwingi katika ufafanuaji wa majukumu na ujuzi wa mwanasayansi wa data na mhandisi wa data. Hiyo ni, unaweza kuchanganyikiwa kwa urahisi kuhusu ujuzi gani unahitajika kuwa mhandisi wa data aliyefanikiwa. Bila shaka, kuna ujuzi fulani ambao unaingiliana na majukumu yote mawili. Lakini pia kuna idadi ya ujuzi kinyume diametrically.

Sayansi ya data ni biashara kubwa, lakini tunaelekea kwenye ulimwengu wa sayansi ya data tendaji ambapo wataalamu wanaweza kufanya uchanganuzi wao wenyewe. Ili kuwezesha mabomba ya data na miundo jumuishi ya data, unahitaji wahandisi wa data, si wanasayansi wa data.

Je, mhandisi wa data anahitajika zaidi kuliko mwanasayansi wa data?

- Ndiyo, kwa sababu kabla ya kufanya keki ya karoti, unahitaji kwanza kuvuna, peel na kuhifadhi karoti!

Mhandisi wa data anaelewa upangaji programu bora kuliko mwanasayansi yeyote wa data, lakini linapokuja suala la takwimu, kinyume chake ni kweli.

Lakini hapa kuna faida ya mhandisi wa data:

Bila yeye, thamani ya mfano wa mfano, mara nyingi hujumuisha kipande cha msimbo wa ubora wa kutisha katika faili ya Python, iliyopatikana kutoka kwa mwanasayansi wa data na kwa namna fulani kutoa matokeo, huwa na sifuri.

Bila mhandisi wa data, msimbo huu hautawahi kuwa mradi na hakuna tatizo la biashara litakalotatuliwa kwa ufanisi. Mhandisi wa data anajaribu kugeuza haya yote kuwa bidhaa.

Maelezo ya msingi ambayo mhandisi wa data anapaswa kujua

Wahandisi wa data ni nani, na unakuwaje mmoja?

Kwa hiyo, ikiwa kazi hii inaleta mwanga ndani yako na una shauku - unaweza kujifunza, unaweza ujuzi ujuzi wote muhimu na kuwa nyota halisi ya mwamba katika uwanja wa uhandisi wa data. Na, ndiyo, unaweza kuvuta hii hata bila ujuzi wa programu au ujuzi mwingine wa kiufundi. Ni ngumu, lakini inawezekana!

Ni hatua gani za kwanza?

Unapaswa kuwa na wazo la jumla la nini ni nini.

Kwanza kabisa, Uhandisi wa Data unarejelea sayansi ya kompyuta. Hasa zaidi, lazima uelewe kanuni bora na miundo ya data. Pili, kwa kuwa wahandisi wa data hufanya kazi na data, ni muhimu kuelewa kanuni za hifadhidata na miundo inayozisimamia.

Kwa mfano, hifadhidata za kawaida za B-tree SQL zinatokana na muundo wa data wa B-Tree, na vile vile, katika hazina za kisasa zilizosambazwa, LSM-Tree na marekebisho mengine ya jedwali la hashi.

*Hatua hizi zinatokana na nakala nzuri Adilya Khashtamova. Kwa hiyo, ikiwa unajua Kirusi, usaidie mwandishi huyu na usome wadhifa wake.

1. Algorithms na miundo ya data

Kutumia muundo sahihi wa data kunaweza kuboresha utendaji wa algoriti kwa kiasi kikubwa. Kwa hakika, sote tunapaswa kuwa tunajifunza kuhusu miundo ya data na algoriti katika shule zetu, lakini hii ni nadra sana kushughulikiwa. Kwa hali yoyote, sio kuchelewa sana kufahamiana.
Kwa hivyo hapa kuna kozi ninazopenda za bure za kujifunza miundo ya data na algoriti:

Pia usisahau kuhusu kazi ya kawaida ya Thomas Corman kwenye algorithms - Utangulizi wa Algorithms. Hii ndiyo rejeleo kamili unapohitaji kuonyesha upya kumbukumbu yako.

  • Ili kuboresha ujuzi wako, tumia Leetcode.

Unaweza pia kuzama katika ulimwengu wa hifadhidata na video za ajabu kutoka Chuo Kikuu cha Carnegie Mellon kwenye Youtube:

2. Jifunze SQL

Maisha yetu yote ni data. Na ili kutoa data hii kutoka kwa hifadhidata, unahitaji "kuzungumza" lugha sawa nayo.

SQL (Lugha ya Maswali Iliyoundwa) ni lugha ya mawasiliano katika kikoa cha data. Bila kujali mtu yeyote anasema nini, SQL imeishi, iko hai, na itaishi kwa muda mrefu sana.

Ikiwa umekuwa katika maendeleo kwa muda mrefu, labda umegundua kuwa uvumi juu ya kifo cha karibu cha SQL huibuka mara kwa mara. Lugha ilitengenezwa mapema miaka ya 70 na bado inajulikana sana kati ya wachambuzi, watengenezaji na wapendaji tu.
Bila ufahamu wa SQL hakuna cha kufanya katika uhandisi wa data kwani itabidi uunde maswali ili kupata data. Ghala zote kubwa za kisasa za data zinaunga mkono SQL:

  • Redshift ya Amazon
  • HP Vertica
  • Oracle
  • SQL Server

... na wengine wengi.

Ili kuchanganua safu kubwa ya data iliyohifadhiwa katika mifumo iliyosambazwa kama vile HDFS, injini za SQL zilivumbuliwa: Apache Hive, Impala, n.k. Angalia, haiendi popote.

Jinsi ya kujifunza SQL? Fanya tu kwa vitendo.

Ili kufanya hivyo, ningependekeza uangalie mafunzo bora, ambayo, kwa njia, ni bure, kutoka Uchanganuzi wa Hali.

  1. SQL ya kati
  2. Kujiunga na Data katika SQL

Kinachofanya kozi hizi kuwa maalum ni kwamba zina mazingira shirikishi ambapo unaweza kuandika na kuendesha hoja za SQL kwenye kivinjari chako. Rasilimali SQL ya kisasa haitakuwa ya kupita kiasi. Na unaweza kutumia ujuzi huu kwa Kazi za leetcode katika sehemu ya Hifadhidata.

3. Kupanga programu katika Python na Java/Scala

Kwa nini unapaswa kujifunza lugha ya programu ya Python, tayari niliandika katika makala Python vs R. Kuchagua Zana Bora kwa AI, ML na Sayansi ya Data. Linapokuja suala la Java na Scala, zana nyingi za kuhifadhi na kusindika idadi kubwa ya data zimeandikwa katika lugha hizi. Kwa mfano:

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

Ili kuelewa jinsi zana hizi zinavyofanya kazi, unahitaji kujua lugha ambazo zimeandikwa. Mbinu ya kazi ya Scala inakuwezesha kutatua kwa ufanisi matatizo ya usindikaji wa data sambamba. Python, kwa bahati mbaya, haiwezi kujivunia kwa kasi na usindikaji sambamba. Kwa ujumla, ujuzi wa lugha kadhaa na dhana za programu ni nzuri kwa upana wa mbinu za kutatua matatizo.

Ili kupiga mbizi katika lugha ya Scala, unaweza kusoma Kupanga programu katika Scala kutoka kwa mwandishi wa lugha. Twitter pia ilichapisha mwongozo mzuri wa utangulizi - Shule ya Scala.

Kuhusu Python, naamini Chatu Fasaha kitabu bora cha kati.

4. Zana za kufanya kazi na data kubwa

Hapa kuna orodha ya zana maarufu zaidi katika ulimwengu wa data kubwa:

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

Unaweza kupata maelezo zaidi kuhusu kujenga vizuizi vikubwa vya data katika hili la ajabu mazingira maingiliano. Zana maarufu zaidi ni Spark na Kafka. Kwa kweli wanafaa kusoma, inashauriwa kuelewa jinsi wanavyofanya kazi kutoka ndani. Jay Kreps (mwandishi mwenza wa Kafka) alichapisha kazi kubwa mnamo 2013 Kumbukumbu: Mambo Ambayo Kila Msanidi Programu Anapaswa Kujua Kuhusu Uondoaji wa Ukusanyaji wa Data kwa Wakati HalisiKwa njia, mawazo makuu kutoka kwa Talmud hii yalitumiwa kuunda Apache Kafka.

5. Majukwaa ya wingu

Wahandisi wa data ni nani, na unakuwaje mmoja?

Ujuzi wa angalau jukwaa moja la wingu uko kwenye orodha ya mahitaji ya kimsingi kwa waombaji wa nafasi ya mhandisi wa data. Waajiri wanapendelea Huduma za Wavuti za Amazon, jukwaa la wingu la Google likiwa katika nafasi ya pili na Microsoft Azure ikikamilisha tatu bora.

Lazima uwe na ujuzi mzuri wa Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Mifumo iliyosambazwa

Kufanya kazi na data kubwa kunamaanisha kuwepo kwa makundi ya kompyuta zinazofanya kazi kwa kujitegemea, mawasiliano kati ya ambayo hufanyika kwenye mtandao. Kikundi kikubwa, ndivyo uwezekano mkubwa wa kushindwa kwa nodi za wanachama wake. Ili kuwa mwanasayansi mkuu wa data, unahitaji kuelewa matatizo na ufumbuzi uliopo wa mifumo iliyosambazwa. Eneo hili ni la zamani na ngumu.

Andrew Tanenbaum anachukuliwa kuwa waanzilishi katika uwanja huu. Kwa wale ambao hawaogopi nadharia, ninapendekeza kitabu chake "Mifumo iliyosambazwa", inaweza kuonekana kuwa ngumu kwa wanaoanza, lakini itakusaidia sana kuboresha ujuzi wako.

nafikiri Kubuni Programu Zinazohitaji Data nyingi na Martin Kleppmann kitabu bora cha utangulizi. Kwa njia, Martin ana ajabu blog. Kazi yake itasaidia kupanga maarifa juu ya kujenga miundombinu ya kisasa ya kuhifadhi na kuchakata data kubwa.
Kwa wale wanaopenda kutazama video, kuna kozi kwenye Youtube Mifumo ya kompyuta iliyosambazwa.

7. Mabomba ya data

Wahandisi wa data ni nani, na unakuwaje mmoja?

Mabomba ya data ni kitu ambacho huwezi kuishi bila kama mhandisi wa data.

Mara nyingi, mhandisi wa data hujenga kinachojulikana bomba la data, yaani, anaunda mchakato wa kutoa data kutoka sehemu moja hadi nyingine. Hizi zinaweza kuwa hati maalum zinazoenda kwa API ya huduma ya nje au kuuliza swali la SQL, kuongeza data, na kuiweka kwenye duka kuu (ghala la data) au hifadhi ya data isiyo na muundo (maziwa ya data).

Kwa muhtasari: orodha ya msingi ya mhandisi wa data

Wahandisi wa data ni nani, na unakuwaje mmoja?

Kwa muhtasari, uelewa mzuri wa yafuatayo unahitajika:

  • Mifumo ya Habari;
  • Maendeleo ya programu (Agile, DevOps, Mbinu za Kubuni, SOA);
  • Mifumo iliyosambazwa na programu sambamba;
  • Misingi ya Hifadhidata - Mipango, Usanifu, Uendeshaji na Utatuzi wa Matatizo;
  • Muundo wa majaribio - Majaribio ya A/B ili kuthibitisha dhana, kubaini kutegemewa, utendakazi wa mfumo, na kubuni njia zinazotegemeka za kutoa masuluhisho mazuri kwa haraka.

Haya ni baadhi tu ya mahitaji ya kuwa mhandisi wa data, kwa hivyo jifunze na uelewe mifumo ya data, mifumo ya taarifa, uwasilishaji/usambazaji/ujumuishaji endelevu, lugha za programu na mada nyinginezo za sayansi ya kompyuta (sio maeneo yote ya masomo).

Na hatimaye, jambo la mwisho lakini muhimu sana nataka kusema.

Njia ya kuwa Uhandisi wa Data sio rahisi kama inavyoweza kuonekana. Yeye hasamehe, anafadhaika, na lazima uwe tayari kwa hili. Baadhi ya nyakati katika safari hii zinaweza kukusukuma kukata tamaa. Lakini hii ni kazi halisi na mchakato wa kujifunza.

Usiipake sukari tangu mwanzo. Jambo zima la kusafiri ni kujifunza mengi iwezekanavyo na kuwa tayari kwa changamoto mpya.
Hapa kuna picha nzuri niliyopata inayoonyesha jambo hili vizuri:

Wahandisi wa data ni nani, na unakuwaje mmoja?

Na ndiyo, kumbuka kuepuka uchovu na kupumzika. Hii pia ni muhimu sana. Bahati njema!

Una maoni gani juu ya nakala hiyo, marafiki? Tunakualika mtandao wa bure, ambayo itafanyika leo saa 20.00. Wakati wa wavuti, tutajadili jinsi ya kujenga mfumo wa usindikaji wa data unaofaa na wa hatari kwa kampuni ndogo au kuanzisha kwa gharama ndogo. Kama mazoea, tutafahamiana na zana za kuchakata data za Wingu la Google. Baadaye!

Chanzo: mapenzi.com

Kuongeza maoni