Hacker News new | ask | show | jobs
by ultimatedelman 4711 days ago
seconded. day 46 you wrote a snake game using canvas manipulation? i call shenanigans.
8 comments

I definitely see your point, but from her description she spends 10 hours a day on this excersize. I could see that level of progress given those constraints, 10 hours a day every days for a month and a half is insane dedication.

On the other hand that level of dedication seems to indicate that apparently she has some kind of OCD, no disrespect just wild speculation.

i'm not saying that this feat of creating 180 websites in 180 days is impossible. it's highly improbable and takes a very unique mix of dedication, intellect, funding, and, well, nothing better to do for half a year, but that's for someone with a background in coding. my beef is that this person is claiming to come from a completely non-programming background and has not read any books or taken any courses. i don't care if you spend 24 hours a day coding, you can't write a program as complex as MS Paint in canvas in a month if you've never written a line of code in your life. There are just too many intermediate steps missing and progress is just too fast.

I would love to be wrong about this, but seeing as I've been doing this for a really long time, this just smells funny to me.

Indeed -- I find it kind of hard to believe that someone with truly zero programming experience knows what github or even knows what source control is.

I have no doubts about the main thrust, just some details seem as if they are embellished.

Github and source control are the very first things out of my mouth when someone expresses interest in programming. They were the first things that were recommended to me. I basically say to go get set up on github and walk through the tutorials, and 'follow' me while you're at it. Instant community feeling and the new programmer can always Stack Overflow 'how to revert my last commit'. It's low-hanging fruit to get set up.

Next, I usually suggest grabbing an introductory reference and a bunch of small projects (usually my go-to is Project Euler) in the language of their choice. What she's doing is exactly what I'd recommend if you were brand new and wanted to get a feel for the landscape.

+1 ultimatedelman, I've got your point. This kind of "effort" is very rare and in most cases smells like copy-paste from somewhere.

Look, I'm not saying that jenniferDewalt is a fraud (and I'm not calling shenanigans), but she must keep in mind that some people will say that her work is just a copycat and she must deal with it.

IMHO, she did a very good job! I really liked it.

well, nothing better to do for half a year

Yeah, this is the real fishy part. Sure, it seems like she has some previous programming experience, at minimum. Using "public" and "private" in javascript having no previous Java/C++/C# experience, or without having copied-and-pasted it from somewhere is odd. Big deal, though. She's promoting herself.

But why? If I had that kind of dedication, it wouldn't be on a tedious gimmick. It's much more sane to have one or two big ideas. She's fighting chicken-sized horses that's for sure.

Perhaps she's just really, really smart.
Erm, isn't 10 hours a day approximately one full-time job?

If she's, say, taken a six-month sabbatical to learn to make websites, this seems eminently reasonable and doable without speculation about mental illness.

10 hours a day, 7 days a week, for almost 6 months

While it is far from a definitive diagnosis, it isn't 'normal'.

Without a doubt it is ambitious, and her progress thus far impressive!

If only we all had 10 hours a day for a full 6 month period to spend pursuing ambitious goals ...

Shrug. Maybe it depends on whom you hang out with. Personally I spend a lot of time with successful entrepreneur and creative types. This sort of focus and commitment, whilst it's definitely laudable, isn't abnormal amongst that crowd.
"Maybe it depends on whom you hang out with."

...and your existing bills and how you are able to pay for them.

I've got a 1 hour commute each direction, and an 8 hour a day, soul-sucking, brain-energy-sucking job. (HN is sanity retention medicine for me.) By the time I get home in the evening, fix dinner for the kids and me, eat, catch up with the family, etc. I don't have a lot of time or energy for anything else.

Well, obviously you don't hang around with the cool kids, then. :)
Also doing it out of a paid-for shared workspace. I mean, I love the stuff she's doing, it makes sense that she'd be able to do it working full time, but she must be independently wealthy to be able to afford it.
I know nothing about Jennifer or her lifestyle. But it is not that hard for a young, single person whose main activity is being productive to save up 6 months of living expenses.

Use of shared desks costs like $200 a month at places like Citizen Space, so it's not like that's a bank breaker.

If she had a family it would make less sense. If she were living a 'baller' lifestyle, drinking and partying every weekend, it would make less sense. But if she's an unattached workaholic, her life probably costs very little and no independent wealth is required.

Or just taking a sabbatical.

I know a fair number of people who have retrained at University for another career, for example. Most of them weren't independently wealthy - they'd just saved up enough to be able to afford to go to university for a year.

Edit: that's exactly what Jennifer says she's been doing, above - https://news.ycombinator.com/item?id=6098083

Good stuff! Well, it seems to be working.
It doesn't take much to save $10,000, which is more than enough to fund 6 months off work to learn something.
I've never been diagnosed :)
yet?
Every artist I've met and respected has been very dedicated to their craft and efforts to make many things right in every one of their many, many works. If you go to a college like DigiPen or Fullsail, or any of the other gaming arts/engineering institutes, you'd see a similar workload, maybe even higher.
view the source for her snake game you'll see it's actually not that unlikely: http://jenniferdewalt.com/js/snake_game.js

following a few tutorials after a google search for "create snake game canvas javascript", it actually seems very likely:

http://css-tricks.com/learn-canvas-snake-game/

http://thecodeplayer.com/walkthrough/html5-game-tutorial-mak...

The snake code looks very similar to this tutorial[1].

1. http://cssdeck.com/labs/classic-snake-game-with-html5-canvas

Tutorial: //Get the directions document.onkeydown = function(e) { var key = e.keyCode; //console.log(key);

			if(key == 37 && dir != "right") setTimeout(function() {dir = "left"; }, 30);
			else if(key == 38 && dir != "down") setTimeout(function() {dir = "up"; }, 30);
			else if(key == 39 && dir != "left") setTimeout(function() {dir = "right"; }, 30);
			else if(key == 40 && dir != "up") setTimeout(function() {dir = "down"; }, 30);

			if(key) e.preventDefault();

		}
Jennifer's code: $(document).on('keydown', function (e) { var key = e.keyCode;

		if (key == 37 && snake.dir != 'right') {
			setTimeout(function () {
				snake.dir = 'left';
			}, 30);
		} else if (key == 38 && snake.dir != 'down') {
			setTimeout(function () {
				snake.dir = 'up';
			}, 30);
		} else if (key == 39 && snake.dir != 'left') {
			setTimeout(function () {
				snake.dir = 'right';
			}, 30);
		} else if (key == 40 && snake.dir != 'up') {
			setTimeout(function () {
				snake.dir = 'down';
			}, 30);
		}

		e.preventDefault();
"canvas manipulation". You make it sound like it some kind of strange hack. How else would you use a canvas element? People highly overestimate the complexity of making HTML5 games.
I'd guess she reused code from previous sites.

Lately, I've been dumping heavily into a wiki while I work. Every command line snippet or reusable looking piece of code gets dumped in there. After about a week, it became really useful, and a month on it's amazing.

But yeah, if you write a site that uses canvas manipulation to draw a bouncing ball, all that work is already done when you want to use it for snake.

I like this story, because people do end up in situations where they have a lot of time (students on holiday, unemployed people, maybe stay home parents), but few use it in such an inspiring productive way

I'd be interested in a breakdown of how long each page took to build.
Did you look at the source? It's like 160 lines of code. Experienced programmer could do this in one hour, and I'm sure someone with 1.5 months of javascripting could do it in a day.
You can't be serious. Take a good look at that code. Public and private vars and methods, proper indentation, proper variable scoping, pretty and readable (the cleanliness is the least believable part, does that like a noob's code to you?)

Have you ever worked with someone who has no programming background whatsoever and taught them programming? I have, and this kind of progress is insanity after 1.5 months. 10 hours/day or not, this kind of knowledge doesn't get uploaded to your brain Matrix-style.

Yes, it takes just years of practice to achieve proper indentation, or, you know, one key press in emacs.

I was a TA for an introductory computer class and yes, some people do write clean code within days. There are people who naturally get the how and the why of it.

I don't want to get too involved in this thread, but to further what you're saying: people from a background in the arts are also much more likely to care about how their code looks as corequisite to programming (or even reading/learning about code).
What, you're saying that because it's easy everyone will do it? That's funny.

The percentage of folks who started coding a month ago (and have 0 CS background) that format their admittedly-rushed one-day project properly is so low it's a rounding error. The number of them that indent properly and understand scoping is effectively 0.

Look at her background. This is an art project, not a coding project. The code could come from RAC for all it matters, this is a performance piece.

> What, you're saying that because it's easy everyone will do it? That's funny.

No, he said it's easy and some people will do it from the start.

You're saying it's easy but nobody will do it. Yours is the outlandish claim.

Whether or not she really began programming 114 days ago, her use of indentation is a really weak argument. Even if she wasn't focused on indentation, there are editors that make it an afterthought.

You're right, the code does look professional. It's clear and concise, not something you would expect from a beginner.

I still expect a beginner to be able to create a snake code in one day, but maybe there's more to this story than she's telling.

The public and private variables are suspect; but, they probably came from reading several, several tutorials, and she doesn't know how and when exactly to use them yet. In the snake code example, I also noticed that she was using different styles for calling methods on the document and snake; but that would also be from doing things like searching how to capture keyboard input from JS. Different people do it different ways.

As for the tabbing/etc? Especially in Javascript, all it takes is missing a few closing braces and many people will start tabbing out their code just to find where they missed the tab, then they'll start thinking "Hey, that looks nice, I'll do it more!"

And, as other people have mentioned, if you're using an IDE or any intelligent text editor (even Notepad++), it'll start auto-tabbing for you.

The public and private variables are suspect; but, they probably came from reading several, several tutorials, and she doesn't know how and when exactly to use them yet. In the snake code example, I also noticed that she was using different styles for calling methods on the document and snake[1]; but that would also be from doing things like searching the internet on how to capture keyboard input from JS. Different people do it different ways.

As for the tabbing/etc? Especially in Javascript, all it takes is missing a few closing braces and many people will start tabbing out their code just to find where they missed the tab, then they'll start thinking "Hey, that looks nice, I'll do it more!"

And, as other people have mentioned, if you're using an IDE or any intelligent text editor (even Notepad++), it'll start auto-tabbing for you.

[1] When I was first learning Java, I didn't know why classes had to start with public class; nor did I know why I had to write a seemingly long-winded public static void main(String[] args) magic phrase to make the program start there. I didn't know what any of those words meant, but I did them because they were the right thing. Now, years later, I know what each part of that means; but, I did it back then because it was what I was told I was supposed to do. She is probably in that phase for many of these things; and, that's okay! If she keeps up with her craft; and, as her time starts coming to a close, she starts creating novel projects or slows her use of tutorials, you'll see she's starting to create her own style; and that's okay too!

She's an artist. She knows when tracing helps like she knows when drawing it freehand helps. Funny enough, painting/drawing and programming aren't all that different in some styles. Start with the scaffolding and fill in the details.

> It's like 160 lines of code.

Which is precisely the reason why I am skeptical. I would find it more believable if she wrote 500 sloppy lines. Maybe I am a bad programmer but I often write elaborate code without much elegance and then go back and enjoy reducing the number of LOC without the code loosing expression which to me equals elegance (ie the code is still easily readable and understandable just with a lot less code so just squeezing everything in one line doesn't count). Recently I refactored a project a junior dev wrote by the factor of about 100 by rewriting it and using basic OOP (it was a copy and paste nightmare).

This piece definitely showcases Jennifers dedication and is nice self-marketing but using this as a measuring stick for newbies would be unfair and unrealistic.

edit: Upon reflecting why it strikes me as odd is that when I started out programming I focused on one website I wanted to build and kept adding features rather then building as much different stuff as possible. Hence I probably can't assess whether her accomplishments are realistic.

this is also a very good point. her code is polished and precise. any unused variables in there? missing semicolons? unintentional globals? nope. these are all things i would expect to see from someone just jumping into javascript, as well as at least 300 more lines of code for a program of this level of complexity, not just algorithmically, but in canvas manipulation as well.

either she is a motherfuckin genius or she is really good at finding puzzle pieces and putting them together. not to say she hasn't learned a great deal from the process, but i don't believe she's superhuman, either.

I don't think most newbies can dedicate 10 hours a day, seven days a week for six months either. When I first started programming it was hard to sit still for more than an hour and remain focused. Really in the end her time elapsed over the course of six months will probably be equivalent to my time elapsed over my first year and a half, and I was dangerous by then.

So I agree, this isn't a good measuring stick for newbies who don't have the same time or focus.

Back in school I had two friends who programmed a snake game in c, using asci characters for the snake. This was while we were taking an introductory programming class.
460 hours of practice seems like PLENTY of time to learn to do that.