Strictly speaking, you don't even need university courses to get experienced devs.
There will always be individuals that enjoy coding and do so without any formal teaching. People like that will always be more effective at their job once employed, simply because they'll have just that much more experience from trying various stuff.
Not to discredit University degrees of course - the best devs will have gotten formal teaching and code in their free time.
You get experienced devs from inexperienced devs that get experience.
[edit: added "degrees" as intended. University was mentioned as the context of their observation]
This is honestly not my experience with self taught programmers. They can produce excellent code in a vacuum but they often lack a ton of foundational stuff
In a past job, I had to untangle a massive nested loop structure written by a self taught dev, which did work but ran extremely slowly
He was very confused and asked me to explain why my code ran fast, his ran slow, because "it was the same number of loops"
I tried to explain Big O, linear versus exponential complexity, etc, but he really didn't get it
But the company was very impressed by him and considered him our "rockstar" because he produced high volumes of code very quickly
My point is you don't know what you don't know. There is really only so far you can get by just noodling around on your own, at some point we have to learn from more experienced people to get to the next level
School is a much more consistent path to gain that knowledge than just diving in
It's not the only path, but it turns out that people like consistency
A senior dev mentioned a “class invariant” the other day And I just had no idea what that was because I’ve never been exposed to it… So I suppose the question I have is what should I be exposed to in order to know that? What else is there that I need to learn about software engineering that I don’t know that is similarly going to be embarrassing on the job if I don’t know it? I’ve got books like cracking the coding interview and software engineering at Google… But I am missing a huge gap because I was unable to finish my masters and computer science :-(
(Serious comment! It's "the" algorithms book).
I've read that one, not an expert by any means, and I've got a 'decent' handle on data structues, but what about the software engineering basics one needs like OOP vs. Functional, SOLID, interfaces, class invariants, class design, etc.? Should I just pick up any CS 101 textbook? Or any good MIT open courseware classes that cover this type of stuff (preferably with video lectures... intro to algorithms is _amazing_ they have Eric's classes uploaded to YouTube, but finding good resources to level-up as a SWE has proved somewhat challenging)
^ serious comment as well... I find myself "swimming" when I hear certain terms used in the field and I am trying to catch up a bit (esp. as an SRE with self-taught SRE skills that is supposed to know this stuff)
> This website contains nearly complete solutions to the bible textbook - Introduction to Algorithms Third Edition, published by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
But you have to know this knowledge exists in the first place. That's part of the appeal of university teaching: it makes you aware of many different paradigms. So the day you stumble on one of them you know where to look for a solution. And usually you learn how to read (and not to fear) reading scientific papers which can be useful. And statistics.
> Not to discredit University degrees of course - the best devs will have gotten formal teaching and code in their free time.
>People like that will always be more effective at their job once employed
My experience is that "self taught" people are passionate about solving the parts they consider fun but do not have the breadth to be as effective as most people who have formal training but less passion. The previous poster also called out real issues with this kind of developer (not understanding time complexity or how to fix things) that I have repeatedly seen in practice.
I just pointed out that removing classes entirely would still get you experiences people. Even if they'd likely be better if they code and get formal training. I stated that very plainly
You actually didn't state it very plainly at all. Your initial post is contradictory, look at these two statements side by side
> There will always be individuals that enjoy coding and do so without any formal teaching. People like that will always be more effective at their job once employed
> the best devs will have gotten formal teaching and code in their free time
People who enjoy coding without formal training -> more effective
People who enjoy coding and have formal training -> best devs
Anyways I get what you were trying to say, now. You just did not do a very good job of saying it imo. Sorry for the misunderstanding
> There will always be individuals that enjoy coding and do so without any formal teaching. People like that will always be more effective at their job once employed
As "people who enjoy coding and didn't need formal training to get started". It includes both people who have and don't have formal training.
Both statements together are (enthusiasm + formal) > (enthusiasm without formal) > (formal without enthusiasm).
> Both statements together are (enthusiasm + formal) > (enthusiasm without formal) > (formal without enthusiasm).
I don't think the last category (formal education without enthusiasm) really exists, I think it is a bit of a strawman being held up by people who are *~passionate~*
I suspect that without any enthusiasm, people will not make it through any kind of formal education program, in reality
If you've never encountered the average 9-5 dev that just does the least amount of effort they can get away with, then I have to apploud the HR departments of the companies you've worked for. Whatever they're doing, they're doing splendid work.
And almost all of my coworkers are university grads that do literally the same you've used as an example for non formally taught people: they write abysmally performing code because they often have an unreasonable fixation on practices like inversion of control (as a random example).
As a particularly hilarious example I've had to explain to such a developer that an includes check on a large list in a dynamic language such as JS performs abysmally
While you definitely loose acuity once you stop exploring new concepts in your free time, the amount of knowledge gained after you've already spend 10-20 yrs coding drops off a cliff, making this time investment in your free time progressively less essential
Does it perform any better in statically compiled languages?
I just didn't want to explore the example to such a depth, as it felt irrelevant to me at the time of writing.
There are also different types of self taught, and different types of uni grad. You have people who love code, have a passion for learning, and that's driven them to gain a lot of experience. Then you have those who needed to make a living, and haven't really stretched beyond their wheelhouse so lack a lot of diverse experience. Both are totally fine and capable of some work, but you would have better luck with novel work from an experienced passionate coder. Uni trained or not.
I have not learned CS at university (maths & stats graduate who shifted to programming, because I can't help myself loving it). I work with engineers with CS degrees from pretty good universities. At the risk of sounding arrogant, I write better code then a lot of them (and some of them write code that it so clean and tight that I wish I could match it). Purely based on my fairly considerable experience, there is basically little correlation between degree and quality of code. There is non-trivial correlation between raw intelligence and the output. And there is a massive correlation between how much one cares about the quality of the work and the output.
We're talking about the industry responsible for ALL the growth of the largest economy in the history of the world. It's not the 1970s anymore. You can't just count on weirdos in basements to build an industry.
That's not the kind of experience companies look for though. Do you have a degree? How much time have you spent working for other companies? That's all that matters to them.
Almost every time I hear this argument, I realize that people are not actually complaining about AI, but about how modern capitalism is going to use AI.
Don't get me wrong, it will take huge social upheaval to replace the current economic system.
But at least it's an honest assessment -- criticizing the humans that are using AI to replace workers, instead of criticizing AI itself -- even if you fear biting the hands that feed you.
1. How it's gonna be used and how it'll be a detriment to quality and knowledge.
2. How AI models are trained with a great disregard to consent, ethics, and licenses.
The technology itself, the idea, what it can do is not the problem, but how it's made and how it's gonna be used will be a great problem going forward, and none of the suppliers tell that it should be used in moderation and will be harmful in the long run. Plus the same producers are ready to crush/distort anything to get their way.... smells very similar to tobacco/soda industry. Both created faux-research institutes to further their causes.
Considering HPC is half CPU and half GPU (more like 66% CPU and 33% GPU but I'm being charitable here), I expect an average power draw of 3.6KW in a cluster. Moreover, most of these clusters run targeted jobs. Prototyping/trial runs use much limited resources.
On the other hand, AI farms use all these GPUs at full power almost 24/7, both for training new models and inference. Before you asking, if you have a GPU farm which you do training, having inference focused cards doesn't make sense, because you can divide nVIDIA cards with MIG, so you can put aside some training cards, divide these cards to 6-7 and run inference on them, resulting ~45 virtual cards for inference per server, again at ~6.1KW load.
So, yes, AI's power load profile is different.
Emissions aside, locally many data centres (and associated bit mining and AI clusters) are a significant local issue due to local demand on local water and local energy supplies.
You must be joking. Consumer models' primary source of training data seems to be the legal preambles from BDSM manuals.
This was pretty consistently my and many others viewpoint since 2023. We were assured many times over that this time it would be different. I found this unconvincing.
Something very similar can be said about the issue of guns in America. We live in a profoundly sick society where the airwaves fill our ears with fear, envy and hatred. The easy availability of guns might not have been a problem if it didn't intersect with a zero-sum economy.
Couple that with the unavailability of community and social supports and you have a a recipe for disaster.
I think you misunderstand OP's point. An employer saying "we only hire experienced developers [therefore worries about inexperienced developers being misled by AI are unlikely to manifest]" doesn't seem to realize that the AI is what makes inexperienced developers. In particular, using the AI to learn the craft will not allow prospective developers to learn the fundamentals that will help them understand when the AI is being unhelpful.
It's not so much to do with roles currently being performed by humans instead being performed by AI. It's that the experienced humans (engineers, doctors, lawyers, researchers, etc.) who can benefit the most from AI will eventually retire and the inexperienced humans who don't benefit much from AI will be shit outta luck because the adults in the room didn't think they'd need an actual education.
I'm adding `.noai` files to all the project going forward:
https://www.jetbrains.com/help/idea/disable-ai-assistant.htm...
AI may be somewhat useful for experienced devs but it is a catastrophe for inexperienced developers.
"That's OK, we only hire experienced developers."
Yes, and where do you suppose experienced developers come from?
Again and again in this AI arc I'm reminded of the magicians apprentice scene from fantasia.