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 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.
I have no doubts about the main thrust, just some details seem as if they are embellished.
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.
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.
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.
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.
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 ...
...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.
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.
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
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...
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();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
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.
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.
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.
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.
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.
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.
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.
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.
So I agree, this isn't a good measuring stick for newbies who don't have the same time or focus.