{"id":91,"date":"2008-01-18T18:27:04","date_gmt":"2008-01-18T17:27:04","guid":{"rendered":"http:\/\/tmachine1.dh.bytemark.co.uk\/blog\/index.php\/2008\/01\/18\/self-learning-guide-for-game-programmers-without-a-degree\/"},"modified":"2008-02-14T13:52:50","modified_gmt":"2008-02-14T12:52:50","slug":"self-learning-guide-for-game-programmers-without-a-degree","status":"publish","type":"post","link":"http:\/\/new.t-machine.org\/index.php\/2008\/01\/18\/self-learning-guide-for-game-programmers-without-a-degree\/","title":{"rendered":"Self-learning guide for Game Programmers without a degree"},"content":{"rendered":"<p>The following are hand-picked sections from the syllabus of the 3-year Cambridge University CS course. These are just syllabus, i.e. describing what you need to learn \/ teach yourself.<\/p>\n<p><!--more--><\/p>\n<p>EDIT: this list was originally created to help people internally who were network programmers or general programmers &#8211; it covers all the common core elements, but is still slanted towards MMO development.<\/p>\n<p>NB: For each URL I&#8217;ve listed underneath the key topics you should focus on learning &#8211; anything not listed, I&#8217;m basically saying &#8220;don&#8217;t bother with this, it&#8217;s of no use to you&#8221;. In some cases, the topics I have missed out are extremely difficult, so unless you&#8217;re really interested in them I&#8217;d suggest avoiding them for now.<\/p>\n<p>*SOME* of the courses you can get PDF or similar course-notes here:<\/p>\n<p><a href=\"http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/\">http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/<\/a><\/p>\n<p>&#8230;for the ones that are missing, you may find equivalents at MIT, which has it&#8217;s complete course notes online here:<\/p>\n<p><a href=\"http:\/\/ocw.mit.edu\/OcwWeb\/web\/courses\/courses\/index.htm#ElectricalEngineeringandComputerScience\">http:\/\/ocw.mit.edu\/OcwWeb\/web\/courses\/courses\/index.htm#ElectricalEngineeringandComputerScience<\/a><\/p>\n<p>&#8230;for anything you can&#8217;t find there, google is your friend. You have the syllabus (if you follow the links below) so you should be able to craft good google searches.<\/p>\n<p>Also, the University of Hawaii used to have some especially good free slides for a lot of the trickier subjects.<\/p>\n<p>Final note: IME, both as student and later as a private tutor, in practice a lot of Computer Science learning is self-taught. Apart from the syllabus (telling you what to read about, what to learn), the only part where you need the university is in marking your papers throughout the year, and so telling you where you were &#8220;wrong&#8221;. Of course, at university you get 3 years to devote your entire working week to learning, so it&#8217;s much harder to do it in spare time &#8211; but it&#8217;s possible.<\/p>\n<p><a href=\"http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node12.html\">http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node12.html<\/a><\/p>\n<p> Recursive functions.<br \/>\n O Notation<br \/>\n Lists<br \/>\n Sorting<br \/>\n Queues and search strategies<br \/>\n List functionals<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node18.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node18.html<\/a><\/p>\n<p> Regular expressions<br \/>\n Finite state machines<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node21.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node21.html<\/a><\/p>\n<p> Simple data structures<br \/>\n Sorting<br \/>\n Searching<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node29.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node29.html<\/a><\/p>\n<p> Graph algorithms<br \/>\n Geometric algorithms<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node31.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node31.html<\/a><\/p>\n<p> Concurrent systems<br \/>\n Distributed systems &#038; transactions<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node51.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node51.html<\/a><\/p>\n<p> Algorithms and problems<br \/>\n Non-determinism<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node52.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node52.html<\/a><\/p>\n<p> Introduction<br \/>\n The relational data model<br \/>\n Relational algebra<br \/>\n Schema refinement I<br \/>\n Schema refinement II<br \/>\n Transaction management overview<br \/>\n On-line Analytical Processing (OLAP)<br \/>\n XML as a data exchange format<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node65.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node65.html<\/a><\/p>\n<p> Foundations: probability, uncertainty, information<\/p>\n<p><a href=\" http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node84.html\"> http:\/\/www.cl.cam.ac.uk\/teaching\/0708\/CST\/node84.html<\/a><\/p>\n<p> Time<br \/>\n Algorithms and application protocols<br \/>\n Communication<br \/>\n Naming<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following are hand-picked sections from the syllabus of the 3-year Cambridge University CS course. These are just syllabus, i.e. describing what you need to learn \/ teach yourself.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,20,8],"tags":[],"_links":{"self":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts\/91"}],"collection":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/comments?post=91"}],"version-history":[{"count":0,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts\/91\/revisions"}],"wp:attachment":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/media?parent=91"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/categories?post=91"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/tags?post=91"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}