Project lead here: We are about to push v2.0 live, apologies if the site goes down momentarily.<p>The one time we try to update things quietly...<p>EDIT: We are going to post 2.0 tomorrow morning our time (that's about 18 hours from now), but we have setup a redirect from the old dev version that was posted to a newer student version. The dev version shows all comments/planning etc so harder to read. Though everything will look much nicer tomorrow morning with the new open source version hosted here <a href="https://github.com/uccser/cs-field-guide" rel="nofollow">https://github.com/uccser/cs-field-guide</a>
Tim Bell (who helped make this) is a great guy, he spends a lot of time getting kids interested in Computer Science, with CS Unplugged [0], as well as teaching teachers how to teach computer science to high school kids.<p>I'd say it's in a large part due to him that Python is becoming the de facto standard for high school programming in New Zealand.<p>He's also a bloody good lecturer, he teaches the intro to algorithms at Canterbury, and does heaps of physical demonstrations of how algorithms work, like using a set of scales for sorting algorithms.<p>[0] <a href="http://csunplugged.org/" rel="nofollow">http://csunplugged.org/</a>
This is great! I'm one of those self-taught programmers who holds two truths in his head at once:<p>1) I can learn anything I need to when the need comes up<p>2) With the exceptions of PLT and complexity, there are a lot of things (network protocols, compression, crypto, formal languages) that have not come up yet!<p>So I'm glad to see a survey of these subjects. Formal languages in particular I've felt the hole.
It's not nearly as thorough as this site, but I'm reminded strongly of 'The New Turing Omnibus', which has been on the Cambridge (UK) Computer Science pre-undergrad reading list for many years: <a href="http://blog.codinghorror.com/practicing-the-fundamentals-the-new-turing-omnibus/" rel="nofollow">http://blog.codinghorror.com/practicing-the-fundamentals-the...</a><p>It's a great introduction to the fundamentals of many fields of CS and is accessible to all sorts of folks.
Student version of the guide: <a href="http://www.csfieldguide.org.nz/" rel="nofollow">http://www.csfieldguide.org.nz/</a>
"YAGNI stands for “You ain’t gonna need it” and tells developers to keep things simple and only design and implement the things that you know you are really going to need. It can be tempting to think that in the future you might need feature x and so you may as well already create it now. But remember that requirements are likely to change so chances are that you won’t need it after all." [0]<p>I work in a platform team in a large multinational and had to laugh about the XKCD. I also was a bit surprised about the one-sided view presented here to unexperienced readers who might not think ahead. I cannot count the number of times I encountered the other side of the story where each team tells me their code is special, different from everybody else. Costing the company lots of money while all they are doing is reimplementing data storage, authentication, image processing algorithms, or feature X for the 10th time. The surprise on their face when we let our generic platform component handle it for them with just a few lines of code is always priceless (usually after such a demonstration they come shopping and start "aha-ing" when we tell them that other feature they now want for free from us is too specific to have in a platform :D)<p>[0] <a href="http://www.csfieldguide.org.nz/SoftwareEngineering.html#agile-software-development" rel="nofollow">http://www.csfieldguide.org.nz/SoftwareEngineering.html#agil...</a>
Really good material here. Particularly liking the dry humou?r here:<p>-----------------<p>Programmer welfare<p>Software developers should not work more than 40 hours per week. If they do overtime one week they should not do more overtime the following week. This helps keep software developers happy and makes sure they don’t get overworked.
This is awesome! I wish I learned to code during high school. I can't imagine what level the next generation engineers/developers will be like if they start when they're teens. Limitless potential!
Great info, presented in a nice way. I could not imagine my high school self being the slight bit interested in it. I wish that wasn't the case, because I could've been Mark Zuckerberg had I been interested in CS in high school during the late 1990's/early 2000's.
Url changed from <a href="http://www.cosc.canterbury.ac.nz/csfieldguide/dev/dev/index.html" rel="nofollow">http://www.cosc.canterbury.ac.nz/csfieldguide/dev/dev/index....</a>, which redirects to this.
I love the concept and the goal, but the irony was too much. Right in the introduction, where it is talking about how speed (as an example of program quality) impacts usability, the little calculator widgets don't work for me (iPad mini, 1st gen, with up-to-date iOS, stock Safari). Maybe it is my hardware or my OS, or my browser, but I'm just a dumb user, so I don't know or care. But maybe they just tried to be too fancy and shot themselves in the foot. Or maybe I should just follow their advice and download Chrome. Yeah, I'm sure the answer is to add another browser to my device and let Alphabet spy on me too (bad enough Apple does it, why give them an advantage).<p>Or maybe "stop breaking the Internet" is just the new "get off my lawn."