6 ms·
Yes, this was the opinion I came here to post, certainly my own profession of law is like this, at least where I practice in Toronto Canada but I can't imagine
by vivekd 6y ago
Yes, this was the opinion I came here to post, certainly my own profession of law is like this, at least where I practice in Toronto Canada but I can't imagine other places being much different.
I think one advantage of computers is that what you produce at the end has to work - and if the code doesn't work or you don't know what you're doing, you're quickly exposed as a fraud. This is not the case in other fields like law, academia, politics, and even the corporate world where the results and methods are more abstract and given to opinion.
Unfortunately much of the world is run by people who excel in the abstract fields rather than the technical ones.
- KittenInABox 6y ago> I think one advantage of computers is that what you produce at the end has to work - and if the code doesn't work or you don't know what you're doing, you're quickly exposed as a fraud. Is this actually true? You can bullshit coding...
- oneplane 6y agoTake the old guestbook example: if you can't add entries to the guestbook the code apparently doesn't work. No way around that.
- earthboundkid 6y agoSubcontract it to someone who writes it with security holes.
- heavenlyblue 6y agoIf you are a lawyer and can’t write you probably wouldn’t be able to sell yourself as a lawyer. However being able to write doesn’t make you a lawyer. Same with the guestbook. It may even work. But on the inside it’s a pile of unmaintainable crap.
- heavenlyblue 6y agoAlso we can take this idea even further: what if only 1% of the entries in the guestbook don’t show? Does the code work? What if it’s so badly written it take someone with a really good experience to be able to prove that bug exists at all? How do you go about proving this? In the real world people are going to dismiss it. If you are playing against a politician you will be told that you simply have a bad memory thinking that some things exist that really don’t.
- deleted 6y ago[deleted]
- FpUser 6y ago> I think one advantage of computers is that what you produce at the end has to work - and if the code doesn't work or you don't know what you're doing, you're quickly exposed as a fraud. This is very naive point of view. Think of how car repair shops bullshit customers (especially what was before some mitigating laws) and then multiply it by Pi or more
- heavenlyblue 6y agoThis goes so well against the “free market hypothesis”. There are industries where lying is simply a stable equilibrium. You need law to keep those businesses going and fair. Otherwise the lemons spoil it for everyone.
- giantDinosaur 6y agoI don't think it's true that computers are great at exposing this. Software ranges from the concrete (does this button do anything) to the abstract (does this statistical program have an off by one error that's invisible to customers other than returning somewhat wrong results?). I think there's two competing definitions of 'work' in software - 'it works' as in 'allows for use' which can compete with the 'implements properly'. Computers and code will brutally expose the former, since it simply will not allow you to do something if it's broken. They don't necessarily expose the latter.
- karmelapple 6y agoIf the software should let me do X, I can click around and confirm that I can do X. I think most people would consider that the definition of “works,” rather than the quality of the code, the validation that the proper thing was built, etc. Looking at the code can tell you whether it was “implemented properly” - or at least, if it was done reasonably competently. Relationships, though, can help you know if that properly implemented code was likely a fluke or not. Does the person ask questions? How do they ask questions? How do they communicate? How do they capture requirements? How do they push back when something seems unclear or unwise? etc.
- hn_throwaway_99 6y agoI don't buy your arguments - at all. At the end of the day people have strong expectation about what software should do. If it doesn't do that, they will quickly notice. If they don't notice (now or in the future) things like your "off by one" errors, then that requirement wasn't likely that important to begin with. Now, I've seen plenty of "demo-ware" software that has been presented as something that was much more than it actually was, but again, stuff like that always falls over, riddled with bugs and crumbling under load, when it gets substantial use. Some things you really can't fake, and software engineering is one of them.
- giantDinosaur 6y agoPerhaps we have different conceptions of 'fraudulent'. I don't think it necessarily implies 'fake', but something more along the lines of using inferior building material. Perhaps it 'wasn't important all along' or perhaps it'll lead to catastrophic failure in 25 years, who knows? Software 'engineering' may be hard to fake, but that's because you're probably defining it as the proper way to develop software. A lot of software is certainly not built in a way familiar to an engineer.
- dba7dba 6y agoI know friend of friend who went to Harvard Law like 15 years ago and she told me there is SO MUCH butt kissing going on there. You'd think people who got that far would be confident enough to rely on their own skills/study to get ahead BUT even at that level, there is a lot of butt kissing to get ahead.
- throwphoton 6y agoIt's the correct asses though.
- tangjurine 6y agoIs choosing the correct butt to kiss NP-Complete?
- didibus 6y agoThis is one reason I believe computer science should be thought in school just like mathematics. The experience is very humbling, you've got all this logic, all the rationale, to you, it must work, but the computer knows it doesn't make any sense. I've learned that most problems are easily dismissed by people as being "easy", "simple", just do this, just do that. I've found software forces you to really think through, "just do this" is easier said then done, how to do it? Real problem solving is hard, and I do think computer science humbles you in that sense. Here's an example, my friend always tells me he thinks we shouldn't take anymore refugees. Alright, I'm not even going to debate the the morals or anything like that. He just think, whoever is letting the refugees in is dumb and shouldn't do that. That's surface level thinking to me. How do you do that? There's a boat arriving to the shore, full of refugees, it's not turning around? What do you do? This is a hard problem, no matter what you think you want the features or use case to be, how do you do it? The logistics are difficult, how do you scale it? What about all the edge cases? What about the cost? In that sense I think CS can help you learn how to really think through a problem from understanding the full implications and complexities and the challenges. We learn this by trying to model problems and their solutions very formally.
- tasogare 6y ago> Here's an example, my friend always tells me he thinks we shouldn't take anymore refugees. [...] That's surface level thinking to me. How do you do that? [...] What do you do? It’s funny you take this example because your point of view is precisely surface thinking too. I bet you don’t have any concrete plan to fund housing, education, healthcare for those people, nor you have one for them to become productive members of the host society. They are dozens of factors that makes irrational to allow any of them, and a lot of countries (Australia, Japan for instance) have in fact a successful policy of allowing only a bunch of them.
- arczyx 6y ago>It’s funny you take this example because your point of view is precisely surface thinking too But they're not...? GP didn't say he want to take refugees in, they merely said their friend want refuse refugees without specifying how exactly they want to accomplish that. >I bet you don’t have any concrete plan to fund housing, education... I don't think this assumption is fair.
- op03 6y agoYou make a very good point, but I'd like you to believe its not unfortunate. Most people I know would happily sign a document that states 'We hold these truths to be self evident that all men are created equal', even though the world shows us every single day that it isn't true. In technical fields, getting that document approved would be a nightmare. Maxwell's equations on the other hand are easy to get approval for. They are 'self evident'. Because they describe what we see, not what we want to see. So thank god for Jefferson penning that line down and effecting how everyone thinks, because it shows us for some problems, the ambiguous kind, were truth is what we want it to be, technical fields will struggle to provide answers. Its very fortunate, esp to make progress on all the ambiguous problems, that society props up a Jefferson now and then. How did Jefferson get into that position and not some jackass, is the most important question. And the answer to that, with a modern developing understanding of networks and graph theory, has only recently started moving from the abstract and ambiguous to the more technical - https://www.youtube.com/watch?v=07KKYostAJ0 https://www.youtube.com/watch?v=07KKYostAJ0
- mettamage 6y ago> I think one advantage of computers is that what you produce at the end has to work No that's not true, that something works is beginner level stuff in many cases. In some cases you're right though, because what has been asked is a super tough problem to crack. I'll showcase the moments in which the "it has to work" requirement is not enough. To show this example, I already have to break 2 conventions that are a no no, in my opinion. To other devs: I'm commenting everything (I can't assume someone who works in law to know code, he/she might, he/she might not) and I'm using globals for easier variable reassignment, to ease the example for readability. Let's get started. The requirement: print 5 to the console of your browser [1]. Open up Chrome Dev Tools (view -> developer -> developer tools -> console) Type in the following: five = 1 + 1 + 1 + 1 + 1 //compute 1 + 1 + 1 + 1 + 1 and save it in the computer with the name five console.log(five) //outputs 5 five = 0 //reset // loop 5 times, and every time the pc adds 1 to the saved part of the computer named five for (loopCount = 0; loopCount < 5; loopCount = loopCount + 1) { five = five + 1 } console.log(five) five = 5 //save the number 5 in the computer with the name five console.log(five) //outputs 5 console.log(5) //also outputs 5 FIVE = 5 //all-caps is a convention for that something is a constant, like a constant number such as 5 console.log(FIVE) //outputs 5 as well, and also probably the way programmers want to see it. Some of these methods have been really silly and if you catch that during an interview, you won't pass. People can point out that most of these methods happen one way or another, but not when you have a simple requirement such as "output 5". In fact, if that truly is the requirement, then I would go for: console.log(5) And I'd consider the first 2 entries totally nonsensical (unless I asked it with a funny voice or asked them to do whatever / be creative), the 4th entry slightly questionable but fine and the 5th entry fine. [1] Read the following link to have some context about what the JavaScript console is. Don't worry about not understanding the code or the technical terms. You're not missing anything, as far as context is concerned, I checked. Read it until the first paragraph of "Running JavaScript". https://developers.google.com/web/tools/chrome-devtools/console https://developers.google.com/web/tools/chrome-devtools/cons...
- makapuf 6y agoA question: is really fifth the best ? Seeing FIVE=5 always irks me, as it's an extra indirection for nothing. What do I gain with it ? The ability to change it to FIVE=6 ? OUTPUT=5 maybe but then console.log(OUTPUT) gains you nothing. Maybe NB_LEGS=5 and console.log(NB_LEGS)
- hkai 6y agoYou are correct, although I personally know two programmers who are not able to write basic JavaScript code and have survived for almost a year in their jobs by asking around, copying other people's code and asking for help ("I did this, but somehow it doesn't work!"). I don't know how to raise this issue at work without being insensitive.