Become A Better Developer — By Having A Blast
January 30, 2016 1:21 AM   Subscribe

“At CodinGame, we believe that everyone should be able to discover the pleasure of coding. We are programmers at heart, and we know that code is a powerful tool to innovate and create. It's a matter of passion, but above all, it's fun. So we've imagined a platform which merges programming and video games.”

Games include just solving the problems in your choice of more than 20 languages for achievements, code golf where the shortest program wins, programming AI bots to compete against other players in various arenas, and Clash of Code live coding battles that last as short as five minutes.
posted by ob1quixote (33 comments total) 44 users marked this as a favorite
 
Just make sure it fucking compiles and meets the specs, OK? I ain't asking for much ...
posted by oheso at 4:08 AM on January 30, 2016 [3 favorites]


Successfully building software requires mastery of a written language (C, js, ruby, whatever), the compilers, IDEs, and other tools that go with that language, and the understanding and application of a set of disciplines (functional/OO paradigms, design patterns like flux or MVVM, maths as needed).

This is not very different from any other pursuit that involves both creative and technical aspects. Musicians master one or more instruments, possibly a lot of studio tech, and then engage with the dialog and history that comes with their chosen genre. Architects employ various complex drafting technologies, and must also competently engage with the historical, aesthetic, and sociopolitical contexts within which they work. And so on.

I'm a little torn when I see posts like these. Coding is these days one of a shrinking number of viable paths into financial security, and I certainly want entry to be as easy as possible, especially for the disadvantaged. On the other hand, such efforts should not at the same time communicate that programming is somehow easier or quicker to get good at than any other creative discipline. I think most 12 year olds recognize that while band or the school newspaper may be fun, becoming an actual musician or writer is a serious pursuit that will take years of dedication.

The way coding is being sold though, (5 minute coding battles! achievements! bootcamps!) seems to tell both kids and adult learners that there's something different about programming that makes it easier and more immediately rewarding than other pursuits. But it's not - a few weeks of coding lessons will give you about as much as a few weeks of guitar lessons. You'll be able to produce something vaguely music-like and you'll have fun in the process, but you'll also quickly hit big walls and will be nowhere near the greats that you admire. And this is fine in the case of the guitar. But when people are led to expect impossibly quick results, they may quit in frustration, question their intelligence, and lose confidence.

So while I look at efforts like these positively and acknowledge the good intentions, I wish they would tone down the "FAST AND FUN" aspects. It's possible to help people, including kids, enter a challenging discipline without diminishing the discipline or the audience.
posted by tempythethird at 5:59 AM on January 30, 2016 [43 favorites]


I think most 12 year olds recognize that while band or the school newspaper may be fun, becoming an actual musician or writer is a serious pursuit that will take years of dedication.
I think you knew really different 12-year-olds than I did.
posted by ArbitraryAndCapricious at 6:29 AM on January 30, 2016 [16 favorites]


Okay, now somebody do one in the vein of Surgeon Simulator and Tea Party Simulator, except you have a keyboard and try to debug some C++.
posted by sfenders at 6:34 AM on January 30, 2016 [3 favorites]


becoming an actual musician or writer is a serious pursuit that will take years of dedication.

Which is why kids these days are aiming for professions like "youtuber" or "esport player". Probably pays better as well.
posted by effbot at 6:43 AM on January 30, 2016


I knew some 12-year-olds who ended up being writers and musicians. They didn't meekly apply dedication towards their craft with the intention of emerging in ten years, like a butterfly from a chrysalis, as a fully-formed writer or musician ready for a rewarding career. They wrote and made music because they loved writing and making music, even if they weren't super great at it. They tried to get better because it was rewarding to get better, not just because they were focused on a long-term goal. When you're 12, being a rock star feels like an amazing dream, but mastering a new guitar lick is immediately rewarding. Being in a band with your friends is super fun. Getting to play your junior-high dance is amazing. It's incredible when someone you don't know says they'll pay your band money to play at their party. There's no better feeling than the first time you write a song that actually sounds good. Maybe eventually this all leads to being a rock star, and maybe all along you're still fantasizing about being a rock star, but what keeps you going is the incremental, immediate pleasures of progressing in something that is fun and that you care about.

I don't think that coding is necessarily any different. I don't think that 12-year-olds are going to sustain an interest in coding because they are focused on having a successful career. They are going to get into coding because it's cool. They are going to continue to grow as coders because they are inspired by new challenges or by the possibility of doing cool new things.
posted by ArbitraryAndCapricious at 7:13 AM on January 30, 2016 [20 favorites]


Apparently making your site mobile friendly isn't fun or inspiring.
posted by grumpybear69 at 7:22 AM on January 30, 2016 [2 favorites]


But it's not - a few weeks of coding lessons will give you about as much as a few weeks of guitar lessons. You'll be able to produce something vaguely music-like and you'll have fun in the process, but you'll also quickly hit big walls and will be nowhere near the greats that you admire. And this is fine in the case of the guitar. But when people are led to expect impossibly quick results, they may quit in frustration, question their intelligence, and lose confidence.

Your point about the expectations mismatch is well-taken, and likely has a lot to do with the fact that many of the people involved in making it sound easy are trying to make a buck (including this one). Still, it occurs to me that there are probably a out of people out there -- not just kids, BTW -- with untapped musical talent who just never got the right instrument in their hands, or even had the idea placed in their head that they could do it, so lowering the barrier to entry for someone to do beginner-level coding exercises seems like a good thing to me.

Of course it's not like there's a dearth of resources out there these days -- certainly many orders of magnitude more resources than when I was coming up in the field -- but I think all these ways of making it more fun and more social are great. I've never done a hack-a-thon or any of these more formalized coding challenge things, but if they're increasing the chances that people with natural coding aptitude try it (especially those who might not otherwise have the ability due to financial resources, being told by their parents they can't do it, etc.) then I see the benefits far outweighing any drawbacks.

Or, tl;dr -- yes, a lot of the people doing these will hit a wall, but some will be able to climb over it, and in any event, at least they got far enough to see it.
posted by tonycpsu at 7:24 AM on January 30, 2016 [4 favorites]


You should not have to gamify programming to make it fun, and if you have to gamify it you are not finding the programming part fun and probably won't be either happy or successful as a developer.

The thing about programming that is fun is starting with a computer that is too stupid to do something that would be cool or useful, and writing some code that makes the computer able to do the cool or useful thing. Once you do that a few times you either find it's either a drug or a drag. Proceed accordingly.
posted by Bringer Tom at 7:31 AM on January 30, 2016 [16 favorites]


I try to be indifferent to these gamifications of programming, but it's really hard not to hate them. When I was a kid you learned to code uphill both ways in the snow, after installing 21 floppies of the pirate copy of Borland your dad made from the guy at work who had it, and going to the /library/ to check out books on C, and finding k&r and falling in love. But mostly you did it because you were playing with dehacked and wanted to write your own doom. So I guess gamification worked then too?

I do wonder how many people got into programming because of computer games, even if they now lead mundane lives coding business logic. Now that I think of it it was really the gorillas in QBASIC that got me started.
posted by dis_integration at 7:45 AM on January 30, 2016 [3 favorites]


You should not have to electrify a guitar to make it fun, and if you have to electrify it, you are not finding the guitar part fun, and you probably won't be either happy or successful as a musician.
posted by tonycpsu at 8:23 AM on January 30, 2016 [8 favorites]


While some people were installing Borland others were just turning on their C64 and going for it. There is no "right way" or "wrong way" to learn how to code. It *can* be fun - I certainly wouldn't have kept up with it as a kid if I didn't enjoy it. These games might help with abstract reasoning and problem solving, two areas where I find many developers (with CS degrees) sorely lacking. I mean, who cares if you can whip up a b-tree from scratch if you can't apply it as part of a coherent solution?

I came in to this thread wanting to dump on the site but now I am going to encourage people to use it, because snobbery and elitism and a the measurement of bona-fides don't help anyone. See: OSS communities.
posted by grumpybear69 at 8:33 AM on January 30, 2016 [5 favorites]


How 'bout 'Become a better developer by consistently implementing loose-coupling via SOLID, and maybe 3NF.' Shit, I'd pay top dollar for that video game and give it out to my team.maybe v2 could include LOD and prefer-composition.
posted by j_curiouser at 9:17 AM on January 30, 2016


I think 80s coders had a couple extra things going for them: One, the bar was so low that almost anyone with a little dedication could match or improve the state of the art. Ain't no way you're coding GTA V even if you have unlimited weekends (tho you could do mods).

Two, there wasn't shit else to do. You wanted a game, you had to pirate it, buy it, or write it.
posted by RobotVoodooPower at 9:19 AM on January 30, 2016 [4 favorites]


I had perfect timing, the PC industry grew up with me.

I was first introduced to PCs via a 4k TRS-80 Model I w/ cassette storage. It had been bought a few years back and was gathering dust. Long story short I progressed to Apple //e, IBM PC AT, Mac IIcx, PPC w/ 3DFx, P4 w/ nVidia, iOS.

There's an immense gap between the skills needed to program a BASIC game on an early 80s machine vs. an iPad today, unless you find some useful middleware for iOS now.

Making some kid-friendly iOS middleware would be a fun project, one that I've kicked around from time to time. Not having kids, I haven't investigated what's out there now, I've heard about Scratch:

https://scratch.mit.edu/discuss/topic/60012/

but that doesn't look particularly polished.

ArtDink's Basic Studio for the PS2:

http://www.artdink.co.jp/japanese/title/bs/about.html

blew me away, its conception at least. Never got to use it.
posted by Heywood Mogroot III at 9:22 AM on January 30, 2016


I also lots of young-uns that own the classic rock guitar. But not much has changed there in 60 years (yes math rock is cool) but I think it's a different pleasure center than coding, where you want to see something new more than interpret someone else's music.
posted by RobotVoodooPower at 9:22 AM on January 30, 2016


When I was learning how to code in university, the programming exercises we learned on were mostly set by the professors, and were pretttty bad. Dull, outdated, too complicated, or downright confusing. It was so hard to get a foothold, I figured I wasn't cut out for it, and I almost quit. (Coding is now an integral part of my job, and I love it.)

I welcome an external marketplace of "learn to code" exercises where the material needs to be good and effective in order to succeed. The companies that can't achieve quality will have to close up shop, unlike my tenured professors who didn't have much reason to innovate.
posted by mantecol at 9:52 AM on January 30, 2016 [1 favorite]


When I was a kid you learned to code uphill both ways in the snow, after installing 21 floppies of the pirate copy of Borland

My first compiler only took four or five floppies I think, so maybe I was a kid even longer ago. But anyway the ECOO Programming Contest started in 1984, a competition for high school students. Each school would send a team of 4 would-be hackers, who had to cooperate to solve 4 simple programming challenges using only one computer (with Watcom BASIC). The quickest team to get correct answers wins. Being the best typist, I was the one on our school's team who would take the other three kids' half-baked buggy pseudocode they'd done on pencil and paper and make it all work. It was good fun. Just saying, this type of "gamification" of programming is not entirely a new idea.
posted by sfenders at 10:04 AM on January 30, 2016


Successfully building software requires mastery of a written language

The Daily WTF might disagree with that notion. Programming is not like playing a musical instrument, and a motivated amature with a good idea can bang two php-based rocks together and make a successful webapp, with copious referencing of StackOverflow and the rest of the internet.

Mastery implies years of experience that simply aren't necessary for successful programming. Javascript devs might do better if they know the intimate details of V8 garbage collection but computers are cheap now, and rather than endlessly profile and tune to eke the last drop of performance, current practice is simply to add another computer to the mix in order to handle more requests.

That's not too say language mastery isn't useful, just that you can be successful without it.

An insane amount of manpower goes into creating video games like GTA V these days, and it's quite underwhelming as a child to work all day and only barely be able to get a turtle to shuffle around on the screen the way you want it.

Teaching everyone to program is a laudable goal, but that's not enough on its own. To be successful in the marketplace you have to know your market, and in this case I would hope a version of the linked site that works on mobile isn't too far behind, as I imagine that children have access to a tablet or smartphone more readily than a laptop or desktop.
posted by fragmede at 10:05 AM on January 30, 2016 [5 favorites]


I think things like this are wonderful. If it gets people whether adults or kids that will grow up to adults to have some exposure to coding and the logic of programming in a fun way, even if they never make a career out of it can maybe help increase base common knowledge of how these things sorts of things work. Maybe it can help make it just that much easier for those who directly deal with software and IT deal with those that don't directly deal with it but need to have some base understanding of how these things work.

Part of my job is figuring out how to communicate IT issues and explain how the new software we're implementing for sales and inventory works. It is above all the most stressful and conflict ridden part of my job because no matter how many different ways, tacts, strategies I try things take a really long time to get through or in some cases I'm not sure will ever get through. I coming to realize that a lot of it is due to a real difference in what they and I would consider common sense and common knowledge of computer things.

I know it's anecdotal but I just don't have any of the same issues with the younger people that will use it every day. And the two I've worked with who have told me they've fooled around with code or built their own website not only got their specific part with one run through but were able to do pretty good figuring out other parts because to them it just made sense that it would likely work that way.

In my mind it would be great if some future incarnation of me wouldn't have deal with a CEO being pissed for 2 months because, no making that label do want you want is not a matter of the developer sitting down and coding for ten minutes.
posted by Jalliah at 10:11 AM on January 30, 2016 [5 favorites]


The thing that separates the utility of "learn to code" from "learn to play music" in my mind - and I speak as someone who is not A Programmer but is currently trying to learn to code - is that the ability to do any kind of automation/coding (even just "can pop up a command prompt and grep through some text", which hardly any capital-C Coder would even consider coding) is a marketable skill in many modern jobs that involve people using computers.

No, you're not going to get hired as a full-stack developer on that skill set..but if you're aplying for a job where "coder" isn't the main skillset but computers or the internet are still vital to the work, being able to say "hey I can probably automate some of the things you guys are doing by hand in Excel right now" is fairly likely to get you shortlisted with a surprising amount of enthusiasm. There is far more job market for "people who can hack together a rough tool that may not be elegant but does the job" than there is for "people who are pretty good at playing scales on saxophone but aren't, like, a virtuoso", because there is far more job market for jobs that are related to but aren't focused on computing than there is job market for jobs that are related to but don't focus on musical skill, etc.
posted by Hold your seahorses at 10:12 AM on January 30, 2016 [9 favorites]


When you pluck a guitar string, it makes a sound. Instant gratification. The connection between input and output just isn't that simple with coding. We have science, math, electrical engineering and physics toys and games to nudge people into seeing how cool and important those disciplines are. I've literally lugged buckets of brains over to grade schools to get kids excited about biology. Being able to code is becoming an issue of literacy, and I welcome any resource that engages people of any age (on preview, I appear to be echoing a number of the comments posted in the last few minutes.)

Also, Scratch is absolutely fantastic.
posted by synapse at 10:16 AM on January 30, 2016 [5 favorites]


Hold Your Seahorses described what my experience has been. I'm not a programmer, coder or engineer of any sort, but my job is training and supporting educators in instructional technology (technologies I did not develop, but that I have to have a pretty good understanding of). I absolutely got this job because I demonstrated that I can pick up a little bit of this and a little bit of that in order to solve a technical problem. I work for a public university, we don't have the funds to hire professional coders and developers full time. Every now and then we get a student worker from the CS or IS departments and they make something for us, but then they're gone and we have to maintain it. The fact that I can work with html, js, php and css created by someone else is a pretty big part of the reason they keep me around. And I learned what I know about all of that doing stuff like Lynda.com, codeacademy, w3 schools and just googling it.

The world is no longer divided solely into programmers who are expert level coders and users who know nothing about how computers or code work. There's a lot of in between areas. If things like this can move folks from no knowledge to some knowledge, believe me that there are jobs out there where that's enough to make them stand out as a candidate.

Now if you'll excuse me, my son is down for his nap, which means it's fuck-around-with-the-Arduino time for mommy.
posted by soren_lorensen at 11:02 AM on January 30, 2016 [7 favorites]


I was being badly sarcastic. Gamification is great. It's wonderful that people have all these entry points into programming. And it doesn't bother a curmudgeon like me at all really. You used to have to spend long lonely hours hacking away without anyone really appreciating or caring about what you were doing to learn to code. And that kind of sucked. It's great that programming can come out of the nerd closet and into the bright light of the cool kids club day. It still takes long hours to learn to write good software, but at least being curious about this stuff isn't leprosy.
posted by dis_integration at 11:58 AM on January 30, 2016 [1 favorite]


I've never used Scratch, but I really like Processing. It's a simple language built on top of Java that lets you make graphics really easily. There's very little boilerplate, and you can animate bouncing balls and so on with just a few lines of code.

However, it's also built on Java and has a great, well-documented standard library and community libraries, so you aren't really limited. And you find yourself learning about static types and basic object oriented programming, and the C-type syntax you'll need for most languages.
posted by mccarty.tim at 12:08 PM on January 30, 2016 [1 favorite]


The issue is that there are two vastly different things that can be described as "programming". One is hobbyist level and the other is professional level. It's probably easier to understand professional programming with an example: a backend web programmer will need to have an understanding at least full technology stack as follows:

SQL, HTTP, web servers, unix administration, multiple versions of a web framework, 3rd party libraries for the web framework, multiple versions of at least one dynamic backend language, 3rd party libraries and standard library for it, Javascript, at least one Javascript framework, DOM, collaborative source control, quite possibly at least some familiarity with a static language like c++ or go, ability to write good comments and documentation, ability to deal with a large undocumented and uncommented codebase, knowledge of security practices and pitfalls, knowledge of software development as a continuous process rather than a few weeks effort that ends when some goal is met. Code reuse and at least some understanding of OOP, algorithms and computational complexity, scaling to larger data sets or # of users. Thinking in terms of "this works for me now but will this work in the long term when many other developers have to read, reuse, change this codebase?"

By comparison, a hobbyist programmer can get away with knowing a single version of one good all-around language like Python, no source control (or a bit of it as a single contributor), no documentation, no reading other's code, no security or performance requirements, no code reuse, no OOP, no algorithms.

That doesn't mean that a hobbyist level program can't be important or useful or fun or relevant or very complex. For instance a lot of scientific programming is done by non-coders and these programs are mostly at a hobbyist level, but many of them are more interesting and important than your marketing or email or small ERP or business analytics small projects that are usually done by professionals.

My point is that these two types of programming are completely different beasts even though looking from the sides it's just someone typing on the computer and looking thoughtful. The first takes years of full-time, 40 hours a week effort, learning from mistakes continuously. The second is something that can be picked up in a few weekends, give or take, as a fun side project.
posted by rainy at 12:15 PM on January 30, 2016 [3 favorites]


So while I look at efforts like these positively and acknowledge the good intentions, I wish they would tone down the "FAST AND FUN" aspects. It's possible to help people, including kids, enter a challenging discipline without diminishing the discipline or the audience.

I disagree with this statement, actually. I'm currently a graduate student in Computer Science, and I was just marking a big final project for an Introduction to Artificial Intelligence course that I was TAing. The final project was very free form: basically, the students were asked to just take one of the techniques that they were taught with the class, and find some interesting real life application of it. Of course, since this was just an introductory course, none of the techniques were that complex at all. The split between the students who handed in a wildly successful project, and the students who handed in one that barely demonstrated any novel work or thinking was clear. The latter complained that they weren't taught enough to come up with something new, and handed in something that was a straight-forward implementation of textbook examples covered with a thin veneer of abstraction. The former? They took impossibly complex and chaotic real life data that actually interested them, organized them into simplified models, and then tackled the problems using just the tools that they had, to create surprisingly powerful results. The best project was actually one that built an AI to navigate through a Pokemon game - the woman who worked on the project was obviously incredibly motivated by her interest in this game, ultimately creating an elegant representation of the game that distilled down all of its probabilistic factors to a single dimension, allowing it to be tackled by conventional search techniques. That is what a good computer scientist does.

I think back to my own career and experiences in Computer Science. I only started in undergraduate, and I was actually actively dissuaded from entering the field, because I was told that compared to the kids who had been coding since they were twelve years old, I had no chance of creating anything innovative. This week, I actually just submitted a new paper. It is based upon the most simple machine learning technique; the very first one they'll teach you in any introduction to machine learning class, with math that even an elementary school student could do. And yet, by just putting a few informed variations upon it, I found a novel application of it to it to some biological data that no one had ever bothered to apply it to, with previous work only trying state-of-the-art supervised techniques that took weeks and weeks to train.

I feel like some of the pretenses that we take about computer science sometimes is just overblown. We solve problems with our code. But that does not necessarily mean we have to throw gnarled up jumbles of incomprehensible code at everything, tackle all problems with state-of-the-art techniques lest it all be primitive, pepper our language with a dense forest of jargon. Our job is to make structure emerge out of chaos: we take tangled problems, and chip away at them, line by line, until it becomes procedure, utility, and pattern. The thinker is as important to this process as is the code, and I heartily endorse anything that allows for the retention of creativity through ones development as a computer scientist or programmer. It is an essential skill - a little creativity goes a long way in reducing chaos to its basal components so it may be addressed, finding perspectives and angles of attack where inherent structure can be seen. Let's not trump up the code itself too much: I am firmly convinced that it is not the complexity of code that someone wields that makes them a good computer scientist, but the elegance in which they wield what they know.
posted by Conspire at 2:54 PM on January 30, 2016 [11 favorites]


You know, we probably could have avoided a lot of unnecessary aggravation in this thread if I had just indicated that this is not for novices. You'll not have a lick of fun doing this if you're not already a pretty good programmer. Especially the competitions because the other people on the site are all pretty good programmers.
posted by ob1quixote at 3:45 PM on January 30, 2016


if you're aplying for a job where "coder" isn't the main skillset but computers or the internet are still vital to the work, being able to say "hey I can probably automate some of the things you guys are doing by hand in Excel right now" is fairly likely to get you shortlisted with a surprising amount of enthusiasm. - Hold your seahorses

"I'm not a programmer, coder or engineer of any sort, but [...] got this job because I demonstrated that I can pick up a little bit of this and a little bit of that in order to solve a technical problem. - soren_lorensen

This is very interesting, because these comments describe me and my skills almost exactly. Until this post, I was somewhat resigned to the fact I had zero prospects due to my lack of professional experience or a full degree. I am brilliant at solving the sorts of gameified tiny problems in the OP. I am great at picking things up on my own by googling and following instructions, usually learning a small bit of theory and applying to whatever problem was at hand. So I'd like to hear more about this sort of thing.

Last year I jumped back into learning programming after several years off, and did a million of these basic exercises across a ton of sites, until I hit a wall because I did not know mathematics (beyond what I can remember from Calc I, and Intro Formal Logic). My ADHD brain likes the quick payoff from something working. I get frustrated when encountering a large or seemingly opaque problem that requires a lot of background knowledge to even get a handle on. It's a skill I'm working on, and I'm getting better at tackling complexity, but the lack of that background just makes learning curves steeper. It doesn't help that I am broke go to school full time (for a B.A.) and have trouble justifying so much time spent on something that is, at this point, a hobby without any payoff. Unfortunately my strengths are difficult to express properly on a resume, especially as more jobs seem to require formal credentials and it looks like it's becoming more difficult to get work with self-taught skills and hobbyist projects.
posted by Freelance Demiurge at 3:55 PM on January 30, 2016 [1 favorite]


If you're looking for a more polished code tutorial using scratch, you'll want to check code.org.

It's pretty big. My wife is using it to teach her grade 2-4 class (Montessori).
posted by lastobelus at 3:57 PM on January 30, 2016


I think things like this are wonderful.

It's possible to approve of things like this in general, while thinking this particular thing looks cheezy, gimmicky, lightweight, too-gamified, et cetera.

Having actually tried this thing, at least the part I went to is in fact wonderful. Under 'optimization', I naturally picked the one that suggests you try it if you want them to hire you. I figured that would be a good challenge. And it is. It's really good actually, I'm just sad I don't have time to finish a decent program now, having spent an hour or two just figuring out what was going on.
posted by sfenders at 4:36 PM on January 30, 2016 [1 favorite]


Oh, and a hint for anyone else trying it: You really do want to click on the big obvious button labelled "Hint" a lot earlier than I did.
posted by sfenders at 4:52 PM on January 30, 2016


Freelance Demiurge, have you put together a portfolio for yourself, as a place where you can store all the bits and bobs you've monkeyed around with? That might help you with employers, if you can actually show them something you made and a little blurb about how and why you did it.

I'll be the first to say that my current boss is really uniquely open to seeing people's true skill sets rather than just their resume bullet points and credentials. My portfolio opened the door for him to ask me how I learned how to do the things that I had on there (because it clearly wasn't formal schooling--I was a humanities undergrad and education master's). He is always looking primarily for people who can quickly learn new applications well enough to train other (non-technical) people. Having a portfolio and talking about how and when I learned the skills on show there allowed me to demonstrate that I could do that.
posted by soren_lorensen at 5:42 PM on January 30, 2016


« Older I Want You to Be Nice Until It's Time to Not Be...   |   What if Doctor Seuss channeled H.P. Lovecraft? Newer »


This thread has been archived and is closed to new comments