Hacker News new | ask | show | jobs
by pragmacoders 2745 days ago
I agree with the general point of this article. Showing that you have the skill to accomplish a job effectively will get you a job most anywhere.

There's a major issue when this is applied to a certain class of problems in ML and Data Science that people tend to ignore.

If you could get a job as a civil or mechanical engineer (building bridges or whatnot) by showing that you built a small bridge in your backyard... We'd have some unstable bridges.

If hospitals just let residents run the hospital... We'd have a lot of mistreated illnesses.

If you could show a realty company that you can build a recommendation engine and they hire you to build their advertisement algorithm... Suddenly you're breaking housing discrimination laws.

I am all for folks being able to get jobs from their cool projects. But we need ethical standards and educational standards before folks are given large, real-world problems to work with.

We need to take a page out of engineering and medical playbooks and build official education or apprenticeship requirements. We need to have licenses that can be revoked if someone fails to follow ethical or quality standards.

So - love creative people getting jobs. Now give them a high-quality education program along with those jobs.

4 comments

Programming is the last decent job that doesn't have a bunch of artificial barriers to entry put up to protect privileged people from competition from the industrious poor. The day I need a license from the government to own a compiler is the day I check out of this life.
Does it bother you that every day, your personal information is transferred between a massive number of services created, maintained and secured by individuals with no security or ethical training whatsoever?

That personal information is then sold to even more organizations that need no scientific or statistical basis, again with no ethical oversight, to make decisions that impact your future and the future of those around you.

Picking up a compiler will never be banned anymore than it is banned to pick up a scalpel. But to call yourself a doctor you'd accept the responsibility (ethical and professional) that it entails. To call yourself a professional engineer you accept the responsibility that it entails. You hold yourself to a certain level of quality and ethics or you give up your right to hold the title.

Without a standard level of responsibility there is no way to build any more of a foundation than we have. We will always have the rickety mess of data leaks, corruption, and general lack of accountability that we have now.

We will have employers that can pressure programmers to go directly against their morals and ethics to get what they want.

I'm not proposing that the poor be excluded from the field. I'm proposing that you not only give them a job but give them a pathway to a quality, independent education that will continue to prepare them for the major challenges they will be expected to face and the ethical questions that they'll have to make a stand on.

> Does it bother you that every day, your personal information is transferred between a massive number of services created, maintained and secured by individuals with no security or ethical training whatsoever?

No, it doesn't bother me at all.

What does bother me is large companies such as Google have a business model that is based on them gathering as much information as possible about everyone, and then using that information to manipulate them, typically into buying things.

Credentialism will not solve that problem.

> We will have employers that can pressure programmers to go directly against their morals and ethics to get what they want.

Credentialism in programming will not solve that problem either. What will solve it is:

- a reduction in income and wealth inequality, and a basic income, so that employees have more bargaining power with respect to employers

- laws against big companies behaving badly

>- laws against big companies behaving badly well, actually big companies do in fact use their influence to suborn those laws to get away with bad behavior and create barriers to competition. It would probably be simpler to put an upper limit on the size of any organization (government too) and use vigilante justice to enforce the limit, HHOS.
Fair enough, but as a member of a protected profession myself (engineering) it's not the regulations per se that prevent people from gaming the system - it's a culture of professional pride. Where I practice we have this weird "swearing in" type ritual developed by Kipling back when the profession was born. I think it actually does more to ensure high standards than any legal threat the society can bring to bear on bad actors.
Hope that by ‘this life’ you mean the life of a software developer.
That sounded bad. If programming becomes illegal, I'll focus on graphic design. Short of a bolshevik style coup, they won't be able to ban that in the United States.
Indeed - look at the case in Law where in the UK at least the pupillage requirement (essentially an internship/apprenticeship post university IIRC) ensures it remains the preserve of the privileged - especially the upper echelons of the field such as barristers and judges.

We see the same with the iron grip that the medical council has on the number of medicine students (imagine if we fixed the numbers of software engineering students and made it difficult to register foreign qualifications).

I agree that educational standards are important - but if that isn't coupled with improving access to higher education (including post-graduate education) then it's basically just saying only the rich should be allowed in.

I definitely agree that higher education should be accessible to everyone and for free.

I feel like the conversation should be

- "We need ethical and professional standards because our current way of doing things isn't working out too well!"

- "But that will exclude people who don't have access to education!"

- "Then we should give everyone a means to get the education. Because it is an unlimited resource that can be freely given without being taken from someone else and enriches all of humanity!"

- "Yeah! Let's do both those things!"

At least that's how I had hoped the conversation would lead.

But we can't throw our hands in the air and say "Accessible education is impossible and so we can never have standards of ethics or quality". That is definitely a dead end for society.

Anywho - I absolutely agree!

This is the problem of a lot of software development. Look, this bright young man just built a wooden box all by himself. Let’s employ him to build our new shed. A shed is just a big box, isn’t it? This bright young man just built a shed. A house is just a big shed, isn’t it? He’ll figure out isolation, electricity and plumbing when we get to those parts...
You know, Hercules should never try to catch that turtle, because he would first have to walk haf the distance to the turtle, but in order to walk half the distance he first must walk 1/4 the distance; but first he needs to walk 1/8...

Building ML projects at home is nothing like building a box to building a shed; it's more like building a shed to building a house.

Sure, building a house is more complicated, but you won't be building that house alone, and if someone hired you to build a house because you were good at building sheds, I'm sure you'll start your job as a junior house builder, not master architect.

There were budget cuts. Teams were shuffled around.

You're running the team now. Your colleagues have only ever built boxes. Go get em', master architect!

This is my (hopefully humourous but actually taken from my experience) way of saying that companies will often do what is most immediately profitable rather than what's best in the long run (for humanity or themselves).

If they are building houses where the roof caves in after the first rain, they won't be in business long.
Why? Nowhere was it written in the requirements that the house must be able to withstand rain.
woodpeckers. civilization.
tbh your analogy doesn't work. modern software dev would mean that if the house can get by without isolation and plumbing until it needs to, then it will. when the requirement comes up then extra dev resources will be hired to plug them in. as long as you managed to get the frame up and the wiring complete, the other components are superfluous as long as someone is happy to stay in that house. then you can add isolation, then you can add plumbing.

this is part of the "if you're not unhappy with the first version of your product then you've launched too late" philosophy and it does work in non critical sectors

And you are kind of illustrating my point. Building a house requires a lot of additional considerations. Like what kind of daylight you get in different rooms, that maybe the toilet shouldn’t be in direct connection to the dining area, how the kids’ rooms are located relativ to the living room. And you will probably have to redo 70% of the work with the kitchen if you don’t start with making sure that the plumbing is in place. (Someone who knows more about houses than I do can come up with much better examples. For this exact reason I’m consulting an architect before I start renovating my house, even though I’m perfectly competent to both remove and put up a drywall myself.)

Of course people learn with experience, and luckily redoing things in software development is cheap compared with when building houses. But that’s the only reason we get away with it.

My point is, we would build better and cheaper systems if we from the start acknowledge that we have to take into account completely different sets of considerations when we move up the scale. A shed isn’t just a big box, a house isn’t just a big shed, etc.

> Of course people learn with experience, and luckily redoing things in software development is cheap compared with when building houses. But that’s the only reason we get away with it.

Here in software, we've turned that into a positive thing and made a philosophy out of it. How do you know the toilet shouldn't be in the kitchen? Maybe the users like it? You know what, the data actually shows that in houses where the toilet is next to the kitchen stove, people spend (on average) more time in the living room, thus raising the core metric of happiness.

If you were building houses, who would you choose

(a) Bright young man who built a wooden box

(b) Bright young man who says he has read for years about building houses

I'd pick (a) over (b) and put him on a team where they build houses so he actually learns on the job.

SF has a homeless problem. Maybe they would prefer a big box to life on the street.
Lol sounds exactly like my life as a first year dev at a small startup
This reminds me of the (relatively) recent post about breakdowns and descriptions of major and well-crafted applications.

Link: http://aosabook.org/en/index.html

A lot of Computer Science graduates, and/or self-taunt engineers are missing the commentary of 'masters' or senior people who can say why and why not this or that way.

Just like the difference between building a bridge across a river and in your backyard is far more than just scaling up, seeing design patterns and common pitfalls writ large is one more step towards proper education needed for a modern programmer IMO.

A good start would be only actual professional engineers calling themselves engineers.
In Germany enigneer ("Ingenieur") is a protected profession title and I was granted the right to use it with my B.Sc. in Compsci (though a B.Sc. in Germany is also a lot more focused than undergrad in US afaik). I have no idea how many people in IT use the enigneer title without being entitled to, because in contrast to e.g. construction engineers there is no "Kammer" (guild?) for software engineers.

There is also higher need for programmers ("developers") than for actual engineers.

You'd need a professional accreditation body for software engineers then.
Wasn't this tried/mooted a few years ago but got nowhere in the end? But you also have to understand that for many/most of these types of professional bodies in other fields, you need to have a basic BS type degree to be accredited and this is where I think it fell down flat as quite a few SWEs (compared to other fields) were self-taught, dropped out etc. and didn't necessarily have a college degree. Maybe they can have a different set of criteria for SW field.
> quite a few SWEs (compared to other fields) were self-taught, dropped out etc. and didn't necessarily have a college degree.

Accreditation isn't just for enforcing a minimum standard of education - it's primarily so that people can actually be held responsible for bad decisions, and so that they have leverage over their bosses (it's harder to find an actual engineer or a doctor willing to do unethical things for you, when they could lose their license over it).

I totally agree with your point. But unfortunately/ fortunately, those other fields you mention do require a degree as a minimum. But again, they also tend to have larger consequences (usually), compared to a few bad lines of code (usually).