Live data from Hacker News

They don't even know the fundamentals

blog.royalsloth.eu

281–290 of 323 posts

Re: They don't even know the fundamentals

#281
post #91

Earlier quoted context omitted.

You're right but you or more precisely that interviewer is also wrong. Understanding the way your storage works is crucial, yes. But you ensure people understand it not by asking "Explain ACID to me" but by asking to design a certain system and observing them figuring out requirements and asking questions. You then ask follow up question about consistency and reliability, you probably even can ask about benefits of u…

> I totally fail to parse any written explanation of liskov substitution principle Off the top of my head, "all child classes should be usable interchangeably when dealing with an interface/base class". I guess that's too imprecise to qualify as "written explanation"?

Or 'is a' implies 'behaves as a'.

Re: They don't even know the fundamentals

#282

This promulgation and advocacy of laziness and know-nothing-ism is frightening and all too commonplace nowadays. The ACID example was a bad one, granted, but everyone seems to be giving up after identifying that. I also think that this post is not about interviewing. I am much more concerned with the line the author takes about knowing how a digital computer work is even necessary. How have we arrived at this point?…

> As an example, how seriously would you take an aircraft flight controls software engineer who willfully chooses to never learn how an airplane flies?

This describes exactly the Boeing and MCAS fiasco. In fact, not only did Boeing hire do this, they outsourced the work overseas. People overseas are capable of doing great work, but they do the work exactly the the spec and nothing more. If you don't have an internal engineering process to account for situations unique to software, there's no way you can ensure that what they deliver is fit for purpose.

> Furthermore, I know a slew of extremely bright, tenacious, and committed young people who are ruthlessly pursuing excellence in engineering.

Those types of kids are going extinct. The kids coming up now are entirely smart-phone raised. An actual computer is an afterthought, they can't even explain what a file is. We're headed for the software engineering dark ages.

Re: They don't even know the fundamentals

#283

Earlier quoted context omitted.

I think you misunderstood his point, I think what he's saying is that even good back end devs are horrible at designing UI and you need different people with different specialisations on a team.

I'm horrible at designing UI too. That's simply not the job of building modern interfaces across multi-disciplinary teams. I care far, far more about data-structures, eventual-consistency, data-design, and types than CSS and divs. These days getting the design to look nice is my two-hour reward for nine days of data-stitching hell, writing backend-for-frontend lambda functions, and negotiating API contracts that actu…

I think he was saying that the GUI programmer doesn't need to know how to use a profiler for their work to be valuable, and that if you're good at optimizing you don't need to know how to choose tasteful colors for your work to be valuable. My reading is the opposite of your reading.

Re: They don't even know the fundamentals

#284
post #4

Earlier quoted context omitted.

I've seen this argument before and I don't think I agree. Surely there's a lot of times when I program that are heavy into thinking, but there's also a lot of mechanical work. Refactoring? Typing speed will help you. Going to try out a new approach? Typing speed will help you to see whether it's true or not. Everything else being equal, typing speed will help you try out stuff faster.

I'm a developer who is also a pretty fast typist, and I have to say that's not my experience. I wouldn't want to hunt and peck, but my sense is that higher than, like, 40 GWAM probably yields diminishing returns. Language might make a difference there. Writing C# with a QWERTY keyboard, you still have to interrupt a normal typing flow for your parentheses, braces, etc. I suppose it's helpful if you're writing long co…

I put my parentheses on the [] keys: http://canonical.org/~kragen/setting-up-keyboard

It helps a lot with most programming languages. Snippets for if, while, and for can also help with the {}.

Re: They don't even know the fundamentals

#285
post #250

Earlier quoted context omitted.

And it rises legal issues in several countries

What legal issues?

I'm not OP, but I imagine the concern is doing work for the company (i.e. fixing a bug in their codebase) without getting paid at least minimum wage for it.

Re: They don't even know the fundamentals

#286

> There is another fundamental that is ignored by a lot of computer users. I think everyone who spends a lot of time behind a computer should learn how to touch type, since typing is still the main way of interacting with your computer. I sort of agree, but anyone typing out code at 120WPM isn't programming, they're writing. Programming is an intellectual activity, not a physical one so learning to touch type is wort…

Certainly you can be a highly productive programmer if you only hunt and peck, but it's a real handicap; you have to do a lot more of your programming in your head and a lot less in the computer. (Though 40wpm is unheard of, you might get 30.)

I think the best analogue is blindness: it dramatically reduces the bandwidth of the information channel from the computer to you, but there are highly productive blind programmers. Hunt-and-peck programmers are in a similar situation.

Re: They don't even know the fundamentals

#287
post #17

> There is another fundamental that is ignored by a lot of computer users. I think everyone who spends a lot of time behind a computer should learn how to touch type, since typing is still the main way of interacting with your computer. I sort of agree, but anyone typing out code at 120WPM isn't programming, they're writing. Programming is an intellectual activity, not a physical one so learning to touch type is wort…

Do someone really needs to learn touch typing? It comes naturally when you are using computer daily.

Yes, someone really do needs to. I used computers daily for 10 years without learning to touch-type, reaching about 24wpm. Then I took a typing course, and in 9 weeks of 5 hours a week I got up to 40wpm, faster than the fastest hunt-and-peck typists. A couple of years later I was at 50wpm, and then I started using IRC and was up to 90 within a few months.

People can practice a skill for a long time, but if they don't focus on improving, they tend to just harden their existing habits.

Re: They don't even know the fundamentals

#288
post #215

I've found bad interview questions fall into one of three camps: 1. The interviewers aren't subject matter experts themselves but are hiring managers, so they've taken their questions from someone else. 2. The company gets far more good candidates apply than they can hire, so the process is less about removing bad candidates and more about having some arbitrary way of whittling down good candidates. 3. The interviewe…

In an interview, they gave me access to their codebase and asked me to fix an actual (small) bug. The interviewer showed me where the codebase was, how to replicate the bug, all of that took less than 10 mins. Then he left, told me to give a shout once I am done. Took me about half hour to do it, another 10 mins to explain what I did to fix the bug. There were no other questions - no white board stuff, no algorithm q…

My entire "interview" at Netflix was me helping their top database people solve a severe performance problem in their operational systems. In the two hours I was there, I diagnosed the root cause and showed them how to fix it doing something they did not know was possible. Best and easiest job interview I've ever had.

They tested it after I left (a >100x improvement apparently) and called me the next day to ask when I could start.

Re: They don't even know the fundamentals

#289

To me non-ACID means you can never use any logical reasoning to have an idea of what there is recorded in your database at any given moment. ACID means you execute a piece of code in a transaction and if something goes wrong it fails altogether returning you to the pre-transaction state. Am I wrong?

Yes, you are wrong. For example, the "I" in ACID stands for isolation, which offers some guarantees regarding concurrently running transactions. In particular, if you have 2 concurrently running transactions A and B, and A finishes before B, and B fails, then the database does not return to the pre-transaction state (if failing transaction B would cause transaction A to be rollbacked, the Isolation principle would be violated).

Furthermore, many real-world databases do not fully provide ACID guarantees, and yet you can reason about the database anyway.

Re: They don't even know the fundamentals

#290
it’s true that database are lying about ACID and you only get true acid if you change database isolation level from default to “serializable” but on most database (that don’t use mvcc) you would get horrible performance.

I still think any programmer using any database should know what “data consistency” you sacrificed for using “Read commited” instead of “serialisable” and how hacker can use it to steal million of dollar of your e-commerce company

Post reply on HN