2024-10-03
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
bob vastaaohjelmoijan "35-vuotias kriisi":
ajatellaajatus siitä, että ohjelmointi on tarkoitettu vain nuorille, on itse asiassa illuusio, mutta se on todellakin erittäin vaikuttava illuusio. tämä illuusio on olemassa, koska ohjelmoijien kysyntä on kasvanut raketin lailla viimeisen 70 vuoden aikana.
itse asiassa me "vanhat ohjelmoijat" olemme edelleen olemassa, mutta määrä ei ole niin silmiinpistävä.
kirjoittaja |. wang qilong
tuottaja |uusi ohjelmoija》toimitusosasto
kuvittele, jos olisit kirjoittanut koodia yli viisikymmentä vuotta elämässäsi ja ohjelmoisit edelleen 71-vuotiaaksi asti. millaisena näkisit tämänhetkisen räjähdysmäisen tekoälyohjelmoinnin aikakauden?
robert c. martin tunnetaan maailmankuuluna ohjelmointiguruna. tätä miestä kutsutaan ".bob-setävanha mies (uncle bob) on ketterän kehitys- ja suunnittelumallien pioneeri. hän on tehnyt ohjelmistoammattityötä jo yli 50 vuotta suunnitteluperiaatteet olio-ohjelmoinnin alalla, tuli hänen käsityöstään.tämän päivän tekoäly on vain nuorempi ohjelmoija, jolla on vain puolet aivoista, eikä se koskaan kasva.", koska tekoälyn tehtävät ovat melko rajallisia, mutta vaikka hän on yli 60-vuotias, hänellä on edelleen suuret odotukset tulevaisuudesta: "kun luomme joskus tulevaisuudessa koneita, jotka voivat ajatella ihmisten tavoin, ohjelmointitaidot vanhenevat.”
maailmankuuluna ohjelmistokehitysguruna uncle bobin mestariteos "clean code" määritteli kerran, mitä "puhdas koodi" on, ja kuvasi sarjan tehokkaita toimintatapoja.
äskettäin julkaistiin kiinalainen versio uncle bobin uusimmasta kirjasta "functional design: principles, patterns and practices" monet ihmiset ihmettelevät, miksi tämä olio-ohjelmoinnin johtaja "petti" "vihollisleirille", ja setä bob hän esitti myös. hänen aina suoraviivainen hahmonsa ja suoraan "kiistänyt": "viime vuosina joissakin artikkeleissa on väitetty, että toiminnallinen ohjelmointi vastustaa olioohjelmointia ja että olio-ohjelmointi on vanhentunutta. olin eri mieltä tästä näkemyksestä ja päätin kirjoittaa tämän kirjan.”
funktionaalinen ohjelmointi on enemmän kuin vain "ohjelmointia toimintojen avulla". funktionaalinen ohjelmointi on ohjelmointia ilman osoituskäskyjä.
kun yrität ohjelmoida ilman osoituskäskyjä, kaikki muut toiminnallisen ohjelmoinnin ominaisuudet loksahtavat paikoilleen. jos haluat käsitellä funktioita, sinun on käytettävä rekursiota. kaikki nämä asiat tulevat luonnostaan sillä hetkellä, kun päätät olla määrittämättä arvoja. tästä siis toiminnallisessa ohjelmoinnissa on kyse.
——"functional design", robert c. martin
yllä olevat huomautukset ovat kaikki csdn "new programmer" -setä bobin haastattelusta. kävimme syvällisen keskustelun tämän "ketterän kehityksen elävän fossiilin" kanssa ja kuuntelimme hänen henkilökohtaista kertomustaan siitä, kuinka hän yhtenä 17 ohjelmistoalan johtajasta julkaisi "ketterä manifestin" 23 vuotta sitten (2001).historiallisia yksityiskohtia, ja myös oppinut viimeisimmät näkemykset tekoälyohjelmoinnista tältä vanhemmalta ohjelmoijalta, jolla on yli 50 vuoden kehityskokemus, mikä virkisti monien ihmisten aiempia näkemyksiä bob-setästä.historiallinen vaikutelma. seuraava artikkeli alkaa bobin muistoilla vuodelta 1970 ja vie lukijat takaisin "ohjelmoijien muinaiseen aikakauteen", jolloin edes world wide web ei ollut vielä syntynyt.
"uusi ohjelmoija": ennen kuin haastattelu alkaa, voisitko esitellä lyhyen itsesi?
bob-setä:okei, minun nimeni on bob martin. olen ollut ohjelmoija pitkään.yli viisikymmentä vuotta.kun aloitin ohjelmoinnin, tietokoneet olivat riittävän suuria täyttämään suuren huoneen ja kalliita miljooniin dollareihin.
olen työskennellyt useiden ohjelmointikielien kanssa, mmkokoonpanokieli, cobol, fortran, pl/i, c, c++, pascal, java, c#odota. olen vuosien varrella ollut mukana kehittämässä erilaisia järjestelmiä aina rahoitusjärjestelmistä sulautettuihin reaaliaikaisiin järjestelmiin ja prosessinhallintajärjestelmiin. siksi voit sanoa, että minulla on laaja kokemus tällä alalla.
lisäksi olen kirjoittanut useita kirjoja, mukaan lukien clean code (puhdas koodi), "tapa puhtaaseen arkkitehtuuriin" (puhdas arkkitehtuuri), ja kirja, josta keskustelemme tänään, on nimeltään "toimiva muotoilu》(toimiva suunnittelu)。
"uusi ohjelmoija":mitä teet kirjojen kirjoittamisen lisäksi vapaa-ajallasi? muuten, luin usein twitteriäsi ja huomasin, että noin 50 % twiiteistäsi on sosiaalisia uutisia yhdysvaltain vaaleista ja trumpista, ja loput 50 % koskevat teknistä sisältöä, ohjelmointia ja näkemyksiäsi koodista.
bob-setä:todellakin. muina kuin vaalivuosina noin 90 % twiiteistäni liittyy ohjelmistoihin. mutta koska tämä on vaalivuosi, on enemmän sisältöä, joka kattaa muita aiheita. kun en kirjoita kirjoja tai ohjelmoi, teen paljon asioita. tykkään pyöräillä ja matkustaa paljon. olen myös lentäjä ja minulla on hauskaa lentää omalla koneellani. minulla on valtava perheneljä lasta ja kymmenen lastenlasta., käyn yleensä heidän luonaan niin paljon kuin mahdollista, joten aikani on hyvin järjestetty.
"uusi ohjelmoija": vie meidät takaisin ohjelmointiurasi alkupisteeseen ja kerro meille tarina siitä, kun aloitit ohjelmoijana vuonna 1970. olit tuolloin 18-vuotias, ja ensimmäiset kielet, jotka opit, olivat assembly ja cobol. voitko kertoa kokemuksistasi, kun aloitit?
bob-setä: no, tuolloin ei ollut paljon korkeakoulukursseja. minua ei tuolloin kiinnostanut koulu. tuolloin vietnamin sota raivosi ja kampuksella oli paljon mellakoita ja levottomuuksia. ja,olen oppinut paljon tietokoneohjelmoinnista ja oppinut cobolin ja fortranin ja jopa useita tietokoneen kokoonpanokieliä. joten en usko, että yliopistoon tarvitse mennä。
mitä tulee ohjelmointiurani alkuun, niin kaikki alkoi siitä, että äitini osti minulle pienen muovisen tietokoneen, kun olin 12-vuotias. lelussa on kolme varvastossua ja kuusi ja-porttia, ja sinun on käännettävä pientä vipua käyttääksesi sitä jotkin sisällä olevat kuminauhat ja vivut liikuttavat osia, jolloin se voi tehdä yksinkertaisia laskelmia, kuten laskea 0:sta 7:ään. laskee 7:stä 7:ään. laskuri palaa nollaan. lisäksi voit myös ohjelmoida sen lisäämään kaksi bittiä muodostamaan summabitin ja siirtobitin. kirjoitin siihen jopa paljon mielenkiintoisia ohjelmia - ohjelmointiprosessina on lisätä pieni putki. sauva ei pääse aukkoon, mikä muuttaa liipaisimen kuntoa.
joten vietin muutaman viikon opetellen kuinka saada tuo lelutietokone toimimaan, ja tämän prosessin kautta minusta tuli ohjelmoija.olen ollut ohjelmoija siitä lähtien。
se oli lähtökohtani, ja sitten isäni osti paljon kirjoja tietokoneista ja ohjelmointikielistä antaakseen minulle mahdollisimman paljon tietoa. sitten 16-vuotiaana sain ohjelmointityön kirjoittaa ohjelmia honeywell 200:lle. työ kesti kaksi tai kolme viikkoa, kun minäedelleen vain poika, tein sen kesälomalla ja se oli niin hauskaa.
noin kaksi vuotta myöhemmin, kun olin 18-vuotias, sain kokopäivätyön kokoonpanokielen ja cobolin kirjoittamiseen ibm 360:lle. pian sen jälkeen aloin ohjelmoida monia mikrotietokoneita assembly-kielellä. kun varian corporation valmisti näitä tietokoneita, monet yritykset rakensivat mikrotietokoneita tuolloin, mutta harvat menestyivät, ja alaa hallitsi digital equipment corporation (dec). sitten minusta tuli erittäin taitava ohjelmoimaan pdp 8 ja pdp 11, laitteet, jotka valmistettiin 1970-luvun alussa.
"uusi ohjelmoija": 1970-luku oli todella mielenkiintoista aikaa world wide webiä ei ollut vielä keksitty, ja usenet oli juurinäytä. olet yksi ensimmäisistä usenet-käyttäjistä maailmassa, ja sain myös tietää, että lempinimen "bob-setä" antoi sinulle alun perin kollega yrityksessä. myöhemmin käytit vahingossa tätä lempinimeä allekirjoituksena usenetissä, ja lopulta nimi vaihtui onnistuneesti lempinimestäsi oikeaksi nimeksi. voitko jakaa tarinan?
bob-setä: työskentelin startupissa nimeltä clear communication, joka oli urani alkuneljäs pysäkki, joskus 1987-1989. siellä työkaveri antoi kaikille lempinimen, minun oli "bob-setä". se oli aluksi hieman ärsyttävää, koska hän käveli aina ympäriinsä ja kutsui minua tällä lempinimellä: "bob-setä, entä tämä?".
lähdin tuosta yrityksestä ja minusta tuli konsultti, eikä kukaan enää kutsunut minua "bob-sedäksi". kävi ilmi, että minulta puuttui otsikko, joten tein sen virheen, että lisäsin sen sähköpostin allekirjoitukseen.
olin tuolloin erittäin aktiivinen usenetissä ja julkaisin usein artikkeleita uutisryhmissä, kuten comp.object ja comp.lang.c++, ja ihmiset alkoivat huomata "uncle bob" allekirjoituksessani. olin kerran c++-konferenssissa, luultavasti vuonna 1990, ja joku osoitti minua hallin toiselta puolelta ja sanoi: "katso, se on bob-setä, minä ajattelin, että tein virheen, minun pitäisi todella vaihtaa!" allekirjoitus - mutta sitten tajusin, että "uncle bob" olisi itse asiassa hyvä merkki, joten pidin sen.
"uusi ohjelmoija": usenetiä voidaan pitää ensimmäisenä sosiaalisena mediana, johon osallistut. kuten monet legendaariset kehittäjät, tykkäät osallistua erilaisiin yhteisöihin tai foorumeihin. näin sinun kirjoittavan hashissa. huomaa: "olen robert martin. voit kysyä minulta kysymyksiä." keskustelua. nyt tämä viestintä näyttää tapahtuvan ensisijaisesti twitterissä.
bob-setä:oikein,viserrysnyt tärkein sosiaalinen mediani. käytän myös facebookia, mutta lähinnä pitääkseni yhteyttä perheen ja ystävien kanssa.
"uusi ohjelmoija": aluksi kiinnostuit c:stä ja c++:sta, mutta mainitsit myös, että kokeilit mielenkiinnosta kieliä, kuten snobol, focal, alcom ja basic. mitä muita ohjelmointikieliä voidaan mielestäsi kutsua "kiinnostaviksi"? mitkä ovat mielestäsi kiinnostavia erityisesti viime vuosina ilmestyneiden uusien ohjelmointikielien joukossa?
bob-setä: minusta kiinnostavin kieli tällä hetkellä onclojure, kieli, jonka oppimiseen olen käyttänyt paljon aikaa. tämä yllätti minut, koska clojure on itse asiassalisplispin murre, jota en koskaan uskonut oppivani.
urani ensimmäisten 30 vuoden aikana en koskaan harkinnut lispin opiskelua, koska se oli mielestäni kauhea kieli – koska en tietenkään ymmärtänyt sitä ollenkaan. kunnes eräänä päivänä luin kirjan nimeltä "tietokoneohjelmien rakenne ja tulkinta". kirjassa käytetty kieli oli lisp, joka houkutteli minua välittömästi. yhtäkkiä minusta tuli suuri lispin fani. haluan löytää alispin käyttötapoja päivittäisessä elämässäsi, joten tapasin clojuren.
clojure vastaavalisp-murre, joka voi toimia jvm:ssä (java virtual machine), se oli täydellinen minulle, joten aloin opetella koodaamaan clojurea ja pitää hauskaa tehdä sitä, se oli minulle hienoa ajanvietettä.
lisäksi on muita mielenkiintoisia kieliä, kuteneteenpäin, pinokieli, joka perustuu postfix-lauseisiin, joka eroaa kaikista käyttämistäni kielistä ja erittäin mielenkiintoinen.prologse on myös erittäin mielenkiintoinen kieli sinun ei tarvitse kertoa suoraan koneelle, mikä on oikein, vaan anna koneen saada oikea tulos ratkaisemalla se. kaiken kaikkiaan nämä ovat erittäin mielenkiintoisia kieliä, joita kaikkien tulisi tarkistaa, koska ne ovat hyvin ainutlaatuisia.kun opit hyvin erilaisen kielen, se muuttaa koko näkemyksesi koodista。
"uusi ohjelmoija": ymmärrän osan aikaisemmista kommenteistasi ai-koodista. sinun mielestäsi suuret kielimallit ovat joskus hyviä ja joskus typeriä. vaikka tekoälyn koodin selitys auttoi hieman, totesit silti, että siihen ei pitäisi sokeasti luottaa.
bob-setä: kyllä, ohjelmoijaon helppo tulla liian riippuvaiseksi työkaluista, kuten copilot, ja hyväksyä kritiikittömästi niiden luoma koodi, kun näet sen, ja se on vaarallista. sinun on oltava kriittinen, ja vaikka osa tästä koodista on kunnossa, suurimman osan ajasta sinun on oltava erittäin varovainen tekoälyn luoman koodin kanssa. joten ehdotukseni on,ole varovainen, käytä sitä työkaluna ja muista aina, että työkalut voivat vahingoittaa sinua, jos niitä käytetään väärin.
"uusi ohjelmoija": joten ohjelmoijien, jotka ovat vasta alkamassa oppia, kuinka heidän tulisi käyttää tekoälyä kasvaakseen? olen kuullut haastatteluissa kaksi täysin erilaista näkemystä, joista toinen on se, että tekoäly tuhoaa nuoret ohjelmoijat, koska nämä ihmiset eivät pysty arvioimaan tekoälyn laatua.
bob-setä: aivan kuten nuorempien lentäjien ei pitäisi käyttää autopilottia.opettele ensin lentämään lentokone ja käytä sitten autopilottia, kun sinun ei tarvitse kiinnittää huomiota yksityiskohtiin. sama pätee tekoälyyn.nuorempien ohjelmoijien ei pitäisi aluksi luottaa tekoälyyn, koska he eivät vielä osaa arvioida tuloskoodin laatua. usein tämä koodi ei ole vain huono, se on vain väärä eikä toimi ollenkaan.
olen todella huolissani siitä, kun nuoremmille ohjelmoijille annetaan tehtävä ja he päättävät käyttää tekoälyä sen toteuttamiseen. kun tekoäly on antanut koodin, nämä aloittelijat ajattelevat aina: "no, tekoäly antoi sen, sen täytyy olla kunnossa", ja menettävät sitten työpaikkansa. joten ehdotukseni on,sinun tulisi jopa vähentää tekoälyn käyttöä urasi ensimmäisten vuosien aikana。
"uusi ohjelmoija": nykyään eri projekteissa käytetään yhä enemmän tekoälyn luomia koodeja. kuinka tasapainotat koodin laadun ja tuotannon tehokkuuden?
bob-setä: minun tapani tasapainottaa onkäytä tekoälyä koodin luomiseen ensin ja puhdista se sitten. en anna sen tukkia huonoa koodia projektiin. joten jos tekoälyn luoma koodi toimii ja läpäisee testini, palaan takaisin ja refaktoroin, puhdistan ja parantelen sitä epäröimättä. kuten nimeämisen muuttaminen, joidenkin toimintojen purkaminen, rakenteen säätäminen ja niin edelleen.
koska en odota tekoälyn luovan hienoa koodia. joten puhdistan sen ja muutan sen omaksi koodiksi. tällä tavalla se on minun projektini ja kirjoittamani koodi.
"uusi ohjelmoija": noin viisi vuotta sitten joku kysyi sinulta "mitkä ohjelmistosuunnittelun trendit ovat yliarvostettuja", ja sinä kirosi mikropalvelut.onko viiden vuoden kuluttua muita yliarvostettuja trendejä?
bob-setä:yliarvostettu trendi tällä hetkellä on tietysti generatiivinen tekoäly, siitä ei ole epäilystäkään. se on uutta, ja kaikki uusi on yliarvostettua. viiden vuoden kuluttua kaikki katsovat taaksepäin ja sanovat: "olemme luultavasti yliarvioineet sen."
"uusi ohjelmoija": vanha tuttavasi kent beck sanoi jotain, kun tekoälyaalto nousi. hän sanoi käyttäneensä vastahakoisesti chatgpt:tä ja huomasi, että 90 % hänen taidoistaan oli nyt arvottomia, kun taas lopun 10 %:n arvo oli kasvanut tuhat kertaa. kuinka hyödyllistä generatiivinen tekoäly voi olla?
bob-setä: ollakseni rehellinen, en usko, että tekoäly on erityisen hyödyllinen. yksinkertaisimmissa tapauksissa siitä voi olla jonkin verran apua. esimerkiksi kun tein hyvin peruskoodaustyötä, tekoäly antoi minulle koodia, katsoin sitä ja ajattelin, että se oli kunnossa, joten jatkoin sen parissa. silloin tekoäly jatkaa usein toimintaansa kontekstin mukaan, kunnes kun asiat muuttuvat mielenkiintoisiksi, tekoäly muuttuu yhä epäluotettavammaksi...mitä monimutkaisempi jokin asia on, sitä vähemmän siitä on hyötyä。
tekoäly pystyy käsittelemään pieniä asioita, mutta ei ollenkaan, jos haluan sen heijastavan ja parantavan suunnittelua. lisäksi tekoäly ei voi paljoa auttaa testien kirjoittamisessa.
"uusi ohjelmoija": olet sanonut aiemmin, että kestää kauan ennen kuin koodauskoulut vanhentuvat. onko olemassa tietty ajankohta, joka tunnistaa tämän hetken? onko tekniikalla loppua?
bob-setä: tämä on mielenkiintoinen kysymys, mutta ajattelisin sitä tieteiskirjallisuuden näkökulmasta.kun luomme joskus tulevaisuudessa koneita, jotka voivat ajatella ihmisten tavoin, ohjelmointitaidot vanhenevat. mutta olkaamme rehellisiä, silloin kaikki taidot vanhenevat.joten en ole varma, onko sitä odotettavaa. jos se tapahtuu, se on mielestäni hyvin, hyvin kaukana tulevaisuudessa. tiedätkö, ihmisen aivot ovat paljon monimutkaisempia kuin koko internet.
"uusi ohjelmoija": todellakin, tämä muistuttaa minua siitä, että sanoit myös, että kaikkien pitäisi palata asimovin luorobotiikan kolme lakia, vaikka se loisi "robottiorjien" rodun. miten ymmärrät yleisen tekoälyn (agi) filosofisesta näkökulmasta?
bob-setä: kyllä, vaikka uskon, että se on epätodennäköistä saavuttaa lyhyellä aikavälillä, meillä on jo geenitekniikka. jos koskaan luomme tietoisia koneita omaa selviytymistä varten, uskon, että jotain asimovin kolmen lain kaltaista on ehdottoman välttämätön.
"uusi ohjelmoija": tällä perusteella tekoälyn pitäisi ollaavoin lähdekooditämän välttämiseksi? tarvitsevatko ihmiset avointa vai suljettua tekoälyä?
bob-setä: eri yritykset haluavat ehdottomasti pitää omat salaisuutensa, enkä usko, että siinä sinänsä ole mitään väärää.tekoälyn todellinen ongelma on energiankulutus.se kuluttaa paljon energiaa ja lisääntyy edelleen tekniikan kehittyessä. tämä tekee sen kustannuksista melko korkeat. meidän on siis katsottava, kuinka pitkälle tekoäly voi kehittyä tänään, ja katsottava, kuinka hyvin nämä suuret kielimallit voivat pärjätä. ne kuluttavat kuitenkin paljon energiaa, aivan kuten ydinvoimalat.
"uusi ohjelmoija": poistutaan tekoälystä ja puhutaan ihmisten välisistä aiheista.
joku kysyi kerran: "kuka on mentorisi elämässä?", "kirjat ovat minun mentorini." eli kuten tuona vuonnayksi 17 ihmisestä, jotka loivat ketterän manifestin, voitko paljastaa, millainen suhteenne on?
bob-setä: aiemmin meillä oli usein monia ohjelmistoihin liittyviä kokouksia, mutta nyt tällaisia tapaamisia on paljon vähemmän. osallistun erilaisiin konferensseihin, kuten c-kielen konferensseihin, suunnittelumallikonferensseihin ja joihinkin yleisiin ohjelmistokehityskonferensseihin. näiden toimintojen kautta tapasin monia ihmisiä.
tapasin esimerkiksi suunnittelumallikonferenssissakent becktapasi varhaisessa extreme programming -konferenssissamartin fowler. tapasin suurimman osan näistä ihmisistä kasvokkain. he olivat sekä kumppaneitani että mentorejani. he ovat myös kavereitani, ja opimme ja edistymme yhdessä. paljon oppimistani tuli 1960- ja 1970-luvun ohjelmointikirjoista, kuten donald knuthin the art of computer programming -kirjasta, ja tuon aikakauden kirjat olivat minulle erittäin tärkeitä tiedonlähteitä.
joten kun olin noin 30 vuotta urallani, aloin käydä konferensseissa ja tavata ihmisiä kasvokkain, ja juuri tässä ympäristössä perustimmeketterä tapaaminen. suurin osa kettereihin konferensseihin osallistuneista ihmisistä tunsin aiemmin, joko kirjeenvaihdon tai konferensseissa tavattujen ihmisten kautta.
"uusi ohjelmoija": voimme usein nähdä näkökulman, eli "onko ketterä kehitys todella sovellettavissa?"
aikaisemmin monet kehittäjät pyrkivät toimittamaan nopeasti ja jättäneet huomioimatta ohjelmiston laadun. tämä voi olla ketterän väärinkäsitys.
bob-setä: tämä on todellakin ketterän väärinkäsitys. ketterä ei ole nopeampi, vaan sen ymmärtäminen, missä olet. teet ketterää kehitystä, jotta tiedät tarkalleen kuinka paljon edistyt, kuinka nopeasti edistyt ja noudatatko määräaikojasi. toisin sanoen agile on loistava tapa auttaa sinua ymmärtämään, kuinka suurissa vaikeuksissa olet. se varmistaa, että et ylläty, kun määräajat lipsuvat, ja se antaa kaikille selkeän käsityksen edistymisestä, koska emme ehkä ole niin nopeita kuin luulimme.
monet ihmiset uskovat virheellisesti, että ketterä on nopea menetelmä, ja jotkut myös markkinoivat sitä nopeana menetelmänä, mutta tämä on aina väärinkäsitys.agility ei ole tapa tehdä sinusta nopeampaa, se on tapa kertoa sinulle kuinka nopea olet.joten agile ei ole vanhentunut, se ei ole vanhentunut tekniikka. jos haluat tietää projektisi todellisen edistymisen ja valmistumisajankohdan, agile on loistava tapa tehdä se.
"uusi ohjelmoija": yksi twiiteistäsi kosketti minua syvästi, eli "agilityn perusti alun perinkehittäjäaloitettu, muttaprojektipäällikköketterän liikkeen alkuvaiheessa puuttuminen tuhosi alkuperäisen yhteistyösuhteen. ”voitko kertoa tarinan?
bob-setä: todellakin, ketterän liikkeen aloitti alun perin ryhmäohjelmoijaaloitettu. seitsemäntoista osallistujaa tapasi snowbird resortissa luodakseen ketterän manifestin. olemme kaikki ohjelmoijia, tai ainakin meillä on vahva tekninen tausta. tämä liike ei alkanut projektinhallinnan näkökulmasta, mutta yksi perustajista, ken schwaber, päätti aloittaa kurssin nimeltä certificationscrum master(scrum master)" -kurssi. tämä kurssi on suunniteltu kouluttamaan ihmisiä, jotka haluavat tulla scrum masteriksi, ja opettaa heille kuinka auttaa tiimiäscrum menetelmä——tämä on ketterän kehityksen malli.
projektipäälliköt ovat osoittaneet suurta kiinnostusta ja ilmoittautuneet tällaisille kursseille. koska suurin osa osallistujista oli pikemminkin projektipäälliköitä kuin ohjelmoijia, tämä johti alkuperäiseenkehittäjien aloittama liike muuttui vähitellen projektipäälliköiden vetämäksi liikkeeksi.ohjelmoijat olivat tyytymättömiä, koska he kokivat, että heidät suljettiin tämän aloitteen ulkopuolelle.
tämän ongelman ratkaisemiseksi ryhmä meistä aloittiohjelmistojen käsityöliike(software craftsmanship) ja julkaisi craftsmanship manifeston yrittääkseen yhdistää projektipäälliköt ja kehittäjät uudelleen. tällä ei kuitenkaan saavutettu merkittäviä tuloksia.
lopulta erotimme "virallisen ketterän liikkeen", joka keskittyy projektinhallintaan, ja todellisen kehittäjävetoisen ketterän liikkeen. jälkimmäinen on edelleen sitoutunut työskentelemään ytimekkäästi ja määrätietoisesti sekä selkeyttämään asemaansa ja kehityssuuntaansa.
"uusi ohjelmoija": joten mikä merkitys scrum masterin roolilla on? millä tavoin tämä rooli on tärkeä? kuinka kasvatamme erinomaista scrum masteria?
bob-setä: scrum master suunniteltiin alun perin jäseneksi tiimiin, jonka tehtävänä oli muistuttaa muita jäseniä scrum- tai agile-menetelmiä käytettäessä tehdyistä sitoumuksista. velvollisuuksiin kuuluu viikoittainen joukkueen edistymisen tarkastaminen, esimerkiksi sen varmistaminen, että testikoodi on kirjoitettu suunnitellusti ja että ennalta määrättyjä arviointimenetelmiä on noudatettu. tätä roolia vaihdetaan tiimin sisällä, yleensä eri jäsenten kesken. kypsissä tiimeissä useiden viikkojen harjoittelun jälkeen ei tarvita erityistä scrum masteria valvomaan, koska tiimin jäsenet pystyvät jo tietoisesti toteuttamaan vakiintuneen prosessin.projektipäällikön mukana tämä rooli kuitenkin kehittyi vähitellen projektinhallintatoiminnoksi, mikä on kaukana scrum masterin alkuperäisestä tarkoituksesta.tämän seurauksena scrum masterin rooli on nykyään muuttunut merkittävästi.
"uusi ohjelmoija": mainitsit juuri ohjelmiston käsityötaidon tarinan, joka muistutti minua siitä, että allekirjoituksesi twitterissä lukee myös "käsityötaitoa"(käsityö), tämä on hyvin vanha sana, nykyään se pitäisi kääntää "käsityöläisen henki”。
miten tämä sana pitäisi ymmärtää? eikö nykypäivän nopeasti kasvavalla alalla todellakaan ole aikaa keskittyä laatuun? tekoälyn kehittyessä ohjelmistojen toimitus näyttää nopeutuvan. luulen, että tekoäly auttaa, eikö niin?
bob-setä: nämä suuret kielimallit ovat todella mielenkiintoisia työkaluja ja uskon, että niistä on apua ohjelmoijille. mutta ne eivät korvaa ohjelmoijia, eivätkä ne tee kaikkea koodausta. he eivät osaa kirjoittaa koodia, mutta he voivat saada mielenkiintoisia ehdotuksia. niin luulenne ovat hyödyllisiä, mutta eivät tarpeeksi, jotta emme enää tarvitse ohjelmoijia.
mitä tulee käsityötaitoon, se on asennetta, asennetta työhön. paras tapa selittää se on tämä: kun tulet kotiin pitkästä työpäivästä ja katsot peiliin, voit sanoa itsellesi: "tein hienoa työtä tänään ja olen ylpeä työstäni."käsityöläisen tapa käyttäytyä.käsityöläiset ovat tyytyväisiä työnsä laatuun. he ovat ahkeria ja kurinalaisia tuottamaan laadukasta työtä.
tietysti voimme keskustella monista teknologioista ja menetelmistä, kuten testiohjattu kehitys (tdd), yksinkertainen suunnittelu, solid-periaatteet jne. teknologioita ja konsepteja on monia. mutta perusidea on, että voit sanoa itsellesi jokaisen päivän lopussa: "tein hienoa työtä tänään." valitettavasti monet ohjelmoijat menevät kotiin, katsovat peiliin ja tuntevat, että heidän täytyy käydä suihkussa koska heistä tuntuu, että heillä oli huono päivä. he kirjoittivat joukon huonoa koodia vain noudattaakseen määräaikaa, ja heidän täytyy pestä pois nuo pahat tunteet. siitä käsityötaiteessa on kyse – kotiin menemisestä tietäen tehneensä hyvää työtä ja olevansa ylpeä työstään.
"uusi ohjelmoija": kirjasi "the way to clean code" (puhdas koodi) heijastaa myös käsityötaidon periaatetta. keskittyykö puhtaan koodin ns. "tao" enemmän liiketoimintalogiikan toteuttamiseen järjestelmän ohjelmoinnin sijaan? vai eikö näillä kahdella ole eroa?
bob-setä:puhdas koodi on joukko käsitteitä ja tekniikoita, jotka auttavat sinua työskentelemään kuin käsityöläinen, jotta voit palata kotiin ylpeänä työstään.sillä ei ole väliä, toteutatko liiketoimintalogiikkaa vai järjestelmän ohjelmointia. se on vain joukko tekniikoita ja käsitteitä, jotka auttavat sinua tekemään työsi hyvin ja saamaan sinut tuntemaan olosi tyytyväiseksi.
"uusi ohjelmoija": olen huomannut ennen sitä, onko kyseessä kiinan tai yhdysvaltojen kehittäjäyhteisö, monet ihmiset ajattelevat, että puhdas koodi merkitsee paljonabstrakti. joten kuinka voimme välttää kirjoittamasta liian suunniteltua ja liian abstraktia koodia?
bob-setä: kyllä, tämä on hyvin outo ilmiö, koska itse kirjani ei suosittele liiallista abstraktiota, eikä se myöskään kannata paljon abstraktiota. kirja ehdottaa,käytä abstraktioita säästeliäästi ja tarkoituksenmukaisesti, mutta liiallista suunnittelua ei suositella. ilmeisesti jotkut ohjelmoijat uskovat, että missä tahansa muodossaepäsuoraovat kaikki huonoja, he ajattelevat, että ainoa tapa kirjoittaa hyvää koodia on yrittääsuoraan. en ole samaa mieltä tämän näkemyksen kanssa, mielestäni kohtuullinen määrä epäsuoraa ja abstraktiota voi olla hyödyllistä, mutta sinun on oltava erittäin varovainen, koska abstraktio maksaa. käytä siis abstraktiota, kun se auttaa ratkaisemaan ongelman, mutta ole tietoinen sen kustannuksista ja käytä sitä säästeliäästi.
"uusi ohjelmoija": luultavasti tämä on syy miksi sanoit jokin aika sitten, että julkaiset uuden version "code cleanlinesista". voinko ymmärtää sen lähteen tyhjentämisenä? mutta koska päätit suunnitella ja kirjoittaa kirjan kokonaan uudelleen, miksi et antaisi sille uutta nimeä?
bob-setä: kirjan nimen päätti kustantaja. halusin lähinnä toistaa "clean coden" ydinkonseptin, mutta käytin erilaisia ilmaisuja ja tarkensin teemaa eri näkökulmista.
alkuperäinen kirja on kirjoitettu 16 tai 17 vuotta sitten silloiselle yleisölle. ja nyt kirjoitan tätä kirjaa tämän päivän lukijoille. se yrittääratkaise yleisempiä ongelmia tänään. käyttäisin eri kieltä ja ottaisin erilaisia lähestymistapoja, tehden siitä vähemmän ohjeellisen ja informatiivisemman, yrittäen välittää saman asian eri tavoilla. viesti on sama, vain eri tavalla ilmaistu. uskon, että nämä kaksi kirjaa täydentävät toisiaan, ja lukijoiden tulisi lukea ne molemmat.
"uusi ohjelmoija": puhutaanpa uudesta kirjastasi "functional design". ensinnäkin, miksi halusit kirjoittaa tämän kirjan?
bob-setä:toiminnallisen ohjelmoinnin merkitys on kasvanut viimeisen vuosikymmenen aikana. vaikka ihmiset alkoivat kiinnittää huomiota toiminnalliseen ohjelmointiin noin vuonna 2005, se on itse asiassa vanhempi käsite, joka on ollut matemaattisena kielenä vuodesta 1936 lähtien ja yksi varhaisimmista ohjelmointikielistä oli toiminnallinen.
alkuaikoina toiminnalliset kielet olivat kalliita toteuttaa, hitaita ja vaativat suuria määriä muistia. mutta nyt laskentatehon ja muistiresurssien kehitys on tehnyt toiminnallisen ohjelmoinnin kustannuksista lähes mitättömiä. tämä tuo mukanaan toiminnallisen ohjelmoinnin edut, varsinkin kun on kyse monisäikeisestä ohjelmoinnista. toiminnallinen ohjelmointi mahdollistaa monisäikeisen koodin kirjoittamisen murehtimatta kilpailuolosuhteista tai samanaikaisista päivityksistä. tämä johtuu siitä, että toiminnallisella ohjelmoinnilla ei ole määrityslauseita eikä se muuta muuttujien tilaa.
opetellessani clojurea huomasin sen olevan hauska tapa koodata ja ratkaista ongelmia. mielestäni se pitäisi yhdistää muihin työkaluihin, kuten olio-ohjelmointiin ja strukturoituun ohjelmointiin.viime vuosina jotkin artikkelit ovat kuitenkin väittäneet, että toiminnallinen ohjelmointi vastustaa olioohjelmointia ja että olio-ohjelmointi on vanhentunutta. olin eri mieltä tästä näkemyksestä ja päätin kirjoittaa tämän kirjan.
kirjan kansi "functional design: principles, patterns, and practice"
tässä kirjassa käsitellään toiminnallisen ohjelmoinnin, olioohjelmoinnin ja strukturoidun ohjelmoinnin yhteistyötä parempien järjestelmien rakentamiseksi. se alkaa peruskonsepteista, rakentaa vähitellen suunnitteluperiaatteita ja kuvioita ja yhdistää ne lopulta täydelliseksi pieneksi sovellukseksi. toivottavasti lukijat ymmärtävättoiminnallista ohjelmointia ei ole olemassa erikseen, joka toimii kaiken kanssa, jonka olemme oppineet viimeisten 50 vuoden aikana.
"uusi ohjelmoija": olen myös kerännyt paljon kysymyksiä uudesta kirjasta csdn-kehittäjäyhteisöltä, ja useimmat ihmiset ovat kiinnostuneimpia siitä, miksi valitsitclojurescalan sijaan kirjoittaa koodi kirjaan? onko syynä se, että haluat käyttää toiminnallisempaa kieltä, joka ei tue luokkia ja periytymistä, todistaaksesi, että solid-periaatteesi pätevät myös toiminnallisessa suunnittelussa?
bob-setä: osa syytätodellakin. vaikka clojure ei ole "puhdas" toiminnallinen kieli, se on erittäin suotuisa toiminnallisten ohjelmien kirjoittamiseen. on kuitenkin toinen, ehkä tärkeämpi syy, miksi valitsin clojuren, ja se onclojure on hyvin yksinkertainen。
haluan välittää tässä kirjassa ajatuksen toiminnallisesta ohjelmoinnista, en opettaa monimutkaista toiminnallista ohjelmointikieltä. en varsinkaan halua opettaa kieltä, jolla on monimutkaista kielioppia. clojuren syntaksi on hyvin yksinkertainen, eikä siinä ole juuri lainkaan monimutkaista syntaksia. clojuren oppiminen on helppoa, ja voit hallita sen lukemalla clojure-koodin.
joten kun näytän koodia kirjassa, en mene yksityiskohtiin clojuren toiminnasta. sen sijaan selitän joitain peruskäsitteitä ja annan lukijan selvittää suurimman osan muusta. suosittelen myös joitain muita asiakirjoja kiinnostuneiden lukijoiden tutustuttavaksi. mutta kaiken kaikkiaan clojure on erittäin helppo ymmärtää, jotenne lukijat, jotka eivät tiedä paljoakaan clojuresta tai toiminnallisesta ohjelmoinnista, voivat keskittyä enemmän toiminnallisen ohjelmoinnin käsitteeseen ilman, että itse kieli häiritsee heitä.
"uusi ohjelmoija": muistan, että sanoit kerran twitterissä, että jos joku haluaa tulla mainituksi seuraavassa kirjassasi, hän voi lähettää koodinpätkän, joka on heidän mielestään siistein. tapahtuuko tämä usein? kuinka moni yleensä lähettää koodin? voivatko kiinalaiset kehittäjät myös lähettää?
bob-setä:kyllä, twiittasin sen ja sain aika monta vastausta. jotkut ihmiset lähettävät koodinpätkät github-linkkien kautta tai suoraan. luultavasti käytän jotain tästä koodista tulevassa kirjassa.jos kiinalaiset kehittäjät haluavat lähettää koodin, joka on heidän mielestään erittäin siisti, harkitsen sitä mielelläni.mutta en voi luvata käyttäväni kaikkien koodia, koska kirjan pituus on rajallinen, enkä voi laittaa kaikkien koodia siihen.
"uusi ohjelmoija": onko sinulla innovatiivisia ideoita digitaalisiin oppikirjoihin ja verkko-oppimisalustoille? ihmiset näyttävät olevan vähemmän halukkaita lukemaan paperikirjoja nykyään. kuinka nämä uudet muodot mullistavat ohjelmoinnin opetuksen ja oppimisen? miten aiot opettaa ohjelmointia seuraavalle sukupolvelle?
bob-setä:todellakin,elämme nyt digitaalista aikakautta, jossa keskittymisaika on kutistunut alle 20 minuuttiin. mutta jos todella haluat oppia jotain, sinun on hidastettava ja keskityttävä opiskeluun. useita viimeaikaisia kirjojani on tullut mukanavideosisältö, lukijat voivat katsella ohjelmointiistuntojen suoria esityksiä kirjan url-osoitteen kautta. tämä tekstin ja videon yhdistelmä on erittäin tehokas.
lisäksi on olemassa erittäin mielenkiintoinen tapaonline luento. esimerkiksi kun olet lukenut painetun materiaalin, kirja kehottaa sinua vierailemaan tietyllä url-osoitteella katsoaksesi asiaankuuluvan luennon. mielestäni nämä menetelmät ovat erittäin hyödyllisiä.
en usko, että paperikirjojen aika on ohi. ne voidaan muuntaa e-kirjoiksi, pdf-tiedostoiksi tai verkkolukijaversioiksi, mutta oppikirjat eivät katoa. teksti on erittäin korkean informaatiotiheyden omaava väline, joka on tiheämpää kuin videot tai luennot, ja sen avulla on myös helpompi ohjata oppimisen edistymistä. siksi uskon, että erilaisten oppimismuotojen yhdistelmä voi olla tehokkaampi, kun käytetään sekä tekstiä että videota.
"uusi ohjelmoija": kirjasi on tarkoitettu kaikentasoisille lukijoille aloittelijoista kokeneisiin ammattilaisiin. tämä asettaa varmasti erilaisia haasteita sisällön syvyyden ja laajuuden tasapainottamisessa.
bob-setä: kirjani on todella suunnattu monimuotoiselle ihmisryhmälle, sekä aloittelijoille että ammattiohjelmoijille. tärkeintä on tarjota arvoa molemmille lukijoille tekemättä siitä liian vaikeaa sulatella toiselle tai yksinkertaistamatta liikaa toiselle.
opettaessani ja kirjoittaessani oletan, että kuulijani tai lukijani ovat yhtä älykkäitä kuin minä ja ymmärtävät sisällöni. se saattaa vaatia heiltä hieman vaivaa, mutta olen varma, että he ymmärtävät. en muokkaa sisältöä lukijan kykyjen perusteella. välitän viestini suoraan, ikään kuin puhuisin vertaiselleni.
ehkä minulla on enemmän kokemusta, ehkä olen käynyt läpi enemmän ja tehnyt enemmän virheitä. joten voin jakaa kokemuksiani ja tarinoitani. mutta en hidasta tai yksinkertaista sitä liikaa.
"uusi ohjelmoija": miten olet muuttanut ohjelmoinnin opettamistapaa vuosien varrella? mitä uusia lähestymistapoja ja oppitunteja olet omaksunut pysyäksesi mukana kehittyvässä teknologiaympäristössä?
bob-setä: alkuaikoina käytin yleensäkalvoja, ja näytä kurssin sisältö projektorin kautta, yleensä valmistaen suuren filmipinon sisällön näyttämiseksi sivulta sivulta. ajan myötä nyt käytänipadon hauskaa tehdä esitys, kytkeä se projektoriin ja piirtää ipadin näytölle apple pencil -kynällä, ja kaikki näkyy suurella näytöllä reaaliajassa.
covid-19-pandemian aikana aloimme opettaa etäkoulutustyökaluilla, kuten zoom. nyt suurin osa opetuksestani tapahtuu etänä. käytän edelleen diaesityksiä ja näyttöpiirroksia, ja nuo menetelmät toimivat edelleen. ainoa ero on, että etäopetuksessa en näe suoraan yleisön reaktiota, mikä on vähemmän kokemuspuoli hauskaa。
"uusi ohjelmoija": toinen epidemian tuoma muutos on se, että monet ohjelmoijat ovat huolissaan tekoälyn korvaamisesta. näin aiemmin väitteen, että toiminnallisen suunnittelun oppiminen voi auttaa heitä säilyttämään työpaikkansa, voitko tarkentaa sitä?
bob-setä: toiminnallinen suunnittelu ja toiminnallisen suunnittelun kirjojen käsitteet on itse asiassa suunniteltu auttamaan sinua kehittymään kypsemmäksi ohjelmoijaksi.lisää uusia työkaluja "työkalulaatikkoosi". funktionaalinen ohjelmointi on hyvä työkalu, olioohjelmointi on hyvä työkalu, ja strukturoitu ohjelmointi on myös hyvä työkalu. näiden pitäisi olla työkalupakkissasi. testilähtöinen kehitys on loistava työkalu, ja se on parasta olla käsillä. solid-periaatteet ovat myös hyviä ja niiden pitäisi ehdottomasti olla työkalupakkissasi. joten tämän kirjan tarkoituksena on laajentaa kehittäjän työkalupakkia, mikä varmasti auttaa sinua säilyttämään työsi.mutta en usko, että sinun tarvitse pelätä liikaa siitä, että sinut korvataan tekoälyllä. tämä ei todennäköisesti tapahdu minun elinaikanani, eikä se välttämättä tapahdu sinun elämäsi aikana tai ei välttämättä koskaan. minulla on sellainen tunne, ettemme tule näkemään koneita, jotka pystyvät ihmistason älykkyyteen.
"uusi ohjelmoija": mitä tulee toiminnalliseen suunnitteluun ja olio-ohjelmointiin, uskon, että monet ihmiset ovat kysyneet sinulta, kumpi on parempi. mutta haluan kysyä, mitä mieltä oletkummassa nykyinen tekoäly on parempi?soveltuuko toiminnallinen ohjelmointi esimerkiksi paremmin tekoälykoodin luomiseen? sillä ei ole tilaa, funktio voidaan luoda käytettäessä, ja jokainen toiminto voi myös luoda ja varmentaa automaattisesti tekoälyllä. joten jos tekoäly on parempi toiminnallisessa suunnittelussa, kohtaavatko ohjelmoijat, jotka tuntevat vain toiminnallisen ohjelmoinnin, suuremman kriisin?
bob-setä:sillä ei ole väliä, koska tekoäly ei voi tehdä mitään, ja se ei ole parempi luomaan toiminnallista koodia kuin olio- tai strukturoitu koodi.voit ajatella tekoälyä anuoremmat ohjelmoijat, joilla on puolet aivoista eivätkä koskaan kasva aikuisiksi. se antaa sinulle joitain ehdotuksia, joista suurin osa ei ole kovin hyviä, ja osa niistä saattaa olla kunnossa, mutta niitä on muutettava, koska tekoälyn kirjoittama koodi on aina sotkuinen.
tekoäly on mitä se on, ja siitä voi olla apua, mutta sinun ei pitäisi muuttaa urasi suuntaa tekoälyn mukaiseksi. tekoäly on työkalu, ja voit oppia käyttämään sitä, mutta sinun ei pitäisi muuttaa urasuunnitelmiasi vain tiettyä tekoälytyökalua varten.
"uusi ohjelmoija": jos luoksesi tulisi uusi henkilö ja kysyisi: "mikä kieli minun pitäisi valita ensimmäiseksi ohjelmointikieleksi?"
bob-setä: no, voit valita java. c# on myös erittäin hyvä kieli. clojure on myös hyvä. c-kieli on myös saatavilla. c++ on hieman vaikea ja monimutkainen, mutta se on myös vaihtoehto. go-kieli on myös erittäin hyvä, se on hyvä kieli...
itse asiassa, kumman valitset, ei ole niin tärkeää. ohjelmointi on ohjelmointia, sillä ei ole väliä millä kielellä aloitat. mikä tärkeintä, sinun on opittava seuraava kieli. älä pysähdy yhteen kieleen.opi yksi, vietä muutama kuukausi, kunnes olet jonkin verran taitava, sitten toinen, ja niin edelleen, opiskelemalla uusi kieli joka vuosi. ajattele kielen oppimista hauskana ja löydä kieli, jota et ole vielä oppinut. et ehkä koskaan käytä sitä töissä etkä enää koskaan, mutta ota tavaksesi oppia uusi kieli joka vuosi tai kaksi.ei ole väliä mistä aloitat, tärkeintä on, että jatkat oppimista.
"uusi ohjelmoija": suosittelisitko nuorempia ohjelmoijia osallistumaan avoimen lähdekoodin projekteihin? missä vaikuttavissa avoimen lähdekoodin projekteissa olet ollut mukana itse, ja voitko kertoa tarinan?
bob-setä: aloitimme poikani kanssa projektin 20 vuotta sitten, ja se on edelleen käynnissä ja se on hieno projekti. vaikka en ole enää mukana, monet muut jatkavat.
jos olet nuorempi ohjelmoija tai nuori ohjelmoija ja haluat oppia uusia ideoita, suosittelen liittymistä avoimen lähdekoodin projektiin. yritä lähettää vetopyyntöjä ja osallistu siihen, mitä voit. tämä on ensinnäkin loistava tapa auttaa muita ja toiseksi loistava oppimismahdollisuus. joka tapauksessa olet oikeassa, suosittelen ihmisiä osallistumaan avoimen lähdekoodin projekteihin, se on loistava tapa laajentaa uraasi.
"uusi ohjelmoija": tiedätkö "35-kriisistä"? monet ohjelmoijat kohtaavat kaksi tapaa saavuttaessaan tietyn iän: joko siirtyä johtoon tai jäädä eläkkeelle.
bob-setä: tämä on todellinen ongelma, koska teknologia-ala suosii nuoria. itse asiassa eräs kehittäjä kysyi minulta samanlaisen kysymyksen, ja muistan sen selvästi. hänen tarkat sanansa olivat: "setä bob, miksi vielä ohjelmoit 70-vuotiaana." hän on oikeassa, olen nyt 71-vuotias ja kirjoitan edelleen koodia.
tämä ajatus siitä, että ohjelmointi on tarkoitettu vain nuorille, on itse asiassa illuusio, mutta se on todellakin erittäin vaikuttava illuusio. tämä illuusio on olemassa, koska ohjelmoijien kysyntä on kasvanut raketin lailla viimeisen 70 vuoden aikana.
ajattele asiaa näin: joka viides vuosi ohjelmoijien määrä maailmassa kaksinkertaistuu. tämä tarkoittaa, että meidän on tuplattava ohjelmoijien määrä viiden vuoden välein, mikä tarkoittaa, että puolella maailman ohjelmoijista on alle viiden vuoden kokemus ja kolmella neljäsosalla ohjelmoijista alle kymmenen vuoden kokemus. toisin sanoen kolme neljäsosaa maailman ohjelmoijista on alle 35-vuotiaita. joten kun katsot ympärillesi, näet vain nuoria. saatat kysyä, missä ovat kaikki nuo vanhat ohjelmoijat?itse asiassa olemme kaikki edelleen siellä, emme vain niin silmiinpistävästi lukumäärältään.
tämä luo illuusion, että ohjelmointi sopii vain nuorille, mutta tämä on itse asiassa täysin väärin. todella tehokkaaksi ohjelmoijaksi tuleminen kestää kauan kertyä. joidenkin vanhempien ohjelmoijien mielestä on hienoa, että heillä on kymmenen vuoden kokemus. se on todella hyvä, mutta viiden vuoden kuluttua hänestä voi tulla parempi ohjelmoija.
joten jos todella pidät koodin kirjoittamisesta, luulet tämän olevan suosikkisi ja haluat jatkaa sen tekemistä, älä anna periksi. sinun ei tarvitse olla johtaja, jos on ihmisiä, jotka ovat hyviä johtamisessa, anna heidän tehdä se. jos haluat jatkaa koodin kirjoittamista, jatka siinä. sinun ei tarvitse vaihtaa ammattia tai jäädä eläkkeelle varhain. se ei tarkoita, että aivosi eivät toimisi hyvin, kun täytät 36 vuotta. todellakin, tälle alalle tulee nyt niin paljon uusia ihmisiä, eivätkä vain nuoret, vaan kaikenikäiset ihmiset opettelevat ohjelmointia.se ei tarkoita, etteikö sinulla olisi mahdollisuutta.
"uusi ohjelmoija": tämä muistuttaa minua siitä, että monet ohjelmoijat epäilevät nyt itseään kohtaaessaan tekoälyn. mutta itse asiassa epäluulo ei ole mikään uusi asia, ja monilla vanhoilla ohjelmoijilla olisi ollut sama ongelma aikaisempina aikakausina. onko sinulla koskaan ennen ollut itseluottamuksen tunteita?
bob-setä: kun aloitin ohjelmoinnin, olin vielä nuori, minusta tuntui aina, että voisin tehdä itselleni mainetta. minulla ei ollut koskaan epäilystä itsestäni tällä hetkellä.
sen sijaan aloin tehdä virheitä, saada potkut ja kokea muita takaiskuja. itsestään epäilys on tällä hetkellä todella hyvä asia.kohtuullinen itseluottamus on itse asiassa varsin terveellistä. koska jonkin ajan kuluttua sen kanssa oppii selviytymään.ajattelet: "okei, tiedän kuinka välttää nämä virheet. tiedän, etten ole täydellinen, mutta niin kauan kuin keskityn, olen varovainen ja puhun muille, minun pitäisi pystyä korjaamaan nämä ongelmat hitaasti." tulee will voittamaan nuo itseluottamukset. itse asiassa itseepäilyn ajanjakson läpikäyminen ei välttämättä ole huono asia. sen avulla voit kasvaa ja tulla vahvemmaksi.
"uusi ohjelmoija": lopuksi, voitko antaa neuvoja nykyisille kehittäjille? varsinkin ne ohjelmoijat, jotka ovat hämmentyneitä tai jotka ovat hukassa tekoälyohjelmoinnin suhteen.
bob-setä:jos et tiedä mitä tehdä, kun kohtaat tekoälyohjelmoinnin, sammuta tekoäly. jätä se huomioimatta.vietä toinen kuukausi koodin kirjoittamiseen itse ja ota sitten tekoäly käyttöön. ehkä se sitten tarkastelee koodiasi ja näkee, mitä haluat tehdä, ja sitten se pystyy antamaan parempia ehdotuksia.
kuvittele esimerkiksi, että olet aloittelija, joka opiskelee ajamaan. et ole koskaan koskenut ohjauspyörään, ja haluat käyttää automaattiajoa heti, kun aloitat. heti kun painat autopilotia, saatat pelätä kuoliaaksi: "minun täytyy ensin sammuttaa tämä. anna minulle kokemusta, kunnes opit ajamaan." ajattele: "voi, nyt ymmärrän, kuinka tämä asia toimii, sitten voit hyödyntää sitä paremmin."sama pätee tekoälyyn. se ei ehkä ole aluksi sujuvaa, mutta edetessäsi sinusta tulee yhä taitavampi.