Programmering

6 teknologier du bør lære deg i år

Teknologien beveger seg raskt! Hvis du sitter fast i kuben din med å redigere Java 1.3-kode eller rote med PowerBuilder, bor du sannsynligvis i et område i landet der det bare er en arbeidsgiver. De fleste av oss må finne ut hva vi trenger å lære, eller i det minste bli kjent med, bare for å holde karrieren på sporet.

Hvis du vil være ettertraktet og øke hastigheten, bør du være kjent med følgende teknologier. Hvorfor lytte til meg? Fordi jeg får et unikt fugleperspektiv som en utvikler som strekker seg over ledelses-, markedsførings- og salgsroller. Min uformelle undersøkelse sier: Dette er det minste du bør gjøre deg kjent med neste år.

1. Hadoop. Hvis du ikke lærer noe annet i år, gjør det til Hadoop. Du må vite hva MapReduce er og hvordan du bruker den. Ærlig talt, etter noen måter av surr, popularitet eller etterspørsel, dominerer Hadoop markedet innen nyere teknologier.

Les JavaWorld-opplæringen: MapReduce programmering med Apache Hadoop.

Du kan lære andre teknologier, men Hadoop er vanskeligere - og du trenger mer ressurser for å komme lenger enn "hei verden." En av de vanskeligste oppgavene er å finne et tema som er enkelt nok til å lære deg selv, men ikke så enkelt at du ikke lærer noe. Å finne et tilstrekkelig stort datasett er heller ikke så lett som du kanskje tror. Det er kjente, som en stor dump av Wikipedia. Kanskje du kan kombinere det med andre elementer og lage en slags sosial graf som viser hvem som liker å redigere hvem. Hortonworks demonstrerte et lignende konsept med GitHub.

Når du har fått hendene skitne, begynner du å se andre typer spørsmål du vil at MapReduce skal svare på. Det er flere leverandører i dette rommet, fra Hadoop-spesifikke selskaper som Hortonworks til multiteknologileverandører som Pivotal (VMware / EMC spinoff) og eksisterende leverandører som Oracle, som stifter Hadoop til siden av sine produkter. Ethvert av disse selskapene er kapitalisert nok til å fly i bane.

2. MongoDB. Selv om det ikke er en like stor juggernaut som Hadoop, er MongoDB fortsatt en stor avtale og langt lettere å lære. Dokumentdatabaser som MongoDB passer godt sammen med store AJAX-applikasjoner eller objektorienterte bakenden. De skalerer også pent. Det er mer enn en å prøve, men du bør nok starte med Mongo, fordi det vil være best for deg fra et karriereperspektiv - de fleste selskaper er allerede kjent med databasen. Selskapet bak MongoDB, 10gen, er ekstremt godt kapitalisert med en krigskiste på $ 81 millioner.

3. Scala. Samtidig programmering er i endring, og det er også applikasjonene vi blir bedt om å bygge som utviklere. For ikke lenge siden ble alle handelsapplikasjoner med lav latens skrevet i C eller C ++; nå er de skrevet på Java.

Få en praktisk introduksjon til Scala: Lær Scala med Specs2Spring.

De nyere teknikkene innen svært samtidig og funksjonell objektorientert programmering debuterer ofte i Scala, og gjør det til Java eller andre populære språk år senere. Scala er mer enn et språk eller "syntaktisk godteri" - det er et økosystem av biblioteker og ideer som Akka og Play. Enten du liker Scala eller hater det, må du forstå ideene det omfatter. Med skaper av Spring Framework Rod Johnson som medlem av styret i Typesafe og en bank på 20 millioner dollar, er dette en innsats du kan stole på.

4. Node.js. Jeg sier ikke at du skal bli JavaScript-utvikler og gi avkall på alt annet. Jeg sier at du bør ha en smak av hendelsesbaserte, ikke-blokkerende systemer som Node.js og minst ett dynamisk språk som JavaScript på serveren. Du kan gjøre Ruby, men du vil savne den hendelsesbaserte delen som ikke blokkerer. Det er grunner til å virkelig ikke like Node.js (den har en tråd), men det er også mye å elske. Mange seriøse mennesker bruker Node.js, som har et levende samfunn og bred bransjestøtte - alle fra Microsoft til Cloudbees til VMware og utover. Node.js er godt finansierte ($ 112 millioner pluss) skaper, Joyent, prøver ikke å produsere Node.js, men Joyents sky-tilbud skiller seg ut med en Node.js-sentrisk PaaS.

Har du hørt om Vert.x? få en tutorial introduksjon til dette rammeverket for forretningsmeldinger som er basert på Node.js, men bygget på JVM.

5. C / C ++ eller montering. Jeg kjempet for ikke å forlate dette som forsamling - eller til og med C og utelate kusinen til hybridbiffen (Linus sa det best i sin NSFW-rant). Du trenger ikke å være en mester på standard lib eller STL eller noe slikt, men du bør vite hvordan en datamaskin faktisk fungerer. Du bør forstå hvordan minne fungerer nær metallet og ha en ide om hvordan kompilatorer fungerer. Jeg har kanskje ikke brukt MASM på mange år, men jeg har kontinuerlig brukt kunnskapen jeg fikk fra å lære det. Etter hvert som teknologien vokser mer på høyt nivå og abstrakt, blir det faktisk mer nyttig å forstå dem på et lavt nivå når man utvikler eller feilsøker høyt skalerbare, høytytende systemer. Hvis du jobber som Ruby-utvikler, vil ingen kreve at du kjenner til disse tingene, men de kan be deg om å fikse problemer som du vil forstå langt bedre hvis du har denne ekspertisen. Folk som kan tenke på denne måten, vil bevise seg uvurderlige gang på gang.

6. Git. Se, hvis du ikke kjenner Git og ikke har opprettet en GitHub-konto eller to, er du sen til den effektive og velkjente utviklerpartiet. Du burde virkelig ha lært det i fjor. Selvfølgelig, hvis du fremdeles bruker ClearCase i din nåværende stilling, bør du enten få alvorlig farelønn, eller du bør slutte og få en jobb der du ikke trenger å bruke ClearCase.

Mange andre ferdigheter er etterspurt, men disse seks bringer susen. Å tilegne deg disse ferdighetene vil hjelpe deg å bli ikke bare en av de kule barna på blokken, men også en av de betalte barna.

Det er listen min. Er det noe du vil legge til? Fortell meg i kommentarene (Legg til en kommentar) nedenfor.

Denne artikkelen, "6 teknologier du bør lære deg i år", ble opprinnelig publisert på .com. Hold deg oppdatert på den siste utviklingen innen applikasjonsutvikling, og les mer av Andrew Olivers Strategic Developer-blogg på .com. For de siste nyhetene om forretningsteknologi, følg .com på Twitter.

$config[zx-auto] not found$config[zx-overlay] not found