Quan vas a un bar amb un amic que treballa en IT, inevitablement acaba discutint els assumptes actuals de la indústria.just a few general observations we both made:
-
besides the usual impostor syndrome that many software developers have, there's also a lot of anxiety about all the chatter around AI taking over jobs
-
leaders and managers can’t help but get into conversations about how much of a performance boost (and when) to expect from developers, whether it’ll be x10, x40 or x200
-
at the same time, the push for AI adoption makes both tears and laughter
-
everywhere you look, you can find many near-absurd product features that use AI only to justify that it is from an AI-first company
-
drought and nervous foot tapping are common in the startup world, yet discussing them is often considered bad form
-
hiring is becoming increasingly difficult for everyone, especially for people just starting out in their careers
One of the biggest concerns about the impact of hype surrounding AI is that it could discourage new people from entering the software development industry.
"Això ja no és un treball creatiu; aprendre a desenvolupar programari avui és una estafa per als ximples; el joc s'ha resolt" (aquest tipus de rumors).
"This is no longer creative work; learning software development today is a scam for fools; the game is solved" (this kind of rumors).
"Ara ja no és un treball creatiu; aprendre a desenvolupar programari és una estafa per als ximples; el joc s'ha resolt"
Per mantenir avançada la indústria tecnològica, és essencial transferir el coneixement de com funcionen les coses i ajudar els nouvinguts a adquirir les habilitats que necessiten per mantenir tot funcionant sense problemes i avançar encara més la tecnologia (Jonathan Blow va expressar bé aquesta ideaen el seu discurs).
No obstant això, per a mi, s'assembla al desenvolupament web d'al voltant de 2008 a 2014 en comptes del boom de PC dels anys 80 (una expansió, en lloc d'una categoria completament nova).
En aquell moment, hi havia tones de maneres d'aconseguir els fonaments. Cada setmana, se sentia com si estiguéssim provant una nova manera de fer les coses. És similar a l'enginyeria d'IA actual, on una nova eina, model, enfocament, referència, marc o empresa emergeix setmanalment, afirmant que estan a punt de revolucionar tot.
No és una ofensa, però per a mi, eines comDevinÉs molt com el queProgramació Adobe DreamweaverVa ser per al desenvolupament web el 2010.
On estem ara
El desenvolupament de programari ha estat al voltant durant més de 70 anys. Des de llavors, el món ha sofert nombrosos canvis. Anem a fer una ullada a una breu descripció de com ha evolucionat al llarg dels anys.
Aquí teniu aVersió completade la imatge de dalt.
Com podeu veure, el nostre camp està evolucionant contínuament cap a una major abstracció i mètodes més automatitzats per gestionar la creixent complexitat.Cada nova època aporta noves idees que ens ajuden a gestionar els problemes anteriors, alhora que ens empeny més enllà en la hiperspecialització i els equips més petits, proporcionant-nos més maneres de recollir el feedback més ràpidament.
What complexities are we facing in the 2020s (so far)?
- Supply chain security
- modern software development relies on numerous third-party components, with even simple applications often incorporating thousands of them, each posing a potential security risk that could compromise the entire application
- Observability data overload
- metrics, logs, and traces generate vast amounts of data daily, but pinpointing the root cause is becoming increasingly challenging because dashboards display everything yet explain nothing (debugging is still hard)
- Configuration management
- use of IaC, feature flags, env variables, and secrets has created massive configuration spaces that are hard to validate
- AI/ML integration complexity
-
integrating AI components with traditional software is still quite challenging, as SOTA and toolchains change every two weeks, and approaches evolve even faster
-
Replacing software developers with AI agents can't be a solution for any of today's complexities.
A few things to watch for:
-
AI tooling consolidation
-
commoditization of AI workflow creation
-
even better ways of distributing software
-
changes in the way we build software that cultivate higher quality as consumer expectations rise due to software abundance
Aposta pel desenvolupament de programari
La generació de codi va ser un excel·lent cas inicial per als LLM, ja que tenia prou dades obertes per fer-ho funcionar i un enorme efecte wow que va fer que tothom parlés sobre això.
No obstant això, hem de suposar que les capacitats dels LLM per generar codi només millorarà amb el temps (Com sembla aixòa serLa seva característica més fortaper abordar els seus problemes actuals (com araLongitud ràpida que impacta en el rendimenti així successivament).
The effect of AI on cutting costs might be tricky, as everyone has the same chances to optimize. What's most likely to happen is that AI will make the whole pie bigger.
Què va passar quan la majoria de la gent va aprendre a llegir, escriure, imprimir, publicar, i finalment compartir el seu treball en línia amb tot el món? Què va passar quan la majoria de la gent va tenir la capacitat de disparar, editar, afegir filtres i efectes, i després publicar-lo per a tothom a veure (o comprar i veure més tard)?
Una gran quantitatCoses salvatgesPerò escolteu-me: els autors, els cineastes i els professors encara estan al voltant i en alta demanda (especialment els excel·lents).
Sembla que anem cap a una situació similar als primers dies de la Web, quan tothom va començar a crear llocs web per si mateixos. Això elevarà la barra per a empreses i particulars (com ho va fer amb llocs web i aplicacions web), portant nous diferenciadors, eines i enfocaments i introduint nous requisits per als desenvolupadors.
En altres paraules, m’agraden les idees expressades amb bellesa en els articles recents: “El final de la programació tal com la coneixem“I”IA i programació: l'inici d'una nova era» »
So, what is next?
Tindrem una plataforma "IKEA" que proporcioni un contenidor d'aplicacions amb totes les característiques bàsiques, permetent-li demanar a un assistent d'IA que desactivi les característiques que no necessita i afegir-hi les característiques que desitja, i després ajustar-la manualment?
O la criptografia finalment proporcionarà una millor web per a tothom (potser fusionat feliçment amb els principis locals)?
O serà un flux de treball d'IA amigable al nivell d'Excel per a tothom?
Redissenyarem els serveis existents i crearem nous per satisfer les necessitats dels que semblen ser nous actors: la comunitat (o xarxa) i els agents d’IA?
Si realment hem entrat en una nova fase de l'espiral de desenvolupament de programari, molt canviarà, i encara més emergirà.
Una invitació
En un entorn on afegir més codi és barat, un excel·lent desenvolupador de programari sembla més com un mag clàssic que un enginyer clàssic.
Estan envoltats de llibres antics (Els grans blaus, els verds i els dracs, etc.), sempre porten un llibre de màgia amb ells (els seus patrons i principis arquitectònics preferits, les millors pràctiques), parlen un llenguatge estrany (abreviatures, acrònims, lexicons), dibuixen algunes il·lustracions esotèriques (diagrams), connecten alguns punts al paper (interfícies), i una vegada fet això, diuen "generar i córrer" (abracadabra).
Els desenvolupadors d'avui tenen eines molt més avançades, i els nouvinguts seran una generació de desenvolupadors que poden aconseguir significativament més per si mateixos que totes les generacions anteriors de desenvolupadors.
Però això encara s’ha d’entendre i aprendre a utilitzar.
Some things can significantly enable you on this journey:
-
When code is generated, it will eventually lack evident vulnerabilities and be validated against requirements using automated tests.
- Your job is to ensure that the code is maintainable (this makes it easier for both machines and humans to troubleshoot and extend the codebase).
-
You need to understand, appreciate, and delve into the fundamentals of software architecture and the core principles of computer science.
- The best way to go is to a) study hard, b) build from scratch, and c) revise and exercise (regularly).
-
The programming languages won't matter much, but mastering two languages - a dynamic, high-level one and a static, low-level one - will give you enough opportunities to practice all the essential concepts and broaden your perspective.
Suposem que les coses no van bé per a la indústria. En aquest cas, sempre es pot trobar una feina enEl govern dels EUALa nostra apostaEn molts Altres LlocsAixí mateix) oMolts bancs, ja que es basen molt en bases de codi escrites en el llenguatge de programació COBOL (Llenguatge mort als anys 80A banda de les bromes, mentre que la indústria tecnològica s'està movent increïblement ràpid, el ritme d'adopció de la tecnologia en altres indústries i els seus processos de contractació sovint semblen congelats en el temps (per exemple, Windows XP, Excel, Fortran, Perl).
La gent també es resisteix al canvi.Aquí és on la manca d'experiència d'un nouvingut sovint funciona al seu benefici.Molta gent (sobretot amb edat) troba difícil:
- Superar patrons aprenents i reforçats de comportament i preconcepcions.
- Prendre riscos per renunciar a alguna cosa que va funcionar per a ells per provar alguna cosa nova.
- Dedicar una quantitat suficient de temps i energia per aprendre i practicar aquesta nova cosa de manera consistent.
Heads-up per a novells
Mentre que les analogies històriques poden ressonar amb la realitat contemporània, no podem enganyar-nos a nosaltres mateixos.La realitat és complexa i dinàmica, mentre que la història és estàtica i contextual.
Many people will likely attempt to automate software development tasks, i és segur dir que la generació de codi millorarà amb el temps.
Vostè ha de suposar que el mercat és volàtil, i pot ser més difícil de trobar una bona feina, o es pot perdre durant una altra onada de retallades de costos.
És gairebé segur dir quesoftware development shouldn't be your end goalVeure-ho com un mitjà per arribar a un fi, ja sigui en la ciència, en els negocis, en l’art, en el periodisme o en qualsevol altre lloc.
Ser un nouvingut en la indústria del desenvolupament de programari avui en dia és tot sobre l'agència personal. Voleu escapar d'aquesta posició, així que comenceu a fer la vostra feina de nivell següent tan aviat com sigui possible.
The great way to prepare for it is to:
- Aprendre conceptes avorrits però que permeten que tothom ignori perquè són avorrits
- Troba un amic o una comunitat que coincideixi amb el teu tipus d'energia i entusiasme
- Utilitzar les eines d’IA per aprendre i prototipitzar des del primer dia
- pràctica, pràctica i pràctica
El que farà una gran diferència és el desig d'aprendre i entendre el negoci darrere dels productes que estàs construint (els seus clients, processos, problemes i oportunitats). aprendre a comunicar-se amb les persones, identificar les seves necessitats, omplir les bretxes en el context, prototipar una solució, refinar-la amb una arquitectura millorada i col·laborar amb la IA per construir-la.
En algun moment (però no tingueu pressa), té sentit desenvolupar una especialització en una àrea específica. prestar atenció a les coses que us exciten (o la ira) i tractar d'anar més profundament en ells.
Següent
L’IA no aporta noves maneres de pensar i creativitat, sinó que exposa llocs on és necessari el pensament real i la creativitat, omplint fàcilment el buit amb simulacions d’això en altres àrees.
El desenvolupament de programari no farà que tothom sigui feliç. Si teniu aquesta energia de constructor i un apetit seriós per explorar i aprendre, heu d'anar-hi!
En tot cas, us desitjo tot el millor en el vostre viatge.
P.S. Si t'ha agradat aquest post, si us plauconnecting with me on X or Linkedin.
XLinkedin