code release isn't always the most important. bret victor never released code to any of his prototypes, but the ideas conveyed in his interactive essays have inspired many hackers to come up with their own solutions, or to adapt his ideas into their systems. e.g.,
N=1 personal anecdote: A few years ago I spent a day visiting Wellesley College's CS department (all-women's school) to give a talk and to meet with professors and students. And one of the main vibes I got was that students felt way more comfortable there just focusing on hacking, understanding, debugging, struggling, etc. with the hard parts of CS/programming without worrying about the tons of well-documented implicit biases, stereotype threats, and issues that are commonly-found in regular CS classrooms. It wasn't that they somehow wanted special treatment as "women studying CS" (they didn't) -- they just wanted to be able to focus on CS without all the other external crap that their peers in traditional CS programs need to deal with. See Unlocking the Clubhouse for a comprehensive study of this phenomenon.
the 'crossover point' is different for everyone. e.g., would you rather be a 60th percentile student at a top-tier, or 90th percentile at a second-tier? (for some fuzzy, ill-defined definition of 'percentile') everyone needs to decide for themselves. as one oversimplified caricature, maybe it's still really hard to get an interview at your top-choice company even if you're 90th percentile at a second-tier school, but even the slackers who barely crawled to graduation at a top-tier school gets that same job interview.
#meta -- don't report back :) keep those to yourself. make a post at the end of the year to reflect on what you ended up doing, not what you plan to do.
Blockly has been a reasonably widely-used open-source contribution, especially given that it's mostly a one-person project (the last time I checked, but that was a few yrs ago).
Sure, there are advantages to both approaches, if done well. But I bet that diving into Linux first would make it really hard for beginners to get a deep grasp of core concepts; may be fine for more advanced learners. e.g., the scheduler is probably 10,000,000,000 lines of complexity when the core scheduling algorithm probably fits on one page of code.
What about a 'teaching' OS/compiler/toolchain vs. the 'real' thing? e.g., a stripped-down OS kernel with minimal clean code optimized for teaching vs. throwing someone into Linux source. or a teaching-oriented compiler vs. wading into GCC/LLVM?
Teaching languages/OSes/compilers/toolchains (if done well) lower the barrier to entry while providing a conceptual transition path to learning 'real' stuff later on the job. Plus, the 'real' thing that we may be teaching in school now may not even be relevant in 4 years in industry when students get out into the working world, and they will have to pick up new languages/toolchains/etc. constantly on the job anyways. There is definitely a good argument for authenticity, but also one for paring down extrinsic complexity to illustrate core computer science concepts. e.g., try explaining parsing using full-blown C++ as a case study -- that seems pretty daunting. But one of these teaching languages (if done well, of course) is much easier to write parsers for.
UIST is one of the premier human-computer interaction tools conferences, so it's the closest that accepts "SIGGRAPH-like" technique papers for audio. Maneesh Agrawala from Stanford has several great papers in this space of audio mixing/editing: http://graphics.stanford.edu/~maneesh/
At most, link to this HN thread so that readers can see different perspectives, but you wrote the article you wanted to write, not the one that anonymous online critics wanted you to write. If others want to write a response saying why you're misguided, by all means go ahead.
If you want a CS Ph.D., demonstrate that you're a REALLY REALLY GOOD programmer; that can make up for lack of significant research experience. I've advised a few dozen students of various ranks, and I still rate programming ability as amongst the top prerequisite ... everything else can be learned more easily in a short time, imho:
Having spent time at schools of various "ranks" (whatever that means), "politics" (whatever that means ... that's super vague) is everywhere. It's what you make of it. Whenever you have people, money, and status mixing, there is politics. That's not exclusive to academia. Every company I've worked at also had those dynamics. Want to eliminate politics? Be independently wealthy and work alone :) Otherwise everyone needs to learn to work with and transcend the system in their own unique way.
That's not exactly how it works. Professors can use grant money to buy out of teaching; they are not forfeiting their base salary. That money will be (indirectly) used to fund other instructors, which may be grad students. It's not like the department head forces an unsuspecting grad student to teach; if they choose to teach, they will be paid for their teaching (tuition + stipend) so that they do not need to be funded by their advisor's grants. The money has to come from somewhere.
Thanks everyone! Recording lectures has been great since it doesn't take much extra work than not recording; just takes some time to render the final videos and upload. Ideally I'd have time to split the videos up into smaller chunks, but alas free time is diminishing nowadays.
(I've visited and been a resident ... I guess I'm one of the non-high-profile ones). From my N=1 anecdotes during several visits, the vast majority of attendees were not "high profile" (whatever that definition is) ... and most people spent most time heads-down doing work or pairing/in-meetings talking about work. from what i observed, there was very little showboating. it's not like a 3-month TED conference or something :)
I'd go one step further and claim that good papers from reputable researchers (in our sub-fields, at least) are all freely available on the authors' websites. There's loads of shady journals behind paywalls that publish low-quality content, but the good stuff that research-active folks in academia use and refer to always seem to be available (N=1 anecdote over ~10 years of being in research). Again, this may be highly CS-specific; don't know how things work in other fields.
Vim user for ~10 years ... I find Vim more productive for writing prose than coding, since oftentimes the limiting factor when coding isn't pure typing/editing speed. And, as other posters have mentioned, good IDEs nowadays have a lot of integrated support for the entire software lifecycle and not just for pounding out code as fast as possible.
Yes, this is one path to getting someone hooked on learning CS, which works for a small percentage of students (myself included). However, most learners are motivated by other ideals beyond intrinsic language purity. This academic book highlights dozens of research studies that go deeper into this fascinating topic:
http://www.amazon.com/Learner-Centered-Design-Computing-Educ...
yep, but if you're good (e.g., a deep learning expert nowadays) and work on mission-critical, visible projects at a company with rising stock prices (Google, FB, etc.), i'm sure you can sustain $200k total comp each year as a fresh Ph.D. grad.