Hvis du er en utvikler som går over til data science, er dette de beste ressursene dine

Det virker som alle ønsker å være dataforsker i disse dager - fra doktorgradsstudenter til dataanalytikere til din gamle college-kamerat som holder Linkedin til å sende deg beskjed om å "ta kaffe".

Kanskje har du hatt det samme som at du i det minste burde utforske noen datavitenskapelige stillinger og se hva sprøytenarkomanen handler om. Kanskje har du sett artikler som Vicki Boykis 'Data Science er forskjellige nå som sier:

Det som blir tydelig, er at data i vitenskapssyklusen i det sene stadiet av hype-syklusen beveger seg asymptotisk, og ferdighetene som dataforskere trenger for å komme videre er mindre visualisering og statistikkbasert, og mer i tråd med tradisjonell informatikk ...:
Konsepter som enhetstesting og kontinuerlig integrasjon fant raskt veien til sjargongen og verktøysettet som ofte brukes av dataforsker og tallforsker som jobber med ML engineering.

eller tweets som Tim Hopper:

Det som ikke er klart, er hvordan du kan utnytte opplevelsen din som programvareingeniør til en datavitenskapelig stilling. Noen andre spørsmål du måtte ha er:

Hva bør jeg prioritere læring?

Er det god praksis eller verktøy som er forskjellige for dataforskere?

Vil nåværende ferdighetssett overføres til en datavitenskapelig rolle?

Denne artikkelen vil gi en bakgrunn om dataforskerrollen og hvorfor bakgrunnen din kan være en god passform for datavitenskap, pluss konkrete trinnvise handlinger som du som utvikler kan gjøre for å øke informasjonsvitenskapen.

Vil du se de siste dataene vitenskapelige roller? Abonner på det ukentlige ML Jobs-nyhetsbrevet for nye datavitenskapelige jobbåpninger i innboksen din.

Data Scientist versus Data Engineer

Først skal vi først skille mellom to utfyllende roller: Data Scientist versus Data Engineer. Mens begge disse rollene håndterer maskinlæringsmodeller, varierer deres interaksjon med disse modellene, så vel som kravene og arten av arbeidet for Data Scientists and Data Engineers.

Merk: Data Engineer-rollen som er spesialisert for maskinlæring, kan også manifestere seg i stillingsbeskrivelser som ‘Software Engineer, Machine Learning’ eller ‘Machine Learning Engineers’.

Som en del av en arbeidsflyt for maskinlæring vil dataforsker utføre den statistiske analysen som kreves for å bestemme hvilken maskinlæringsmetode som skal brukes, og deretter begynne å prototype og bygge ut disse modellene.

Maskinlæringsingeniører vil ofte samarbeide med dataforskere før og etter denne modelleringsprosessen: (1) bygge datarørledninger for å mate data inn i disse modellene og (2) utforme et ingeniørsystem som skal tjene disse modellene for å sikre kontinuerlig modellhelse.

Diagrammet nedenfor er en måte å se dette kontinuumet i ferdigheter:

Det er et vell av online ressurser på forskjellen mellom Data Scientists og Data Engineers - sørg for å sjekke ut:

  • Panoply: Hva er forskjellen mellom en dataingeniør og en dataforsker?
  • Springbrett: Machine Learning Engineer vs Data Scientist
  • O’Reilly: Datatekniker kontra dataforskere

Som ansvarsfraskrivelse dekker denne artikkelen primært Data Scientist-rollen med noen nikk mot Machine Learning Engineering-siden (spesielt relevant hvis du ser på stilling i et mindre selskap der du kanskje må fungere som begge deler). Hvis du er interessert i å se hvordan du kan gå over til å være dataingeniør eller maskinlæringsingeniør, gi oss beskjed i kommentarene nedenfor!

Din fordel som utvikler

Til skade for alles skyld, klasser rundt maskinlæring som ‘Introduction to Data Science in Python’ eller Andrew Ng’s Coursera-kurs, dekker ikke konsepter og beste praksis fra programvareteknikk som enhetstesting, skriver modulær gjenbrukbar kode, CI / CD eller versjonskontroll. Selv noen av de mest avanserte maskinlæringsgruppene bruker fremdeles ikke disse praksisene for maskinlæringskoden, noe som fører til en urovekkende trend ...

Pete Warden beskrev denne trenden som ‘Machine Learning Reproducibility Crisis’:

Vi er fremdeles tilbake i mørke tider når det gjelder å spore endringer og gjenoppbygge modeller fra bunnen av. Det er så ille at det noen ganger føles som å gå tilbake i tid til når vi kodet uten kildekontroll.

Selv om du kanskje ikke ser disse ‘programvaretekniske’ ferdighetene eksplisitt angitt i databehandleres arbeidsbeskrivelser, vil det å ha et godt grep om disse ferdighetene som en del av bakgrunnen din allerede hjelpe 10 ganger arbeidet ditt som en dataforsker. I tillegg kommer de i bruk når det er på tide å svare på disse programmeringsspørsmålene under datavitenskapssamtaler.

For et interessant perspektiv fra den andre siden, sjekk ut Trey Causeys stykke om "Programvareutviklingsferdigheter for dataforskere" om ferdigheter som han anbefaler dataforskere bør lære å "skrive bedre kode, samhandle bedre med programvareutviklere og til slutt spare deg for tid og hodepine”.

Ramping opp på datavitenskap

Det er flott at du har et godt grunnlag med programvareteknisk bakgrunn, men hva er neste skritt mot å bli dataforsker? Josh Wills tungen-i-kinnet tweet om definisjonen av en dataforsker er overraskende nøyaktig:

Den antyder et av temaene du bør fange opp hvis du er interessert i å forfølge en datavitenskapelig rolle eller karriere: statistikk. I denne neste delen vil vi dekke store ressurser for:

  • Å bygge ML-spesifikk kunnskap
  • Bygge bransjekunnskap
  • Verktøy i ML-stabelen
  • Ferdigheter og kvalifikasjoner

Å bygge ML-spesifikk kunnskap

Det er mest effektivt å bygge en kombinasjon av teoribasert kunnskap rundt sannsynlighet og statistikk, så vel som anvendte ferdigheter i ting som datakreining eller treningsmodeller på GPUer / distribuert beregning.

En måte å ramme inn kunnskapen du får er å referere den mot arbeidsflyten for maskinlæring.

Et forenklet syn på arbeidsflyten til maskinen
Se denne detaljerte arbeidsflyten fra Skymind AI

Her viser vi noen av de beste ressursene du kan finne rundt maskinlæring. Det ville være umulig å ha en uttømmende liste og for å spare plass (og lesetid) nevnte vi ikke veldig populære ressurser som Andrew Ngs Coursera-kurs eller Kaggle.

kurs:

  • Fast.ai MOOC (gratis kurs som lærer veldig anvendte ferdigheter på tvers av Praktisk dyp læring for kodere, Cutting Edge Deep Learning for Coders, Computational Linear Algebra, and Introduction to Machine Learning for Coders)
  • Khan Academy
  • 3Blue1Brown og matematisk monk youtube kanal
  • Udacity-kurs (inkludert forbehandling for maskinlæring i Python)
  • Springbrett AI / ML-spesifikt spor

Lærebøker: * prøvde å finne gratis PDF-filer på nettet for de fleste av disse *

  • Probabilistic Programming & Bayesian Methods for Hackers
  • Sannsynlighet og tilfeldige prosesser
  • Elementer av statistisk læring
  • Lineær algebra gjort riktig
  • Introduksjon til lineær algebra
  • Algoritmdesign

guider:

  • Google Developers Machine Learning Guide
  • Machine Learning Mastery Guides (for et godt utgangspunkt, se dette minikurset om Python Machine Learning)
  • Pyimagesearch (for datasyn)

Meetups: * først og fremst NYC-baserte *

  • Papers We Love
  • NYC Kunstig intelligens og maskinlæring
  • DataCouncil.ai
  • NY kunstig intelligens
For et kult utgangspunkt, kan du sjekke Will Wolf 'Open Source Machine Learning Masters' om hvordan du kan strukturere tiden din på tvers av å studere spesifikke temaer og jobbe med prosjekter for å vise frem kompetanse på et billig sted for ekstern plassering.

Bygge bransjespesifikk kunnskap

Hvis du har en ledelse som du ønsker å være en spesifikk bransje som helsevesen, finansielle tjenester, forbruksvarer, detaljhandel, osv., Er det uvurderlig å fange opp smertepunktene og utviklingen i den bransjen når det gjelder data og maskin lærer.

Et proffe tips = du kan skanne nettstedene til vertikalspesifikke AI-oppstarter og se hvordan de plasserer sitt verdiforslag og hvor maskinlæring kommer inn. Dette vil gi deg ideer for spesifikke områder for maskinlæring å studere og temaer for prosjekter som viser frem arbeidet ditt.

Vi kan gå gjennom et eksempel: la oss si at jeg er interessert i å jobbe i helsevesenet.

  1. Gjennom et raskt googlesøk etter “machine learning health”, fant jeg denne listen fra Healthcareweekly.com på ‘Best Healthcare Startups to Watch for in 2019’
Du kan også gjøre raske søk på Crunchbase eller AngelList med "helsetjenester" som nøkkelord

2. La oss ta et av selskapene som er omtalt på listen, BenevolentAI, som et eksempel.

3. BenevolentAIs nettsted sier:

Vi er et AI-selskap med ende-til-ende evne fra tidlig medikamentell oppdagelse til sent fase klinisk utvikling. BenevolentAI kombinerer kraften i databehandlingsmedisin og avansert AI med prinsippene for åpne systemer og cloud computing for å transformere måten medisiner er designet, utviklet, testet og brakt til markedet.
Vi bygde velvillig plattform for å bedre forstå sykdom og for å designe nye og forbedre eksisterende behandlinger, fra enorme mengder biomedisinsk informasjon. Vi tror vår teknologi gir forskere mulighet til å utvikle medisiner raskere og mer kostnadseffektivt.
En ny forskningsartikkel publiseres hvert 30. sekund, men forskere bruker foreløpig bare en brøkdel av kunnskapen tilgjengelig for å forstå årsaken til sykdom og foreslå nye behandlinger. Plattformen vår inntar, ‘leser’ og kontekstualiserer store mengder informasjon hentet fra skriftlige dokumenter, databaser og eksperimentelle resultater. Det er i stand til å gjøre uendelig flere deduksjoner og konklusjoner på tvers av disse forskjellige, komplekse datakildene, identifisere og skape relasjoner, trender og mønstre, som ville være umulig for et menneske å gjøre alene.

4. Umiddelbart kan du se at BenevolentAI bruker naturlig språkbehandling (NLP) og sannsynligvis jobber med noen kunnskapsgrafer hvis de identifiserer sammenhenger mellom sykdommer og behandlingsforskning.

5. Hvis du sjekker karrieresiden til BenevolentAI, kan du se at de ansetter for en Senior Machine Learning Researcher. Dette er en seniorrolle, så det er ikke et perfekt eksempel, men ta en titt på ferdighetene og kvalifikasjonene de ber om nedenfor:

Merk:

  • naturlig språkbehandling, kunnskapsgraf inferanse, aktiv læring og biokjemisk modellering
  • strukturerte og ustrukturerte datakilder
  • bayesiske modellen nærmer seg
  • kunnskap om moderne verktøy for ML

Dette bør gi deg noen trinn for hva du skal nærme deg neste:

  • arbeider med strukturerte data
  • arbeider med ustrukturerte data
  • klassifisere forhold i kunnskapsgrafer (se en god ressurs her)
  • lære Bayesiske sannsynlighet og modellering tilnærminger
  • arbeide med et NLP-prosjekt (så tekstdata)

Vi anbefaler ikke at du søker til selskapene du finner gjennom søket ditt, men ser heller hvordan de beskriver kundens smertepunkter, selskapets verdiforslag og hva slags ferdigheter de viser i stillingsbeskrivelsene sine for å veilede forskningen din.

Verktøy i ML-stabelen

I stillingsbeskrivelsen for BenevolentAI Senior Machine Learning Researcher ber de om "kunnskap om moderne verktøy for ML, for eksempel Tensorflow, PyTorch, etc. ..."

Å lære disse moderne verktøyene for ML kan virke skremmende siden plassen alltid endrer seg. For å dele opp læringsprosessen i håndterbare stykker, husk å forankre tankegangen rundt maskinens læringsflyt ovenfra - “Hvilket verktøy kan hjelpe meg med denne delen av arbeidsflyten?”

For å se hvilke verktøy som følger med hvert trinn i denne maskinlæringsarbeidsflyten, sjekk ut Roger Huangs ‘Introduction to the Machine Learning Stack’ som dekker verktøy som Docker, Comet.ml og dask-ml.

Taktisk sett er Python og R de vanligste programmeringsspråk data forskere bruker, og du kan møte tilleggspakker designet for data science applikasjoner, for eksempel NumPy og SciPy, og matplotlib. Disse språkene blir tolket, snarere enn kompilert, noe som lar dataforskeren være i stand til å fokusere på problemet snarere enn nyanser av språket. Det er verdt å investere tid på å lære objektorientert programmering for å forstå implementeringen av datastrukturer som klasser.

For å få tak i ML-rammer som Tensorflow, Keras og PyTorch, må du huske å gå til dokumentasjonen deres og prøve å implementere opplæringsprogrammene deres fra ende til annen.

På slutten av dagen vil du forsikre deg om at du bygger ut prosjekter som viser frem disse moderne verktøyene for datainnsamling og krangel, håndtering av maskinlæring eksperimenter og modellering.

For litt inspirasjon til prosjektene dine, sjekk ut Edouard Harris stykke om ‘The cold start problem: how to build your machine learning portfolio’

Ferdigheter og kvalifikasjoner

Vi forlot denne delen for sist, siden den samler mye av informasjonen fra de foregående seksjonene, men er spesielt rettet mot forberedelse av datavitenskap. Det er seks hovedtemaer under et dataforskers intervju:

  1. Coding
  2. Produkt
  3. SQL
  4. A / B-testing
  5. Maskinlæring
  6. Sannsynlighet (se en god definisjon vs. statistikk her)

Du vil merke at et av disse emnene ikke er som de andre (Produkt). For datavitenskapelige stillinger er kommunikasjon om tekniske konsepter og resultater, så vel som forretningsmetoder og innvirkning, avgjørende.

Noen nyttige aggregasjoner av datavitenskapens intervjuspørsmål:
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 legge merke til at vi inkluderte Hooked on Datas stykke om 'Red Flags in Data Science Interviews' - mens du intervjuer for roller, vil du komme over selskaper som fremdeles bygger opp sin datainfrastruktur eller kanskje ikke har en solid forståelse av hvordan deres datavitenskapsteam passer inn i den større bedriftsverdien.

Disse selskapene kan fremdeles klatre opp i dette hierarkiet av behov nedenfor.

Det populære AI hierarkiet av behov fra Monica Rogati

For noen forventningsinnstillinger rundt datavitenskapsintervjuer, vil jeg anbefale å lese Tim Hoppers stykke om ‘Noen refleksjoner om å bli avvist for mange jobber med datavitenskap’.

Takk for at du leste! Vi håper denne guiden hjelper deg med å forstå om datavitenskap er en karriere du bør vurdere og hvordan du kan starte den reisen!

Vil du se de siste dataene vitenskapelige roller? Abonner på det ukentligste ML Jobs-nyhetsbrevet for nye data science-stillinger i innboksen: