Wanneer jy na 'n kroeg gaan met 'n vriend wat in IT werk, eindig jy onvermydelik met die bespreking van huidige sake in die bedryf.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.
"Dit is nie meer kreatiewe werk nie; die leer van sagtewareontwikkeling vandag is 'n bedrog vir dwaas; die spel is opgelos."
"This is no longer creative work; learning software development today is a scam for fools; the game is solved" (this kind of rumors).
"Dit is nie meer kreatiewe werk nie; die leer van sagtewareontwikkeling vandag is 'n bedrog vir dwaas; die spel is opgelos."
Om die tegnologie-bedryf vorentoe te hou, is dit noodsaaklik om kennis van hoe dinge werk te oordra en om nieuwkomers te help om die vaardighede te verkry wat hulle nodig het om alles soepel te hou en die tegnologie verder te bevorder (Jonathan Blow het hierdie idee mooi uitgedrukIn sy gesprek).
Ek koop die idee dat ons aan die begin van 'n beduidende verskuiwing in ons bedryf is. Tog lyk dit vir my soos webontwikkeling van rondom 2008 tot 2014 eerder as die PC-boom van die 1980's ('n uitbreiding, eerder as 'n heeltemal nuwe kategorie).
Elke week het dit gevoel asof ons 'n nuwe manier probeer om dinge te doen. Dit is soortgelyk aan huidige AI-ingenieurswese, waar 'n nuwe instrument, model, benchmark, raamwerk of maatskappy elke week verskyn, beweer dat hulle alles gaan revolusioneer.
Geen belediging nie, maar vir my, gereedskap soosveronderstelDit is baie soos watGebruik Adobe DreamweaverDit was vir webontwikkeling in 2010.
Waar is ons nou
Die ontwikkeling van sagteware is al meer as 70 jaar. sedertdien het die wêreld baie veranderinge ondergaan. Kom ons kyk na 'n kort beskrywing van hoe dit in die loop van die jare ontwikkel het.
Hier is 'nVolledige grootte weergawevan die foto hierbo.
Soos u kan sien, ontwikkel ons veld voortdurend na groter abstraksie en meer outomatiese metodes vir die bestuur van toenemende kompleksiteit.Elke nuwe era bring nuwe idees wat ons help om vorige kwessies te bestuur, terwyl ons verder in hiperspecialisasie en kleiner teams dryf, wat ons meer maniere bied om terugvoer vinniger te versamel.
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
Bet op die ontwikkeling van sagteware
Kode-generasie was 'n uitstekende vroeë geval vir LLM's, aangesien dit net genoeg oop data gehad het om dit te laat werk en 'n groot wow-effek wat almal daaraan laat praat.
Dit is onmoontlik om presies te sê hoe dinge sal plaasvind. ons moet egter aanvaar dat die vermoëns van LLM's om kode te genereer, slegs met verloop van tyd sal verbeter (Soos dit lykom te weesSy sterkste kenmerkom sy huidige probleme (soos dieSnelle lengte wat die prestasie ernstig beïnvloeden so aan).
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.
Wat het gebeur toe die meeste mense geleer het hoe om te lees, te skryf, te druk, te publiseer, en dan uiteindelik hul werk aanlyn met die hele wêreld te deel?
'n baie vanWilde dingeMaar luister my uit: skrywers, filmmakers en onderwysers is nog steeds rondom en in hoë vraag (veral die uitstekende).
Dit blyk dat ons op pad is na 'n soortgelyke situasie as in die vroeë dae van die Web toe almal begin om webwerwe vir hulself te skep.Dit sal die bar vir besighede en individue verhoog (soos dit met webwerwe en webprogramme gedoen het), bring nuwe differentiators, gereedskap en benaderings en stel nuwe vereistes vir ontwikkelaars.
Met ander woorde, ek hou van die idees wat pragtig in onlangse artikels uitgedruk word: "Die einde van programmasie soos ons dit ken“en”AI en programmering: die begin van 'n nuwe era“Ons
So, what is next?
Sal ons 'n "IKEA" -platform hê wat 'n app-container met al die basiese funksies verskaf, wat jou toelaat om 'n AI-assistent te vra om funksies wat jy nie nodig het, te deaktiveer en die funksies wat jy wil by te voeg, dan handmatig te verfijn?
Of sal crypto uiteindelik 'n beter web vir almal lewer (miskien gelukkig saam met plaaslike eerste beginsels)?
Of sal dit Excel-vlak-vriendelike AI-werkstrome vir almal wees?
Sal ons bestaande dienste herontwerp en nuwe skep om te voldoen aan die behoeftes van wat lyk as nuwe akteurs: die gemeenskap (of netwerk) en die AI-agente?
As ons regtig 'n nuwe fase van die sagteware-ontwikkelingsspiraal ingegaan het, sal baie verander, en selfs meer sal opduik.
'n Uitnodiging
In 'n omgewing waar byvoeging van meer kode goedkoop is, lyk 'n uitstekende sagtewareontwikkelaar meer soos 'n klassieke magie as 'n klassieke ingenieur.
Hulle word omring deur antieke boeke (Die Groot Blou, Die Groen en Die Draak, ens.), hulle dra altyd 'n spellboek saam met hulle (hulle gunsteling argitektuurlike patrone en beginsels, beste praktyke), hulle praat vreemde taal (kortings, akronieme, lexikon), hulle teken 'n paar esoterieke illustrasies (diagramme), verbind 'n paar punte op die papier (interfaces), en sodra dit gedoen is, sê hulle "genereer en loop" (abracadabra).
Vandag se ontwikkelaars het baie meer gevorderde gereedskap, en nuutkomers sal 'n generasie van ontwikkelaars wees wat aansienlik meer op hul eie kan bereik as al die vorige geslagte van ontwikkelaars.
Maar dit moet nog verstaan en geleer word hoe om dit te gebruik.
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.
Stel dat dinge nie goed gaan vir die bedryf nie.In daardie geval kan jy altyd 'n werk kry inDie Amerikaanse regeringDie weddenskapIn baie ander plekkeook) ofBaie banke, aangesien hulle sterk vertrou op codebase wat in die COBOL-programmeertaal geskryf is ('n Dode taal in die 80'sGrap aan die kant, terwyl die tegnologiebedryf ongelooflik vinnig beweeg, lyk die tempo van tegnologie-aanvaarding in ander bedrywe en hul aankoopprosesse dikwels bevrore in die tyd (bv, Windows XP, Excel, Fortran, Perl).
Mense weerstaan ook verandering.Dit is waar 'n nieuwkomer se gebrek aan ervaring dikwels in hul voordeel werk. Baie mense (vooral met ouderdom) vind dit moeilik om:
- Oorkom geleerde en versterkte patrone van gedrag en vooroordeel.
- Neem risiko's deur iets op te gee wat gewerk het vir hulle om iets nuuts te probeer.
- Gee voldoende tyd en energie om die nuwe ding konsekwent te leer en te oefen.
Heads-up vir nieuwkomers
Terwyl historiese analoë met hedendaagse werklikheid kan resoneer, moet ons onsself nie mislei nie. Die werklikheid is komplekse en dinamiese, terwyl geskiedenis statiese en kontekstuele is.
Many people will likely attempt to automate software development tasks, en dit is veilig om te sê dat kode-generasie met verloop van tyd sal verbeter.
Jy moet aanvaar dat die mark volatiel is, en dit kan moeiliker word om 'n goeie werk te vind, of jy kan dit verloor tydens 'n ander kostebesparende ontslaggolf.
Dit is amper veilig om te sê datsoftware development shouldn't be your end goalSien dit as 'n middel tot 'n doel, of die doel in wetenskap, besigheid, kuns, joernalistiek of elders is.
As 'n nieuwkomer in die sagteware-ontwikkelingsbedryf vandag is dit alles oor persoonlike agentskap. Jy wil hierdie posisie ontsnap, so begin om jou volgende vlak werk so gou as moontlik te doen.
The great way to prepare for it is to:
- leer vervelige maar toelaat konsepte wat almal ignoreer omdat hulle vervelig is
- Vind 'n vriend of gemeenskap wat ooreenstem met jou tipe energie en entoesiasme
- gebruik AI-tools vir leer en prototyping vanaf dag één
- Praktyk, praktyk en praktyk
Wat 'n groot verskil sal maak, is die begeerte om die besigheid agter die produkte wat jy bou te leer en te verstaan (sy kliënte, prosesse, probleme en geleenthede). Leer om met mense te kommunikeer, hul behoeftes te identifiseer, gapings in konteks te vul, 'n oplossing te prototypeer, dit te verfijn met verbeterde argitektuur, en saam met AI om dit te bou.
Op 'n punt (maar moenie haastig wees nie), is dit sinvol om 'n spesialisering in 'n spesifieke gebied te ontwikkel. Let op dinge wat jou opwind (of woede) en probeer om dieper in hulle te gaan.
Volgwoord
AI bring nie nuwe maniere van denke en kreatiwiteit nie.Dit blootstel plekke waar werklike denke en kreatiwiteit nodig is, maklik vul die vakuum met simulasie daarvan in ander gebiede.
Software-ontwikkeling sal nie almal gelukkig maak nie. As jy daardie bouer-energie en 'n ernstige eetlus het om te verken en te leer, moet jy dit doen!
Alhoewel, ek wens jou al die beste op jou reis.
Die
P.S. As jy hierdie artikel geniet, neem assebliefconnecting with me on X or LinkedIn.
XDie Linkedin