Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have to ask: How on earth do you find the time to do this?

As much as I'd love to do this in order to get my hands dirty on web development and out of systems, I can't ever fathom having the free time available every day consecutively.

I mean, for someone "learn(ing) to code" on Day 1 and by Day 15 doing "Dropping Boxes", it just seems a little far fetched. Obviously you have had a good portion of coding experience and are using -some- level of resources, or you are a savant.

I don't mean to sound rude, I just feel like the readers deserve a deeper level of explanation and cited resources, rather than believing you reinvented Conway's Game of Life by day 108.

Edit: I have to add that this is all very excellent work and good on you for sticking to your goals so far. Clearly you are a very talented individual. Cheers.



Just before I started the project, I looked around the internet for some resources to see what I was getting myself into. There are so many awesome places to get information out there. Stack Overflow, the Wikipedia, demos, tutorials, documentation. I spend about 10 hours a day working on the project and the vast majority of that time is me digging through those amazing resources.


Just curious, how do you fund working on these projects 10 hours a day?

Good work on them. Perfect way to have a portfolio ready for the world.


I saved up some money so that I could learn to code full time.


Do you think your art background helped you develop the focus and dedication to work on projects for such long periods of time? Most programmers couldn't manage that.


Absolutely! When making art, you often go through a 'research' phase where you make a lot of sketches, models, mock-up, etc. Most of it is garbage but at the end you've prepared yourself to tackle the real thing. I sometimes think of this project as a really intense version of that process.


You really should blog about this! 'Build one to throw away' is a common (very insufficiently applied, in my case) programming aphorism, but it would be neat to hear a take on it from an artist's perspective where you quite literally throw it away and there is no copy-paste between projects.


That is a really great idea! I am definitely sticking that one in my queue.


I second the interest in a blog post. Jennifer, it's rare that someone develops an art background before programming so I'd love to hear your thoughts on the similarities and differences.


I'm going to move to India to do just this.


Just curious. Where in India?


Don't know yet. Any ideaS?


What on earth do you mean by this?


Do you have a list of your favorite resources. Would be great to see that path... Like I built this and used this to learn. Fantastic job btw. Kudos!


I don't have a formal list right now but I do have a folder full of random bookmarks which I'll do something with at some point. I always keep a window open with tabs to Stack Overflow, jQuery docs, Underscore docs, and Ruby on Rails Guides (if I am using Rails that day). I usually keep another window open with tabs to styling tools like http://www.colorhexa.com/.


She implemented Conway's Game of Life, which is substantially easier than reinventing it. Here is someone implementing it in eight minutes in APL, while explaining it, and futzing around with other stuff: http://www.youtube.com/watch?v=a9xAKttWgP4.

Also, I don't really understand the suspicion this gets here. Where's the win in giving someone the Spanish inquisition for posting something cool? What's the upside of this skepticism? Does it accomplish something useful? It's not like this person is trying to sell you something or has any reason to deceive you.


I totally get what you mean about the skepticism, and I really didn't aim to sound like a spoilsport.

However, any would-be (I'm talking zero experience) programmer that looks to this for inspiration is going to be demotivated by not being able to come anywhere near this progress. Because it's not possible. It's deceiving. The website presents itself as a resume or a portfolio, and in a way it does feel like it's selling something: herself.

Yes Conway's Game of Life, Pixel Paint, etc. can be made in surprisingly limited time and code, but not by a novice programmer. We're talking about having to grasp variables, lists, function calls - basic stuff - that given no prior knowledge may take weeks alone.

This is someone with a solid understanding of programming and who has borrowed (very skillfully I'll say) from tutorials and examples - very good skills to have, but separate from her claim.


> We're talking about having to grasp variables, lists, function calls - basic stuff - that given no prior knowledge may take weeks alone.

Not true at all. I had no prior programming knowledge when I began Objective-C and all of that was grasped within a week no problem. Pointers were easy to get. Arrays couldn't be easier (even multi-level). Things are so much easier when you aren't sitting in a class and getting told things are hard. Cause most of the time they aren't.


Where do you draw the line between cheating and referencing? If I made a Game of Life implementation, would you think differently of it based on whether I had used YouTube rather than Wikipedia to learn about the specifics of the problem? Or is it a matter of not copying-and-pasting -- something which I do occasionally even in professional work?


this is the first time I've seen APL... and I have to say, as a competent programmer who knows a good few languages backwards, I now know what it must look like when my wife looks over my shoulder when I'm coding... total alien hieroglyphics!


APL and C/C++ were my first languages (and that was in a high pressure 90 hour/week trading/underwriting situation). There's a lot of abstraction in APL but the gestalt is closest to scheme/racket, i think. The language lives on in J and K languages, you can read some here

http://www.reddit.com/r/apljk


It's not as magical as it seems. Just a lot of single-character, composable functions. You could probably do the same thing in Haskell. (I mean it does look cool but . . .)


but the matrix operations and concepts used in that video is probably beyond a self-taught web programmer (i.e., me :P)


[deleted]


A bit of feedback on your site:

1. Don't call your blog "Poop". You're better than that. I know it's an attempt at being clever/sardonic/wry/whatever, but keep in mind tone and nuance don't convey well on the internet. At best it's self-depreciating but not in a good way.

2. On your About page, that you link prominently on your home page, don't then tell people it's none of their business and call them "rude". You invited them to visit that page, remember? Again, I recognize an attempt at cleverness, but it comes off flat.


[deleted]


Personally, I liked your page and I am more likely to return to it than the usual self-important stuff floating around.


Heh the whole "Here's a tasty sandwich" bit reminds me of The Little Schemer and not in a good way.


Your front page has some overlapping text on my mobile browser. Screencap: http://imgur.com/tqiLdZy.png


Another possible explanation is that she is intelligent and motivated and you are an asshole.


I downvoted you. It's natural to be skeptical about the things you see online, especially when it's almost too good to be true. And there's no need to start name-calling.


Oh gosh, come off it. I agree with wellington's subsequent post that such contextual information is worth knowing because anyone looking to learn programming from scratch will probably be demotivated by this post. I mean, Github by itself will confuse from-scratch beginners! Imagine seeing that as your benchmark, and looking at your own work on day 10.

It's an amazing feat, and she clearly has much more aptitude (and dedication) for the skills than I do. I applaud what she's done. But I'm hard-pressed to believe she started with a blank slate, and I wouldn't want any true beginner to believe that either. I'm not saying that she knew even one programming language before starting, or that she had any sort of expertise whatsoever. But a rudimentary understanding of some key terms and concepts? Seems plausible-to-likely.

I don't think that diminishes the work in any way whatsoever. The work and the effort are amazing.


The thing is, these spiteful naysayers are talking about her, nobody is talking about them, and probably never will.


seconded. day 46 you wrote a snake game using canvas manipulation? i call shenanigans.


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.


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.


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. :)


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.


also, you built MS Paint on day 39. again, shenanigans.


I took a 6-week Java course that, for all intents and purposes, was self-taught with the teacher just giving and grading assignments (not actually doing instruction). Week two had us make a paint program with multiple colors and an eraser. It's all about how much time you can put into it, and how much of that time is spent pouring over documentation.


I don't think it's shenanigans. My step brother just started learning to code 2-3 months ago, 100% self taught through online tutorials. He is already a good Rails developer with several entry level job offers.


if you look at the source code, yeah it's something even a beginner can hack together (if she follows a tutorial) http://jenniferdewalt.com/js/pixel_painter.js


10 hours/day by day 15 means 140 hours invested in learning. Surely someone with no coding experience can make 'Dropping Boxes' by that point?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: