Læs, søg, (vær ikke bange for) Spørg

”Som ingeniører og som udviklere betaler vi os for at være frustrerede ... på samme tid er vi altid i skole. Vi lærer altid. ”- Carlos Lazos, afsnit 1 i CodeNewbie Podcast

Kodning er en rejse ind i tvetydighed.

Uanset om du designer en RESTful API, skalerer en app til tusindvis af brugere eller bare prøver at placere noget korrekt med CSS, vil der altid være ting, du ikke kender.

Næste gang du sidder fast og ikke ved, hvordan du går videre, skal du prøve at bruge Free Code Camps "Read-Search-Ask" -metode. Som navnet antyder, skal du:

  1. læs dokumentationen eller fejlen
  2. søg på Google
  3. bede om hjælp - uden at være bange for at spørge!

Lad os dykke dybere ned i hver af disse.

Læs

Hvis du ved, at du har brug for en bestemt metode, men ikke ved, hvordan du implementerer den, er dokumentationen et godt sted at starte. Hvis du ikke er sikker på, hvilken metode du har brug for, kan du ofte finde en løsning bare ved at klikke rundt i dokumentationen.

Hvis du får fejl, skal du læse fejlen! Prøv at finde ud af, hvad det prøver at sige. Hvis du ikke får en fejl, men ikke rigtig ved, hvad der sker, kan du prøve at debugge via console.log () -metoden.

Da jeg byggede ud mine Free Code Camp-apps og ikke fik de forventede resultater, ville jeg konsolere logge resultaterne af næsten alt: hvis udsagn, funktion returnerer udsagn, klikmetoder og timing metoder.

Et nyttigt værktøj til dette er din browsers konsol. Hvis du arbejder i CodePen, indeholder den også en konsol.

Hvis du følger specifikke blogs (CSS-tricks er en, som jeg ofte konsulterer for CSS), skal du gå til bloggen og se om den har artikler, der kan hjælpe dig med begreber, du kæmper med.

Hvis du stadig sidder fast, kan det være tid til at henvende dig til Google.

Søg

Google bliver hurtigt din bedste ven, hvis det ikke allerede er tilfældet. Men Google kan undertiden blive den irriterende ven, som du er nødt til at stikke og stikke lidt for at få nyttige svar ud af. For at få mest muligt ud af dette venskab er der et par ting at huske på.

En af disse er, at meget af tiden - især når du begynder at opbygge apps - får du ikke nøjagtigt det svar, du har brug for for magisk at løse alle dine problemer. Du bliver normalt nødt til at tage det, du har lært, og derefter anvende det i din nuværende situation.

Vær specifik, vær kortfattet

En anden ting at huske på er, hvordan du strukturerer dine søgninger, så du effektivt kan finde løsninger på dine specifikke problemer.

For eksempel er forsøg på at erstatte et enkelt tegn på en bestemt position i en streng et problem, som mange nye kodere løber ind i. For at løse dette problem kan du Google mange ting.

"Jeg vil ændre en ting i en streng" resulterer i et utal af resultater.

Du får alt fra understreng til R til “10 seje måder at få mere ud af Words Find and Replace” (som jeg som et resultat af denne søgning endte med at bogmærke for at læse senere). Ikke ligefrem hvad vi leder efter.

Når man googler - især når det kommer til programmeringsproblemer - er konventionen, som mange programmerere har tendens til at følge,:

[programmeringssprog] [verb] [nøgleord]

Lad os prøve det på vores problem. Hvis vi indtaster "javascript erstatter tegn i streng", får vi følgende.

Det ser meget tættere på det, vi leder efter!

På dette tidspunkt skal jeg klikke igennem de første par poster for at se, om de vil være nyttige eller ikke. Hvis ikke, prøver jeg at analysere dem for at få ekstra nøgleord, der kan hjælpe.

Så i vores eksempel vil vi bare erstatte et tegn på en bestemt position, vi behøver ikke nødvendigvis regelmæssige udtryk.

Det fjerde søgeresultat er "Hvordan udskifter jeg et tegn ved et bestemt indeks i JavaScript", så jeg ville klikke på det og derefter opdage, at strenge er uforanderlige, og at du ikke kan ændre kun et tegn!

Hvis jeg stadig har spørgsmål efter det, kan jeg tilføje "ved et indeks" til min søgning og prøve at lave et andet.

Stakoverløb

Stack Overflow-resultater kan bestå af en anstændig del af din Google-søgning. Det er en fantastisk ressource, der indeholder svar på et enormt udvalg af programmeringsspørgsmål. Normalt vil spørgsmålsspørgsmålet allerede have valgt det svar, der fungerede bedst for dem, og derefter vises svaret øverst på resultaterne med et grønt flueben.

Hvad jeg dog næsten altid vil gøre er at gennemgå alle de svar, der er blevet sendt, inklusive kommentarerne. Disse har undertiden nogle interessante diskussioner, og andre gange har folk direkte sagt: "dette er forkert" eller "dette er en dårlig praksis."

Når jeg kender mine muligheder og fordele og ulemper ved hver, vil jeg prøve at gennemføre dem.

(Vær ikke bange for) Spørg

Når du har søgt i cirkler et stykke tid og ikke er kommet med noget, der fungerer, er det måske tid til at spørge et rigtigt menneske.

Virkelige mennesker kan komme i alle mulige former:

  • dine venner (hvis du har venner, der koder)
  • Meetup-grupper (hvis du går til Meetups)
  • andre campister på Free Code Camp Gitter-kanaler og fora
  • enhver Slack- eller Facebook-gruppe, du kan være en del af, blandt andre

Før du spørger, skal du dog forsøge at strukturere dit spørgsmål for at optimere til både din tid og tidspunktet for den person, du beder om hjælp.

"Min app er ødelagt, hvad gør jeg?" eller "Jeg kan ikke få denne funktion til at fungere. Hvad gør jeg?" er ikke særlig nyttige for nogen.

Forstå det problem, du oplever. Forklar, hvad du forventer, at din kode skal gøre, og sammenlign den med, hvad den rent faktisk laver. Forklar, hvad du har prøvet hidtil, og medtag kodestykker, hvis du tror, ​​de vil hjælpe. (Det meste af tiden vil de.)

Da jeg først startede læseplanen, var jeg bange for at stille spørgsmål i fora eller chatrum af to grunde:

En kogte ned til stolthed: Jeg følte, at jeg skulle være i stand til at finde ud af, hvorfor min kode gjorde, hvad den gjorde. ("Jeg er et smart og dygtigt menneske. Jeg skal finde ud af det!")

Den anden grund var usikkerhed. Jeg var nervøs for, at folk ikke ville reagere, eller at ingen ville ønske at hjælpe mig, eller at deres forklaring ville gå over mit hoved, eller jeg ville ikke bede om afklaring og tage endnu mere tid ud af deres dag, eller ... [indsæt enhver undskyldning nogensinde her].

Jeg er glad for at sige, at jeg helt sikkert tog fejl med hensyn til enhver undskyldning, jeg kunne tænke på. Free Code Camp's samfund består af mennesker, der er meget venlige, kyndige og tålmodige.

En gang tilbragte nogen et par timer med mig, mens jeg forsøgte samtidig at forstå et koncept og finde ud af en fejl. Han var tålmodig gennem det hele.

Jeg har aldrig haft nogen til at tale ned til mig eller tro, at jeg er stum eller ude af stand. Jeg har aldrig haft nogen, der ikke svarede på et af mine spørgsmål, hvor simpelt det end måtte have været.

Chancerne er, at hvis nogen besvarer spørgsmål på fora eller i chatrummet, gør de specifikt det, fordi de vil hjælpe andre mennesker ud!

Som en bonus kan du undertiden tydeligt formulere, hvad dit problem er, give dig mulighed for at se, hvad der er galt. Der har været flere gange, hvor jeg har stillet et spørgsmål for kun at genkende med det samme, hvad jeg havde brug for at gøre næste. (Jeg takker derefter personen, og de svarer tilbage: "Nå, jeg gjorde faktisk ikke noget ...")

Sammenfattende

Metoden Læs, søg, spørg handler om at optimere til din egen tid og tid for de mennesker, der vil hjælpe dig. Det opmuntrer dig til at lære og finde løsninger på problemer på egen hånd inden du konsulterer andre. Hvis du har prøvet at gøre det på egen hånd og ikke er kommet nogen steder - vær ikke bange for at bede om hjælp!

Hjælpsomme links:

Sådan starter du, når du sidder fast

Mozillas JavaScript-dokumentation

jQuerys dokumentation

En introduktion til fejlfinding af JavaScript

Det vigtigste Free Code Camp Gitter-chatrum (der er andre værelser med mere specifikke formål, såsom at få hjælp til front-end-projekter eller at finde nogen at parre program med også)

Gratis kode lejrforum

Ud over online kanaler har Free Code Camp møder og Facebook-grupper i de fleste større byer. Jeg er involveret i et par i min by. Gennem dem har jeg været i stand til at møde mennesker, kode med dem og finde folk at gå til andre møder med!