Sunt convins că dorința noastră cea mai profundă este, plătind costul timpului, să ni se arate o licărire de adevăr fundamental despre univers. Să-l auzi șoptindu-și lecțiile și indică scopul ei.

Și, dacă te uiți suficient de greu pentru aceste lecții, le vei găsi. Fie că sunt o manifestare a minții tale sau pot fi ținute în mâna ta, odată ce le vezi, ele rămân ale tale pentru totdeauna.

Programarea oferă paralele semnificative cu viața. Avem sarcina de a crea ceva – ceva a cărui sumă simte mai semnificative decât părțile. La fel ca viața, este un test al creativității mărginite. Suntem reguli noi trebuie sa urmează, unii noi ar trebui să urmează și pe alții suntem liberi să-i ignorăm. Programarea ne oferă o privire, oricât de efemeră ar fi, în unele adevăruri fundamentale despre lumea în care locuim.

Cele patru paralele dintre programare și viață

Iterarea este progres.

Știați, dacă ați începe luna cu un singur bănuț și s-ar dubla în fiecare zi, ați avea 163 de dolari pe 15 a lunii? Cu siguranță, credeți, trebuie să existe o modalitate mai bună de a câștiga 163 USD în 15 zile. Dar, dacă mai aștepți încă 15 zile, ai avea peste 5 milioane de dolari.

Mergeți înainte, voi aștepta în timp ce faceți calculele.

ad-banner

În programare, folosim termenul repeta pentru a indica repetarea ceva. Într-o definiție mai formală, aplică în mod repetat o procedură rezultatului anterior al acelei proceduri. De exemplu, adăugând numerele 1 și 1 pentru a obține 2, apoi adăugând 1 și 2 pentru a obține 3 și așa mai departe.

Când iterăm, căutăm feedback. Așteptăm să fie îndeplinite anumite condiții, astfel încât să putem opri iterarea sau să le ajustăm Cum iterăm. Dacă nu reușim să ascultăm acel feedback, ne putem bloca într-o buclă infinită.

Viața nu este diferită. De multe ori ne așteptăm să putem sări de la punctul A la punctul B fără a defini vreodată ce este punctul A sau punctul B. Și, chiar și atunci când identificăm aceste puncte, ne așteptăm la o mișcare imediată de la început până la sfârșit. În schimb, ceea ce este adesea adevărul este că trebuie să ne îndreptăm treptat de la început până la sfârșit. Trebuie să ascultăm feedback-ul care ne spune unde suntem, astfel încât să putem face ajustări.

Când avem obiective, progresul se poate simți adesea – în primele câteva zile, săptămâni sau chiar luni – inexistent. Suntem adeseori ademeniți să o luăm de la capăt sau să începem noi. Dar, făcând acest lucru, nu reușim să ne dăm seama, deși s-ar putea să nu am ajuns la destinație, suntem undeva cu mult trecut de unde am început. Nu este necesară o repornire completă, trebuie doar să facem câteva ajustări minore.

Nu mai începe din nou. Fie iterația să fie forța care creează progresul.

Cele mai complexe probleme sunt colecții de probleme mai mici care au fost deja rezolvate.

Chiar și cele mai fascinante aplicații sunt o serie de soluții în cea mai mare parte banale la problemele banale. De fapt, majoritatea soluțiilor implementate în cadrul unui program nu sunt nimic unic. Combinația dintre acele soluții obișnuite este cea care creează un produs extraordinar.

În programare, există diferite moduri de a utiliza aceste soluții destul de obișnuite. O modalitate este printr-un termen numit abstractizare. A abstractiza ceva înseamnă a îndepărta ceva de altceva.

În programarea computerizată, atunci când abstractizăm ceva, construim adesea tehnologii de nivel superior pe baza tehnologiei de nivel inferior. Acest lucru face mai ușor să lucrați cu tehnologii de nivel inferior.

De exemplu, majoritatea limbajelor de programare sunt abstracții a limbajului binar enigmatic (0s și 1s). Au pus un strat între noi și un nivel de interacțiune mai fundamental, dar greoi, cu computerul. Aceste limbaje de nivel superior ne permit să ne concentrăm asupra problemelor de nivel superior.

Un alt mod prin care putem rezolva mai eficient problemele este prin utilizarea soluțiilor altcuiva. Este posibil să fi auzit și termenul bibliotecă. Și, deși nu vorbesc despre o locație slab luminată, prăfuită și liniștită în care trăiesc cărțile, nu este departe.

A bibliotecă, în termeni de programare, este codul pe care altcineva l-a scris care rezolvă problemele de rutină. De asemenea, abstractizează acele lucruri care nu sunt absolut fundamentale pentru rezolvarea oricărei probleme pe care o aveți.

De exemplu, dacă scrieți un program care necesită pe cineva să se conecteze pentru a utiliza aplicația dvs., dvs. ar putea scrieți codul pentru a cripta și decripta parolele dvs., sau, ai putea folosi codul scris de altcineva pentru a face asta pentru tine. Cu această din urmă opțiune, eliberăm timp pentru a ne concentra asupra problemelor mai semnificative pe care aplicația noastră încearcă să le rezolve.

Cu toții folosim abstracții și biblioteci într-o anumită formă sau formă. De exemplu, magazinul alimentar este o abstracție de a produce propriile noastre alimente. O mașină este o abstracție de a călători pe jos. Un cuptor este o abstractizare a construirii unui foc. Acestea sunt straturi pe care le așezăm în fața noastră, care ne permit să alocăm timp problemelor de nivel superior.

Reinventați roata doar pentru a învăța cum să faceți o roată, nu pentru a conduce la magazin.

Modul în care definiți o problemă este modul în care o veți rezolva.

Amintiți-vă povestea unui camion care a condus sub un pod și a rămas blocat. Inginerii au petrecut ore întregi încercând să-și dea seama cum să mute podul. Un copil mic s-a ridicat, față în față cu anvelopele camionului și a spus: „Ce se întâmplă dacă lăsați aerul din anvelope?”

Din punctul de vedere al copilului, problema nu era că podul era prea scurt, ci camionul era prea înalt.

Majoritatea oamenilor pot rezolva orice problemă. De fapt, cele mai multe probleme afirmă soluția. De exemplu, dacă podul cauzează problema, răspunsul este să faci ceva cu podul. Cu toate acestea, dacă problema este că camionul este prea înalt, atunci soluția – aproape evident – este de a reduce camionul.

Dispunerea pieselor este mult mai importantă decât piesele în sine.

Ce înseamnă baza de cod Google Maps, Declarația de independență, Martin Luther King Jr. Am un vis discurs, adresa de începere a lui Steve Jobs în 2005 și prima mea aplicație, Salut Lume a avea în comun?

Accesul la aceleași 26 de litere ale alfabetului englez.

Există foarte puțin pentru mine mai fascinant decât cuvântul scris. Cuvântul scris este unul dintre cele mai puternice tehnologii care a apărut de la oameni.

Da, folosesc termenul tehnologie deoarece – chiar sculptat în peretele unei peșteri – a schimbat fundamental modul în care persistăm informațiile. Datele nu mai erau limitate în limitele minții noastre.

În timp ce scopul cuvântului scris a fost inițial legat de evidența, a devenit rapid o modalitate de a răspândi idei. Unele dintre aceste idei s-ar mânia, iar altele ar inspira.

Fiecare limbă (inclusiv limbajul computerului) are subtilități atunci când transmite informații prin scriere sau vorbire. Cuvintele și părțile lor constitutive pot fi ușor diferite. Totuși, totuși, un limbaj este un set de simboluri care pot fi aranjate în ceea ce pare a fi un număr infinit de idei.

De exemplu, în limba engleză, există aproximativ 29 de simboluri pe care le pot folosi pentru a reprezenta aproape întregul meu univers. Am menționat cele 26 de litere, dar este de asemenea util să aveți acces la puncte, virgule și semne de întrebare.

Cele 29 de caractere sunt disponibile pentru dvs., pentru mine, și erau disponibile pentru Steve Jobs. Cu toate acestea, fiecare dintre noi, de-a lungul vieții noastre, va urma diferite traiectorii pe baza combinației de litere pe care am ales să o credem și să vorbim în existență.

Interesant, deși adăugăm adesea cuvinte în dicționar, de obicei nu adăugăm litere. Aceasta înseamnă, la cel mai fundamental nivel, că toate ideile care pot exista, există deja, cu părțile lor constitutive care așteaptă în liniște să le amestecăm în existență.

Les Brown o rezumă bine cu acest experiment de gândire:

Imaginează-ți dacă vrei, fiind pe patul de moarte. Și stând în jurul patului tău – fantomele ideilor, viselor, abilităților, talentelor pe care ți le dă viața.

Și că tu, din orice motiv, nu ai acționat niciodată după acele idei. Nu ai urmărit niciodată acel vis. Nu ai folosit niciodată aceste talente. Nu ți-am văzut niciodată conducerea. Nu ți-ai folosit niciodată vocea. Nu ai scris niciodată acea carte.

Și iată-i, stând în jurul patului tău, privindu-te cu ochii mari furioși spunând: „Am venit la tine. Și numai tu ne-ai fi putut da viață! Acum trebuie să murim cu tine pentru totdeauna. ”

Întrebarea este – dacă mori astăzi – ce idei, ce vise, ce abilități, ce talente, ce daruri ar muri cu tine?

Mulțumesc că ai citit!

woz

Urmăriți-mă pe Twitter