4 ms·
It really depends on the position, but if I were doing the hiring I would say this is a great start. And then I would use it to continue the conversation. Wha
by Corrado 4y ago
It really depends on the position, but if I were doing the hiring I would say this is a great start. And then I would use it to continue the conversation. What happens after the text gets in the browser? What does a server do? What does REST mean to you? What happens after you hit the ENTER key and the page refreshes.
I've honestly interviewed developer candidates that didn't know what an operating system was. I asked this person what their favorite OS was and they answered "MS Excel". I politely asked them if that was an operating system and they declined to change their answer. Sure, at some point you might consider Excel an "OS" but I don't think they were thinking that deeply. Yes, the pool is that shallow, or at least it was back in the late 90's.
- harvey9 4y agoThat was when Excel contained a hidden flight sim game. Maybe the candidate just had a dry sense of humor?
- porknubbins 4y agoAsking what is an OS seems like kind of a hard question unless you have a decent amount of low level experience. At a high level I would say something like “software that provides an environment for other software to run safely and concurrently on top of and interact with hardware” or more concretely “a big while loop over a linked list of running processes that occasionally does syscalls” but I’m probably missing a lot.
- PaulRobinson 4y agoAn OS is an entire environment with an entire philosophy. You don’t get to just hand wave it away like this, when there are many people going for the same job who won’t. It is wonderful that we now live in a world of highly portable development where you don’t need to get into the nitty gritty to do basic things, but you’re missing out too much detail here. You know when you write a web app, when you start it, you need to bind to a port? Guess what provides that port? What does it mean to “provide a port”? How does it physically work? How does this differ on Linux vs BSD vs Windows? Are there reasons you should care? You know when you write a mobile app you need to use public apis to do things like draw to the screen or get user input? Guess what provides those apis? How do these APIs differ from OS to OS? What’s missing that you always reach for? How does local storage work? Or a remote API call work? And then arguably the internet itself - and I mean it in the sense of the RFCs that define the behaviour - is an OS in itself. When you type something into your browser location bar and hit enter you start a chain of processes that involve DNS resolvers, root servers and registries, multiple routing algorithms (at different levels of the stack from Ethernet or wifi up to BGP), get invoked as your packets try to find their way to their destination, and the replies try to move their way back. Way, way below the HTML and CSS is this monster of dependencies. How does all that work? Why is it built that way? What are the failure modes and can you mitigate them? These questions are rhetorical but they are meant to provoke a little nudge of curiosity: there is a rich, deep vein of thought that has gone into every corner of that experience, and knowing a little more about it will allow you to develop better software higher up the stack. And honestly, even though I have worked mostly in the web app sphere for 20 years, if somebody just hand waves it all away in an interview, I know there is a lot of training we will need to do to get them to a level where they can successfully debug 100% of the issues we will see in production (and therefore reduce the chances of me getting paged). It’s not a red flag, but if somebody walks in just as good everywhere else and is locked and loaded on this, I’m inclined to hiring them instead. It would take a curious person a few weeks at a couple of hours a day to learn enough about this stuff to be able to talk to it and apply that knowledge. Meeting candidates who have never even thought about it is frustrating.
- porknubbins 4y agoThank you for expanding on my question. You are preaching to the choir here to some extent since I have worked with low level details of OS in terms of Linux syscalls, drivers, scheduling, networking, filesystems (and crucially built 6502 based systems without an OS which was the real eye opener to see what you have to do to manage memory and hardware when one is not there) enough to give a much more thorough explanation of what an OS is if necessary. I have also never had an interviewer seem to want that level of detail. It probably depends on the job and the interviewer. I am a little skeptical that there is a large enough pool of people out there who can meaningfully compare Linux vs a closed source OS like Windows, other than maybe current or former Microsoft employees. But I agree with your overall point that comparative knowledge is good. I still struggle to find an accurate and complete single sentence definition, for if I were asked "what is an OS" in an interview though. Maybe I am being too pedantic and the best answer is just to start listing the parts or functions of an OS.
- satvikpendem 4y agoI believe it's due to tech getting too easy these days, as with an iPhone or iPad, you just tap an app to do stuff. This is what I've seen at least, there's really no tinkering involved.