Ce spun programatorii atunci când li se cere să își definească activitățile și să sugereze că "mașinile s-ar fi confruntat mai repede"? Am colectat răspunsuri de la utilizatorii Quora și asta am obținut.
- De ce calculatoarele nu mai sunt înlocuite de programatori, dacă sunt mai rapizi, mai inteligenți și nu se înșelă?
- Nu credeți, întrebarea dvs. a fost studiată înainte de grețuri. și continuă să fie studiat.
Să vedem situația de genul asta: de fapt, o mulțime de lucrări mecanice pe care programatorul trebuie să le efectueze deja este făcută de calculator (deși unii folosesc încă C ++, în loc să scrie scriptul într-o singură linie). Aceasta este (în mod ideal), nu facem ceea ce se repetă de multe ori - mașinile o fac pentru noi.
Astfel, în parte suntem deja pe această cale. Pe de altă parte, nu putem transfera acum codificarea pe computer și nu vom putea să o facem în viitorul apropiat.
- Alan Cooper a vorbit foarte bine despre acest lucru:
Departe de programare, oamenii o văd doar ca un proces mecanic, de inginerie. De fapt, aceasta este o activitate extrem de variabilă și creativă.
- Aș dori să iau în considerare problema de cealaltă parte. Programarea rezolvă 5 sarcini:
- Creați un nou program sau o funcție
- Extinderea funcționalității programelor existente
- Corectând ceea ce nu funcționează
- Implementarea unui model de design cunoscut (existent) într-o situație simplă
- Implementarea unui model bine cunoscut într-o sarcină dificilă.
Și acum abilitățile pe care un interpret (computer) ar trebui să le aibă:
- Înțelegeți sarcina
- Pentru a vedea modalitățile de realizare (pentru a cunoaște posibilitățile)
- Fiți capabili să determinați ce soluție va fi optimă pentru o anumită sarcină
- Au ocazia de a lua o decizie
Acum, numai oamenii pot înțelege noua sarcină (obiectivele, problemele care trebuie rezolvate). Pentru ca un calculator să înțeleagă oamenii - trăsăturile, nevoile, problemele care pot apărea în activitatea lor, trebuie să aibă un nivel mai înalt de conștientizare decât poate acum. Și nu vorbesc despre o minte artificială, ci despre o mare în comparație cu capacitățile actuale. De exemplu, faceți o concluzie bazată pe o cantitate insuficientă de date, căutând altele suplimentare în mediul extern sau printre cele disponibile.
Aceasta este o funcționalitate destul de complexă, care, probabil, va fi pusă în aplicare, dar acest lucru este îndoielnic.
Un computer poate scrie cod folosind modele de design destul de complexe existente, și chiar, într-o oarecare măsură, satisface unele cerințe ale utilizatorului este metaprogramarea. Există sarcini pe care numai profesioniștii excelenți le pot rezolva și este deosebit de dificil să se scrie un instrument pentru rezolvarea unor astfel de probleme.
- Cred că odată cu apariția unor vehicule fără pilot, trebuie să recunoaștem: calculatoarele sunt deja la jumătatea distanței față de supremația superioară față de noi. În ceea ce privește "computerele care pot programa cel puțin la nivelul dezvoltatorului mediu", atunci această sarcină nu este deloc simplă, dar destul de reală.
Nu mă crede, mașinile sunt deja programate pentru noi. LINQ este un exemplu demn de la relativul modern: codul nostru se apropie tot mai mult de formulările verbale, deci întrebarea dvs. este parțial rezolvată.
Cu toate acestea, interogările de proces și concepte abstracte care încă nu știu cum, precum și de a dobândi noi cunoștințe, în mod independent, și este puțin probabil vom vedea în viața noastră.
- Voi răspunde la întrebare cu o întrebare: de ce oamenii au nevoie de ea?
Răspunsul este într-un singur cuvânt: creativitatea. Oamenii se pot uita la un lucru atât de diferit! Și, se pare, toate soluțiile sunt logice, dar toate sunt unice. Oamenii sunt minunați prin faptul că pot îndeplini o sarcină dată sub forma unei descrieri vagi. Adică, ei pot înțelege - este deja bun - și, în plus, să găsească o soluție de lucru și să o pună în aplicare.
Și acum imaginați-vă ce ar trebui să fie un computer care va rezolva problema cu cerința "Să transportați două perpendiculare perpendiculare pe linia dreaptă".
Un om este sigur că va veni cu ceva.
- Dacă există un program special care va scrie un cod de buggy, atunci da - calculatorul va putea înlocui o persoană.
Întotdeauna am crezut că codul ideal apare doar în procesul de lucru.
- De ce există scriitori? Este cu adevărat imposibil să creați un supermachine care să scrie cărți mai bune (vezi Lem 'Electrobald Truerl')?
Numai computerele sunt unelte, cum ar fi un ciocan sau o mașină de scris. De ce există scriitori? Deoarece aparatul tipărește textul, scriitorul creează o poveste.
Calculatorul folosit de programator este același instrument care funcționează cu date numerice. Dacă dezasamblați-o, o minge magică care emite logică nu va zbura de acolo.
- Da, este aceeași întrebare pe care este adesea întrebat CEO, manageri de produs și manageri de vânzări: „De ce nu pot pur și simplu, da comanda de un calculator în loc de a avea de a face cu programatorii ce în ce mai nefericit?“. Programatorul trebuie să înțeleagă „idee mare“ vag și confuz de un manager (chiar dacă două persoane doresc lucruri opuse) și „explica“ computerul ei sub forma unui cod. Dar dacă toată lumea va crede ca programatori, putem continua să se gândească la această idee.
- Vreau să văd cum se va testa el însuși! Unde pot aplica?
- Dacă creați un program care poate genera un alt software bazat pe cerințe verbale clare, veți găsi că 99,99% dintre persoane nu pot stabili în mod clar și fără ambiguitate aceste cerințe. O parte semnificativă a postului de programator este să asculte și să încercați să înțelegeți.
- De ce avem nevoie de șoferi, cu excepția cazului în care mașina nu se poate descurca mai bine cu controlul?
Totul este automatizat și va fi automatizat atât timp cât o persoană există ca specie - acest lucru este inevitabil. O altă întrebare este că pentru noi a devenit obișnuit să fim invizibili și continuăm să visăm. Să presupunem că ați decis să utilizați o dronă experimentală. Acțiunile dvs. vor fi reduse la o singură comandă (punctul de sosire) - aceasta înseamnă că mașina se "pliază" și nu sunteți implicat în management? Nu, nu este. Sunteți încă un conducător auto care utilizează un sistem automat avansat, dar încă îl gestionează.
Nu observăm simplificarea treptată a vieții acum, așa cum nu o vom observa mai târziu. Același lucru este valabil și pentru programare.
Pe de o parte, am făcut deja progrese importante pe calea automatizării. Un exemplu sunt mașinile foarte experimentale. Pe de altă parte, deși procesul de scriere a codului este simplificat și de IDE, freemork etc. nu putem încă încredința computerul însuși să decidă cu ce probleme să lucreze și cum. Și este puțin probabil să avem încredere în viitorul apropiat: sistemul de luare a deciziilor este deja un intelect artificial.
Ce este codul și programarea?
Văd profesia mea ca o soluție la sarcini logice de natură creativă. Există o mulțime de puzzle-uri în codificare și adesea necesită o viziune nestandardizată pentru a găsi răspunsuri care se află în afara câmpului de joc obișnuit.
Și da, există oa doua parte - prietenia cu browserul și abilitatea de a compune interogări pentru motoarele de căutare :)
Toate acestea funcționează împreună ca o simfonie. Caracter. Aceasta este codarea.
- Programarea este un domeniu uimitor de cunoaștere, în care găsirea unei erori este chiar mai mult un mister decât scrierea codului: de ce mă pot conecta la alte trei servere SFTP, dar nu la asta? De ce naiba nu copiază-lipiți munca în acest WebView. Sau aveți un maraton distractiv cu descărcarea aplicației în AppStore?
Și, de fapt, tot ceea ce faci este redus la găsirea și eliminarea de bug-uri (și, în același timp, crearea de noi). Câteodată mă găsesc gândindu-mă: "Poate că scriu doar greșeli?"
- Este un joc complicat, dar interesant, logic împotriva șefilor :) Te-ai împrietenit cu echipa pentru a rezolva problema. Căutând soluții și găsind calea cea mai optimă posibilă (uneori se dovedește că a fost și mai optimă, dar aceasta este o altă poveste). Apoi, trebuie să urmați calea aleasă cu condiția ca șeful care a intrat în joc să aducă noi "capcane" - de exemplu, sub formă de editări către TK.
Și acest joc nu are un final.
- Imaginați-vă acest lucru în această formă: lucrarea constă în două stări succesive - satisfacție și stres - atunci când sunteți mândru că ați găsit o decizie rece și apoi ați dat seama că a eșuat din anumite motive. Uneori, lanțul este întrerupt, de exemplu, când unul dintre ele nu găsiți defecțiuni și nu îl puneți în funcțiune. Apoi continuați cu următoarea sarcină și începeți din nou: "Mi-am dat seama cum să o fac, cât de inteligent sunt" - "Ok, nu funcționează" - "Am înțeles de ce!" - "Hmm. „-.
Pentru ca lanțurile să fie cât mai scurte posibil, trebuie să înveți și să privești în mod constant la senior în funcție;)
- E ca și cum ai face orice altceva. Încearcă!