As far as grading, I wouldn't expect responsive design or old IE support, but it should work in all current, major desktop browsers. It's really not hard, you just have to be conscientious of the fact that there are multiple browsers out there.
In addition to being SQLite focused, I tell students to just use one open-source, cross-platform client: http://sqlitebrowser.org/
Sure, you could make the argument that I'm woefully preparing my students for jobs in which PG/MySQL/MSSQL is by far the standard...whether you're talking about web applications or dealing with legacy data files. But job viability is not in my scope...I argue that I'm teaching students the fundamentals of data and logical joins...that I use SQLite is merely an implementation detail.
That's how I feel about the CS 142 class...if students come out of that class being able to understand even an intermediate level of all those concepts...when they get out into the "real world", learning how to write for cross-browser compatibility will be well within what they can learn on the job. Just like it's trivial to learn the other variants of SQL once you've grokked SQL itself.
If I hired someone to do data analysis, and they delivered accurate results using SQLite, I could not fault them since the deliverable is correct, whether they used SQLite or PG.
If I hired someone to build a web application, and then found out that it only worked in Chrome, that's a broken deliverable.
The specific tool (SQLite/PG/etc or Chrome/FF/Lynx/etc) used for creating each deliverable doesn't matter.
FeatureA works in Chrome/FF but looks weird in Safari and is outright broken in IE. 7.346/10?
For your FeatureA, I'd ignore IE (that's a whole college course in itself), but I'd grade that 9.8/10. -0.2 cause it looks weird in Safari.
Indeed, in my experience, the thought that this is how it's done/what analysts should do is a chief complaint about academic-esque analysts, because they can't actually implement anything or their solution is completely unworkable for real scale/tech environment/software stack.
But I would happily take a job where I can be paid to live in my ivory tower if you know a place that views that as the deliverable of analysis :p
Indeed, I think the comparison of someone delivering a webpage that doesn't run on other browsers is quite an apt analogy...
http://writing-skills.com/five-annoying-ways-use-ellipsis
http://www.holyfuckingshityouredumb.com/2010/02/02/the-dread...
I remember my first job not knowing the difference between #includes with brackets versus quotes, and where the IDE was searching for them. I was so pissed that my CS program didn't prepare me adequately for my first job. But the truth is this was one of thousands of "figure that shit out for yourself" that they glossed over in favor of "don't write n^n algorithms" and "cartesian products will be the death of you"; I'm currently taking over a code base where simple requests from an ORM are issuing thousands of queries.
So, please continue to teach SQL. As for browser coding, I learned all that on the job too, and it has no place in an academic setting. It's entirely dependent on feature needs, your target market, accessibility concerns, etc. To say that some new graduate should have all the skills necessary to navigate that minefield is madness.
I wonder how many people bitching about Chrome/Firefox/IE are ARIA compliant.
On that note, my experience has been that academic environment often does more damage than good to its students. It sometimes takes a monumental effort to make the graduates unlearn all the wrong things they learned in the academic environment before they can proceed further in their professional development without all that bad baggage that keeps pulling them in the wrong direction.
It's like children mistreated by their parents in their youth who will carry their psychological trauma from the childhood through the years and that would detrimentally affect their lives until they get some professional help from a skilled counselor.
Not helped by lecturers who'd either always been lecturers or lecturers who'd left industry 15 years earlier (this was 2005 so they'd have left in 1990).
It was still a valuable experience since a lot of the other stuff was valid but I took all the programming stuff with a massive pinch of salt.
* Except Charlie, Charlie was an ex-telecomms C/Unix God he didn't like the way a lot of the programming stuff was taught but he did point us all to where we should be looking.
Exactly what I'm talking about. I've met graduates with very weird ideas about how to approach problem solving, and they would eventually confirm it had been taught to them at the university as the one true method of doing things. I remember that I myself had to "accept" some of the ideas being taught to us and recite them at the examination, pretending I agreed with them. Was the only way to get through some courses, and I recall many other students suffering from wrongful instruction. Some tried to argue with the academic staff and get those wrong things fixed, many of them would pay the price later by failing the examination. Apparently, those lecturers and professors didn't like their competence questioned.
About 15 years ago we had a new lecturer come to teach our group. I remember my thoughts after a couple of his lectures: this guy must have been thrown out of every shop that's out there. Was completely useless, even if senior by age (around 50 I believe). Tried to teach us about computers by reading aloud a book similar to the "Computers for dummies" series. Was not a good reader either. From the rumor that was circulating around he had a buddy in the hierarchy and used that to land a job at our university. Was truly pathetic.
As the common saying goes: Those who can do, do. Those who can't do, teach. Those who can't teach, manage.
Please, your analogy just doesn't make any sense. Just because someone is stubborn and doesn't want to relearn something doesn't make it professor fault. Nor does it mean he/she suffered child mistreatment. Parents beating their children leads to mental illnesses if the right genes are present. You are reducing child abuse to banality.
Consider that as a lecturer every your word will carry a meaning. Even an innocuous remark may turn out to be something that will stick with one of your pupils for years and will lead them to make a sequence of wrong decisions that will eventually ruin their life.
Having access to younger minds and influencing their personal and professional development is not a joke. It's that kind of a job which if not done properly may potentially produce the next tyrant.
Generally speaking, a person only begins to reach psychological maturity at around 30 years of age. Until that time all incoming ideas generally fall on a fertile ground, as the person is not yet capable of telling bad apples from the good ones apart and can't always discard the wrong ideas. Sometimes it's exactly those ideas that take and derail somebody's life, unnoticeably, one step at a time.
I asked him why he wasn't just storing it in a hash table instead. His answer: "Because I sometimes need to iterate over it and get both the key and the value"
My brain had to sit and parse what he'd said for a few moments, before I realized what the heck he was talking about. In all of the data structure courses, he'd been taught "A hash table hashes the key, and stores the value in the corresponding slot". In that mental model, there's no way to retrieve the key, only to retrieve the value given the key.
I explained to him that real-world implementations do do that, but also store the key along-side the value, so that you can still iterate across it. You could see the look of amazement wash over him, and then he frustratingly declared "Why the hell didn't they mention that?!"
And yes, when you've got a complete understanding, it seems quite obvious that the key has to be stored with it. That's why I got it. He'd just learned it though, and there were still those gaps in his knowledge that he would have carried for a long time until someone else helped point out the missing piece (or he had decided to sit through and make sure he understood everything)
DISCLAIMER IAMA academic
Grandparent. Two posts up the hierarchy from the person who used the term "GP".
So this is a personal attack then. Frankly, I expected better from the HN community. It looked more evolved when I was just an occasional visitor prior to joining. Rather disappointing.
It seemed like a bit of a snipe maybe (or a joke where they forgot the smiley). I went back and re-read your original "GP" comment and it seemed like you had encountered a number of students who had trouble as a result of such teaching. The snipe implied your experience was just your own personal problem, which seems false in looking at it again. Relax, it's just people you don't know responding to someone they don't know.
Anyway, I appreciate your viewpoint.
How bad are we talking? My small bubble doesn't constitute mountains of data, but I have friends across the US from top-tier and not-so-top-tier schools that aren't damaged goods from academia.
Better yet, are you sure it's academia that screwed up or stubborn individuals who worship the ground their professors walk on? Those are the types of people that see academia as the end all, be all of what's right.
And I say this as a JavaScript dev.
While Angular 1.x is still big, most new things are made with React. Mongo has gotten a ton of bad press over the last few years that it's hard to find positive things about it any more. This has more of an effect that you'd think. Express and Node are fine though.
What I mean is that Rails, though older, is still much more popular than MEAN.
Ironically my work place uses Express and Mongo, but React!
The last point on the graph is for July which is very partial data, so it's probably best to ignore it.
Without that point, the trend seems to be upwards.
I wish it was dying down - I do not have much love for any part of that stack - but Google trends does not tell us that.
Damn. I would definitely not take that class.
I don't think it makes sense even then. The toolset is just way too complex both for teaching, and even for practical use for small projects.
I mean, when people are supposed to learn about things like HTTP, or the idea that server-side programming involves writing programs (the normal, regular kind) that output text - which will later be sent over the wire to the browser. Or even how the control flows through your application. You know, the basic, fundamental stuff - understanding of which is kind of required to do this job well. All the "we'll teach non-programmers coding with current framework du jour" courses and classes I've seen involve typing in magic invocation that generate shit ton of folders and files that nobody tells you what they do or - more importantly - why they're even there, and that's all for a "hello world" app.
I feel that all the current sexy web classes are aiming to produce code monkeys, not programmers. Which might be an effective way to get someone to bullshit their way into the first job - but I doubt it serves the students long term.
Personally, when I'm teaching someone server-side development, I start with simple programs that print stuff to terminal using the regular printf()/whatever calls, and then show them that websites is what you get when you send that text to a browser instead...
http://web.stanford.edu/class/cs142/
It requires students to test on Chrome:
> Unfortunately, Web browsers are still not 100% identical in their behavior, so Web pages may behave differently on different browsers. For this class, the reference browser is Chrome: your project solutions must work on Chrome, and the CAs will use Chrome to test them. Your solutions need not work on any browser other than Chrome. You may use a different browser to develop your solutions if you wish (Chrome, Firefox, and Safari all have very similar behavior), but please test on Chrome before submitting. We do not recommend that you use Internet Explorer for development: historically, its behavior has been quite different from the other browsers, so things that work on IE may not work on Chrome, and vice versa.
I have mixed feelings on this. Sure...open web, and everything. But in academia, Chrome is one of the more ubiquitous dev environments to be used...I remember being locked into Visual Studio. And purportedly, the class isn't just about job skills...it's attempting to teach HTML/CSS/HTTP/JS to students who may have not had real exposure to any of those concepts, on top of Angular/Mongo/Node/Express. Restricting the environment allows at least for more consistent instruction/grading.