News for hackers. Stuff that matters.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by herewulf on Monday March 20, 2023 @02:30AM (#35228001)
It needs to be more like a trade school. The vast majority of jobs call for workers who can create and maintain programs that actually do things, not just theory.

I've encountered far too many CS interns and grads who couldn't actually write reliable, non-spaghetti code. They also typically write commit messages that consist entirely of "Updated $THING" (no shit, I can see that from your diff), nothing about the why.

My perspective may be slightly skewed from being called in as a consultant to fix the software these "computer scientists" have been hacking on, but I encountered a lot of these people when I was a undergrad student also.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by WalterBright on Monday March 20, 2023 @02:32AM (#35228018)
When hiring a newly minted undergrad, you should expect to need to do some mentoring on the nuts and bolts of programming. CS is not about lucid commit messages.

If you want a trade school grad, hire one from a trade school. There's nothing wrong with that.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by TheSpiceIsLife on Monday March 20, 2023 @03:19AM (#35228279)
Where are the computer programming trade schools?

TasTAFE offers a Cert III in Information and Communications Technology. This looks to be one third tech support, one third networking and server operations, and one third python / web / CSS. So not really much programming.

A programming trade school to Mr would look like: four years on the job as an apprentice, full time, at some discounted pay rate.

Two weeks four times a year at a training institution, away from the demands of the job, where theory and practice are taught.

My trade certificate (metal fabrication) is a Cert III, my trade school included a fairly wide variety of subjects, both theory and practical.

The employer would be required to give progressively more difficult tasks, and doing apprentice swaps with other businesses to cover industry experience if in-house doesn't provide opportunities for key requirements.

Is anyone, anywhere doing that?

I help train two apprentices every year here in metal fabrication. It's not that difficult, but few developing foetuses are borth wielding a welder. I mean the trade is not difficult, training people is hard.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by xorfish on Monday March 20, 2023 @03:29AM (#35228360)
> Is anyone, anywhere doing that?

You can do it in Switzerland:

https://www.berufsberatung.ch/dyn/show/1900?id=7671

Re:Ask HN: Why do many CS graduates lack foundational knowle... by WalterBright on Monday March 20, 2023 @03:25AM (#35228328)
I'm sorry, I have no knowledge of current programming trade schools, other than the occasional blurb about "coding boot camps".
Re:Ask HN: Why do many CS graduates lack foundational knowle... by chris_wot on Monday March 20, 2023 @04:22AM (#35228671)
If this is the Australian TAFE, it’s great but governments undervalue it and don’t fund it properly.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by exnihilo21 on Monday March 20, 2023 @08:35AM (#35230598)
Most Universities of Applied Sciences in the Netherlands, where you need to take 2 6 month apprenticeships before being allowed to graduate from a 4-year bachelor degree, and most courses are programming related.

When finished you can continue for a master degree at a university, but have to take 1 year to get caught up on the theory you missed by not doing a bachelor degree on a university level.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by 908B64B197 on Monday March 20, 2023 @01:27PM (#35235206)
> If you want a trade school grad, hire one from a trade school. There's nothing wrong with that.

If someone wants a person with good CS fundamentals and an idea of how to write code in a non-trivial codebase (so commit messages and an idea of concrete SQL and not just "I've proven this expression is correct but never ran it") they should look at Computer/Software Engineering programs, or at least select CS candidates from schools where the program incorporate real software development.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by fsckboy on Monday March 20, 2023 @03:06AM (#35228201)
did you study CS? not sure if you are criticizing CS students cuz "back in our day, we did CS in the snow, barefoot", of if you're criticizing the CS curriculum because you don't think it's necessary because you haven't needed it and they don't know what you know.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by csomar on Monday March 20, 2023 @03:19AM (#35228284)
> It needs to be more like a trade school. The vast majority of jobs call for workers who can create and maintain programs that actually do things, not just theory.

These usually are the worst "programmers", in my experience. And I was one as I didn't go to CS school and was mostly self-taught. Lacking the basics of CS, you are just a code monkey.

> I've encountered far too many CS interns and grads who couldn't actually write reliable, non-spaghetti code.

An intern is an intern, I guess.

> They also typically write commit messages that consist entirely of "Updated $THING" (no shit, I can see that from your diff), nothing about the why.

You should have a an employee handbook and a coding style. Lazy people are everywhere, however.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by wankle on Monday March 20, 2023 @11:56AM (#35233485)
> These usually are the worst "programmers", in my experience. And I was one as I didn't go to CS school and was mostly self-taught. Lacking the basics of CS, you are just a code monkey.

That's the type of condescending, discriminatory bias that having a degree affords, I guess.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by layer8 on Monday March 20, 2023 @01:37PM (#35235377)
The GP just said he doesn’t have a degree.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by wankle on Monday March 20, 2023 @01:57PM (#35235735)
They used was several times, past tense, indicating they potentially do have a degree now; if not, their prose sounded snobbish to me either way, hence my comment.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by vkk8 on Monday March 20, 2023 @03:27AM (#35228345)
Assuming the only purpose of universities is to serve the job market. I'd argue that the primary function of the university system is to transfer the collective human knowledge forward. The fact that some of it is sometimes needed in jobs is a secondary effect.

But you're right that there should be schools that teach the practical programming skills. But it's the the trade schools that should be developed towards this goal, not universities.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by re-thc on Monday March 20, 2023 @03:52AM (#35228504)
University aim to serve the education market i.e. people that want to learn or assume they can get a job afterwards. They don't serve the employers or those that are looking to hire.

Lots of degrees have no pathway to a job or career.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by reillyse on Monday March 20, 2023 @04:11AM (#35228607)
There is a huge divide between Europe and the US on this front. Because degrees are so expensive in the US the expectation is that you are going to pay for that with the shiny job you get as a result of the degree.

In Europe where third level is far cheaper, it's more looked upon as continuing education. The way in the US people look at high school. Sure you'd like to get a job after, but it's really just a stepping stone to your career and not a huge financial investment that needs to be repayed.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by re-thc on Monday March 20, 2023 @04:57AM (#35228919)
Either way that doesn't mean it's made for "the job market". All it entails is you were sold a false premise just like how bootcamps promise of 6 figure salaries after a week of training...

It's still made for those that want to be educated.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by exnihilo21 on Monday March 20, 2023 @08:41AM (#35230652)
>Either way that doesn't mean it's made for "the job market".

In the Netherlands the have, for example, the Hoger Beroep Onderwijs (HBO), which translates to Higher Professional Education. It is exactly tailored for the job market.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by re-thc on Monday March 20, 2023 @09:28AM (#35231198)
> HBO

HBO sounds more like a vocational system that provides diplomas vs a bachelor degree in reference to universities in this discussion.

This type of system definitely exists in many places but I just assume it's out of scope as we're talking about in reference to CS graduates i.e. bachelor courses.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by lmarcos on Monday March 20, 2023 @03:34AM (#35228388)
> It needs to be more like a trade school. The vast majority of jobs call for workers who can create and maintain programs that actually do things, not just theory.

Sure, but those things can be learned on the actual job. So after a few years, the CS student knows both the theory (because of uni) and the practice (because of work)... Whereas someone who only learnt the practical stuff, well, usually lacks the theoretical foundations.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by hdhdhend on Monday March 20, 2023 @03:42AM (#35228446)
> Sure, but those things can be learned on the actual job. So after a few years, the CS student knows both the theory

So a CS degree is useless in industry. By the time you learn how to build things that work, you know how things work.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by JCharante on Monday March 20, 2023 @03:44AM (#35228453)
I disagree. Theory is harder to self learn whereas anybody can learn about putting together a CRUD app w/ React & Postgress. The students lack experience with the practical/applied side of CS because they lack the interest in it. Anyone else would have done side projects where they could have applied what they learned (my code got substantually better after I went to college).
Re:Ask HN: Why do many CS graduates lack foundational knowle... by simplotek on Monday March 20, 2023 @04:55AM (#35228905)
> It needs to be more like a trade school. The vast majority of jobs call for workers who can create and maintain programs that actually do things, not just theory.

This bears repeating.

It's important to learn how to deal with asynchronous and concurrent and parallel programming, but it's more important to have a firm grasp of message-passing and event-driven architectures.

Rote learning the computational complexity of obscure algorithms no one uses does not hold a candle to knowing how to write clean and testable code, and design a component to accommodate changes.

This computer science bullshit starts to feel a lot more like an exercise in ladder-pulling than actually prepare and assess an individual's ability to do meaningful work.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by jart on Monday March 20, 2023 @05:19AM (#35229071)
GPT4 can write clean and testable code. What it can't do are things like this:

    // rewrite this function so it's portable and doesn't use uint128_t
    uint64_t lemur64(void) {
      static uint128_t s = 2131259787901769494;
      return (s *= 15750249268501108917ull) >> 64;
    }
In order to do that, you have to have a little computer scientist in you. Stuff like "asynchronous vs. concurrent vs. parallel programming" is the programming equivalent of a liberal arts degree. Who here will rise to meet my challenge? It's only doing a multiply and shift.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by simplotek on Monday March 20, 2023 @05:39AM (#35229215)
> GPT4 can write clean and testable code.

Software developers aren't paid to write code. They are paid to deliver value.

Your code delivers no value whatsoever. Many masters and PhD thesis are boiled down to a shareable library or even function call. You might feel clever for coming up with it or by knowing some trivia behind it, but ChatGPT can easily spit it out negating all the value you believe you were able to create.

There is no value in something being hard. There is value in delivering value.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by jart on Monday March 20, 2023 @06:02AM (#35229393)
And who identifies value? Is it the software developers? And why would the identifiers of value trust people who can't multiply and shift to be the ones responsible for delivering that value? That would be like Google hiring engineers who only got good because they're good at using Google. It would have been a better look if you had solved my challenge before using it as a platform.
Re:Ask HN: Why do many CS graduates lack foundational knowle... by KronisLV on Monday March 20, 2023 @06:44AM (#35229700)
> And who identifies value?

I'm fairly sure it's the people that pay our salaries and choose to keep us employed while we do whatever they need to, based on their perception of our output and how the needs of the customers/users are met.

Will ChatGPT and other solutions like that be helpful with the complex, low level stuff? Perhaps, sometimes - depending on how explicit you'll be with your prompts, but more knowledge about what and how to ask will be necessary and even then good results aren't guaranteed per se.

But will they help out a lot of developers with common, well known tasks and problems, for the majority of developers whose job consists of creating a few RESTful endpoints, maybe a database migration and hooking it up to React? I'm inclined to say yes a bit more confidently.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by simplotek on Monday March 20, 2023 @07:40AM (#35230121)
> And who identifies value?

For starters, if you can't argue what is the value then none can fill in the void in your reasoning.

Secondly, software developers have as part of their job description the task of finding solutions to problems. If they find solutions to problems that don't involve or require whatever trick you have in mind, that tells you what is it's value.

Thirdly, did you ever saw any job advert explicitly requiring prior knowledge of any trick you have in mind? Or do you see ads for the ability to solve problems with a pre established software stack?

> who can't multiply and shift t

Tell me, how many open positions have you ever saw whose main ask was "can multiply and shift"? Zero.

> That would be like Google hiring engineers who only got good because they're good at using Google.

No, it would be like Google hiring people without any CS or IT degree who were good at software development but rejecting PhDs who had nothing to offer other than their little trivia on stuff no one cares about.

You know, reality.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by WalterBright on Monday March 20, 2023 @03:22PM (#35237200)
> And who identifies value?

The person paying for it with their own money.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by barnabee on Friday March 31, 2023 @07:53PM (#35395394)
To paraphrase: hackers write code.

We don’t do it because we’re paid for it[0]. If that’s your primary motivation maybe this is the wrong website.

[0] sure, [too] many people are in tech primarily to make money, but it’s a bit sad.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by deanmen on Monday March 20, 2023 @04:04PM (#35237794)

    uint64_t lemur64(void) {
      static uint64_t a = 2131259787901769494ull;
      uint64_t b = 15750249268501108917ull;

      uint64_t a_lo = a & 0x00000000ffffffffull;
      uint64_t a_hi = a >> 32;
      uint64_t b_lo = b & 0x00000000ffffffffull;
      uint64_t b_hi = b >> 32;

      uint64_t a_x_b_hi = a_hi * b_hi;
      uint64_t a_x_b_mid = a_hi * b_lo;
      uint64_t b_x_a_mid = b_hi * a_lo;
      uint64_t a_x_b_lo = a_lo * b_lo;

      uint64_t carry_bit = ((0x00000000ffffffffull & a_x_b_mid) +
                        (0x00000000ffffffffull & b_x_a_mid) + (a_x_b_lo >> 32)) >>
                       32;

      uint64_t multhi =
      a_x_b_hi + (a_x_b_mid >> 32) + (b_x_a_mid >> 32) + carry_bit;

      return a = multhi;
    }
Re:Ask HN: Why do many CS graduates lack foundational knowle... by blacklion on Monday March 20, 2023 @05:55AM (#35229342)
Other way around. Universities should train people who want to work in science/academia. Trade schools should train people who want to work in industry.

Employers MUST NOT require university degree where trade school is sufficient (99% of positions in industry).

Re:Ask HN: Why do many CS graduates lack foundational knowle... by screwturner68 on Monday March 20, 2023 @08:53AM (#35230772)
College does not need to be more like a trade school, that's what trade schools are for. If we need to churn out a gaggle of programmers the boot camp model has worked for years, Accenture used to push hundreds of college grads through their program in the 90's and out popped VB programmers. Now dozens of places provide the same service at a cost and in 12 short weeks you can become a "full stack" programmer. None of these people have a clue what is going on under the curtains but most run of the mill programmers don't need to know what is going on under the curtains. If you are interested in how things work and why they work that way going to a university and studying CS might will that need, but it involves a lot of math and other classes that you will likely never use in a workplace.

This is just a simple misunderstanding of what college is for, expanding one's knowledge for the sake of expanding one's knowledge -being a good programmer is not the intent but it might be a by product.

Re:Ask HN: Why do many CS graduates lack foundational knowle... by WalterBright on Monday March 20, 2023 @03:21PM (#35237172)
Interestingly, people who are great at CS math are not always very good at programming.