1hitsong@lemmy.ml
on 24 Dec 2024 14:35
nextcollapse
Yeah, that tracks.
At work someone estimated adding a section of static content to a page that uses React as 3 story points.
They were searching for components that would style the header and paragraph elements just as they wanted them, but were coming up short.
Instead I simply added it with html elements and a couple of lines of CSS.
5 minutes. Done.
đ
NocturnalMorning@lemmy.world
on 24 Dec 2024 14:53
nextcollapse
I swear this isnât a get off my lawn post
Proceeds to spend 5 paragraphs complaining about what people call the original Javascript. He has some valid points, but this is very much an older developer complaining about the new generation of devs.
The new generation of devs sadly has a lot of people that only can type what they want to achieve into ChatGPT and blindly copy whatever code snippet it comes up with. But they canât develop. Nor do they understand code written by others. Theyâre the reason things like NodeJSâs is-even package exists.
NocturnalMorning@lemmy.world
on 24 Dec 2024 15:37
nextcollapse
This is a generalization that has some merit. but ultimately, generalizing an entire group of people and making assumptions about them isnât a good way to judge an individuals ability to code.
You must have missed the part where I said a lot of people, not all of them. There are people calling themselves âdeveloperâ that shine during the hiring process, but then canât implement a random feature if thereâs no ready-to-use library for it.
However, this doesnât mean that there still arenât lots of actual developers around, that know what theyâre doing and can actually code in an actual programming language.
potatopotato@sh.itjust.works
on 24 Dec 2024 20:46
collapse
If you want to play true Scotsman, the embedded devs like to make fun of the web devs for being scared of bitfields and refusing to do logic with anything other than string matching and manipulation.
.
.
.
Secretly itâs partially because weâre absolutely terrified of strings in any form and simply refuse to use them.
There are a lot of sub disciplines to the field, some benefit a lot from GPT or blindly copying from SA, some donât, but thatâs ok either way. Keep your skill sets broad and youâll survive.
Vincent@feddit.nl
on 24 Dec 2024 16:28
nextcollapse
Published 8 years ago
I didnât know that the new generation of developers were that far along in their careers already.
theneverfox@pawb.social
on 24 Dec 2024 17:44
nextcollapse
Weâve been saying that about new devs since there became a second generation of devs
Except when I was a new dev, it was blindly copying stuff from stack overflow
In Phaedrus, Socrates talks about the invention of writing:
âit will introduce forgetfulness into the soul of those who learn it: they will not practice using their memory because they will put their trust in writing, which is external and depends on signs that belong to others, instead of trying to remember from the inside, completely on their own. You have not discovered a potion for remembering, but for reminding; you provide your students with the appearance of wisdom, not with its reality. Your invention will enable them to hear many things without being properly taught, and they will imagine that they have come to know much while for the most part they will know nothing. And they will be difficult to get along with, since they will merely appear to be wise instead of really being so.â
Static_Rocket@lemmy.world
on 24 Dec 2024 20:18
collapse
This isnât the new generation of devs. This is just new devs. Some people refuse to grow out of this stage.
mesamunefire@lemmy.world
on 24 Dec 2024 20:32
nextcollapse
Iâve heard of the term âexpert beginnersâ.
limer@lemmy.dbzer0.com
on 25 Dec 2024 05:25
collapse
New devs generally suck, I sucked a lot.
The problem I fear today is that there are more crutches new devs can rely on, until they canât.
And itâs not a sharp boundary between getting by and not being able to work it
rayquetzalcoatl@lemmy.world
on 25 Dec 2024 10:50
nextcollapse
More crutches is definitely a problem. Personally, after vocally refusing to use chatgpt for months, my boss has now sat me down and told me to use it because it âhalves his development timeâ.
My colleague and boss use it constantly. Guess whose job has become mostly debugging their code when they canât get it to work and donât know why?
limer@lemmy.dbzer0.com
on 25 Dec 2024 12:18
collapse
That is very frustrating !
Croquette@sh.itjust.works
on 25 Dec 2024 12:56
collapse
The main issue is that not a lot of companies want and do take the time to train less experienced devs. Every company is expecting new hires to be trained already.
So many new devs need to scrape by with whatever means they have. And it is true is a lot of industries.
limer@lemmy.dbzer0.com
on 25 Dec 2024 13:24
collapse
College computer programming programs normally do not train people to immediately work, unless the students spend thousands of hours coding on their own. Most comp sci students avoid this.
So, when a new dev graduates and they did not do that extra work, then the first year of paid work is them putting in those hours while being paid rather than doing it for free
Croquette@sh.itjust.works
on 25 Dec 2024 17:46
collapse
I am not in the US, so I cannot compare, but people here that go to college equivalent explicitly learn to code.
When people go into computer science at University, they are decent coders and can do a lot of things out of school.
limer@lemmy.dbzer0.com
on 25 Dec 2024 20:06
collapse
People learn to pass tests, and do computer labs. They have hands on experience in several computer languages. But that is a far cry from what is really needed.
Probably most schools give the fundamentals regardless of country.
Canât tell who has talent until they try to work a lot; often the people who do not code on their own are not very good, period
I think a student should at least do a few hours average work each week on their own projects , regardless of tech stack. It really shows after 4 years.
itâs like night and day between those that do this as a hobby and go to school ; verses the people who pass tests and do group projects in the labs but donât do anything outside of what is required.
Croquette@sh.itjust.works
on 26 Dec 2024 01:20
collapse
The trend we see in programming is the same trend we see in many sectors. There is a spectrum of skills, and unfortunately, we only talk about the bad programmers and not the good ones.
The reality is that your company probably donât pay for top skills, so they get what they pay for. The pool of worker is spread thin, so the only thing left is the bad programmer.
So diploma mills churn out a maximum of workers to cash in on the situation.
criss_cross@lemmy.world
on 25 Dec 2024 16:15
collapse
I dunno some of these feel like fundamentals that any web dev should know.
Youâre gonna have headaches down the road if you donât know hiw static html works.
frezik@midwest.social
on 26 Dec 2024 18:18
collapse
I heard of some people having trouble getting their head around React. I didnât, and I thought it was because I had a pretty good foundation in functional programming. Reactâs magic is transparent if you understand things like first order functions and immutable data.
Now I wonder if the disconnect was even more fundamental.
passiveaggressivesonar@lemmy.world
on 24 Dec 2024 17:32
nextcollapse
Holding their hand through one page in vanilla JS is a great investment in your junior dev if this is an issue
techt@lemmy.world
on 24 Dec 2024 18:57
nextcollapse
I thought ambagious was a typo of ambiguous. New word day!
mox@lemmy.sdf.org
on 24 Dec 2024 22:33
nextcollapse
One can argue that any programming is computer science,
One could argue that, but I think it would be a weak argument.
Keeping within the subcategory of software, I think of computer science as the theoretical side and programming as the practical side. The same distinction is sometimes made in other fields, like physics.
Seems to me that the author saw a show written by people with a narrow and shallow understanding of the field. For better or for worse, it happens on TV all the time. If he wants to demonstrate a widespread disconnect in the software community, there are probably better examples out there.
AnarchistArtificer@slrpnk.net
on 25 Dec 2024 10:03
nextcollapse
(disclaimer: I havenât read the article, Iâm just replying to you because your comment was interesting)
I think your theoretical vs practical framing is useful, but as a (non-computer-)scientist, I find it fascinating to consider how a biomedical scientist uses programming compared to someone whose background is much more grounded on the compsci/IT/programming side.^[1]
[1]: I sometimes joke that, compared to many of my scientist colleagues, I am an exceptional programmer, and this says a lot about the average quality of the code that scientists tend to write when they donât have much dedicated training or experience in programming
Croquette@sh.itjust.works
on 25 Dec 2024 17:43
collapse
Scientists write code that works for them, so thatâs fine if the code isnât optimized.
When your software is your product, then it needs to be much more optimized.
AnarchistArtificer@slrpnk.net
on 25 Dec 2024 22:46
collapse
Itâs not fine if the code needs to be used by other scientists though, which it often will be, even within the same research group. I have a friend who worked in a lab where one of their PhD students wrote a bunch of helpful code that was an unmaintainable mess that ended up breaking a lot of work flows at some point a year or so after the creator of it had left. It was kludge upon kludge upon kludge, and the thing that finally broke seemed to be dependency related, but I couldnât figure out what the hell was going on with it (I was asked to take a look).
Thereâs a lot of duplicated effort in science. Scientists tend not to think about stuff like software ecosystems unless theyâre in a subfield that has been doing computational stuff for a long while, like bioinformatics. When it comes to code, thereâs a lot of inventing the wheel from scratch and that leads to weird square wheels that work good enough to then have more code built on top of them. Software might not be scientistsâ product in the same way as it is for IT people, but it often
ends up being a part of the wider product of methodological reproducibility
magic_lobster_party@fedia.io
on 26 Dec 2024 11:40
collapse
Writing maintainable code is an art form. Like most art forms it can mostly only be learned by practice. So if you donât have much experience maintaining long lived systems, itâs difficult to know what works and what doesnât. Most universities donât teach this as well, so itâs mostly something people learn in the industry.
Then I believe thereâs also some aspect of pride in writing overly complicated code. Itâs the belief that âother people canât comprehend my code because theyâre not as smart as meâ, when itâs actually âI suck at writing comprehensible codeâ.
magic_lobster_party@fedia.io
on 25 Dec 2024 16:09
collapse
Yeah, computer science is the more about theoretical side of computation and the analysis of algorithms. For example, proving that a certain algorithm is a solution to a problem and has a particular time complexity. Thatâs more mathematics than practical programming.
QuazarOmega@lemy.lol
on 26 Dec 2024 11:18
nextcollapse
When they said that it wouldnât be a âget off my lawnâ post, I was like âoh no, itâs 100% going to be thatâ, but then I read, sympathised and⌠Iâd actually offer to get the people in the examples off the authorâs lawn on their behalf, because they were just so disappointing.
Though, to be fair, this was pretty much a problem in the superficiality of the frontend development circle that maybe was taught just that from the beginning, so they conflate notions of computer science with the language they use most, because there was no formality in their approach to learning, which is sort of a good thing IMO, because itâs way more effective at making you productive fast and knowing where to put your hands. Just that, after that, one shouldnât pretend to have the understanding necessary to pronounce on topics they actually havenât dug into, they, as I, and anyone for that matter, should delve into them first to know what theyâll be talking about.
What the author identifies as âdeveloper disconnectâ I think is ultimately a product of the popularisation of coding beyond the academic setting, when you learn on your own, you can have several holes at the base of your knowledge, holes that would be glaring to someone that took a more standard path to learning, but that werenât limiting enough to impede their advancement and that is hardly ever addressable, because still, when youâre on your own, you have the (blessed) choice to skip everything you donât care about, until you need it at least, if you ever do
rowanthorpe@lemmy.ml
on 26 Dec 2024 14:19
collapse
I long ago stopped getting caught up in âthat discussionâ about recent trends despite a stream of people lobbing leading questions to get the ball rolling. Because I also try to not do so more rudely than necessary, I have developed several diplomatically worded (or at least ambiguous enough to float opaquely off to the side of the offense spectrum) ways of essentially saying the following: The simplest and cheapest way of [A] learning the âcomputer scienceâ end of software is by becoming proficient in Lisp, [B] learning the âengineeringâ end of software by becoming proficient in Forth, [C] learning how âbusyworkâ is a dangerous and demoralising thing to confuse with âactual workâ by maintaining some Java code, [D] learning how insidious and self-sabotaging âexpert beginner syndromeâ is by reading a lot of the relevent code-reviews and blogposts when maintaining Javascript & Python projects, [E] learning how mob-mentality and populism can lead to selective blindness and architectural stubbornness by working with large volumes of C & C++ code, [F] learning how it is all really abstraction-layers over something akin to an old-shool phone switchboard by working with Assembler, [G] learning how the only work with longevity is that which stands on the shoulders of giants by using Fortran libraries, [H] learning how the mere act of developing using languages with baked-in discipline can be inherently educational by using DbC/TDD/BDD/dependent-type/formally-verifying/etc based languages (SPARK-Ada, Haskell, Eiffel, ACL2, Rust, etc), and then [I] learning how - after a certain level of experience - the languages, frameworks, and tools become less important than the engineersâs mindset and the work that happens both before and after the fingers hit the keyboardâŚby finding semi-performant techniques for implementing masochistic things like a VM and a network stack in Bash script (as hobby tasks, not for real use). If they are coming from a more hands-on/hardware background I also recommend [J] how eye-opening it is to maintain your own customized LibreCMC image flashed onto an open router (the older/smaller the HW the better, because you have to be increasingly creative with your kernel & OS configs), and [K] how educational it is getting a RISC-V working on an FPGA. I top it off by saying that [L] despite coding on-and-off since my start with z80 assembler on an Amstrad in the mid-80s I still feel like a beginner with so much to learn, and [M] that fact is by far the part I love most about the field (not just field of âworkâ but of âmental endeavourâ) - far more than status/seniority/raises. I find I donât get bombarded so much with JS-framework-du-jour zealotry and expert-beginnerism after that.
threaded - newest
Yeah, that tracks.
At work someone estimated adding a section of static content to a page that uses React as 3 story points.
They were searching for components that would style the header and paragraph elements just as they wanted them, but were coming up short.
Instead I simply added it with html elements and a couple of lines of CSS.
5 minutes. Done.
đ
Proceeds to spend 5 paragraphs complaining about what people call the original Javascript. He has some valid points, but this is very much an older developer complaining about the new generation of devs.
The new generation of devs sadly has a lot of people that only can type what they want to achieve into ChatGPT and blindly copy whatever code snippet it comes up with. But they canât develop. Nor do they understand code written by others. Theyâre the reason things like NodeJSâs is-even package exists.
This is a generalization that has some merit. but ultimately, generalizing an entire group of people and making assumptions about them isnât a good way to judge an individuals ability to code.
See what they can do, and then judge.
You must have missed the part where I said a lot of people, not all of them. There are people calling themselves âdeveloperâ that shine during the hiring process, but then canât implement a random feature if thereâs no ready-to-use library for it.
However, this doesnât mean that there still arenât lots of actual developers around, that know what theyâre doing and can actually code in an actual programming language.
If you want to play true Scotsman, the embedded devs like to make fun of the web devs for being scared of bitfields and refusing to do logic with anything other than string matching and manipulation.
. . .
Secretly itâs partially because weâre absolutely terrified of strings in any form and simply refuse to use them.
There are a lot of sub disciplines to the field, some benefit a lot from GPT or blindly copying from SA, some donât, but thatâs ok either way. Keep your skill sets broad and youâll survive.
I didnât know that the new generation of developers were that far along in their careers already.
Weâve been saying that about new devs since there became a second generation of devs
Except when I was a new dev, it was blindly copying stuff from stack overflow
In Phaedrus, Socrates talks about the invention of writing:
âit will introduce forgetfulness into the soul of those who learn it: they will not practice using their memory because they will put their trust in writing, which is external and depends on signs that belong to others, instead of trying to remember from the inside, completely on their own. You have not discovered a potion for remembering, but for reminding; you provide your students with the appearance of wisdom, not with its reality. Your invention will enable them to hear many things without being properly taught, and they will imagine that they have come to know much while for the most part they will know nothing. And they will be difficult to get along with, since they will merely appear to be wise instead of really being so.â
This isnât the new generation of devs. This is just new devs. Some people refuse to grow out of this stage.
Iâve heard of the term âexpert beginnersâ.
New devs generally suck, I sucked a lot.
The problem I fear today is that there are more crutches new devs can rely on, until they canât.
And itâs not a sharp boundary between getting by and not being able to work it
More crutches is definitely a problem. Personally, after vocally refusing to use chatgpt for months, my boss has now sat me down and told me to use it because it âhalves his development timeâ.
My colleague and boss use it constantly. Guess whose job has become mostly debugging their code when they canât get it to work and donât know why?
That is very frustrating !
The main issue is that not a lot of companies want and do take the time to train less experienced devs. Every company is expecting new hires to be trained already.
So many new devs need to scrape by with whatever means they have. And it is true is a lot of industries.
College computer programming programs normally do not train people to immediately work, unless the students spend thousands of hours coding on their own. Most comp sci students avoid this.
So, when a new dev graduates and they did not do that extra work, then the first year of paid work is them putting in those hours while being paid rather than doing it for free
I am not in the US, so I cannot compare, but people here that go to college equivalent explicitly learn to code.
When people go into computer science at University, they are decent coders and can do a lot of things out of school.
People learn to pass tests, and do computer labs. They have hands on experience in several computer languages. But that is a far cry from what is really needed.
Probably most schools give the fundamentals regardless of country.
Canât tell who has talent until they try to work a lot; often the people who do not code on their own are not very good, period
I think a student should at least do a few hours average work each week on their own projects , regardless of tech stack. It really shows after 4 years.
itâs like night and day between those that do this as a hobby and go to school ; verses the people who pass tests and do group projects in the labs but donât do anything outside of what is required.
The trend we see in programming is the same trend we see in many sectors. There is a spectrum of skills, and unfortunately, we only talk about the bad programmers and not the good ones.
The reality is that your company probably donât pay for top skills, so they get what they pay for. The pool of worker is spread thin, so the only thing left is the bad programmer.
So diploma mills churn out a maximum of workers to cash in on the situation.
I dunno some of these feel like fundamentals that any web dev should know.
Youâre gonna have headaches down the road if you donât know hiw static html works.
I heard of some people having trouble getting their head around React. I didnât, and I thought it was because I had a pretty good foundation in functional programming. Reactâs magic is transparent if you understand things like first order functions and immutable data.
Now I wonder if the disconnect was even more fundamental.
Holding their hand through one page in vanilla JS is a great investment in your junior dev if this is an issue
I thought ambagious was a typo of ambiguous. New word day!
One could argue that, but I think it would be a weak argument.
Keeping within the subcategory of software, I think of computer science as the theoretical side and programming as the practical side. The same distinction is sometimes made in other fields, like physics.
Seems to me that the author saw a show written by people with a narrow and shallow understanding of the field. For better or for worse, it happens on TV all the time. If he wants to demonstrate a widespread disconnect in the software community, there are probably better examples out there.
(disclaimer: I havenât read the article, Iâm just replying to you because your comment was interesting)
I think your theoretical vs practical framing is useful, but as a (non-computer-)scientist, I find it fascinating to consider how a biomedical scientist uses programming compared to someone whose background is much more grounded on the compsci/IT/programming side.^[1]
[1]: I sometimes joke that, compared to many of my scientist colleagues, I am an exceptional programmer, and this says a lot about the average quality of the code that scientists tend to write when they donât have much dedicated training or experience in programming
Scientists write code that works for them, so thatâs fine if the code isnât optimized.
When your software is your product, then it needs to be much more optimized.
Itâs not fine if the code needs to be used by other scientists though, which it often will be, even within the same research group. I have a friend who worked in a lab where one of their PhD students wrote a bunch of helpful code that was an unmaintainable mess that ended up breaking a lot of work flows at some point a year or so after the creator of it had left. It was kludge upon kludge upon kludge, and the thing that finally broke seemed to be dependency related, but I couldnât figure out what the hell was going on with it (I was asked to take a look).
Thereâs a lot of duplicated effort in science. Scientists tend not to think about stuff like software ecosystems unless theyâre in a subfield that has been doing computational stuff for a long while, like bioinformatics. When it comes to code, thereâs a lot of inventing the wheel from scratch and that leads to weird square wheels that work good enough to then have more code built on top of them. Software might not be scientistsâ product in the same way as it is for IT people, but it often ends up being a part of the wider product of methodological reproducibility
Writing maintainable code is an art form. Like most art forms it can mostly only be learned by practice. So if you donât have much experience maintaining long lived systems, itâs difficult to know what works and what doesnât. Most universities donât teach this as well, so itâs mostly something people learn in the industry.
Then I believe thereâs also some aspect of pride in writing overly complicated code. Itâs the belief that âother people canât comprehend my code because theyâre not as smart as meâ, when itâs actually âI suck at writing comprehensible codeâ.
Yeah, computer science is the more about theoretical side of computation and the analysis of algorithms. For example, proving that a certain algorithm is a solution to a problem and has a particular time complexity. Thatâs more mathematics than practical programming.
When they said that it wouldnât be a âget off my lawnâ post, I was like âoh no, itâs 100% going to be thatâ, but then I read, sympathised and⌠Iâd actually offer to get the people in the examples off the authorâs lawn on their behalf, because they were just so disappointing.
Though, to be fair, this was pretty much a problem in the superficiality of the frontend development circle that maybe was taught just that from the beginning, so they conflate notions of computer science with the language they use most, because there was no formality in their approach to learning, which is sort of a good thing IMO, because itâs way more effective at making you productive fast and knowing where to put your hands. Just that, after that, one shouldnât pretend to have the understanding necessary to pronounce on topics they actually havenât dug into, they, as I, and anyone for that matter, should delve into them first to know what theyâll be talking about.
What the author identifies as âdeveloper disconnectâ I think is ultimately a product of the popularisation of coding beyond the academic setting, when you learn on your own, you can have several holes at the base of your knowledge, holes that would be glaring to someone that took a more standard path to learning, but that werenât limiting enough to impede their advancement and that is hardly ever addressable, because still, when youâre on your own, you have the (blessed) choice to skip everything you donât care about, until you need it at least, if you ever do
I long ago stopped getting caught up in âthat discussionâ about recent trends despite a stream of people lobbing leading questions to get the ball rolling. Because I also try to not do so more rudely than necessary, I have developed several diplomatically worded (or at least ambiguous enough to float opaquely off to the side of the offense spectrum) ways of essentially saying the following: The simplest and cheapest way of [A] learning the âcomputer scienceâ end of software is by becoming proficient in Lisp, [B] learning the âengineeringâ end of software by becoming proficient in Forth, [C] learning how âbusyworkâ is a dangerous and demoralising thing to confuse with âactual workâ by maintaining some Java code, [D] learning how insidious and self-sabotaging âexpert beginner syndromeâ is by reading a lot of the relevent code-reviews and blogposts when maintaining Javascript & Python projects, [E] learning how mob-mentality and populism can lead to selective blindness and architectural stubbornness by working with large volumes of C & C++ code, [F] learning how it is all really abstraction-layers over something akin to an old-shool phone switchboard by working with Assembler, [G] learning how the only work with longevity is that which stands on the shoulders of giants by using Fortran libraries, [H] learning how the mere act of developing using languages with baked-in discipline can be inherently educational by using DbC/TDD/BDD/dependent-type/formally-verifying/etc based languages (SPARK-Ada, Haskell, Eiffel, ACL2, Rust, etc), and then [I] learning how - after a certain level of experience - the languages, frameworks, and tools become less important than the engineersâs mindset and the work that happens both before and after the fingers hit the keyboardâŚby finding semi-performant techniques for implementing masochistic things like a VM and a network stack in Bash script (as hobby tasks, not for real use). If they are coming from a more hands-on/hardware background I also recommend [J] how eye-opening it is to maintain your own customized LibreCMC image flashed onto an open router (the older/smaller the HW the better, because you have to be increasingly creative with your kernel & OS configs), and [K] how educational it is getting a RISC-V working on an FPGA. I top it off by saying that [L] despite coding on-and-off since my start with z80 assembler on an Amstrad in the mid-80s I still feel like a beginner with so much to learn, and [M] that fact is by far the part I love most about the field (not just field of âworkâ but of âmental endeavourâ) - far more than status/seniority/raises. I find I donât get bombarded so much with JS-framework-du-jour zealotry and expert-beginnerism after that.