Hacker News new | past | comments | ask | show | jobs | submit login
I'm learning to code by building 180 websites in 180 days. Today is day 115 (jenniferdewalt.com)
1542 points by jenniferDewalt on July 24, 2013 | hide | past | favorite | 344 comments

There’s this great story from the book “Art and Fear”, that's very appropriate here:


The ceramics teacher announced on opening day that he was dividing the class into two groups.

All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.

His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: 50 pounds of pots rated an “A”, 40 pounds a “B”, and so on.

Those being graded on “quality”, however, needed to produce only one pot — albeit a perfect one — to get an “A”.

Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity.

It seems that while the “quantity” group was busily churning out piles of work-and learning from their mistakes — the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.


Advance congratulations to Jennifer. This is amazing.

This is a great reason to do what is often frowned upon by us high achieving Hacker Newsers: get a job.

I have worked on so many projects in so many jobs that I lost track long ago. But it's always been the same: Get it done, good enough, on time! At first, I was always frustrated that I wasn't delivering product up to my own standards. But a funny thing happens when you do that hundreds (or thousands) of times: You get so good from sheer repetition that "good enough" morphs into "pretty damn good".

Don't be afraid to take what appears to be a boring, repetitious, or demeaning job. You never know what you might become.

Thanks for the great story, Derek!

And thanks for the great post and project, Jennifer. You inspire me.

Thanks, I've been feeling like what I've been doing lately just isn't up to snuff, and have been getting frustrated. I think this will help change my perspective.

I took a really boring job, and it was a terrible experience but I came away with 2 lessons 1. python can be just as terrible or worse than java when written by ex-java programmers 2. I can now understand and read some seriously scary large and ridiculously bloated code bases - which is a valuable and painfully learned skill.

That's very helpful, Ed. I recently started a new job, and I've been frustrated that my work output isn't 'perfect' yet. I rationally know that I just need to keep my head down and churn through assignments over time, but it helps to hear that from someone else, too.

Rather than a poster, check out the original source[0], I find Ira Glass' delivery more relatable.

[0] http://www.youtube.com/watch?v=BI23U7U2aUY

Quoth Ira Glass. I wish whoever made that had attributed it - Ira certainly deserves it.


Ever consider setting up a freelancing profile on oDesk or Guru or wherever, and getting paid to do interesting, challenging, different kinds of work of your own selection (more or less)?

Depending on the definition of "getting paid", it's better to do it on the own time for free than bothering with oDesk or Guru if you are located in a developed country.

Have you tried finding some productive use for your downtime?

Practice makes perfect. It's a tired adage, but it's absolutely true.

True if you know what perfection is (be sure to have some guidance, mentors, etc)...

Otherwise practice makes permanent in many cases. Just hope you're doing whatever it is right.

True, for sure.

But then perfect is the enemy of good, which for anyone doing software should remember.

Until a customer or someone important actually cares about that 2px off CSS, that refactor you want to do, or your caching/performance numbers, just don't do it. Wait till someone asks and then get after it.

I love how OP put her work out there to prove her wide array of skills, or more important, her ability to learn random skills. Who else has put out 180 sites for public review?


I agree - but I don't think the statement semantically means perfection. It really means "practice makes greatness." Perfect just has a P.

Yes, you said it much more succinctly than I did.

Only if you are making an active effort to improve yourself.

Thank you Ed, you have not idea how I needed those words right now.

I'd agree and add to that: go work in sales for a while. Pitching and selling becomes second nature :)

I like the story very much!

And that's a great project, Jennifer.

Perfect practice makes perfect!

I believe in "just do it" and worry about the details later.

However, on the internet, there is a worship of "hard work" that strikes me as emotional more than real.

Hard work is 1/2 of the equation.

The other part is your wiring: intelligence, skill, etc.

Not everyone can do everything.

We can dumb down any task to the point where anyone can do it... but at that point, it's a bubble waiting to pop.

Hard work is half of what equation?

Is the equation 'success in life as measured against everyone else,' or is the equation 'success in life as measure against yourself'? If the question is the latter--which is the only question a person should care about--then hard work is very close to 100%. This isn't an emotional claim, it's a rational and evidence based claim.

The reason that there is a rightful reverence to hard work is because working hard is the variable we can change. Not only that, it's guaranteed to produce results. If you intentionally build 180 web sites in 180 days, you will get better. You may not get better than someone more intelligent, but you can't be that person, you can only be who you are.

Not everyone can be everything, but anyone who does nothing will be nothing.

>>Hard work is half of what equation?

I'd say the full equation is to find a worthwhile goal to work hard on. While learning, the 'How to build 180 websites' goal works fine.

Hard work is fruitful only when applied in the right direction. Work 16 hrs/day in a large corporate and all you will get is some middle manager taking credit for all your work, grabbing all the milk and honey for himself and throwing some peanuts at you along the way.

If you are good, find a lofty goal, which is in your best interest and work on that.

> "If the question is the latter--which is the only question a person should care about--then hard work is very close to 100%.

'Success in life as a measure against yourself' is only a part of the consideration, though. Another part is 'Should I be doing this?'

You allude to this in your discussion but don't come out and say it, which is why 'success [sans the "in life" bit] as measured against everyone else' is an important question as well.

After n units of hard work, how much closer will I get to that someone more intelligent than I? Close enough to be competitive, or simply closer to my potential? Is my optimum potential competitive against my peers? If the effort is to be more than a hobby, the answer to that question (borne from the first of your two potential equations) is the key to deciding if the hard work is a variable we _should_ change.

In the case of that first equation/gate check, might wisdom and intelligence be the weightier reagent?

> "Another part is 'Should I be doing this?'"

Absolutely. I intentionally alluded to this but didn't enter into that discussion because I didn't want to draw from the point I was making, but it's just as valuable of a discussion to have.

> "Is my optimum potential competitive against my peers?"

I would say that your peers could only reasonably be defined as those people who have the same upper-bound of potential (optimum potential) as you. I'm not in the same optimum potential league as John Resig; both because I haven't worked as hard as he has up to this point (focused in the right areas) and because I don't have the same optimum potential (I would imagine). He and I are not peers in this sense, despite being peers across many other areas.

But if I interpreted the question of my success in terms of my self or my peers through the filter of that fact, I would do myself a great disservice. I can't live the life where he and I are peers and I can make changes in my life to compete with him. I can live in the life where I can make changes in my life that will affect my success compared to people in the same optimum potential as I am.

Besides that, despite the differences in optimum potential, I may still be able to reach the level he is at now after, say, twice as much work. In other words, his level is not unobtainable for me, I just have a lot further to run in the race.

And I, for one, welcome that challenge. Anyway, great point, thanks for making it!

Better is potentially a difficult term when you're only judging against yourself. Especially with forms of art, where our appreciation of beauty is going to be informed by social standards. When we start talking about better and worse, then we're inviting a general standard into the discussion. After which the question might go something like: To push themselves and at the end of the day just be a bad web designer (or whatever). Is this what people really want to get out of effort?

Doesn't that seem kinda sad to imagine?

Maybe that's another variable people can change: If they can identify the similarities amongst what they enjoy doing, then they can form more abstract goals that can be satisfied by multiple approaches. If they've done that, then the ability to recognise their relative strengths and weaknesses becomes more important again.

Also context is important: the hard work of the poor guy in Mozambique can make an infinitesimal part of his alter ego in US.

But it could mean the difference between life and death.

> Is the equation 'success in life as measured against everyone else,' or is the equation 'success in life as measure against yourself'? If the question is the latter--which is the only question a person should care about--then hard work is very close to 100%. This isn't an emotional claim, it's a rational and evidence based claim.

I can't agree here. Success is measured in terms of what you accomplish, and that's not solely a personal measurement. Life is not subjective.

Then again, success isn't entirely external either.

However, I can't agree with the notion that "hard work" (a conveniently vague term) is 100% of anything. If it is, that means the work is robot-work.

More likely, it's a lot of careful thought, applied by the amount of work required to make the idea come into reality, and then the missing "fourth wall" of creation, which is: is it actually useful?

I feel like we have an equal problem of thinking of intelligence and skill as immutable constants. I think of both as a muscle, the more I exercise them the better they become. While I realize that everyone starts with certain advantages if you find something you enjoy or want to do and you work hard at it, you will be successful.

I like the muscle analogy. If Mozart had languished and not applied himself, he never would have been a great composer. But not everyone can be Mozart.

One of my first jobs out of highschool was as a cad drafter for an architecture firm. As the low kid on the totem-pole, I was given the tasks that were not liked by the architects: drawing detail sheets and reproducing blueprints. -- both tasks were highly repetative.

I took both as opportunities to find a meditative cadence to the work. I actually really enjoyed the rhythm of taking plots of large 30x42 inch drawings, marrying them with a blueprint sheet and sending it through the machine. The room was rather small - so you had to pickup a sheet, flip it over, rotate it, stack them, rotate the pair and feed it to the machine. It became a beautiful meditation in movement and was really enjoyable.

With details - I had to draw so many and build so many of the same sheets - I became exceedingly proficient and soon was an exceptionally fast cad drafter...

There is a lot one can learn through mass repetition especially if you do so with the right frame of mind - and not lament the task.

I've definitely had that moment before through repetition, in a rather unlikely subject: manually doing Fourier Transform integrals.

Is this something you could teach me?

Oh my goodness -- you too?!

I spent many a summer day matching blue paper against printed sheets and the occasional Mylar! I found the same zone you're talking about.

Except ... did you ever get a paper cut and then reach over the ammonia fumes coming out the back? :-P

Ah I remember the joys sharing the basement with our printing section though a dyline printers fumes did wonders for cutting through a heavy head cold.

Only down side is they kept flooding the basement having tide marks on you computer rooms walls is not ideal :-)

I really liked your take on viewing a repetitive task as a way to improve and relax.

Another nice thing about a repetitive task is that it is perfectly predictable. You know exactly how long you should take because you've done it before and can expect very few surprises.

Much unlike any sort of difficult debugging or implementation which can be unpredictable, although enjoyable.

> It seems that while the “quantity” group was busily churning out piles of work-and learning from their mistakes — the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.

I find this story very suspicious.

Even theorists like to apply their work and prototype.

It sounds more like they were scared into inaction by the grade-weight, which is something I've seen in classes where one test determines the grade for the whole semester.

"It sounds more like they were scared into inaction by the grade-weight, which is something I've seen in classes where one test determines the grade for the whole semester."

I would love some deeper insight into this, do you have any sources? Thanks.

Other than personal observation, no, I'm afraid. I doubt there is any (greater than zero) interest in researching this topic, especially since most of us get nostalgic for any type of system if we've succeeded in it.

However, having gone through a number of competitive schools at different levels of education... the smartest kids were not always at the head of the class. There were also people of moderate to high intelligence who suffered huge test-taking anxiety, which got worse when you had a situation where one test or one project determined the semester's grade.

It's kind of like your first driver's test to get your license at sixteen. Sometimes the stress was so much that people fainted while waiting in line.

This has been my experience, too. If you looked at the makeup of the top 10 students in my high school class, you'd find it composed of about 50% raw intelligence and 50% hard work. There is absolutely no question that there were a couple handfuls of super-smart folks who graduated nowhere near the top of the class (but still in the upper quartile, generally because doing worse than that is pretty tough if you're reasonably intelligent), but the consistent effort at producing quality output by the hard workers earned them top marks. Not surprisingly to anyone, this cohort tended to perform better at university, where independent study is more critical to success, and (afaik) they're all doing great professionally. Of those top ten, the hard workers are mostly doctors now and the geniuses are mostly STEM professionals.

Of course, this is a tiny sample size and there are all kinds of biases, so take it as it is -- a personal anecdote.

I'd agree there but with a couple of caveats.

First, I went to a type of magnet school, so it was more difficult and required more initiative than most colleges.

The top tier of students were probably about 50-50 intelligence and labor, but it wasn't "hard" work per se so much as diligence. Leave no stone unturned and spend a lot of time on repetition.

On the other hand, I did know a number of highly intelligent people who were at the bottom of the class. The phrase "not engaged" comes to mind. These are 50-50 hackers and liberal arts academes at this point.

Is your disclaimer licensed under the GPL? The same disclaimer applies to my narrative here.

Completely implausible, unverifiable anecdote obviously chosen to favor a conclusion -> "WOW! How insightful."

"Hey, that doesn't match my experience." -> "Sources. Now."

There's no way the story is true because I'm sure that at least a few of the "quantity" people would have my thought and just take 50 pounds of clay and call it done.

This is the reason why a) I let myself off the hook for work that had to be rushed and isn't quite perfect when it ships, and B) why I'm not so goddamn critical of other people's work.

Most of us are works in progress, doing the best we can, iterating and making mistakes all the way through, but gradually and incrementally improving. This need to be perfect all the time is a neurosis that our society needs to lose because it results in us being perfect never.

We -- as a huge generalization -- also need to get better at asking for help. :-)

I think that your story is very interesting. Essentially, producing volume is the same as iterating on the same product over and over; only starting the iteration from scratch.

One thing I would like to point out, however, is that there exists a difference between the set of websites that can be built in a day and the set of websites which cannot. For example, websites which require back-end technologies generally fall into the latter category. The skills learned in perfecting the former are somewhat different than the skills necessary for the latter. I would encourage Jennifer to take some time after this and explore the second category to further her abilities.

I totally agree. This project is meant to be a jumping off point for learning to code. On day 180 I certainly won't be an expert at anything, but I'll have the tools I need to keep exploring.

>chacham15: For example, websites which require back-end technologies generally fall into the latter category. The skills learned in perfecting the former are somewhat different than the skills necessary for the latter.

The funny thing is you already knows unbelievable amount of backend code for a beginner. (https://news.ycombinator.com/item?id=6099489)

Did you see her initial commit?[0] It's the default Rails app. Any tech-savvy person can throw that up on github in a day if they know nothing about it. The next time she changes the app/ directory, where all the actual Ruby code goes, is two months later.[1]

Absolutely nothing she's said has given the impression she is trying to mislead.

[0]: https://github.com/jendewalt/jennifer_dewalt/tree/258e91c40f...

[1]: https://github.com/jendewalt/jennifer_dewalt/commit/c0d02c8c...

I'm taking this approach with my wood-working: http://jeffrey.io/finishing-things

Oh wow, I love that story! Thanks for sharing.

I remember listening to Ira Glass talk about how terrible he was as a storyteller when he first started, and how the only reason why he got better was because of the real basic idea of keeping at it and increasing his volume of work.

Reminds me of a quote I really liked from a Macklemore song:

"The greats weren't great because at birth they could paint. The greats were great cause they paint a lot."

Is this the Art and Fear book you're referencing? I searched Amazon and found a few.


Yep. That's the one. Here are my notes on it: http://sivers.org/book/ArtAndFear

Excellent thank you, just added to my Amazon wish list and about to read through your notes.

While I love the message from the story, I feel the need to "hack it".

If I were in the "quantity" group, I would have just made one god-awful lump of clay object weighing 100lbs, then found other more interesting things to do for the rest of the class.

If you'd rather be doing something more interesting, why sign up for the class in the first place?

Beautiful story, but when think about the details it may misleading.

If the only object or the judgment criteria of the quantity way is quantity, and without any deliberate practice (http://en.wikipedia.org/wiki/Practice_(learning_method)#Deli...) why the students finally not just only develop a way to produce high quantity product?

It's not the same way MacCready solve Henry Kremer's problem (http://www.azarask.in/blog/post/the-wrong-problem/), although looks similar.

That was a study. And I understand perfectly.

However. The typewriter factory output and productivity in the soviet union was also measured solely by weight. This did not fare so well. :-)

Thankfully this ceramics teacher didn't run an entire industry of a global superpower :-)

Two of the best screenwriting schools are USC and UCLA. The key difference between the two MFA programs (at least a few years ago) was that UCLA required you to write 4 screenplays and USC 1. The logic behind UCLA's requirement was that finishing screenplays is really hard. So many screenwriters have a pile of unfinished screenplays and some never finish any. You really need to get in the habit of finishing them. (Full disclosure: my source was my screenwriting prof who was a UCLA MFA.)

BTW, I read the same ceramics story in "The War of Art" by Steven Pressfield (which I note came out a year later). Good book.

Well, the lesson I took away is that pottery students aren't smart enough to turn in 50 lb of unformed clay if that's all it takes to get the best grade.

(And that made-up anecdotes will take you pretty far.)

I have heard similar theories for this. It's also consistent with the 10,000 hours rule. Sometimes you have to do to learn and improve. The improvement is certainly evident here.

Exactly the anecdote that I thought of when I saw this project.

It also reminds me of Johnathan Coulton's breakout period - his Thing A Week project: http://www.jonathancoulton.com/category/thing-a-week/

Incidentally, this technique works. If you want to learn a creative skill, I'd argue it's about the best way to do it.

That's an awesome story. Kinda makes me want to get crack'n on things.

Wow! that's happened with me so many times. I'll start on a project and I'll always theorize all the best features, and then best technologies to use and I end up switching so many technologies and then going on a tangential curve to learn them, and then I eventually quit the project :(

I used to have this problem (and still do to some extent) but it's not impossible to improve. Pick an idea and commit to completing it in the way that you envisage it now, even if midway through you discover a new technology or better way to do it, stick to what you originally planned. There is always a better way to do something and if you allow yourself to be distracted by a "better" way of doing something midway through, you'll find midway through the "better" thing there's another new even better thing and the cycle will repeat. The best code isn't always perfect code, the best code is code that exists. You'll learn way more from a project if you work on it start to finish, even if it could have been built better. There's always Version 2.

Aka: don't repeat the mistakes of the Duke Nukem Forever team.

As for code, the best code is that which generates value (either for the creator in terms of learning or for the creator's customers). If the code doesn't generate value, then you might as well be writing FizzBuzz implementations all day.

"The best code isn't always perfect code, the best code is code that exists."

I totally agree to this one.

aka: you can't refactor code you haven't written yet.

Ditto. A common problem for me is starting a project, then becoming scared that I'll be inadequate, and not complete it properly. This causes me to give up on the project, and I lose out on any experience I might have got. Because I've failed to complete the project, I feel even WORSE going into the next one.

It's a vicious cycle.

Consider reading a book called "The Now Habit". The author discusses fear of success/failure and the inability to finish projects, and deems that these fears are what cause us to procrastinate. Then he provides a plan/approach/framework to overcome these fears.

Thanks for the book recommendation. Ordered this on Amazon.

This was my problem all growing up. I did well on the first exam, then fizzled out every exam after. I wouldn't study out of fear that I wouldn't do as well again.

Anyway, I'll check out the book thanks again!

If you want a quick overview:

Kindle notes and highlights https://kindle.amazon.com/work/the-now-habit-procrastination...

powerpoint presentation http://hashref.com/summaries/TheNowHabit.pdf

3 part youtube video http://www.youtube.com/watch?v=63Si3Gb1WSg

I'd recommend Mindset by Carol Dweck. It discusses growth mindset vs. fixed mindset. It sounds quite pertinent for your fear of not doing as well again.

Thanks - ordered this as well. I've been on a self-help book binge. I shudder to think the ads I'll be seeing from google and amazon.

I second this book recommendation. I read it a few years ago and find myself referring back to it quite often for inspiration when I'm feeling unproductive and very procrastnaty.

i have the problem of starting a project, finishing up the "cool/interesting" aspect, and then letting it rot...


I have that problem to. I've found that the best motivator for finishing the boring parts is to have real users.

After receiving your 20th "I forgot my password" email, you're sure to build that reset-password feature.

Or you blind yourself to it and learn to just treat those tasks as one more excuse to not do the real stuff. I'm battling that at work: Many people see a flood of notifications etc. and disengage totally - if it's not causing a crisis, then clearly it does not need to be dealt with right away, and so it gets put aside if it's something boring.

I've forced myself to forgo almost all my mail filters and "consume" the raw stream of notification e-mails (thousands a day) and start each day with picking a few of the noisiest ones and addressing the root causes (and where possible doing so in a way that can be applied more broadly), but it's oh so tempting to just waste time on the superficial symptoms that are easy and quick to deal with individually, but will eat all my time if I let them.

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


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)


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.


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


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:



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);


"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?

So many hurt egos in this thread.

If you think what she's done is impossible, have you ever devoted 70/hrs a week to a personal endeavor for 6 straight months? Would you have the willpower and perseverance to stay committed and focused?

Also, these are cool sites, infused with a lot of creativity and a refined aesthetic sense, but it's not as if she's claimed to have written an OS or compiler in 115 days. Much of the javascript code is covered extensively in brief online tutorials. Maybe, given 10 hours, you couldn't ingest a tutorial and put your own spin on the concept, but thinking that nobody else could do that is a bit arrogant.

So let's see her repository (https://github.com/jendewalt/jennifer_dewalt).

This girl not only became a competent front end developer in 100 days, but looking at the Gemfile, she knows how to use capistrano, redis, capistrano, paperclip, omniauth and devise?

She knows the best practices for Rails perfectly. She not only grasped to use MVC perfectly, but also organized asset codes perfectly in like 50 days.

I forgot to mention that she knew Rails from like day 1.

Additionally, she knew better to hide sensitive information about secret tokens for maybe AWS in the config folder and other Rails environment info.

Really? Is Hacker News this gullible? If you really want to see what actual beginner struggle with for 10 hours a day, go take a look at StackOverflow. Beginners are struggling for hours to create hoverover effects and persistent footer.

In case anyone misses my other reply to this troll, her initial commit[0] was the default Rails app, which most any newbie can get up on GitHub in a single day. She didn't even touch the app/ directory, where all the Rails-specific code lives, until two months later.[1]

Please, no one believe this jerk.

[0]: https://github.com/jendewalt/jennifer_dewalt/tree/258e91c40f...

[1]: https://github.com/jendewalt/jennifer_dewalt/commit/c0d02c8c...

I'll admit it, I'm skeptical. I'm also a bit jealous that I can't seem to find 10 spare minutes a day for learning.

Some quick internet sleuthing led me to https://angel.co/grapefeed which appears to show that she's the co-founder of a social-sharing website that just happens to be written in Rails.

If that's the case, then she likely has access to the other co-founder/Rails developer. Not to take anything away from her work, but it doesn't seem quite the same to me as the "One day I woke up and decided to learn web development on my own" tone that I took away from the blog post.

As far as I can tell this is an account that was created entirely to post negative responses in this thread. How sad.

(it was created 1 hour ago and the only comments from the account are negative posts about the article: https://news.ycombinator.com/threads?id=petea)

To me it just confirms what the GP said: plenty of bruised egos in this thread.

These guys tend to come out of the woodwork when the focus of the article is of a certain gender, if you catch my drift.

With stories like this, I have found it to be the opposite. People that would usually question this, won't because they are terrified of being called sexist which is (exactly what you have done and) one of those things that hangs around you and can ruin your career very quickly.

This style of marketing is becoming very popular. The young, disadvantaged, novice, whatever does something extraordinary through sheer brilliance and dedication [1][2][3] and when their claims don't really match reality [4], nobody cares. The marketing has already succeeded. It is exactly the kind of marketing that is taylor made for social media and if we don't want to be inundated with it in the future, we need to question it every time it appears so that only the truly deserving reap its benefits. Extraordinary claims (should) require extraordinary evidence.

[1] - http://gigaom.com/2011/12/13/meet-the-internets-newest-boy-g...

[2] - http://newsfeed.time.com/2013/05/22/18-year-old-invents-unde...

[3] - http://www.dailymail.co.uk/femail/article-2335195/Meet-Madis...

[4] - http://www.businessinsider.com/the-17-year-old-yahoo-paid-30...

> we need to question it every time it appears

We really don't. You playing armchair internet detective will not stop people from getting more attention than you.

What do all of those things hurt? Nothing. There is absolutely nothing wrong with being a story on the internet for a few days. It's not being shoved in your face, you're not being made to read about it. You chose to join this thread, like you chose to look up those four examples of the thing you hate so much.

I would much rather question the people who spend their time trying to denounce others.

I completely agree. I've always wondered what the obsession about "outing" liars on the internet is about. If the person can craft an interesting enough story to keep people engaged for a short period of time, who cares if its "true"? This is the internet, the value is derived from what is communicated, not what actually happened on the other side of the terminal. Now when someone is asking for donations or whatnot, skepticism is warranted. But this? Just take it for what it is; enjoy it or move along.

Maybe you two enjoy consuming bullshit but don't be surprised that other people don't.

The benefit I get out of these stories is gaining a new perspective, motivation, insight etc. 99% of the time its inconsequential whether the story is bullshit or not. Spending mental energy trying to determine veracity is utterly useless for everyone involved. You win no points for determining its fake and yet you miss an opportunity for self-reflection and growth.

Is she selling something that I'm not aware of?

Herself, as most of us are. This kind of thing will make it a lot easier to get media attention for her projects like Grapefeed [1][2].

[1] - http://grapefeed.com

[2] - https://angel.co/grapefeed

I created a new account to avoid precisely people like you psychologizing libelously about who I am. I feel reassured that it was a good idea to create a new account.

It's interesting that you reach so quickly for the adjective "libellous" given the tenor of your comments and the insinuations therein.

And, unlike the subject of the post, you don't even have the courage to stick your identity to your work.

>you don't even have the courage to stick your identity to your work.

Neither do you -- as far as I can tell by viewing your profile and googling on your user name.

Translation: "I know what I'm saying is coming from a place of extreme bitterness, but I don't want search results for my name showing these comments to my potential employers."

If you're going out of your way to create a new account to voice your opinion, chances are your opinion is shit.

> "If you're going out of your way to create a new account to voice your opinion, chances are your opinion is shit."

That's a bit of a stretch, isn't it? Some opinions are more unpopular than others, and sometimes recipients of said opinion aren't as restrained as one would hope when they encounter an opinion they don't like.

Attacking the person instead of his opinion is worse.

Not gullible, just giving her the benefit of the doubt. It could turn out that she had some guidance, or has worked with people (though not as a programmer) and is smart + good enough memory to osmos some good practices, or took some class a long time ago that stuck better than she thought. Perhaps she had a power up period of non committed grazing and chose day 1 as the for real now point. Or some combination of above. To be honest I don't care. She's done something few can: keeping to a goal when she could easily have slacked on sites like hacker news, completing something not at all trivial, doing it well and sharing it. How long she's been programming wouldn't move my opinion in any direction.

And even if there is more to the story, I still accept her day 1 as valid. My least generous interpretation is she came with at most a scattered modicum of knowledge, gleaned from informal trifling and lacked confidence enough so, that saying she is new is a rounding error compared to how good she will get.

> It could turn out that she had some guidance

Indeed. Not mentioning anyone doesn't mean she's working alone.

It's possible that she uses some help. It's also possible that she works on her own. It's also possible that she's a fictional character (admittedly there isn't enough data proving otherwise).

The idea itself is interesting regardless of the above. First thing that occurred to me is why don't I go for it myself. I'm still pondering that.

> It's also possible that she's a fictional character (admittedly there isn't enough data proving otherwise).

She does have a Twitter that's been active for a few years, and doesn't give an indication that she has prior programming experience. This would be quite the long con.

I've had a Twitter account for over a year and posted absolutely nothing to it.

I wouldn't say "con", but I do find it implausible someone went from nothing to everything and was making full websites on day 1. I mean I've cranked out some personal web-apps over a weekend, but I usually spend the next week or so "fixing" them, which for me is how I learn - I have the framework of what I want to do, and then I figure out how to add more and more features until it's the streamlined experience I want it to be.

But a ton of that time is just spending hours working out why things are the way they are.

I've had a twitter account since May of 2008 and have less than twenty tweets. It just sits there, aging.

Cry every time

After 1000 hours with Google, all of those things are completely plausible. Moreso if you have a mentor to turn to. In fact, I would think that if you haven't reached that level of basic competence after 1000 hours, you're probably a pretty slow learner, or just not getting programming.

I was maybe 40-80 hours into finally putting serious effort into programming when I started playing with hand-crafted ELF binaries and trying to beat GCC at optimizing simple routines (never had any real trouble with pointers again after that; assembly makes it all make sense). Hoverover effects are not the sort of thing I would have been struggling with.

Incidentally, she's probably spent many more hours coding in the last six months than I have in the past year, and it's nominally my full-time job. It's amazing how little actual code you can end up writing as a professional software engineer.

So she did some hand waving. So what? It's not a lie to say that she's teaching herself how to code. And at least she's doing something with her time.

that being said her little pages are great to inspire a budding web programmer.

You betcha. She's gonna get book deals and invitations to talk at conferences in no time with this internet theatrical.

She says she works in a shared developer space. She's also co-founding a site with an experienced developer. It's quite possible that one of these developers helped set up the back end.

How would this detract from the front end work that she's done and put on display? It's quite clear, at least to me, that her effort has been focused on the content of the 180 pages, rather than the back end work, which to my knowledge, she hasn't taken credit for.

And really? Is your ego that fragile that you're desperately struggling to discredit a random person on the Internet?

The solid-block-of-learning strategy is way less impressive to me than the person who works a 40ish hour a week job then comes home and does many more hours of their own project for moths or years. The want to zone out is strong and after a day of crappy and mind numbing work, beating the laziness is harder I think.

> The solid-block-of-learning strategy is way less impressive to me than the person who works a 40ish hour a week job then comes home and does many more hours of their own project for moths or years.

You might also say the guy who uses a lawnmower is way less impressive than the guy who cuts his grass with a nail clipper. But I don't want to be the guy with the nail clipper.

Believe me, I know the feeling of wanting to zone out after a long day of work, a long commute, etc. I let it sideline my ambition for a decade. She found a way around it. I certainly wouldn't discredit her for that.

I had no intention to discredit! Reading what I wrote it sounds like I did, but that's the last thing I meant. I was just thinking about the things I have learnt and the rare times I have had a chunk to time to learn something (all when I was younger and family-less) which are less impressive to me than the ones I have managed while sleep deprived and working etc.

If I could ask, how did you find your own way around that feeling?

I know I'm not the GP, but might be able to be some use here. Context: always wanted to do a maths PhD, but ended up stuck running a small business (50-70 hrs/wk) for a number of years. Managed to keep studying through this and have just landed a PhD. Suggestions:

1. You'll be working while you're tired. So your work won't be as good, you won't make optimal decisions 100% of the time, sometimes you will just underperform relative to you at your best. Accept this - your work is still better than all the work you weren't doing before. Slow progress is always better than no progress. Key here is creating space that's just for work. I have a table which is just for studying, and a logon that's only for studying, which actually really helps.

2. Pick a course of study and stick to it. There's a tradeoff here - for a given area of study, you want to choose the best course for you but don't want to waste time trying several different things (likewise languages, frameworks, etc). Pick 2-3 and whittle down quickly (I choose 2-3 MOOCs or textbooks, then whittle down using the first chapter over a week or two). There may be a slightly better course out there you don't know about, but it really won't make a difference.

3. If your intention is to become a professional, pick a specialisation quickly (even almost randomly if you have to). No-one would give me the time of day when I was just generically interested in 'maths' but as soon as I picked a sub-area and started to learn about it, people took me seriously. (Obvious caveats apply about over-specialisation)

4. Start talking to other people. You really need to have done 2 & 3, otherwise you won't have any progress to show, and nothing to talk about, but once you've done enough to talk sensibly to others (which might be less than you think) then you'll be more engaged and less likely to drop out/quit.

5. Accept your limitations. Sometimes work/life will take over - sometimes you can make sacrifices and continue to get work done, sometimes doing this would be too painful and you'll need to take a break to get things in order. The thing here is just to show up.

If I had to choose one sentence from all of this to give as advice, it'd be the last one. Just show up.

> If you think what she's done is impossible, have you ever devoted 70/hrs a week to a personal endeavor for 6 straight months? Would you have the willpower and perseverance to stay committed and focused?

I did. In secondary/high school. God, I miss those times. I've also seen friends pulling stunts like these off, gaininig significant increase of skills over short periods of time [0]. I wish I had even 10% amount of that willpower now, but unless it's something I'm really excited about, it's not happening (probably related to some personal issues).

I also think what she's doing is a more structured (and arguably better) version of what most self-taught programmers I know (myself included) did around high school - have a project idea that you grow, and keep applying what you learn to it every day. It's fun, it helps to get intimate with what you're learning, and it also facilitates fast progress. That's why I think exercises in programming books are a good idea.

[0] - I had a friend who went from "I wonder what this instruction does" to a quite competent C++ programmer and at the same time from total newbie to kicking my seasoned arse in StarCraft over a single summer. Oh, and he works in Google now. Focus + time works wonders.

I suppose the hardest part of doing something like this, at least for me, would be coming up with a list of ideas of exactly what to create - not just coming up with 180 things, but 180 things that I can reasonably expect to accomplish in one day. Did you come up with that list beforehand, or do you decide today what to do tomorrow, or something in between? Some other random questions that come to mind - What's your daily schedule like during this period? How many hours do you typically spend on a single project? Are you also working during this period, or did you save up some money beforehand?

Before I started the project I freaked out and wrote down a list of every idea I could think of. Sometimes I feel like I'm going to run out of ideas but I usually get inspired by what I've been working on.

I spend about 10 hours a day working on the project which doesn't leave time for much else. Most of that time is spent coding the day's website and I spend about an hour at the end of the day writing the blog post. Monday's start with me writing a bigger post about my thoughts from the previous week.

I'm extremely impressed by how far you've gotten in this. I've seen a lot of these "create something every day" quests but they're usually in the first few days when posted.

10 hours a day spent on this seems like a huge commitment to me. I clicked the link to your blog but didn't see anything more to the motivations of this project. Have you posted any more details on what made you choose to devote yourself to this non-profit full time endeavor?

I had been thinking about how people communicate with each other on the internet and I got really interested in how websites facilitate that communication. I figured learning how to code would be a good way to see how those websites work and maybe even get to help build them myself.

I wrote a little about this here - http://blog.jenniferdewalt.com/post/53231496490/week-11-lets...


My girlfriend wants to learn about coding as well. She's in the East coast and I'm on the West coast. I want to help her, but I am not sure how. Did you have any programmer mentor? If so, what kind of role have they played?

This is an incredible effort and dedication. Great job and keep it up.

Yeah, I feel like on some days I have no ideas and on others I can just churn out a whole bunch of them. Most of them are crap but as long as the average is >1/day then all's good.

Do you find yourself interacting much with people in the co-working space? I don't have much experience with work (period) so I don't really know what the atmosphere's like.

This is the exact problem I faced while learning, that lead me to build www.codetuts.co, which essentially provides you with these projects for you to build every week and guides you through the process of building them with detailed tutorials.

Another great problem is the frustration you face while trying to build something new, but you just cant make it work because you've built nothing like it before.

Yeah as awesome as this looks, it also feels like a full time commitment is needed.

From her Facebook, September 2009: "If you don't know already, I've created an iPhone app! I've been working really hard on this and have had lots of fun taking pictures of myself and my friends. Oh, what it does is gives everyone in the picture a HOT or COLD rating. The app is called ruHOT and is available for download for the iPhone and Android phones. Check it out!"

So yeah, highly doubt this is truly her first rodeo. Cool project(s) nonetheless and impressive dedication.

Interesting sleuthing. Maybe it's just exceptionally well targeted self-advertising. I know I'll get creamed by playing the gender card, but if this were a guy, would we be so coy to call them out on the fact that 'this ain't your first time'.

I think if anything this kind of misinformation regarding 'the possible output for a beginner' is actually discouraging to beginning developers. I do think this experiment it self-serving.

I have been doing web for around 10 years and it would be no cakewalk (albeit not impossible, if I had the time) to come up with a new novel idea every day for 180 days, and certainly as a beginner this kind of output is the most improbable thing I have ever seen (I have taught a few smart people how to get started and it takes a long time).

So, do we play along and misinform all the other true beginners or do we call out this Red Herring?

If we want more women to be welcome in tech they have to be held to the same kind of standards (honesty and ability). We can't let one individual get away with this kind of dishonesty because of gender.

And if you don't think this kind of manipulation exists, you should go read Reddit sometime (it's full of stuff like this, you can turn a picture of a random puppy into massive attention by saying 'look at who I adopted from an abusive home! I will love him for ever!').

Think about it people!

EDIT: The projects Jen has done are cool and interesting, no doubt. And the 'just f'ing do it' idea is even better. But can't possibly be programming beginner.

EDIT 2: I probably shouldn't be such a bastard, but anyway. Good job. Just be honest where you are coming from and you'll get deeper respect, I think is my point.

I created a game in Actionscript 2.0 back in 2009.

I started to program in around November of 2011.

Being able to cobble together an app or what-have-you is very different from programming, I think. I would not call what I did back then programming.

I even wrote a couple of follow-up games which used a tile-based map system and pathfinding but didn't store nodes on the map as variables - the game calculated the location of the nodes each time they were to be used. That's hideous.

I'd also point out that the vastness of the internet's resources should not be underestimated. I could create something awesome in 10 hours using Codecademy as a reference and generic tutorials I found using Google.

The problem for me would be finding 10 hours to do this in.

I do not think that this is a deliberate attempt to deceive as much as it is a sense the person feels that the person is 'not a proper programmer'. Hell, if I created a similar project now, after completing coursera/proglang and coursera/algorithm-design-and-analysis and working with web design for about a year and a half, I would still call it "teaching myself to code", because there is so much to learn I'm barely dipping my toe in the water.

Wow, really cool concept and implementation. I have a lot of respect for people who can put together things like this quickly.

Interesting how that is implemented. Didn't quite get from viewing page source. I mean, where is js?

Her site is on github. Most of the song machine source appears to be at


at some point, she learned about minification and http requests and concatenated all her scripts into one "application" script.

It looks like the site is built with Ruby on Rails.

Rails has a feature called 'The Asset Pipeline'[1] which handles concatenation, minification, and compression

[1] http://guides.rubyonrails.org/asset_pipeline.html

I can appreciate the reasons for doing so, but as someone interested in reading her code for how she did it, it might be nicer to unbundle and not minify them.

Then again, thanks for the point about her Github repo. It's probably clearer to just go read that. :)

This kind of dedication is inspiring.

From http://blog.jenniferdewalt.com/post/51616616313/day-58-explo... :

"Tomorrow I head to Pennsylvania to host a bridal shower and bachelorette weekend for my sister. Between the pre-wedding festivities and visiting with family, I’m going to be pretty limited on time for building websites. But, the show must go on and I am excited to see what kind of goodness I can create under pressure."

Congratulations Jennifer.

These comments are infuriating, but not unexpected. So many people who have likely wasted their last 115 days attempting to find every fault with someone who clearly hasn't.

OP: Excellent work, and keep it up. I hope you take the criticisms and disbelief for what they truly are: incontrovertible evidence that you're doing something very right.

If I were Jennifer I'd be flattered by the comments. It must feel great to have produced so much quality work that HN naysayers tell you what you did is impossible after you've already done it.

This, when I used to make Halo maps I would often be accused of modding the game to make them. I always took this as a compliment.

This is awesome. Reminds me of the girl who learned to dance in one year by recording herself every day. Also reminds me of Seth Godin who recommends starting the day by producing rather than consuming and follows the practice by writing a new blog post every day, without fail.

Consistency is so hugely important. Quality is born from quantity.

> Quality is born from quantity

Could be. But Seth Godin is hardly the living proof. In fact, I've stopped reading his blog long time ago precisely because of the sheer number of "I need to write about something today" type of posts. I much prefer when people write when they have something really meaningful to say. Which is what Paul Graham usually does, for example. I guess that's a case for "quality breeds quality".

A blogger I read, Tynan ( http://tynan.com/ ), writes a blog post every day, however he posts only the best ones, in order to maximize quality (i.e. both from being selective and from the practice of writing).

"Start the day by producing instead of consuming." Sounds wonderful. I'm going to try and live by that. Thanks for this :)

Good luck. My longest streak doing this was 6 days I think.

but i love breakfast.

Then cook it before you eat it.


But don't "consume" any energy cooking it?

I'm going to ignore all the malicious comments about how fraudulent this is. This is an amazing achievement, and it reminds me of a much better way of improving your skills.

Last time I wanted to build a ray-tracer, I starting using the PBR book, and then started learning about Fourier series and transforms, about signals etc. This of depth-first aquisition of knowledge is not very adequate for the average human mind, whose curiosity and motivation are much better served by achieving many short and tangible results, a so-called feedback loop.

Seeing Jennifer and her progress, I'm determined to start a similar project: 1 demo (not necessarily 4k/64k) coded in asm/GLSL per week. That's after I actually finish writing my hobby OS, which is being done in the same DFS fashion (started reading Tanenbaum's book on Minix, it has plenty of references).

This is great and all, but I do have to call BS on no previous coding experience. Perhaps she had plenty of HTML experience and wouldn't regard that as coding experience. If you look at her early examples, even on something like day 3, you find the following in the source:

    * Inclusion of a CSS reset stylesheet
    * Inclusion of jQuery 1.9.1
    * Usage of HTML5 footer tag
    * Inclusion of the HTML5 shiv JS
If this wasn't boilerplate HTML being used, I have no idea where a beginner would know these three things on day 3. Perhaps just stumbling upon the right project?

Also noteworthy is the inclusion of an external JS file for loading Google Analytics. Most people have no idea what this is or how to set it up

This story indeed is very inspiring. I'm a business major turned front-end designer. I worked as a financial analyst for a semi-conductor company for two years and realized I want a career that fosters my creative side. Working with Excel, though I got very good at it :P, all day long made my day very dull and monotonous. I got my husband to teach me how to code (he's a CS major, working as a product manager for a SF company). Now I am fairly proficient in Photoshop, Illustrator, CSS, HTML, and Javascript. Then I made a Python program which analyzes the proper excess inventory to keep for the semiconductor company I worked for, which got me a lot of recognition (the program was prob elementary level and messy but got a credit for being a financial analyst that can code). I quit my day job and I'm working on my startup, for which I'm doing all the front end coding and some of back-end coding as well. Also relocating to SF to pursue this new found passion. I wish the best of luck to Jennifer and other people like her.

I take my hat off by personal challenge and the technical side of the project.

But I put more kudos on "publishing it".

I'm a self-taught which now can say I'm more than a decade in the industry, but I think I could never publish my "learning" projects because maybe I'm ashamed of their quality.

I think what you have do is nice, and more important is well presented for others to see. So you maybe encouraging others to do the same.

That is the spirit. Great.

Wow, this is really inspiring. I see that she's hosting them all on her personal domain, but I have a question, if anyone has an answer. What's the easiest/most cost-effective way to host a large number of sites on different domains?

Learn how to use a VPS? Static pages with NearlyFreeSpeech? I've got a zillion ideas (and after seeing this, will be building them soon) but they need to be on separate domains. Paying $5/month or whatever for each is obviously not optimal.

If you're just building static website (HTML/CSS/JavaScript), I highly recommend just using S3:


Quick guide:

- Create a bucket for each website, named after the domain (e.g. "myproject.mysite.com")

- Turn on static website hosting for the bucket (through the AWS Console)

- Go to your DNS provider and create a "CNAME" record pointing "myproject.mysite.com" to "myproject.mysite.com.s3-website-us-west-1.amazonaws.com" (The AWS Console will give you the exact domain to use here)

- For super-easy deployment, use s3cmd's sync utility (http://s3tools.org/s3cmd-sync) to upload all changed files in your project:

    $ s3cmd -v sync ./ s3://myproject.mysite.com/ --acl-public

s3? ... but couldn''t you just host a static site on github for free? whats the difference between the two?

S3 isn't free, but is slightly easier to start with IMO. Besides that, no difference.

You can, but then you need to stay within the limitations of GitHub pages:

- Needs to be versioned with git to be deployed

- Space limitation (I assume, not sure what it is)

- Deploying new content to S3 is a lot faster - github pages has some sort of build process with a substantial delay

Get a VPS and learn how to use either Nginx and some of its configurable options, or Apache's "mass virtual hosting" mode http://httpd.apache.org/docs/2.2/vhosts/mass.html .

TLDR is "create a separate directory for each site with the directory being called the URL of the site" e.g. /var/htdocs/www.domain1.com has the web pages for http://www.domain1.com/ .

If you're at all familiar with the command line / Linux, then VPS could be an easy way to go if you don't expect a lot of traffic. Nginx is easy to configure for this kind of thing: http://stackoverflow.com/a/11778085/1301376

The minor downside is that you'll be responsible for keeping your server up to date, but with a bit of upfront work you can mostly automate it.

No one can give you an honest answer because we do not know what type of resources all of your ideas will consume.

If you are really interested in learning, pick up a VPS. Running one is as easy as you WANT it to be. Configuring and managing your VPS optimally is dependent on your projects and your goals. It can get complex pretty fast, especially when you don't know what you are doing. After studying about them in my spare time I have learned how severely insecure most people allow themselves to be. Fair warning to you!

Leverage Apache with vhosts if you're dealing with dynamic websites, and if the sites are all static it might be even easier to host in a bunch of S3 buckets.

Gandi simplehosting is hard to beat if you're hosting a lot of static pages from different domains. $30/year if you've already got domains registered with them. I've used it for a couple of things, and for the cost/realiability/simplicity when using gandi domains (which are granted a bit expensive) Ive been very happy with it.

I would definitely recommend getting a VPS, learning how to manage one from the command line will be a fun learning experience in and of itself—and will make you a stronger developer in the process. I would recommend Linode. They have an excellent knowledgebase with guides and tutorials to help you get started.

You'd have to register each domain. For hosting, you could try to find a free plan, like Heroku, and point the domain there. Or you could buy a VPS or dedicated server. I had a Windows dedicated server once for projects like this, but it was just too expensive to keep.

Could they all reside on subdomains or are you saying you don't want to pay $5 a month for hosting for each?

You can buy a large number of domains but don't want to spend $5/month for them?

Some domains are free. Why limit yourself to second-level domains?

In a similar vein, here's a thread of a complete rookie starting from scratch who turned into a fantastic artist by drawing a sketch every day : http://www.conceptart.org/forums/showthread.php?t=870

I guess this works for learning programming too.

I've always loved that thread because there's such a huge history of progress. It'd be interesting to see the OP come back in a year to implement one of these exercises and compare the quality of the code from where she started.

I looked through your comment history to see if you already answered and couldn't find it. What happened when you got stuck? I'd suspect there were points where you couldn't figure something out; it tends to happen when you become frustrated and you have to take a break. You mentioned that you had no previous programming experience. How much time did you spend learning before you created the first app on day 1?

I ask because this goes against the pattern I've observed in most students. I was involved in starting Bloc, which is an online programming bootcamp. I think the #1 value proposition is having a person there to help when you get unstuck. It's fascinating to see you overcome the learning curve on your own which affects most people trying to learn.

Just so I can fully understand: did you have any human interaction or assistance during this entire time? That to me is the most impressive part of this. A lot of us had TAs, professors, group projects where we worked closely with others. I don't know a single person in my own network who has learned to program on their own without any human help.

Hope it doesn't come across as if I'm belittling what you've done or seem skeptical, this is really impressive!

This is amazing. It's inspiring. I like the rules you set for yourself - a blog post to accompany every website, and releasing the code on github.

It's important that people know the WWW is not out of their reach, and that they can create stuff. This post, and Neocities, strongly feed that "democratisation" of the Internet.

Next it might be a nice idea to do 4 websites, one a month, but polish them so they're standards compliant, as accessible as possible, etc.

In the next couple of weeks you might want to look at secure authentication and authorized resource access, scaling, sessions, cross-platform issues, internationalization, adaptive design, etc.

Also might want to revisit some of your existing websites to get some exposure to refactoring, bug fixing, prioritizing feature requests, test based development, performance profiling, etc.

Bravo!! I really liked this: "I think the best way to learn is to solve problems that you actually have. This is the primary reason I decided not to follow a course or textbook. By following my own path, I can tackle new concepts and problems in the most logical order possible, which is precisely when I have them. When I have questions, I look them up on Stack Overflow. If I need to make a big jump, like starting a new language or platform, I’ll bootstrap off of a textbook only until I get off the ground."

I've started many times to do projects or follow books or lectures, and it's very hard to stay disciplined. However, once you start on your problem, I agree that it's probably a good idea to look at some lectures/books/blogs to take a look at what's available in terms of technologies and practices to save you time and money.

Did you pre-plan the ideas for the websites?

When doing art, I used to set goals like "do 30 drawings in a month." However, I've found that I just draw the same stuff over and over again if I leave it at that. I have to actually make a theme (draw 30 plants) and even get a detailed list (draw a jade plant, a hydrangea, etc) in order to actually make any progress.

I am curious if you did any planning like this regarding the choice of sites you made?

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