Hvis du er en udvikler, der overgår til datavidenskab, er her dine bedste ressourcer

Det ser ud til, at alle vil være datavidenskabsmand i disse dage - fra ph.d.-studerende til dataanalytikere til din gamle kollegiums værelseskammerat, der holder Linkedin med at sende dig en besked om at 'tage kaffe'.

Måske har du haft den samme forståelse, at du i det mindste skulle udforske nogle datavidenskabelige positioner og se, hvad hype handler om. Måske har du set artikler som Vicki Boykis 'Data Science er anderledes nu, der siger:

Hvad der bliver klart, er, at datavidenskaben i den sene fase af hype-cyklen asymptotisk bevæger sig tættere på ingeniørarbejde, og de færdigheder, som dataforskere har brug for, er mindre visualisering og statistikbaseret og mere i tråd med traditionel datalogi ...: Begreber som enhedstest og kontinuerlig integration fandt hurtigt vej ind i jargongen og det værktøjssæt, der almindeligvis bruges af datavidenskabsmand og numerisk videnskabsmand, der arbejder med ML-teknik.

eller tweets som Tim Hoppers:

Hvad der ikke er klart er, hvordan du kan udnytte din oplevelse som softwareingeniør til en datavidenskabsposition. Nogle andre spørgsmål, du måtte have, er:

Hvad skal jeg prioritere læring?

Er der bedste praksis eller værktøjer, der er forskellige for dataforskere?

Vil min nuværende færdighedssæt overføres til en datavidenskabsrolle?

Denne artikel giver en baggrund om datavidenskabsrollen, og hvorfor din baggrund måske passer godt til datavidenskab, plus håndgribelige trinvise handlinger, som du som udvikler kan tage for at øge datavidenskaben.

Vil du se de nyeste datavidenskabsroller? Abonner på ML Jobs nyhedsbrev hver anden uge for nye jobvidenskabelige jobåbninger i din indbakke.

Data Scientist versus Data Engineer

Først skal vi skelne mellem to supplerende roller: Data Scientist versus Data Engineer. Mens begge disse roller håndterer maskinindlæringsmodeller, varierer deres interaktion med disse modeller såvel som kravene og arten af ​​arbejdet for dataforskere og dataingeniører meget.

Bemærk: Dataingeniørrollen, der er specialiseret til maskinindlæring, kan også manifestere sig i jobbeskrivelser som 'Software Engineer, Machine Learning' eller 'Machine Learning Engineers'

Som en del af en maskinlæringsarbejdsproces vil dataloger udføre den nødvendige statistiske analyse for at bestemme, hvilken maskinlæringsmetode der skal bruges, og derefter begynde at prototype og opbygge disse modeller.

Maskinindlæringsingeniører vil ofte samarbejde med dataforskere før og efter denne modelleringsproces: (1) opbygning af datarørledninger for at indføre data i disse modeller og (2) designe et ingeniørsystem, der tjener disse modeller for at sikre kontinuerlig model sundhed.

Diagrammet nedenfor er en måde at se dette kontinuum af færdigheder på:

Der er et væld af online ressourcer om forskellen mellem dataforskere og dataingeniører - sørg for at tjekke ud:

  • Panoply: Hvad er forskellen mellem en dataingeniør og en dataforsker?
  • Springbræt: Machine Learning Engineer vs Data Scientist
  • O'Reilly: Dataingeniører vs. dataforskere

Som en ansvarsfraskrivelse dækker denne artikel primært Data Scientist-rollen med en vis nikkelse mod Machine Learning Engineering-siden (især relevant, hvis du ser på en position i et mindre firma, hvor du muligvis skal tjene som begge). Hvis du er interesseret i at se, hvordan du kan overgå til at være dataingeniør eller maskinlæringsingeniør, så lad os det vide i kommentarerne nedenfor!

Din fordel som udvikler

Til alles skade dækker klasser omkring maskinindlæring som 'Introduktion til datalogi i Python' eller Andrew Ngs Coursera-kursus ikke koncepter og bedste praksis fra softwareteknik som enhedstest, skrivning af modulær genanvendelig kode, CI / CD eller versionskontrol. Selv nogle af de mest avancerede maskinindlæringsteam bruger stadig ikke denne praksis til deres maskinlæringskode, hvilket fører til en foruroligende tendens ...

Pete Warden beskrev denne tendens som 'Machine Learning Reproducibility Crisis':

vi er stadig tilbage i de mørke tider, når det kommer til at spore ændringer og genopbygge modeller fra bunden. Det er så slemt, at det nogle gange føles som at træde tilbage i tiden, til når vi kodede uden kildekontrol.

Selvom du muligvis ikke kan se disse 'software engineering' færdigheder, der udtrykkeligt er angivet i datavidenskabers jobbeskrivelser, vil det at have en god forståelse af disse færdigheder som en del af din baggrund allerede hjælpe 10 gange dit arbejde som dataforsker. Plus, de kommer i brug, når det er tid til at besvare disse programmeringsspørgsmål under dit datalogi-interview.

For et interessant perspektiv fra den anden side, se Trey Causeys stykke om 'Softwareudviklingsfærdigheder for dataforskere' om færdigheder, som han anbefaler, at dataforskere bør lære at "skrive bedre kode, interagere bedre med softwareudviklere og i sidste ende spare dig tid og hovedpine ”.

Forbedring af datavidenskab

Det er dejligt, at du har et godt fundament med din softwaretekniske baggrund, men hvad er det næste skridt mod at blive dataforsker? Josh Wills tunge-i-kind tweet om definitionen af ​​en dataforsker er overraskende nøjagtig:

Det antyder et af de emner, du skal indhente, hvis du er interesseret i at forfølge en datavidenskabsrolle eller karriere: statistik. I dette næste afsnit dækker vi store ressourcer til:

  • Opbygning af ML-specifik viden
  • Bygge branche viden
  • Værktøjer i ML-stakken
  • Færdigheder og kvalifikationer

Opbygning af ML-specifik viden

Det er mest effektivt at opbygge en kombination af teoribaseret viden omkring sandsynlighed og statistik såvel som anvendte færdigheder i ting som dataknægt eller træningsmodeller på GPU'er / distribueret beregning.

En måde at ramme den viden, du får, er at henvise den til maskinlæringsarbejdsprocessen.

Se denne detaljerede arbejdsgang fra Skymind AI

Her viser vi nogle af de bedste ressourcer, du kan finde omkring maskinindlæring. Det ville være umuligt at have en udtømmende liste og spare plads (og læsetid), vi nævnte ikke meget populære ressourcer som Andrew Ngs Coursera-kursus eller Kaggle.

Kurser:

  • Fast.ai MOOC (gratis kurser, der underviser i meget anvendte færdigheder på tværs af praktisk dyb læring til kodere, banebrydende dyb læring til kodere, beregningsmæssig lineær algebra og introduktion til maskinindlæring til kodere)
  • Khan Academy
  • 3Blå1Brun og matematisk monk youtube-kanal
  • Udacity-kurser (inklusive forbehandling til maskinindlæring i Python)
  • Springboard AI / ML-specifikt spor

Lærebøger: * forsøgte at finde gratis PDF-filer online til de fleste af disse *

  • Probabilistisk programmering & Bayesiske metoder til hackere
  • Sandsynlighed og tilfældige processer
  • Elementer i statistisk læring
  • Lineær algebra udført rigtigt
  • Introduktion til lineær algebra
  • Algoritmedesign

Vejledninger:

  • Google Developers Machine Learning Guide
  • Machine Learning Mastery Guides (for et godt udgangspunkt, se dette minikursus om Python Machine Learning)
  • Pyimagesearch (til computersyn)

Meetups: * primært NYC-baserede *

  • Papirer vi elsker
  • NYC kunstig intelligens og maskinindlæring
  • DataC Council.ai
  • NY kunstig intelligens
For et køligt udgangspunkt skal du tjekke Will Wolfs 'Open Source Machine Learning Masters' om, hvordan du kan strukturere din tid på tværs af at studere specifikke emner og arbejde med projekter for at fremvise ekspertise i en billig fjernplacering.

Bygge branchespecifik viden

Hvis du har et indtryk af, at du gerne vil være en bestemt industri som sundhedspleje, finansielle tjenester, forbrugsvarer, detailhandel osv ..., er det uvurderligt at indhente smertepunkterne og udviklingen i denne industri, når det gælder data og maskine læring.

Et pro tip = du kan scanne webstederne for vertikale specifikke AI-startups og se, hvordan de placerer deres værdiproposition, og hvor maskinlæring spiller ind. Dette giver dig ideer til bestemte områder inden for maskinlæring, du kan studere, og emner til projekter, der viser dit arbejde.

Vi kan gå igennem et eksempel: Lad os sige, at jeg er interesseret i at arbejde i sundhedsvæsenet.

  1. Gennem en hurtig google-søgning efter “ machine learning healthcare” fandt jeg denne liste fra Healthcareweekly.com om 'Bedste Healthcare Startups at se efter i 2019'
Du kan også foretage hurtige søgninger på Crunchbase eller AngelList med "sundhedspleje" som nøgleord

2. Lad os tage et af de virksomheder, der findes på listen, BenevolentAI, som et eksempel.

3. BenevolentAIs websted siger:

Vi er en AI-virksomhed med end-til-end-kapacitet fra tidlig lægemiddelopdagelse til klinisk udvikling på et sent stadium. BenevolentAI kombinerer kraften i beregningsmedicin og avanceret AI med principperne om åbne systemer og cloud computing for at transformere den måde, lægemidler er designet, udviklet, testet og bragt på markedet. Vi byggede Benevolent-platformen for bedre at forstå sygdom og til at designe nyt forbedre eksisterende behandlinger fra store mængder biomedicinsk information. Vi tror på, at vores teknologi sætter forskere i stand til at udvikle medicin hurtigere og mere omkostningseffektivt. Et nyt forskningsoplæg offentliggøres hvert 30. sekund, men forskere bruger i øjeblikket kun en brøkdel af den tilgængelige viden til at forstå årsagen til sygdommen og foreslå nye behandlinger. Vores platform indtager,'læser' og kontekstualiserer store mængder information hentet fra skriftlige dokumenter, databaser og eksperimentelle resultater. Det er i stand til at gøre uendeligt flere fradrag og slutninger på tværs af disse forskellige, komplekse datakilder, der identificerer og skaber relationer, tendenser og mønstre, som det ville være umuligt for et menneske at gøre alene.

4. Umiddelbart kan du se, at BenevolentAI bruger naturlig sprogbehandling (NLP) og sandsynligvis arbejder med nogle videngrafer, hvis de identificerer sammenhæng mellem sygdomme og behandlingsforskning

5. Hvis du tjekker BenevolentAIs karriereside, kan du se, at de ansætter en Senior Machine Learning Researcher. Dette er en seniorrolle, så det er ikke et perfekt eksempel, men se på de færdigheder og kvalifikationer, de beder om nedenfor:

Bemærk:

  • naturlig sprogbehandling, videngrafafledning, aktiv læring og biokemisk modellering
  • strukturerede og ustrukturerede datakilder
  • bayesisk model nærmer sig
  • kendskab til moderne værktøjer til ML

Dette skal give dig nogle trin til, hvad du skal nærme dig næste:

  • arbejde med strukturerede data
  • arbejde med ustrukturerede data
  • klassificere forhold i videngrafer (se en god ressource her)
  • læring af bayesisk sandsynligheds- og modelleringsmetoder
  • arbejde på et NLP-projekt (så tekstdata)

Vi anbefaler ikke, at du ansøger til de virksomheder, du finder gennem din søgning, men snarere ser, hvordan de beskriver deres kunders smertepunkter, deres virksomheds værdiforslag og hvilken slags færdigheder de opregner i deres jobbeskrivelser for at guide din forskning.

Værktøjer i ML-stakken

I jobbeskrivelsen for BenevolentAI Senior Machine Learning Researcher beder de om “viden om moderne værktøjer til ML, såsom Tensorflow, PyTorch osv ...”

At lære disse moderne værktøjer til ML kan virke skræmmende, da rummet altid ændrer sig. For at opdele læringsprocessen i håndterbare stykker skal du huske at forankre din tænkning omkring maskinlæringsarbejdsprocessen ovenfra - "Hvilket værktøj kan hjælpe mig med denne del af arbejdsgangen?" ?

For at se, hvilke værktøjer der følger hvert trin i denne maskinlæringsworkflow, skal du tjekke Roger Huangs 'Introduktion til maskinlæringsstakken', der dækker værktøjer som Docker, Comet.ml og dask-ml.

Taktisk set er Python og R de mest almindelige programmeringssprog, som forskere bruger, og du kan støde på add-on-pakker designet til datavidenskabelige applikationer, såsom NumPy og SciPy og matplotlib. Disse sprog fortolkes snarere end kompileres, hvilket giver dataforskeren frihed til at fokusere på problemet snarere end sprogets nuancer. Det er værd at investere tid i at lære objektorienteret programmering for at forstå implementeringen af ​​datastrukturer som klasser.

For at indhente ML-rammer som Tensorflow, Keras og PyTorch skal du sørge for at gå til deres dokumentation og prøve at implementere deres tutorials end-to-end.

I slutningen af ​​dagen vil du sikre dig, at du bygger projekter, der fremviser disse moderne værktøjer til dataindsamling og krangling, maskinlæring eksperimentstyring og modellering.

For lidt inspiration til dine projekter, se Edouard Harris 'stykke om' The cold start problem: how to build your machine learning portfolio '

Færdigheder og kvalifikationer

Vi forlod dette afsnit sidst, da det samler meget af informationen fra de foregående sektioner, men er specifikt rettet mod forberedelse af datavidenskabsinterview. Der er seks hovedemner under et datavidenskabsinterview:

  1. Kodning
  2. Produkt
  3. SQL
  4. A / B-test
  5. Maskinelæring
  6. Sandsynlighed (se en god definition vs. statistik her)

Du vil bemærke, at et af disse emner ikke ligner de andre (Produkt). For datavidenskabspositioner er kommunikation om tekniske begreber og resultater samt forretningsmålinger og indvirkning afgørende.

Nogle nyttige sammenlægninger af spørgsmål om datavidenskabssamtaler : ?? https: //github.com/kojino/120-Data-Science-Interview-Questions ?? https: //github.com/iamtodor/data-science-interview-questions-and-answers ???? https://hookedondata.org/red-flags-in-data-science-interviews/ ?? https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

Du vil bemærke, at vi inkluderede Hooked on Datas stykke om 'Red Flags in Data Science Interviews' - når du interviewer for roller, vil du støde på virksomheder, der stadig bygger deres datainfrastruktur eller måske ikke har en solid forståelse af, hvordan deres datavidenskabsteam passer ind i den større virksomhedsværdi.

Disse virksomheder klatrer muligvis stadig op i dette hierarki af behov nedenfor.

For nogle forventningsindstillinger omkring datavidenskabsinterviews, vil jeg anbefale at læse Tim Hoppers stykke om 'Nogle refleksioner over at blive afvist for mange datavidenskabsjobs'

Tak for læsningen! Vi håber, at denne guide hjælper dig med at forstå, om datavidenskab er en karriere, du bør overveje, og hvordan du starter denne rejse!

Vil du se de nyeste datavidenskabsroller? Abonner på det to ugentlige nyhedsbrev i ML Jobs for nye jobvidenskabelige jobåbninger i din indbakke:

ML Jobs nyhedsbrev - Revue

Tilmeld dig for at modtage denne kuraterede liste over datalogi-jobopslag hos de bedste virksomheder i branchen hver anden uge. Roller ... www.getrevue.co