7 ms·
I'd say the issue is, and continues to be, growing pains. They're certainly losing the lead in software engineer talent (giving it away to whom, I'm not sure).
by stcredzero 8y ago
I'd say the issue is, and continues to be, growing pains.
They're certainly losing the lead in software engineer talent (giving it away to whom, I'm not sure).
I keep on interviewing recent Comp Sci graduates who have a 3.75 or a 4.0 and who can't tell me how to implement cycle detection -- to the extent that they could write a pseudocode function signature or some kind of concretely implementable design. Many of the same grads try to tell me that a null pointer in a C structure uses no memory and other nonsense like that. You know what I think? I think the CA grad student population no longer knows those things, so they are producing undregrads who know even less.
my MBP crashes when plugging in an external monitor, etc?
When my Macbook Pro is "locked" it flashes an image of the desktop screen just before switching to the login prompt.
- foepys 8y ago> When my Macbook Pro is "locked" it flashes an image of the desktop screen just before switching to the login prompt. It's the same thing on Android when you are switching users. How something like this can get QA is crazy to me. That is certainly not the way it's supposed to work.
- cobookman 8y agoThose things aren't taught in CS programs as the majority of companies don't need those skills. Most want application development such-as a web or iOS app developer. However Computer Engineering programs teach those concepts as the focus is on low power micro controllers.
- stcredzero 8y agoThose things aren't taught in CS programs as the majority of companies don't need those skills. Most want application development such-as a web or iOS app developer. This sort of thing is very relevant for someone writing an application or a server process. Programmers who can write their own compiler are much better C and C++ programmers, because they have relevant background. Programmers who understand the low level stuff can write faster code when it's important, and they know better where to look when optimizing. Since when has our "field" become so flubby that we're now eschewing the notion of background knowledge? Are you telling me that we are churning out Comp Sci grads who couldn't write their own low level libraries or compilers? Tech people should have at least a working knowledge of how their own tools work, to the extent that if civilization fell, they could have a good chance of recreating primitive versions of those things. However Computer Engineering programs teach those concepts as the focus is on low power micro controllers. Also relevant to high performance code. Also relevant to game engines. Also relevant to interfacing servers with legacy code. Also relevant to technology like WASM. Whoever decided to relegate stuff like that to Computer Engineering seems guilty of the same ignorance I see in these recent students.
- ovao 8y agoThe question becomes: to what extent does acumen for writing a compiler overlap with the acumen for writing reliable code productively? I think, generally speaking, the overlap in a Venn diagram of that would actually be relatively small.
- WalterBright 8y agoPeople don't tolerate compiler bugs very well. I'd say there's quite a bit of overlap.
- lsc 8y ago>People don't tolerate compiler bugs very well. I'd say there's quite a bit of overlap. I don't see how your first point is related to the second. The goal for most webapps is to get something that works most of the time. Most software engineers simply don't need to worry about their third nine, much less their fourth
- ovao 8y agoI think you're arguing that without good compiler authors, a typical application developer would be inherently unproductive. Which is true — compilers are necessary tools, and it's necessary that they be good. But what I was suggesting is that one does not need to be capable of being both a compiler author and an application developer (if, for the sake of discussion, we avoid any semantic arguments and treat these as generally different things) to be of good value. I don't know how to, say, write a proper lexer, or write any assembly worth any salt at all, but I can write what I consider to be good, reliable application code at a reasonable level of productivity.
- lsc 8y ago>Programmers who can write their own compiler are much better C and C++ programmers, because they have relevant background. Sure, sure. But how many companies care about that sort of thing? C is rather my best language, and as far as I can tell, that helps me out as a sysadmin, but I need to be good at some EMCAscript based framework if I want a higher-paying Software Engineering job, at least outside of the embedded space (and I'm not that good at C. Also, most of the embedded types I know don't get paid SWE level salaries.)
- andreareina 8y agoA Computer Science program that doesn't teach cycle detection is a bad Computer Science program. It might still be a good engineering program. I enrolled in a CS program as a self-taught programmer specifically because I wanted a better grounding in the theoretical foundations.
- zamfi 8y ago> When my Macbook Pro is "locked" it flashes an image of the desktop screen just before switching to the login prompt. This used to happen to me and I was very annoyed. Felt like a major security hole. But now I get a scrambled image before the login prompt. Are you on the latest macOS?
- stcredzero 8y agoI also get the scrambled image as well. I am on the latest, last I checked. I generally keep updated.
- rleigh 8y agoI got this just two weeks back, fully up to date 2015 MPB. I was shocked that this could happen; I could even click around on the desktop for a few seconds before it locked up, and I had to hit Esc for the login screen to appear. I didn't even realise it was locked the first time it happened. A very visible reminder about software quality at Apple.
- AHTERIX5000 8y agoI get sometimes scrambled image and sometimes normal desktop before login, it could be rendering something from uninitialized buffer.
- jorts 8y agoMy MacBook does the same. I was messing around earlier this week taking a video of it as I thought you could capture private info from it and while I couldn’t do it from my iPhone with a couple of tries I’m fairly certain you could with a higher quality camera. It’s a ridiculous security vulnerability.
- mehrdadn 8y ago> You know what I think? I think the CA grad student population no longer knows those things, so they are producing undregrads who know even less. Any data points on the grad students specifically? Or is it just a guess based on how the undergraduates performed?
- OP9000 8y agoFinally someone else who noticed this! I took video and it is indeed realtime. There has to be a way to exploit this obvious oversight. This is with filevault on as well.
- djsumdog 8y agoI knew CS graduates who loved parsing theory and could implement some basic C compilers, and I knew some who didn't know what a SCSI controller was. You get out of your education what you put into it. I had someone in an interview in Berlin ask me to write a garbage collector. In CSC 202, our professor talked about using reference counts. Reference counts can get leaks if you have two objects referencing each other with to path to either, but what I didn't realize is that Java hasn't used reference counts in a really long time. It does a search from each root (typically a thread) down the object tree; and it breaks things into young/old (eden space and .. something else) so long lived objects don't get searched as often. I learned all of that during the interview lunch break when I looked it up on my phone. One of my good friends wrote a compile time GC for GO and did this PhD dissertation on it, and he probably would have got this question right. But if it's not in your field, well the problem space for problems is pretty fucking large. Cycle detection? Man I could probably tell you back when I studied minimum spanning trees and wrote this thing to implement Dijkstra's shortest path: https://penguindreams.org/projects/graphmapper/ https://penguindreams.org/projects/graphmapper/ Off the top of my head, I'd hope each node had a unique identifier and I guess I'd mark them/store the keys in a hash table. I'd move breath first and error out if I discovered the same hash/unique key .. which of course would give me a hash the size of the tree. Unless there's a way to mark the data structure, you now have a second structure the size of your key space. I'm sure there are better solutions, but I wouldn't expect a senior program to know them off the top of their head, unless you're hiring really specifically for a position writing routing algorithms or looking for a senior airport transit architect.
- WalterBright 8y agoI just set a "visited" bit in the data structure while the code walks it. There's a cycle if the bit is already set. It's the same algorithm as yours, but a lot cheaper.
- jmts 8y agoPerhaps cheaper in space, but you will have to do an initial pass over the entire structure to zero your visited bits first, so it may not be cheaper in time.
- WalterBright 8y ago> recent Comp Sci graduates I knew some back in the early 80's who didn't know what a CPU register was.
- gaius 8y agowho can't tell me how to implement cycle detection You should read this before asking that again http://www.nihlos.com/2009/05/04/stupid-interview-questions/ http://www.nihlos.com/2009/05/04/stupid-interview-questions/ When my Macbook Pro is "locked" it flashes an image of the desktop screen just before switching to the login prompt. Same with my Mac Mini on the lock screen. Very easy to start a camera going (say an iPhone) waggle the mouse and get a screenshot of any locked Mac.
- mulmen 8y agoI think this is because the Mac doesn’t lock at all by default. The actual behavior seems to be “prompt for password after screen saver is interrupted” so that flash is the time it takes the OS to realize the screensaver just turned off and it’s time to ask for the password on the lock screen. When I leave my Mac I always do a ctrl-shift-eject/power to force the lock immediately.
- gaius 8y agoThe saving a screenshot and immediately showing it is a UI trick to make waking up/unlocking look faster, gives the user something to look at while the apps are actually restoring to running state. Just they didn’t think this one through or test it adequately
- jimmaswell 8y agoThis sounds like the kind of applicant who would complain that fizzbuzz has no real world application. Despite the attitude in that article, there are real applications of cycle detection. https://en.wikipedia.org/wiki/Cycle_detection#Applications https://en.wikipedia.org/wiki/Cycle_detection#Applications
- gaius 8y agoIt sounds like the kind of applicant who understands the problem far better than the interviewer. So go on then: once you have detected it, what algorithm would you use to repair it? Wouldn’t you consider its existence to be a bug in the way the list was constructed?
- travbrack 8y agoI have to disconnect and reconnect my thunderbolt display exactly 2x to get the webcam on it to work.
- jimmaswell 8y agoThey couldn't even come up with the answer of keeping a hashtable of the pointers to check for duplicates?