News for hackers. Stuff that matters.

dgbarnes

I would suspect that it's because for older devices without hardware crypto processors/certs it's impossible to distinguish between a real device and a Hackintosh (or Beeper client) that's spoofing a serial number. So while validating against a known list makes things harder, it's still not truly "secure" in the sense that older, yet still supported devices (like the 2015 MBP that I had up until about a year ago) aren't able to prove that they're actually the device, since they don't have a way of signing that proof in a way that Apple can verify.
As someone who's attended a community college both in my undergraduate career and again in preparation for grad school, this is something I think about quite a bit. Overall I'm pretty happy with my experiences studying at community college, and I'm of the mind that for most subjects, you can get a good education there. While I think it might be possible to get a decent education in preparation for a software development career at _some_ community colleges (like the technically-focused ones mentioned in the article), I suspect that's not the case generally. I think that has to do with two things:

One, part of the problem is that I've found "computer science" and "software development" get shoved under the umbrella of the "computer technology" departments of community colleges, rather than the math or engineering departments. Consequently there's a sense that software development is an extension of IT rather than an engineering practice. That might be true in a lot of settings (e.g. making VB widgets), but I'm not sure it's great for producing generalist developers. Frankly, I think it also lends to unqualified people leading departments, hiring instructors, and designing a curriculum. Anecdotally, one semester I took a discrete math class (through the math department) and a data structures class (through the CIS department); I ended up learning a lot more about data structures in the math class, and the programming project I did for the math class was much more instructive than any of the projects in the CIS class.

Two, across all institutions (boot camps, community colleges, universities) there doesn't seem to be a coherent curriculum on how to teach this stuff [1]. With math, english, economics, etc. the lower division classes are basically the same everywhere. Even if you think the way we teach subjects is kind of weird (as I do with math), everyone knows what "Calc II" means, or what's taught in an intro to microeconomics course. With software, there's no consensus on where to begin. Is it an infusion of theory and practice ala the SICP-based courses (MIT and Berkeley)? Intro to programming (Stanford)? A class where you learn how to use an office suite (a lot of community colleges)? Git and HTML/CSS (bootcamps)? [2] As a result, it's not surprising that individual classes don't line up. Maybe this is fine for the case where students will only ever study at one school, but for a lot of students indenting on transferring to a university (or anyone trying to evaluate a curriculum) it's quite cumbersome.

Not being an educator (and being mostly self-taught for software development), I'm not sure what the best approach is. Personally, I think a combination of theory/assignment based classes supplemented with longer-term project courses is probably the way to go. The former helps in presenting a general area or class or problems, and how to solve them, and the latter might help with exposure to the diversity of practical software development.

[1] I say "stuff" intentionally. Even the scope of "software development" is huge and hazy

[2] I could be wrong with the specifics on schools here :)

Re:What people actually do at WeWork on Sunday February 04, 2018 @12:44AM (#16301550)
True story: I worked for OkCupid Labs a few years ago and we made "Hater Dater" as a hack project. The concept was kind of a joke, but we actually ended up extracting a useful tagging library that we used in other projects. I put a little more time into it after the Labs was closed, but never thought it worth putting _that_ much effort into. So it's amusing to see someone working on this project in earnest, with funding, when internally we couldn't get the OKC/Match/IAC resources to play with it for longer than a week (which honestly is probably the right call). Maybe the moral of the story is that life is kind of a joke?
Re:Ask HN: Fully online CS degrees? on Monday December 11, 2017 @05:30PM (#15901213)
I replied generally above, but this is pretty much what I'm doing too. In addition, I think you can usually use extended university coursework to meet prerequisites in a degree program at a different school, if not count some of the credit toward the degree. So that helps mitigate the risk somewhat. Of course it won't line up as nicely as if you just do everything through the same school, but it doesn't have to be entirely for naught either.
Re:Ask HN: Fully online CS degrees? on Monday December 11, 2017 @05:18PM (#15901081)
Some things I've learned about school. I'm looking to apply to a masters program, so this might vary a little bit, but hopefully it's helpful:

* If you already have a bachelors, chances are getting further education doesn't make sense from an ROI/opportunity cost standpoint. That's ok though--there are other reasons to further your education. Just run some numbers and know what you're getting yourself into though.

* Community college can be an excellent value, especially for more introductory classes that have a pretty defined curriculum. Outside of that, quality seems to vary more and it's possible your credit won't transfer or satisfy the prerequisites to your program of choice. Unfortunately, most community colleges don't seem to have university-level courses beyond the basics. Leading to...

* Computer science programs have a lot of variation in terms of their curriculum, so it can be hard to piecemeal classes from different sources. At the masters level (which, if you have a bachelors already you might consider) most programs expect you to come in with something of a bachelors-ish level background in computer science, and if you don't, they'll have you take their curriculum. It seems like having professional experience helps in terms of consideration, but not in terms of coursework.

* There are a ton of online programs out there. For what I'm looking at though (MSCS), they work pretty similarly. You can take classes on a per-class basis, then apply to the program, and they'll accept some amount of units toward the degree (note that you can't apply units from your undergrad degree). I know this is the case with Stanford's SCPD program, and I believe it's also true of USC and Columbia.

* Online programs can be pretty expensive on a per-unit basis. Taking one class at a time helps with the sticker shock. Also, there are a lot of professional programs that take less time. Personally, I'm hoping to do a research project, so that won't work for me, but it might for you.

* You can also take classes on an "open" basis at a local university, which is nice for the odd class that is tangentially required that you don't want to pay a lot of money for. For example, I'm taking probability theory at SFSU right now.

A little about me: I'm currently taking classes in preparation to apply to a masters program. I have a BA in economics, but I've been developing software professionally since 2008. I'm currently doing the "Foundations in Computer" science courses through Stanford's SCPD program to provide a coherent core curriculum before applying to programs.