Computers, Software | June 21st, 2008

Get info

Update1 [6/25/08]: Welcome Stumblers

Update 2 [11/20/08]: I stumbled on this GREAT list of Algorithms, highly recommended reading.

I was looking up a computer science term on Wikipedia the other week and as is wont to happen, one thing led to another and I was about 5 or 6 articles deep on a trail of discovery and research to build up my knowledge.

As I realized I was randomizing myself and getting way off the original track, I decided to start assembling the links in one location for my own reference if not some other geek without the funds for their own degree.

Yes, there’s much more that I don’t have below, I wound up throttling back quite a bit after a while to leave it as is…for now.

History:

Extra Credit:

Languages:

Computer Science Fields:

General CS articles:

Mathematical foundations

Mathematical logic
Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods.
Number theory
Theory of proofs and heuristics for finding proofs in the simple domain of integers. Used in cryptography as well as a test domain in artificial intelligence.
Graph theory
Foundations for data structures and searching algorithms.
Type theory
Formal analysis of the types of data, and the use of these types to understand properties of programs, especially program safety.
Category theory
Category theory provides a means of capturing all of math and computation in a single synthesis.
Computational geometry
The study of algorithms to solve problems stated in terms of geometry.
Numerical analysis
Foundations for algorithms in discrete mathematics, as well as the study of the limitations of floating point computation, including round-off errors.

Theory of Computation:

Theory of computation

Automata theory
Different logical structures for solving problems.
Computability theory
What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what can be computed and what cannot.
Computational complexity theory
Fundamental bounds (especially time and storage space) on classes of computations.
Quantum computing theory
Representation and manipulation of data using the quantum properties of particles and quantum mechanism.

Algorithms and data structures

Analysis of algorithms
Time and space complexity of algorithms.
Algorithms
Formal logical processes used for computation, and the efficiency of these processes.
Data structures
The organization of and rules for the manipulation of data.

Programming languages and compilers

Compilers
Ways of translating computer programs, usually from higher level languages to lower level ones.
Interpreters
A program that takes in as input a computer program and executes it.
Programming languages
Formal language paradigms for expressing algorithms, and the properties of these languages (e.g., what problems they are suited to solve).

Concurrent, parallel, and distributed systems:

Concurrency
The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
Distributed computing
Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.
Parallel computing
Computing using multiple concurrent threads of execution.

Software engineering:

Algorithm design
Using ideas from algorithm theory to creatively design solutions to real tasks
Computer programming
The practice of using a programming language to implement algorithms
Formal methods
Mathematical approaches for describing and reasoning about software designs.
Reverse engineering
The application of the scientific method to the understanding of arbitrary existing software
Software development
The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.

System architecture:

Computer architecture
The design, organization, optimization and verification of a computer system, mostly about CPUs and memory subsystems (and the bus connecting them).
Computer organization
The implementation of computer architectures, in terms of descriptions of their specific electrical circuitry
Operating systems
Systems for managing computer programs and providing the basis of a useable system.

Communications:

Computer audio
Algorithms and data structures for the creation, manipulation, storage, and transmission of digital audio recordings. Also important in voice recognition applications.
Networking
Algorithms and protocols for communicating data across different shared or dedicated media, often including error correction.
Cryptography
Applies results from complexity, probability and number theory to invent and break codes.

Databases:

Data mining
Data mining is the extraction of relevant data from all sources of data.
Relational databases
Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.
OLAP
Online Analytical Processing, or OLAP, is an approach to quickly provide answers to analytical queries that are multi-dimensional in nature. OLAP is part of the broader category business intelligence, which also encompasses relational reporting and data mining.

Artificial intelligence:

Artificial intelligence
The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own.
Artificial life
The study of digital organisms to learn about biological systems and evolution.
Automated reasoning
Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database.
Computer vision
Algorithms for identifying three dimensional objects from one or more two dimensional pictures.
Machine learning
Automated creation of a set of rules and axioms based on input.
Natural language processing/Computational linguistics
Automated understanding and generation of human language
Robotics
Algorithms for controlling the behavior of robots.

Visual rendering (or Computer graphics):

Computer graphics
Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
Image processing
Determining information from an image through computation.

Human-Computer Interaction:

Human computer interaction
The study of making computers and computations useful, usable and universally accessible to people, including the study and design of computer interfaces through which people use computers.

Scientific computing:

Bioinformatics
The use of computer science to maintain, analyse, and store biological data, and to assist in solving biological problems such as protein folding, function prediction and phylogeny.
Cognitive Science
Computational modelling of real minds
Computational chemistry
Computational modelling of theoretical chemistry in order to determine chemical structures and properties
Computational neuroscience
Computational modelling of real brains
Computational physics
Numerical simulations of large non-analytic systems
Numerical algorithms
Algorithms for the numerical solution of mathematical problems such as root-finding, integration, the solution of ordinary differential equations and the approximation/evaluation of special functions.
Symbolic mathematics
Manipulation and solution of expressions in symbolic form, also known as Computer algebra.

Related posts:

  1. Computer Science Is No More About Computers Than Astronomy Is About Telescopes
  2. Computer Program to Take On ‘Jeopardy!’
  3. History of Computer Chess (video)
  4. Speech In The News
  5. Top Articles For The Week 12/21/08- Computer Science, Anime, Zombies and the Easter Bunny

Related posts brought to you by Yet Another Related Posts Plugin.

121 comments

  1. Alan

    Jun 21st, 2008

    An excellent collection! Everyone should bookmark this page.

  2. Jason Adams

    Jun 21st, 2008

    Wikipedia has been my constant companion throughout undergrad and grad school, but it’s hard to get a big picture when doing the random walks like you described at the beginning. I wish I’d had this list four years ago!

  3. Andy

    Jun 21st, 2008

    Thanks for the comments fellows. I’ll definitely be falling back on this post over time to continue my education. :)

  4. website design

    Jun 21st, 2008

    Tons of links to wikipedia computer science pages, categorized into common groups to help those that are self training in the subject or just want to learn more.

  5. Henk

    Jun 21st, 2008

    I have to agree with the sentiment that pretty much everything you learn in a computer science course can be easily found on the internet, BUT!

    First, you’ll have to establish your own order of learning stuff – if you learn about, say, polymorphism before you learn the basics of OO programming, you won’t get it and, more importantly, be discouraged.

    Second, what would make employers hire you during a job interview: “I’ve got a Master’s degree in computer science from an X-year education at renowned university Y” OR “I’ve spent a few days looking up articles on Wikipedia”? I’d go for the first one.

    Not only would it give at least a basic guarantee of actual knowledge, but it would also show that the possible employee is both willing and able to learn, to be able to handle himself in a team-based environment (i.e. group projects), and that he has the determination to spend up to 6 years or more learning a certain job type, something you can’t be sure of when someone has spent some time looking on Wikipedia, since all of the above articles can be read in probably a week or so.

  6. Izkata

    Jun 21st, 2008

    Not only what Henk says, but the biggest thing missing from reading Wikipedia is practical application.

    About half of the computer science people I’ve asked have agreed that programming is more an art than a science. You need to be able to conceptualize the final result and be able to understand the steps to get to it.

  7. Andy

    Jun 21st, 2008

    We’re all correct! :)

    At the top of the article i link to henk’s article here, continuing his train of thought left in the comment above: http://greatjustice.info/university-versus-self-taught .

    If the purpose of the self training is to get a job as a coder, then you absolutley positively have to code. Night and day. You need the experience and the passion. For a self taught person just getting started i highly recommend downloading the free version of Visual Studio from MSDN. I also recommend leveraging the many online tutorials at the VS site on MSDN, watching the videos then downloading the projects and coding right along with the tutorials.

    There’s much more after that of course but i think we’re all in agreement here that simply reading Wikipedia isn’t going to get you a job. :)

  8. jas

    Jun 21st, 2008

    SORRY! wikipedia is not notable!

    you fail.

    ps> i edit wikipedia all the time and i put in bullshit

  9. Ryan

    Jun 21st, 2008

    As soon as I read the title I wanted to write a comment, but Henk pretty much covered everything.

  10. Joey

    Jun 21st, 2008

    This is way cool, just as cool as eating POOP!

  11. dei

    Jun 21st, 2008

    if jas really does write bullshit on wiki then he is one of the pinheads we need to get off the internet. “Ha ha ha I mislead people using a reputable resource. Idiots” What’s your game, pinhead?

  12. Anonymous

    Jun 21st, 2008

    Hm, Joey, I didn’t realize you are someone who greatly enjoys eating fecal matter or is enamored with the action of doing so.

  13. Zach M

    Jun 21st, 2008

    Pretty nice index. You should definately add Perl to the language list. Also, there’s no article for ‘internet computing’. I’m not sure what that refers to.

    Getting lost in wikipedia seems to be my favorite hobby these days.

  14. Dan

    Jun 21st, 2008

    sure, wikipedia can tell you the syntaxes for the various languages, but wikipedia knows nothing of the real world, but its not a substitute for real human to human teaching, for the same reason that you don’t just turn up on the 1st day of a semester, get handed a textbook, and go home and study the textbook for 6 months.

    Speaking as someone who is actively studying a computer science degree, and as someone who regularly compares and supplements his lecture notes with the information on wikipedia, I have to say, wikipedia is severely lacking. I have hundreds of pages on notes relating to the study of one computer language alone, where wikipedia has the equivalent of maybe 5 or 10 pages, which may or may not relate fully.

    wikipedia cannot teach you teamwork, wikipedia cannot set you assignments, wikipedia cannot share with you the same insights you get from interacting with real people who have been in the business for longer than I have been alive. wikipedia can’t inspire you, it has no personality.

    wikipedia cannot provide feedback, wikipedia can only help you to copy and perpetuate the ideas of others.
    We don’t need an army of clone programmers, we need innovators, we need people who have been taught how to solve problems, not given a catalogue of all the current known solutions, because what happens when wikipedia doesn’t have the answer, and there’s nobody left to add to the entries. The knowledge stagnates, and progress stops.
    If you can’t understand the information you find on wikipedia, there is nobody there to explain it.

    Begin self taught at anything is extremely impressive, and I’m not saying it isn’t possible to teach yourself something and become very proficient at it, but it is a rare gift to be able to truly do this.

    Computer programmers, computer scientists, are not just tools, people with an encyclopedia of syntax in their heads, to whom you issue the order to code, they need to have a deep understanding of their field, and to understand such a wealth of knowledge as that which applies to computing, you need help from people who already know. To learn and understand everything that has come before, even within the scope of only one programming language, alone, would be almost impossible, and would take far longer than the 3 years in which a computer science degree can teach you far far more.

  15. Andy

    Jun 21st, 2008

    Great comment Dan, thank you. You make a good case to get a formal education as opposed to self training.

  16. Andy

    Jun 21st, 2008

    Zach, thanks for pointing out Perl (added) and that bad link (removed).

  17. Pete

    Jun 21st, 2008
  18. Andy

    Jun 21st, 2008

    Hey, good find Pete! The intent of that page and my sets of links appears to be the same. Looks like there’s quite a few dupes, but there’s many more missing on that page, perhaps we should merge some of the links here into that page? The downside is that, like my page here, it turns into more of a glossary than anything else.

  19. Hz

    Jun 21st, 2008

    The world has changed a lot in even the past 5 years.

    College is little more than a business.
    They sell you information and, if you can learn it, give you a paper that will make it easier to get a job to get a house…whoo!

    If someone wants to learn something…its online right now, in great detail for FREE. The internet is the greatest thing ever.
    Its not just for porn, ebay and Myspace. At least for some people.

    I think its more important to an employer to hire someone who teaches themselves.
    It shows they have a real interest in the subject. Often people get an education just to make mommy and daddy proud…thats BS

    There less and less control over the worlds information.
    -and if you think a lot is online now, imagine the (near) future.
    Its an exciting thought. Thank you technology.

    Down with college! Up with Internet!

  20. Natha

    Jun 22nd, 2008

    This is all a collection of dick and shit, eat cock and let it ride in your mouth bitches….

  21. Dennis

    Jun 22nd, 2008

    That’s a great collection of links, thanks ! I love wikipedia, but of course one does need to be watchful for junk that is sometimes in there.

  22. Michael Wong

    Jun 22nd, 2008

    Cool links. I agree that knowing how to write code is one thing, writing code is another. It’s about solving problems. Having said that, you have to respect the programmers who are self-taught and who actively write programs to sell or for their own utility. The internet is computers, so it makes sense to learn about computers there and not in some dry, dusty classroom. I think this is the essence of being a hacker (in the original sense of the word).

  23. steve

    Jun 22nd, 2008

    Wikipedia is a good reference to refresh memory, but real
    learning and discovery happens in that ‘aha’ moment when
    one mentally grapples with a non-trivial problem and
    comes up with a non-trivial solution.

  24. Heila

    Jun 22nd, 2008

    Even though you can pretty much learn everything you need to off the Internet, it is very hard to learn computer theory without going to lectures and classes where you are forced to take examinations and write papers to get the material. If you are a self-starter and you can make yourself interested in the material, more power to you. But only in school will you get a broad scope of all the technologies to pick up and learn in the future. Sometimes you just need that extra push, then I guess you can drop out ;-)

  25. grim

    Jun 22nd, 2008

    I cannot say that I’ve read all comments deeply, but what I can definitely say is that learning stuff from Internet is no more different than going to library than *going and searching the books yourself*.
    The difference is that you don’t have Google handy in case it becomes difficult to find smthing.
    The degree is a pro because someone acknowledged your quite definite skills.
    Who can do the same when you have spent some time surfing the Internet.
    BTW, how many graduated students do you think could achieve their degree self-studying in the Internet and in how much time? I think the answer would be “a little”, and here you get “2 of 20 in the last 4 years”

    Also I agree with Dan that what is more important over knowledge is a teamwork, sharing and communication with other humans, that cannot be experienced over the Net.

    It would be a sad world if anyone was just sitting near the PC. When you enter a college, it’s like your life is changing, and you LIVE…, again when you graduate, you go through the same and this is what can’t be done in front of the monitor.

  26. Marco

    Jun 22nd, 2008

    Yeah, nice list you’ve got.

    But one can only rely on this materials after he/she already KNOWS what’s CS is all about.

  27. jake

    Jun 22nd, 2008

    ‘who needs a computer science degree whtn there’s wikipedia?’
    ….

    yeah, cause you know…wikipedia is the most accurate, comprehensible, reliable information source on the internet. especially given that it’s edited by users.

    by the way, i wonder how many ‘experts’ will edit out these entries you liked to? just for the fun of it.

  28. Andy

    Jun 22nd, 2008

    Hi jake, thanks for the feedback. Am i concerned that some random maliciousness will occur on anything i’ve linked here, just to prove a point? naw, I’m not worried, neither should anyone else. I’ve seen the community within wikipedia resolve those often enough.

    Am i worried that just because i linked to these it’s attracting a certain element to edit out these entries within Wikipedia? I wasn’t, until you put that idea out there for someone to pick up :-)

    Seriously though, you make a valid point in that the trustworthiness of the articles on wikipedia may not be as great as what you get in a text book or in a classroom. But for free content, is this acceptable? It depends on what you want to do with that information. If it’s to use as the foundation of an education to decide on a career course, then I would say that anyone that deems themselves intelligent and well rounded enough to launch themselves towards CS as a career opportunity is probably already educated and informed enough to decide for themselves how they leverage the information gleaned from free sources on the internet.

  29. deadly

    Jun 22nd, 2008

    I have bookmarked it.

  30. Brady D

    Jun 22nd, 2008

    There’s always some Negative Nancy out there who has to chime in about how inaccurate Wikipedia is. It’s so passe. How about a new article…”Who Needs a Computer Science Degree When There’s Books.” I’m sure some dullard will find something wrong with this idea as well.

  31. Andy

    Jun 22nd, 2008

    Quote:
    “How about a new article…”Who Needs a Computer Science Degree When There’s Books.””.

    Hahahaha! Thanks Brady, I love it.

  32. dubayou

    Jun 22nd, 2008

    I would like to say thanks for writing this and inspiring me. Thats a great list of computer science topics found on wikipedia

    -w

  33. Abhishek Mishra

    Jun 23rd, 2008

    Yeah its okay that CS is there on wikipedia, but same is true for Mechanics, Electronice, Civil engg.. right ?

  34. sonysoftware1

    Jun 23rd, 2008

    Great comment Dan, thank you. You make a good case to get a formal education as opposed to self training. Excellent page every one should bookmark this page.

  35. richard b

    Jun 23rd, 2008

    I find the notion that you can replace a good Computer Science degree with wikipedia unimaginable. Currently I am a Java Developer with a large bank. I am still thankfull 12 years after my degree for the knowledge I gained during my course. While I admit that you can probably find everything online now (The online CS MIT resources are fantastic) it would take so much longer than 3 years to get the same depth of knowledge and understanding if not presented to you by someone with complete mastery of their field. I just don’t understand where people are coming from when they say a Computer Science degree isn’t necessary. I suppose it doesn’t make much difference if your blinkered view of the world involves programming in a high level language (e.g. Java) in a corporate environment and you consider it just a job.

  36. szvest

    Jun 23rd, 2008

    or you can browse through Wikipedia categories such as http://en.wikipedia.org/wiki/Category:Computer_science. There many other relevant categories.

  37. David Weekly

    Jun 23rd, 2008

    I’m putting together an online class called “Learn CS!” – it’s at http://learn-cs.pbwiki.com/ and leverages Wikipedia content, books, other online resources, and curriculum from Stanford, MIT, and others. Let me know what you think.

  38. Keenan

    Jun 23rd, 2008

    Perhaps you could spruce up: http://en.wikipedia.org/wiki/Portal:Computer_science ?

    Your collection and the actual Wikipedia collection seem to have a lot in common. They do not have a history section, however.

  39. Pedro

    Jun 23rd, 2008

    Excellent collection

    http://www.dimpmexico.com

  40. Henk

    Jun 23rd, 2008

    I’ve been graced with a (relatively) large amount of comments on my own blog, and apparently, most of the posters on there disagree with my sentiment that self-educated programmers are not as good (or, more strictly speaking, not as likely to get hired and not as common) as those with an actual degree. And it seems that, at least on here, there’s a couple of people that actually agree, although that more relates to Wikipedia.

    In my opinion, Wikipedia is a very valuable source of information, offering large amounts of useful information concerning loads of subjects, ranging from computer science to history to whatnot. However, as is also stated in one of the comments here, it simply does not beat experience. As I’ve said (either on here or on my own blog), you can read through all of the above articles in about a week, but that does not make you a computer scientist, programmer, or whatnot, it takes loads of experience – as also stated on here -, loads of putting the theory into practice.

    On a university, and the people that finished it, you have at least some guarantee that the ones that finish it are able to put that knowledge into practice. Of course, it also depends on the university itself, and its policy for testing people. On my own uni, for example, people are assessed individually at the end of a project, so that they have to be able to prove they know their stuff, in terms of programming and, probably more importantly, the train of thought behind it, and/or the design of the program itself.

    A large amount of young, self-taught programmers have only themselves to answer to. They won’t get grades or their code checked by others unless they work on, for example, open source projects with patient co-programmers that explain things to them such as the basics of OO design and whatnot. There’s quite literally hundreds of blogs out there by self-taught-wannabe-programmers that write tutorials on various subjects, that teach others how NOT to solve a particular problem. I have a serious problem with such people, since, because they’re not often told they’re doing it wrong, they’re teaching other people how to do it wrong, which results in the average knowledge and skill of all programmers to decrease.

    But yar. I need a computer science degree, books, AND wikipedia, in order to become and remain a good programmer / software engineer / computer scientist. That, and you won’t be allowed put a neat title to your name if you’re self-taught.

  41. Cyril Gupta

    Jun 23rd, 2008

    Hello there,

    I’m just the guy you’re talking about. High-school education, no college, and 100% self taught. I’ve developed a number of profitable apps and websites. A pretty good track-record for someone with no education :)

    I think I am better than or equivalent to most degree-holding computer programmers with similar experience.

    Cheers!

  42. sir jorge

    Jun 23rd, 2008

    it’s going to be funny when some sap believes this post to be true and pulls up wiki during a real world assignment and gets fired on the spot.

  43. troelskn

    Jun 24th, 2008

    Hey, I love the fact that you marked ALGOL 68 and Simula 67 as being obscure, but didn’t do so with LISP.

    Just kidding.

  44. myak_PL

    Jun 24th, 2008

    I don’t believe that university degree is worth that much as some of the people here do (Henk, etc.) In my opinion, the most valuable asset a young programmer can have is his (I’m assuming here of course; her as well) attitude towards programming – whether it’s his passion and he loves to code at nights or not. Most people go to the university to get a degree and a good job. Sure, go ahead, learn C, asm, OO, whatever, write your papers, pass your exams. But most of those people will _never_ have what makes a true and unique programmer – the will to evolve and continuously learn new things and the passion for programming as an art.
    You can either be a craftsman who can duplicate what he was taught and he leaves work at 5:02pm or a passionate artist who will stay up late not just because the deadline is close but because he want to solve the problem and it’s extremely satisfying for him.

    Now, I’m not saying that people with a degree can’t have it, it’s just the degree doesn’t determine whether one is a good programmer. IMHO, there’s a bigger chance that a self-taught enthusiast, who contributes to open source applications or has written applications by himself (and can prove it with *good* code) is often worth much more than a person with MS in CS who’s interested in gardening.

  45. Anonymous

    Jun 24th, 2008

    “I think its more important to an employer to hire someone who teaches themselves.
    It shows they have a real interest in the subject. Often people get an education just to make mommy and daddy proud…thats BS ”

    Yeah because sitting on your arse in front of wikipedia for some weeks shows way more dedication than actually going full-time college for 3 or 5 years.
    Wait…

  46. Milk & Co.

    Jun 24th, 2008

    Nice post… I like it like Milk and Company

  47. Tina

    Jun 24th, 2008

    I went through an extremely theory based Computer Science undergraduate program and am in graduate school part time, pursuing a Masters in Computer Science. I’ve also worked in the financial sector for about 5 years developing software. One thing I’ve noticed is that people seem to use the terms Computer Scientist and Software Developer interchangeably. Software Development is only a small subset of Computer Science and I feel as though the actual Scientists (researchers, academics, etc.) are completely overlooked.

    I think when people say “I taught myself to write really great, efficient, loosely coupled apps” they are not self taught Computer Scientists but self taught Software Developers. I have met some brilliant self taught Software Developers… but few of them have had a handle on the math or theory behind what they are doing. Concepts like Turning Machines or The Halting Problem are completely foreign to these developers. It doesn’t make them a poor developer by any means but I do feel like it prevents them from being a true Computer Scientist.

    At the same time, I have also met many academics who are just not equipped to handle the challenges that a Software Developer faces on a daily basis (client expectations, trade offs between deadlines and efficiency). However, the beauty that these academics find in problems like the NP-Completeness is almost poetic.

    With that said, I do believe it is possible for someone to become a self taught Computer Scientist. However, I don’t believe Wikipedia is the answer. Will Wikipedia really get you through the discrete mathematics needed to get a handle on true theoretical Computer Science? I highly doubt that. However, I don’t think a professor standing in front of a classroom is really all that necessary. I think there are people out there who have the discipline to learn this stuff on their own. One of my graduate professors was actually one of these people. However, I think people who want to learn “Computer Science” in order to get a job rarely care to also become a borderline mathematician.

    I think a lot of times academics and practitioners in a given field are lumped together and an incredible amount of friction builds up between the two. It offends me to my core when I hear wonderful coders call themselves Computer Scientists because it makes me feel Computer Science is being reduced to a subset of what it actually is. Those are just my two cents, hopefully I didn’t offend anybody.

  48. jonas brothers tickets

    Jun 24th, 2008

    Before the web, you could just as easily say ‘who needs a degree when there are books?” and give a list of the relevant textbooks in a field, i.e. a syllabus. The difference is that wikipedia makes the knowledge more accessible and uniformly presented.

    However, it’s easy to get lost and discouraged in trying to assimilate knowledge by simply reading, since so much practice is involved. The classic conundrum in teaching first-year CS is how much programming vs theory to introduce: if a class focuses all on programming, students tend to conclude that’s all CS is about. If you focus on theory, they lose interest and miss the thrill of building something.

    A good teacher knows how to create class discussion about this interplay. A great teacher knows how to get the class to feel they have realized the connection between theory and practice themselves.

    Reading a bunch of textbooks or wiki blurbs really is no substitute for learning CS in a group setting from a good teacher.

  49. Andy

    Jun 24th, 2008

    Great comment Tina, people do equate computer science with software development. I think this is because the degree has become so ubiquitous today, along with software development that people (sometimes myself) unconsciously assume one means the other, or CS degree always leads to SW development which is not necessarily the case. I’m sure most of know of cases where a degree in say electrical engineering led someone to a career in SW development. :)

  50. Josh

    Jun 24th, 2008

    The language list is redundant.

  51. Tina

    Jun 24th, 2008

    Thanks Andy. I just realized that all I really commented on were other people’s comments… I didn’t really say anything about the actual post, lol. Your list is a good starting point for the types of people I mentioned who actually do have the discipline to become a self taught Computer Scientist. However, I would hope that Wikipedia is only used as a starting point and that textbooks, journal articles and other resources are thrown in to the mix.

    My biggest concern with someone learning any discipline through Wikipedia is that it tends to hand you the answers. A large portion of learning is done through self discovery… textbooks encourage students to not just accept Theorems as facts but to prove them. Wikipedia usually hands proofs and explanations to the reader on a platter, which I think often hinders the learning process.

  52. Daniel

    Jun 24th, 2008

    This really is a wonderful list. As a student in a Computer Information Systems program it will prove to be very helpful.

    As for the debate which is better, self-taught or formal education it really has to do with what you expect from your future employee. My program claims to teach us not only the basics of C#, but of OO programming so that if a future employee needs us to develop a program in any other language, we have been taught how to teach ourselves.

    This thinking has been applied to all aspects of our education. We are being taught how to teach ourselves. Although, I might be of a biased opinion, just had to say thanks and put my two cents in.

  53. Anonymous

    Jun 25th, 2008

    A somewhat nice collection (nothing special though), but do yourself a favor and don’t use stupid titles like “Who Needs a Computer Science Degree When There’s Wikipedia?”, since one could say the same about ANY field (“Who Needs a Degree in Quantum Physics When There’s Wikipedia/The Internet(/Star Trek)?”).

    Reading a Wikipedia doesn’t turn you into a code guru, just like simply knowing what a Fourier Transform is doesn’t mean you fully understand the theory (nor does it it any way imply that you will be able to actually use it in a practical way).

    Furthermore, people who train themselves informally using Wikipedia/The Internet often tend to cherry pick the topics that they consider worthwhile/important (e.g., programming in C++ and computer graphics) while neglecting/ignoring topics that are just as – or even more – important (e.g., formal logic and (linear) algebra).

    Thinking that you can become (the equivalent of) a computer scientist by simply stumbling through Wikipedia is the same kind of error in judgment that leads a whole flock of (arrogant) business/finance guys with an MBA to think that they are true “IT specialists” after following some course on Information Systems. It simply doesn’t work like that. There is actually (still) some merit in getting an official university degree.

  54. Bob

    Jun 25th, 2008

    I agree with Henk and the last post. There is solid merit on gaining a university BSc(Hons) degree in computer science as the process of taking classes and particularly tutorials, continually tests a students abilities. It is this mechanism, which finesses students abilities, and gives them an approach and roundness of abilities which a self taught programmer doesn’t have and could never have. Generally if they pass the course, you can say with some confidence that that they know how to do a particular job at a particular skill level. This is simply not true for self taught. They tend to be very good at some subjects, bad at others (like most people I hear you say), and only tackle those subjects which strikes a cord. For instance, if I said Axiomatic Semantics, which would lead to Denotational Semantics. What would that mean to a self taught student, if they didn’t have any tutorials or test for the knowledge they had. Virtually nothing. They also tend to be bumble bee types, and if you get them to to a job which is outside their comfort zone, then quickly become useless.

    Let me tell you an allegory. I have a friend, call him Biscuit.
    He is a Biscuit class engineer. Before he went to Uni, he was extremely good assembly programmer on 68000, Z80 and 8086 stuff, being in the computer club at school, understood BASIC and PASCAL, (this was late 80’s) but didn’t use it as it was an high level language and of no use. When I met him, (he’s now a good mate) he used to harp on about how it was unlikely he would ever learn anything. Well I’ll tell you, this guy completely changed his mind by the time he had his degree, he had multiple epiphanies all the way through uni.

    He eventually worked on Lemmings game, and then later for Sony on PS3 hardware.

    Also another point which disturbs me, is that Computer Science is super set of software engineering and development.

    Also, quick point about the list above. Although I find the formation of the list quite admirable, The meta taxonomy of Wikipedia regarding computer science and all the subjects relating to computing is a complete mess, and will take years to sort out. This list above, seems to reflect this reality, as it is extremely disorganised, and as final point, if you had a decent CS degree you would realise this.

  55. Ashley

    Jun 25th, 2008

    One could make this argument about any subject, history, english, math, whatever. Wikipedia covers articles on a multitude of subjects, as we already know, however lets not under estimate the value of higher education. Of course the motivation and yearning for knowledge that self educators possess is extremely important, but the added bonus of guidance from an expert, possibly from a person mentioned in some of these pages, the pressure of assignments tests and inquisitive classmates certainly help a great deal. Also, the classroom environment lends itself to problem solving in general that applies to far more than just computer science, a wikipedia page can’t teach that.

  56. Andy

    Jun 25th, 2008

    Problem solving, my friends. It’s all in the art of problem solving.

  57. Andy

    Jun 25th, 2008

    Well said Andy. Problem solving. And that’s not going to come from a degree or from wikipedia.

    In my opinion it’s coming from experience. I think the debate above could probably be restated as how best to get your foot in the door to get that experience; from a degree or could you be just as successful getting the foot in the door by self-study?

  58. Mohamed M. Hagag

    Jun 26th, 2008

    Wow, what a great article, with great resources !

    did u read all these resources ?

    can u make another article with business administration learning resources ?

    Regards,
    Mohamed M. Hagag

  59. Graeme

    Jun 26th, 2008

    Anybody that thinks that Wikipedia is the be all end all of world knowledge is seriously mistaken. If anyone can go in and edit the descriptions of Wikipedia then the entire thing is corrupt and not one thing can be trusted as being true; but I guess that’s life for ya!

  60. Mohamed M. Hagag

    Jun 26th, 2008

    seems that you don’t know the technical side of wikipedia and its software, all what i can say is if any corruption happen to the wikipedia content it can be reverted to the latest good stat in less than a second ;) .

    for more info. see the mediawiki.org website – this is the software running the wikipedia websites and related projects.

    Regards,

  61. D Winger

    Jun 26th, 2008

    I’m looking at this discussion from a slightly different perspective. I’d guess that I earned my Master of Science degree in CS before a number of the readers of this post were born. I spent over 35 years designing, programming, testing, training, and managing software projects, and am now retired.

    I agree strongly with those who argue in favor of the college degree vs. self-study. Yes, with self-study you may learn some theory, you may learn to code to the point where you get the results you wanted, etc. But you don’t get feedback from those with more experience and knowledge as you would in a college setting.

    Not that you’ll emerge from college or post-grad with “perfect” knowledge! LOL! I learned even more during my first few years of working in the “real world” than I did during my formal education. You never stop learning — that is, unless you’re satisfied with being simply “adequate” at your computer science work, whatever that work may be.

    I love being able to study new aspects of programming, design, etc. on the web. But I also know that I am, at best, just a hacker managing to get things to work, but often not knowing if I’m getting things to work as efficiently, cleanly, or elegantly (one of my favorite programming adverbs!) as I could.

  62. ATOzTOA

    Jun 26th, 2008

    THE THING IS…

    The articles may not be correct always. So be careful when using these in Exams, lolzzzz :D

  63. utopien

    Jun 28th, 2008

    what you don’t get in the internet is that you are forced to learn stuff u don’t like at first… that’s why the topic is bull***.
    i studied computer science in germany at the university of Bonn. so what you forgot is the complete mathematical background you need. 2nd who guarantees that you actually read all the articles and 3rd who guarantees that you understood them.. nobody..
    and btw. there is so much missing, but i won’t start adding things. it’s simply too much

  64. Me

    Jun 28th, 2008

    Just because there is information available for you to learn by yourself, it doesn’t mean that you will truly learn the subject.
    Whilst teaching computer scientists at uni, one of the biggest problems I encounter, are self taught students who think they already know the subject.
    Most of these students learned many things incorrectly, but because they taught themselves it was impossible for them to realize the error of their ways.
    Therefore getting a degree is essential for you to properly learn the subject.

    But the learning process in computing science doesn’t end after you get your degree. If you truly are a computer scientist you never stop learning and improving, and the degree serves as the bases for your learning.

    Although the collection of Wikipedia articles is quite good, there are much better resources around the internet.
    Also these articles do not convey the scope of computing science and the range of differing areas within the field. Meaning that self taught students don’t even know about the areas of specialization available.

  65. Rust

    Jun 29th, 2008

    I completely agree with Jas.

  66. Dave

    Jun 30th, 2008

    You’ve missed the difference between computer science, the history of computing, and programming.

    You can teach yourself how to program from online tutorials. It’s not hard to throw together some Ruby or PHP or whatever based on an online guide.

    You can teach yourself the history of computing from Wikipedia, no doubt. You can learn about each famous algorithm and concept, from Quicksort through a Turing Machine, from reading about it online.

    But you can’t become a computer scientist by either route above. Computer science is more than programming or knowing famous algorithms. It’s being able to transform any problem into an N-P complete form, something you’ll never learn without practicing. It’s knowing how to write a complier, something you’ll never do without understanding the theory of computing. And its about knowing how to use your knowledge to solve problems in almost any domain, something you can only do through rigorous study and practice.

    So, no, they’re not the same at all. You can learn to program and get a cocktail party knowledge of computer science, but you can’t become a computer scientist without practicing it.

  67. axiom

    Jul 3rd, 2008

    Those who wish to learn, learn. Those who wish a degree, get it. They are never quite the same. A degree is a degree no matter how much learning has actually been retained, and those who know, know- no matter if they have a degree or not.

    A lot of what can be learned exists outside of formal learning, especially in CS where the tech constantly changes. Self study is a must.

    Now, Wikipedia is a useful reference, but not the only source of information. It is a companion to learning, not the only source of it.

  68. Diogo

    Jul 4th, 2008

    I make the words of Hank, Dan, and others my own.

  69. Inner Technique

    Jul 6th, 2008

    I’m 34 and left ’schooling’ at the end of high school.. the end for me was when they were unable to teach me anything more and at the time I was 14 and completing year 9.

    I’ve raised 2 children, been the of Australia’s only ad-serving platform to make it offshore and compete with American and European technology, have owned 2 record labels, cut one of my own productions at London’s Abbey Road studio’s and rolled out around a dozen albums.

    I never undertook a single music lesson in my life and can play most instrument’s to a fair degree. with I had a bit of an edge being that my first PC was loaded with MS-DOS v1.1 and DEBUG and were my only options at the tender age of 11, I failed to see what was so ‘complex’ then… having been working with programming and watching it’s evolution from C, Small Talk, Pascal, and some perhaps more popular but less secure framework’s ie; what evolved from Rasmus Lerdorf’s “personal home pages” (accounting for 48% of Internet vulnerability’s according to S.A.N.S)

    http://www.sans.org/top20/#s1

    Sorry Rasmus, indeed it is true that anything that can be engineered can be reverse engineered, especially if you give away the source code and the malice of people will never fail to amaze, just as the ignorance of people of low intellect has never phased me in the slightest.

    Schooling does not prommise “education”, the latin root of the word “EDUCO”, simply means to develop from within. Schooling can aid and also can hinder in this process. Ultimatly we all stand on the shoulder’s of giant’s however and going to princetown or broadmeadows, really has nothing to do with anything other than social anxiety.

    For the record, Plato, Jesus, Socrates we all criminal’s also. If you think that the justice system has matured much more than the education (pardon schooling system) over the past few thousand years, perhaps you should read more and worry less about the distraction and anxiety of the “have’s” and “have not’s”, that is more for people in posession of truly great minds such as Nikola Tesla, J.P Morgan and Bill Gates to do something about.

  70. Tina

    Jul 6th, 2008

    I don’t want to come across as attacking, but to me, Inner’s post actually proved that there are times when formal education is a necessary evil. For someone who stopped benefiting from a high school education at age 14, I felt like the spelling and grammatical errors in Inner’s post made it difficult for him or her to convey knowledge. I write this with the assumption that English is Inner’s primary language, if that’s not the case I apologize. Going by the previous comment alone, if debating higher education can somehow lead to debating high school education… that’s a slippery slope I hope to stay far away from.

  71. Funny Dogs

    Jul 6th, 2008

    yes,i agree with hank and dan.

  72. Andy

    Jul 6th, 2008

    Hi Tina, thanks for commenting here, you take the discussion in a new direction that I think is relevant.

    I would tend to give the benefit of doubt when trying to assess whether someone is educated or not when all we have to go on is a single communication via the internet.

    I sometimes find myself, I hope I’m not alone in this :-) , becoming a little less concerned about getting my punctuation or grammar correct when commenting on posts, especially for a long comment.

    However, you make a valid point in that, being able to effectively communicate your point of view can be a good indicator of one’s education. And when educating yourself, you may neglect key aspects of that education that a formal method of education wouldn’t miss. Lacking the ability to communicate to your audience could just as well put off a hiring manager as it would a stranger on the internet.

    Thanks again.

  73. Soothsayer

    Jul 6th, 2008

    The debate over whether it is better to have a formal education as opposed to being self-taught is pointless. HOW you know what you know is irrelevant. WHAT you know, and whether or not you are able to APPLY what you know, is essential.

    With that being said, many employers look at a college degree (especially an Ivy League degree) as a sort of certificate of authenticity. Given the choice between a self-taught programmer and a programmer with a degree, with all else being equal, most employers will choose the programmer with the degree.

    And with THAT being said, given the choice between a self-taught programmer and a programmer with a degree, both with demo code that they’ve written… well, the better code gets the job.

    Ultimately, performance is all that matters.

  74. Inner Technique

    Jul 7th, 2008

    Oh dear me! Regarding my poor grammar (At least someone has the ability to pay attention and take notice!), you will have to excuse me as I have recently been the victim of a serious accident, which has left me blind in my right eye and while awaiting surgery am on rather heavy duty pain killers and suffering from A.S.D – Acute Stress Disorder.

    The injury’s are serious enough to have had an 87 contract (for 4 months work) pulled, due to these medical conditions and I might also add am starting to suffer from a rare disorder called “Sympathetic Ophthalmitis” – I believe that there is an entry in Wikipedia regarding the subject, a condition which deteriorates the active ‘normal’ by a process where to quote: “Autoimmune inflammatory response toward ocular antigens”

    Indecently Tina, line break’s are form of grammar and make your writing more legible (clearer to read) and for the record I speak 6 languages and am able to program in over 20 variants. Your point does have some grounding however and was intentionally made to bring this chain of conversation back on track.

    Soothsayer – “Ultimately, performance is all that matters.” is in fact not quite correct. ‘Monkey see – Monkey do’. That much is simple enough for anyone with an I.Q-@-100 to grasp.

    However the previous statements regarding the “certificate of authenticity” is also highly speculative as a self educated person, generally has mastered technique’s that even the pupil’s teacher could not grasp an hence work’s as a teacher opposed to working in the field actively, at typically much higher rates of remuneration.

  75. Inner Technique

    Jul 7th, 2008

    Once again I missed something – to “87″ = (87k) or $87,000 for four (4) month’s work – do the math, leaving school at 14 or not does not imply in any sense that I am an ignorant man, or that by doing so any person cannot prosper and do well or in some cases better than the highest formerly educated people, from the most reputable establishments, even excel far beyond their mediorce achivments as their drives, reasoning and determination is totally different.

    Most university degree’s are not worth the paper they are printed on. What people are looking for is “Ability” and “determination”, which I have not seen a whole lot of in people who never had to battle to learn / earn anything and have been handed it on a plate, which they really have little care or value for in the first instance, school’s are simple money making factories and the student’s is, little more than ignorant “pieces of meat” through society grinder.

    In the second instance, the internet is ‘allegedly’ the sum total of all human knowledge. If you believe this notion, then perhaps your parents, may have read you too many fairy tales, more likely and quite sadly, not enough. Neglect is neither the fault of the student or the teacher, it is both their duty to enlighten one another.

    The reason, arrogance is in my humble opinion the reason the schooling system fails. Equally as the list of languages and technologies described at the head of this document has failed, being that they are arcane (antonym is exoteric) and historical (please refer to “The History of a Lie” on project Guttenberg)

    Bernstein, Herman, 1876-1935
    http://infomotions.com/etexts/gutenberg/dirs/1/9/2/0/19200/19200.htm

    “Ignorance is ignorance; no right to believe anything can be derived from it.” – Sigmund Freud

  76. Tina

    Jul 7th, 2008

    Inner, I am sorry for what you are having to deal with. I hope you and your doctors are able to do what is needed to help you recover.

  77. Taishi28012

    Jul 7th, 2008

    In Eric Raymond’s article “How to Become a Hacker” he points out a few areas of mathematics that should be focused on and a few that shouldn’t. Notably absent from your article is combinatorics and finite-set theory. Might want to add those for future readers. Also of some note is Robert Reed’s article “How to be a Programmer.” It points out some of the more pratical aspects of programming, such as good teamwork and working with management.

    Links:
    http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
    http://www.catb.org/~esr/faqs/hacker-howto.html

  78. Andy

    Jul 7th, 2008

    Wow Taishi! Those are really good links, thank you! When I work on a follow-up post summarizing all the great discussions here, I should call those out as well.

  79. ultramanjones

    Jul 7th, 2008

    TRULY self-taught experts can be amazing, HOWEVER << and that’s a BIG however –

    The guy with the degree has access to everything the self-taught guy has — the wiki and the blogs and the forums and every kind of free resource — AND he also has formal training and a piece of pretty paper with a happy gold seal on it. While the guy with the degree CAN have everything the self-taught guy has, the self-taught person simply does not.

    No matter how you cut it the self taught guy is a gamble in comparison. That said, if I were doing the hiring I’d let the self-taught guy try and prove it to me if he wanted the job. Mind you that would be on his watch, I wouldn’t pay him a penny until he proved one way or another that he had the skills to do the job.

    OH BTW, nice list. Thanks for compiling. Nice.

  80. Vijay Veeraraghavan

    Jul 8th, 2008

    excellent organizing the topics… starting with wiki gives really a good start… but as we do lots more research in the particulars it will really land us in the core

  81. Inner Technique

    Jul 8th, 2008

    Who Needs a Computer Science Degree When There’s Wikipedia?

    This is like saying, “Who needs to know their field of expertise, to be an expert.”

    This is like saying;

    “All the information I am ever going to need, I can find on some web site somewhere, so why bother trying?”

    This is also like saying;

    “I’ve got an Oxford Encyclopaedia, so that makes me an expert in English (and probably good enough to teach a foreigner)”

    The Oxford English Dictionary, second edition – http://www.oed.com defines “algorist” as a descriptor for a nifty programmer, but deems the word as being obsolete! Now tell me, what does Wikipedia have to say about the word “algorist”? Far more than Oxford English Dictionary indeed!

    http://en.wikipedia.org/wiki/Algorist

    None of these statements make any sense at all. They are in fact absurd and rely upon the “ignorance assumes arrogance”*, computational specifics, relating to Artificial Intelligence – A.I.

    To be honest, I find this topic interesting as it relates more to sociology, personal interaction, psychology and the general human condition.

    In summation, the question itself is a misnomer to subtle, yet poignant understandings of what intelligence actually is. The fact that all these wonderful conversation’s and interaction’s have occurred by the gravity of such a sweeping statement are profound to say the least.

    *W Neville Holmes, University of Tasmania:
    Artificial Intelligence: Arrogance or Ignorance?
    IEEE Computer Volume 36, Issue 11, Nov 2003.

    “The argument made is that there is only superficial similarity and that human intelligence is inherently unlike anything a digital computer can manage.”

    I would like to add the source of the teaching will always be external, the EDUCO (Latin: develop from within) aspect or, education is ‘always’ developed “individually” hence, we are unique, not only in perceptions and understanding, but in interpretation and application.

  82. Inner Technique

    Jul 8th, 2008

    FACT 1: People who have acquired skills on the job are more desirable than people who no experience (by may hold a piece of paper).

    FACT 2: A nice gold seal look’s shiny and offers ’some’ reassurance, not much but a little.

    If you honestly believe in the pen being mightier than the sword then take a sword and find an equal opponent and try having a sword fight.

    Truth is always more than mere fact’s.

  83. ZarK

    Jul 10th, 2008

    I have no doubt that you can become an expert in computer programming without formal education. I know many people who are self-taught that I would rather hire than some other people I know with master degree in CS (so what I’m saying here is that a formal degree in itself doesn’t really count for anything).

    Given two persons that are good programmers then, one self-taught and the other with a formal university degree, what I think you’ve got is two different breeds, rather than one expert and the other unreliable.

    For pure programming/engineering, the self-taught one may be the best choice. He has learned by experience, knows how to seek answers on the net, enjoys spending his spare-time on some geeky problems, and has hands-on knowledge of real-world technologies. He can be a great asset, productive from day one, and able to manage himself, although you must check that he don’t go astray in new and interesting wikipedia articles.

    However, if you are dealing with advanced customer specifications, develops your own API that others will depend on, have a focus on security, create distributed and fail-safe systems or design long-living and innovative solutions, I would go for the one with the university degree. He should know how to plan ahead, be able to foresee consequences, understand the differences between available technologies (and reflect on how to chose among them), use programming patterns for easy and long-term maintenance, and ultimately could be able to utilize all of this to help take your company one step further.

    I would, however, recommend anyone that wants to learn computer science to rather get real text-books from the library or book store, rather than depend solely on wikipedia articles. You’re list above is the best I’ve seen, but I still think one new to the field will lose out on too much of the stuff that binds it all together.

    A great reference never the less!

    Z

  84. rata

    Jul 18th, 2008

    I tried to read all the comments, but I’ve been discouraged by the stupids who wrote the first ones. A computer science degree has absolutly nothing to do with knowledge or proficiency at programming. It’s just useful for getting the job, what’s of course important, but it does not guarantee you are a good programmer. Indeed, if you have a CS degree you code probably worse than a self-taught programmer, unless you are both. The only useful thing is to write code (without VS!… use VI instead :) and read code written by good programmers, e.g. code written by the Boost people.

    And for teamwork experience, you don’t have to go to the university for learn this, it’s pretty much sufficient to have gone to the school!

    BTW, very interesting list of links. I love Wikipedia.

  85. StudyPark

    Jul 21st, 2008

    Excellent list. This is a grand article about computer science spread throughout wikipedia. good work man. it really needs a lot of hard work.

  86. Inner Technique

    Jul 23rd, 2008

    At the end of the day, knowledge is power. Power can be taught (handed down), power can be summoned (demonstration) but power can not appear out of thin air!

    Makes little difference if you are self taught, or have a document which proves you passed an exam or two. If anything is is subtractive from the subject matter and based upon trust of responsibility.

    By teacher or sheer determination, education is root. Develop from within, not from without. Hence experience is far more valuable than theory or practice at any level. Real world experience will always dominate, what employers are seeking as it solidifies this ambiguity.

    Develop your technique from within yourself. You are just a amazing or if not more so than the shoulders of the giants on which you stand.

    Use the force Luke!

  87. Pramathesh Borkotoky

    Aug 6th, 2008

    Well, I don’t care what the other people comment.
    I just want to say that it is a good article.But, useful if only read.
    But, I also want to say that the problem with most people is that they are in a hurry in learning computer science. You will find books like learn C in 21 days or 1 week or 10 days getting popular only in Computer Science. But the fact is that you need quite a patience in learning computer science. I would suggest Learn Programming in 10 years like patience to everyone.

  88. Abdo

    Sep 11th, 2008

    Very nice.

  89. James

    Oct 14th, 2008

    Who says CS students don’t have passion? At my uni, we start the year with only a third or half of us who really wanted to learn. Not a problem though. By the the second and third year, they all dropped out. Who’d graduate from a CS course without the passion for it anyway? Maybe really intelligent people who were really meant for some other course, though this is very rare.

    And besides, CS students can use their spare time coding in a basement too. But self-taught programmers can’t sit in a class with an expert.

  90. James

    Oct 14th, 2008

    P.S. (double post sorry)

    This is a really nice reference for extra learning.

  91. SARANG DRAVID

    Nov 29th, 2008

    Nice article.. :)

  92. Harly

    Dec 1st, 2008

    im by no means a comp e, cs or otherwise but with a science background i’d be really curious to run a study, considering the near endless debate about self-learning in the information age…

    let’s say you took this curriculum, or created a curriculum comparable to the material at a prominent university for the subject (obviously you would have to control for self practice by some means or measure in the variable set to balance the labs, assignments, etc). then have these folks take the certification/bar/board/etc. that college grads would take and see who’s scores end up higher.

    on a completely separate note, not to say self-taught is by definition a different kind of thinker, but the need for a creative talent becomes more favorable when you account for the risk to be outsourced. another consideration- how many classes would you never have taken that later provided more breadth and depth that you never would have recognized prior?

    great page, great debate, thanks!

  93. Simple

    Feb 17th, 2009

    That’s very true my fren, i also did learn a lot from wikipedia and did get job learning wikipedia… Bravo WIkipedia…

    Regards,
    Simple

  94. MDK

    Jun 17th, 2009

    I looked at the title and thought it was a joke LOL
    A lot of wiki answers are very incorrect or inaccurate.
    It is true you dun need a degree always…
    But Wiki is not going to help lol.
    Some is accurate but they have a lot of contents that is very inaccurate.

    If I was to go and search for ”God” on wikipedia would that mean I have understood the whole idea and ideal of God ? That is just silly. Philosophers and scholars have been trying to come up with that answer for thousands of years.
    You couldn’t possibly be an expert by reading every single wiki article on the NET and these articles are constantly changing.
    To be a expert one must do extensive studying (years) and real hands on experience.

    @ Henk …

    ”First, you’ll have to establish your own order of learning stuff – if you learn about, say, polymorphism before you learn the basics of OO programming, you won’t get it and, more importantly, be discouraged”

    Object Oriented is not always the preferred first choice in my experience. Why ? It handles a lot of different styles of coding, which can leave a newbie first time confused, especially if they’re new to computers in general.
    OOP is only recommended for Coders who need to build, manage, structure big projects.
    First one, learns the key basics, syntax wise and parameters.
    All programming languages are based on a similiar syntax just different styles and procedures
    First language I recommend is [Procedural programming] ”Pascal” or standard ”C” Which focus’s a bit more on the algorithms and data structures.

  95. chetan

    Sep 3rd, 2009

    this one is the best…..

Trackbacks and Pingbacks

  1. Tech Tip Of The Day » [Fulltime] - Director ofComputerForensics at Miles Technologies
  2. Tech Whirled » Okay, just one more thing to do at thecomputer
  3. FuzzLinks » Geeknews » Who Needs a Computer Science Degree When There’s Wikipedia?
  4. links for 2008-06-22 « steinarcarlsen
  5. links for 2008-06-22 « ??????
  6. A Great List of Computer Science Resources
  7. Web Sites of Interest » links for 2008-06-23
  8. links for 2008-06-23 « Mandarine
  9. uglychart.com: a blog about stocks » Blog Archive » links for 2008-06-23
  10. Dubayou[dot]com | Where i like to think. » Who Needs a Formal Education When There’s the World Wide Web; Including Wikipedia
  11. mikedopp - Mikes Links Monday 6/23/08
  12. New Adventures in Software » Teach Yourself with University CS Resources
  13. Stop Being Carbon · Things I wanna read in the next few days
  14. Austoon Daily » Who Needs a Computer Science Degree When There’s Wikipedia?
  15. Who Needs a Computer Science Degree When There’s Wikipedia? | WhiteSandsDigital.com
  16. links for 2008-06-24 « My Weblog
  17. The Great Geek Manual » Link Round-Up
  18. 4 ?????????? ??????… « ???? ?????? ???????
  19. Geeknews » Yay, Gravatar Added Support for Identicons, Monsterids and Wavatars
  20. links for 2008-07-08 « pabloidz
  21. 4 ???????? ?????? | Listeria.ru
  22. Geeknews » Top Articles For The Week 12/21/08- Computer Science, Anime, Zombies and the Easter Bunny
  23. alsanan.info
  24. Kitiara Uth Matar » in Wikipedia we trust.
  25. On the Benefits of Self-Taught Skills — Chris @ Olstrom (.com)
  26. Geeknews » On the Benefits of Self-Taught Skills

Leave a Comment


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word