4 trin til, hvordan man lærer effektivt nye ting inden for software-engineering

Foto af Maxwell Nelson på Unsplash

Vi har alle været her, og før eller senere lander vi alle her igen. Men hvad med dette indlæg først? Jeg bærer ikke en hvid frakke, hvilket betyder, at jeg ikke er en læge, så dette indlæg er ikke rigtig en recept, men hvad jeg prøver at gøre er at lægge tip og snyderark, som jeg har brugt i næsten 3 år nu, og hver strategi Jeg taler om har et bestemt scenario, hvor det ville blive anvendt. Så lad os hoppe lige ind.

Hvad mener jeg, når jeg siger effektiv læring?

Det er godt abstrakt, men for at sætte det ind, vil jeg sige, at indlæringsevner på lang sigt ikke bare får et stykke kode til at arbejde eller implementere noget, men snarere tage viden ind, udnytte den og derefter anvende på din egen måde (designe din løsning på problemet) husk god praksis.

Trin 1: Kend historien

Du skal kende fortiden for at forstå nutiden. ~ Carl Sagan

Vi og vores verden bygger på evolution, og alt hvad der er i verden uanset om det er teknologi eller produkter eller endda mad har haft sin egen evolutionsrejse. Det vigtigste spørgsmål, jeg vil have dig til at stille, mens du lærer en ny teknologi, er "hvorfor er det sådan, som det er?"

Nu mener jeg ikke, at du skal begynde at kigge efter tekniske grunde til, at en bestemt tech fungerer på den måde under hætten, men hvad jeg nødvendigvis mener, er at prøve at finde svar på nedenstående spørgsmål, og ja, du gættede det rigtigt, vi går tilbage i tiden:

  • Hvilket problem løser dette teknik / produkt?
  • Hvorfor opstod dette problem i første omgang?
  • Når problemet opstod, hvad blev alle de andre løsninger foreslået?
  • Og til sidst, hvorfor slog dette tech / produkt de andre løsninger.

For bedre at forklare, lad os tage et eksempel på Apache Kafka. For at lære det ville jeg i det væsentlige spørge, hvilket problem Apache Kafka løser, hvorfor opstod dette problem i første omgang. Da dette problem opstod, hvad var de andre løsninger, som verden søgte efter, og til sidst, hvad gjorde Apache Kafka, at det gjorde det til en sådan favorit i tech-samfundet?

Fordele ved fremgangsmåden: Hvis du følger disse trin, ved du ikke kun, hvad der er Apache Kafka, men du kender også de andre alternativer til Apache Kafka. Det vigtigste er, at du lærer, hvornår du ikke skal bruge Apache Kafka og vælge en anden løsning til det samme problem, måske RabbitMQ. Nu, hvis du ikke er opmærksom på disse teknologier, er det okay, bare husk, at de begge ofte diskuteres på internettet, som hvilke man skal bruge, og hvor nøgleordene er hyperlinks, så du kan tjekke dem ud.

Trin 2: Sværd og skjolde

Foto af Bogdan Kupriets på Unsplash

Dette er min egen analogi, så hvis det ikke passer rigtigt, er mine undskyldninger. Så mennesker er fulde af overlevelsesinstinkter, og når de er i fare, ville mennesker bruge alle værktøjer (færdigheder) i værktøjssættet (som de ved) for at overleve.

Strategiens essens. Så for eksempel er alle de færdigheder og teknologier, du kender, skjolde, og hvad du ikke kender, er sværd (fordi intet menneske ved, hvordan man kæmper ud af kassen). Så lad os sige, at du begynder at være en kriger, og du ved, hvordan du bruger et skjold (bliver din styrke), og du er nødt til at lære, hvordan du kæmper, og for det skal du vide, hvordan du bruger et sværd.

For eksempel, hvis jeg kender Python (skjold), men ikke ved, hvad der er API'er (sværd), kan jeg simpelthen slå op i tingene online for at lære “Sådan oprettes en API ved hjælp af Python” ved en simpel søgning på internettet og jeg får en masse tutorials på mange sprog og flere accenter. Men dette er ikke noget nyt, næsten alle gør det, så hvorfor har det lyst til en strategi? Jeg er glad for at du spurgte, ovenstående eksempel er ganske enkelt, men hvad nu hvis jeg siger, at du ikke kender python, og du ikke ved, hvad der er en API, og du er nødt til at oprette et API i python (nu har du to sværd og ingen skjold). Hvordan ville du tackle det?

Jeg siger jer, vi gør det alle sammen. Vi undersøger først, hvad der nøjagtigt er et API (vælg et enkelt sværd, lær nok at gøre det til et skjold) og derefter søge, hvordan man laver API i Python (det andet sværd med API-koncepter som et skjold).

Du kan ikke lære at kæmpe ved hjælp af sværd i begge hænder og intet skjold, da du lige er startet. Undskyld at sige, men det fungerer bare ikke sådan.

Så hvordan er denne strategi anderledes? Så tilbage i marts 2019 fik jeg en udfordring til at lære og implementere Akka ved hjælp af Java. Og jeg var en C # -udvikler, der bare et par måneder var kro med at lære python. Nu kendte jeg ikke Java, og jeg vidste ikke, hvad der er Akka (To sværd). Så jeg valgte den måde, vi diskuterede lige over, da jeg startede med Akka og dets historie (fra trin 1) og snart havde jeg en dyb forståelse af, hvad Akka er nøjagtigt, og hvilket problem løser det, og hvorfor valgte vi Akka for at løse problemet i først, men 0 viden om, hvordan jeg faktisk kunne kode og få en prøvekørsel. Dokumentationen var skræmmende snarere, jeg kan stadig ikke forstå deres dokumentation, og hver tutorial, jeg så i Java, gav ingen mening. Så hvad gjorde jeg?

Jeg foretog en vurdering af sværd og skjolde, mine skjolde var C #, Python, nyligt opnået viden om Akka. Mine sværd: Java, kodning Akka-løsninger. Så jeg kiggede efter Akka-implementeringer i C # og Python, og jeg fandt en kaldet akka.net til implementering af Akka ved hjælp af C #. Jeg tilbragte weekenden med at arbejde på et projekt i C # for at lære at kode med Akka i C #, og da jeg gik tilbage på arbejde på mandagen vidste jeg, hvad der er Akka, hvorfor jeg skal bruge det, og hvordan kan vi kode det (nu et skjold ) og derefter, da jeg vidste, hvad jeg ville gøre, var jeg bare nødt til at søge "hvordan man gør dette / at akka java" (java er sværdet) og nettet fungerede til min fordel denne gang.

Trin 3: Stjæl en læseplan, idet du bare følger en

Dette er mest for den, der lige er kommet i gang i marken, men er meget nyttig. Der er mange websteder / applikationer, som har onlinekurser at lære, og de leveres alle sammen med en pris, og ikke alle har råd til disse abonnementer, og hvad de alle ender med at gå er at gå til YouTube og søge efter indhold, og mange af dem er vellykket, men mange af dem er det ikke. Fordi der er så meget støj derude, er mange af os tilbøjelige til at gå tabt og til sidst miste interessen. Hvis du befinder dig i en sådan situation, har jeg det perfekte snyderi til dig, og det koster dig i alt 0 penge !!

Cheat Sheet Gå til et af disse betalte medlemskaber, abonner kun på websteder og find et kursus, du gerne vil gå igennem. Har du fundet mange? (en vil også gøre) Perfekt klassificere nu disse kurser i 3 faser Begynder, Mellem, Avanceret (mange af disse websteder har allerede deres indhold klassificeret som dette). Nu hvor du har alle kurserne sorteret, skal du trække deres indholdsfortegnelse ud og flette al indholdsfortegnelsen til en enkelt under de 3 kategorier (Begynder, Mellemliggende og Avanceret) og der har du det. Du har en top-til-bund-pensum over de ting, du skal dække for at være på begynderniveau på en teknik, så bliver du nødt til at lære disse emner for at skifte fra begynderniveau til mellemniveau i denne teknik og så videre. Nu, hvor du har listen, skal du oprette et mål, der hjælper dig med at forblive motiveret og nu bare YouTube-specifikke emner, i din tynde nye pensum og lære væk. Til at begynde med ser du en enorm forskel i hvad du søger efter. Fra "Python for begyndere" eller "lær Python" søger du efter "listeforståelser i python". Støjen gik lige ud af vinduet (nogen skal du slukke for støj annullering)

Trin 4: Test din viden

Og nu, hvor du har brugt alle disse tip og snyderark til at arbejde og lært noget nyt, er det tid til at teste din viden, så du kan justere din vej i tilfælde af, at du vendte om. Til dette præsenterer jeg for dig Stack Overflow og andre online fora, hvor folk sender deres spørgsmål på udkig efter svar. Fra meget erfarne til frisk start, stiller alle slags mennesker spørgsmål der. Prøv at besvare deres spørgsmål baseret på den viden, du har opnået. Tro mig på dette, vil du være i stand til at besvare et par spørgsmål her og der, og så vil andre også sende deres svar. Benyt nu dine svar på de andre svar, og prøv at se, hvilken der ville være bedre, og hvorfor. Dette vil give dig nok hænder på den teknologi, du prøver at lære, og fremskynde din proces. Vær ikke bange for at mislykkes, for i mange tilfælde får du svaret helt rigtigt.

Konklusion

Der er mange måder og ressourcer, du kan lære, og denne blog deler bare nogle flere ideer. Så føl dig fri til at bruge kommentarafsnittet til at fortælle mig, hvad du synes? Og vær ikke bange for at bruge onlineforum til at stille dumme spørgsmål eller besvare en persons spørgsmål. Du vil ende med at hjælpe dem, og du vil ende med at hjælpe nogen, der sidder fast på deres kode og give et løft til din viden.

”Mens vi underviser, lærer vi,” sagde den romerske filosof Seneca

Hvis dette indlæg var nyttigt, skal du klikke på klappen -knappen nedenfor et par gange for at vise din støtte! ⬇⬇