Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
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.


[deleted]


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?

Awesome!!


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.

http://www.amazon.co.uk/Art-Fear-Observations-Artmaking-eboo...


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

http://jeffrey.io/wall-of-shame


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

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?


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


Jennifer,

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

https://github.com/jendewalt/jennifer_dewalt/blob/master/app...


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.


genius


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:

http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosti...

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?


To be honest, as soon as I read the title I thought "but if you force yourself to deliver something new every day you want have enough time to actually learn new stuff in between", and you proved me wrong. Congratulations!


An additional anecdote comes from Jerry Seinfeld, (comedian). He says that his goal when he got into comedy (and still to this day) is to write jokes every day. Create a chain of joke writing and keep track of it in a physical way (in his example, a calendar that he marks off with an X every time he sits down to write). You create momentum that you don't want to break, and even though you might not be writing good jokes (good code, etc...) every day, there is still improvement going on. [1]

All anecdote, but it seems to point to the fact that the value of iteration on DOING is more valuable than iteration on PLANNING. (i.e. plan a little bit, and do a lot).

[1] http://www.writersstore.com/dont-break-the-chain-jerry-seinf...


Basically, work a lot. Make sure there's always a chunk of work that's new and challenging, a form of deliberate practice. Also make sure there's a chunk of work that's reinforcing what you already know until it becomes second nature. Rinse and repeat. Kaizen.


Really great idea Jennifer! This is the kind of initiative and creativity that will surely land you multiple job opportunities.

It reminds me of the steps which I took to transition into working on software professionally full time.

I came to programming relatively late in life when I was 26 and found out that my wife was expecting a baby.

The sudden change facing my wife and I made me take a hard look at my skill set to decide how quickly I could provide for us.

I decided that my interest in setting up wordpress installs as well as tinkering with Photoshop/Illustrator was the surest, safest, and quickest path to a successful career and decided then and there that within 6 months I would have a job as a junior web developer.

To help accelerate this I signed up at my local community college for courses related to getting a web design certificate. Ultimately I took 2 semesters (1 of which was a compressed summer semester) of classes including CS-1, Photoshop, Illustrator, Flash, InDesign, HTML/CSS, PHP/MySQL.

Soon I began to get the feeling that school was moving too slowly. I had joined the W3C HTML5 Working Group and was also participating in the WHATWG and started to realize that I was learning much more by hacking on code in the evenings than I was in class.

During this time I started to create a portfolio showcasing new HTML5 APIs as they would become available across different browsers. Mostly I did this out of my own passion for web standards and wanting to understand the most cutting edge APIs as soon as they dropped. However this portfolio soon became incredibly valuable with regards to landing a job.

During the second semester I got the chance to interview for a local android dev shop (this is in Santa Cruz, CA). I got the job but didn't find Java to be a good fit for my skills at the time and after a couple of months transitioned to another local dev shop.

This company was a rails shop building an app for Walmart's internal network. I got the job based on my HTML5 knowledge and soon found myself learning rails.

Around this time I made the decision to quit going to school and to focus full time on my job. I was at this job for about a year until the company unfortunately went out of business.

Since I left that job I've spent a year and a half at trulia.com where I was on the mobile team building m.trulia.com, Trulia's native windows 8 app, and the suite of webservices powering Trulia's native iOS/Android/Windows apps. Currently I'm at cardfree.com where I'm working with ruby on rails.

The reason I posted this tale is to encourage you to continue what you're doing! When I look back at my short but exciting career I notice that though I feel fortunate to have gotten a couple of semesters of training at a junior college it was mostly always the projects and initiatives which I undertook in my personal and spare time which ended up being the most valuable for me.

There is so much opportunity and demand in the consumer web and electronics space right now that showing this initiative and creating such a strong portfolio will surely land you multiple job offers if that's what you are looking for.

Either way excellent work and I wish you the best of luck going forward!


> I got the chance to interview for a local android dev shop (this is in Santa Cruz, CA) > There is so much opportunity and demand in the consumer web and electronics space right now

Very true - but your location is a huge benefit to someone who's in say, the middle of Iowa or Kentucky.


[edit spelling and formatting]

Yes there's no denying that there's much more opportunity in the San Francisco Bay Area than most anywhere else in the nation but that doesn't change how much opportuniy is also available everywhere else currently. And as telecommuting gets easier opportunity is more afforded to everyone with a web connection.

Each morning I tell myself 'There is more opportunity today than there was yesterday' and this is why:

Every day there are over 1 million Android devices activated. There are also over 1 million iOS devices activated. Each of these devices is activated by people who are potentially new to the digital experience. They are going to need new apps to get the maximum value out of their device. They are actively looking for new experiences and services.

Open source hardware like the Arduino as well as wearable computers like Google Glass are beginning to point to a future of smart everything. The Arduino hall of the Maker Fair makes me feel like what it must have been like to be at the Homebrew Computer Club. You just get a sense that once again Moore's Law has made a host of new things possible.

Crowdsourcing sites like KickStarter and IndieGogo allow markets to form, signal purchasing intent, and even shell out the cash for projects before the entrepreneur has even begun production.

Incubators like YCombinator are in place to find and cultivate the best and brightest entreprenuers as well as being there to add rocket fuel to the spacecraft and participate in the countdown to launch.

Even in small towns every company that is serious needs a web and/or mobile presence. They need someone to design it and create the assets. They need someonde to build and maintain it. They need someone to scale it out and add new features. They need someone to keep it secure.

The gamut of opportunity in the consumer mobile, web, and electronics space is so wide and varied that it's only limited by your imagination, passion, and focus.


Are you still based in Santa Cruz? I'm also starting up programming slightly later on while going to a community college (possibly the same one that you went to??), as I first started tinkering with some PHP around a year ago (my age now is 22), then tried a bit of RoR but they ended up being false starts.

I've in the last few months started back up with Python (primarily Flask) and JavaScript (mainly AngularJS), and deployed a couple toy web apps in the last month.

I don't know too many people in town, so I'm wondering is Santa Cruz still a viable place to get into the professional world? Might you have any specific advice for getting started here?

Thanks!


Not OP, but in SC - email: einar@lcrnd.com


But, but, your name sound so Norwegian..??


[edit spelling and formatting]

I'm no longer based in Santa Cruz. When I got the job at Trulia my family and I moved to the Bay Area. I'm currently living in Castro Valley and taking BART in and out of the financial district each day.

The junior college I attended is Cabrillo College[1]. They have a really great Digital Media Department[2] with many passionate and knowledgable teachers and students.

In particular Cabrillo has an excellent web design teacher named John Govsky[3]. I can honestly say that John's passion for web development was genuine and contagious. He is the first person that I remember showing me that software development is fun, cool, and exciting as well as serious business. It was in his classes that my confidence began to grow as I realized that I really understood this stuff.

For networking in Santa Cruz I did 2 things. The first is that I started a meetup called 'Startup Santa Cruz' and had bi-monthly meetings at my house in my personal office and invited people from my web design classes. The meetings were never huge, perhaps 5 people at the most but I found my first job via a 'Startup Santa Cruz' event.

A fellow student named Brook attended one of the first meetings. It turned out that Brook is the owner of a local Santa Cruz Web Design firm called Brooktown Designs[4]. She was looking for a web developer and my obvious passion for HTML/CSS as well as my drive to organize the 'Startup Santa Cruz' meetup got me the position at Brooktown Designs. I was only there very briefly before I transitioned to the Android dev shop that I mentioned in my original comment.

The second thing that I did to network is that I started hanging out at NextSpace [5] which is a really cool co-working space located in downtown Santa Cruz. They have regular tech talks so I signed up to give a talk on (still new at the time) HTML5.

A couple of dozen people showed up to the talk and I ended up leaving with several job leads and connections with local web/app developers as well as a couple of designers.

Regarding Ruby, Python, or PHP I would just recommend going with whatever feels the most natural to you, which according to your comment seems to be Python (Flask). I prefer Ruby on Rails because I think it has the greatest abstractions but the main thing is to feel comfortable and confident with the tools that you choose.

My email is cgcardona [at] gmail. Feel free to drop me an email so that we can make the connect. I'll pass along any leads that I can think of.

Best of luck!

:-]

[1] http://www.cabrillo.edu/

[2] http://www.cabrillo.edu/academics/digitalmedia/index.shtml

[3] http://teacherjohn.com/

[4] http://brooktown.com/

[5] http://nextspace.us/nextspace-santa-cruz/


I agree with the sentiment: Create a lot of stuff and code with passion and eventually one will become good at it.

But at the same time I have to say this works best for web development and not big software projects. Having programmed like you for some years I took a MSc. in Computer Science, and realized there were big gaps in my knowledge. I felt I could handle writing every program, but in retrospect there was just so much I didn't know. And this will not be learned just by coding a lot but will help with the coding.


Finally someone posting a challenge they're undertaking when they have at least accomplished already some of it. I hate seeing people announce that they are about to do something. This is much much better.


I am really impressed this gal sure has a promising future as a software developer. I must also say this made me a little sad, she has done in days what I haven't been able to do in years.


You are super awesome. I have been programming for years and I still don't know how to do some of the stuff you've done for your websites. I'm sure I could easily learn how to, but then it's easy for me because I have the advantage of years of experience. To be able to get to where you are within 3 months is astounding to me and that tells me something about the validity of your approach, so I'm gonna shamelessly rip you off the next time I need to learn a new skill.

Somebody hire this person!


I have mixed emotions, not about the author, but the implications of this thread. It is great that she shows such dedication to the craft. But has dedication to a craft really become so rare that it is worthy of 900 plus points on hacker news? I know countless software engineers who work their tails off every waking hour, myself included. Do we all deserve hacker news posts? Or should we elevate our expectations?


I don't think there's any real value in HN points, so you're basically asking if it's worthy of something worthless. It's just an indicator of interest by the HN community, not a gift of any worth. That being said, I'm sure a decent chunk of the 900 votes were from software devs, many of whom are probably ones that work their tails off. It's possible there is something more intriguing than the dedication alone. One thing I find interesting is the head-first/all-in nature of the project.


This is inspiring and I'm not sure why. It's not technically impressive, there's far more impressive tutorials and snippets a single Google search away. It's something about the persistence and a desire to learn and improve. It's about the beginner's mind and artistic whimsy. I get to see someone's thought process expressed through a hundred tiny websites.


Brilliant. Good for you! Suggestion: add some contact information in your profile


Thanks for the tip! I added my email address.


You're welcome - let us know what happens after this!


This is awesome. When I read the title I was expecting a bunch of exercises in layout with different slick UIs and such. I was very surprised by how creative each of these were. They're very fun to go through. And in the end, when it comes to getting a job, this kind of stuff looks way better than "went to school, got this degree".


Jennifer, you mentioned you weren't following any kind of course - how did you decide what to build on the next day?


Very impressive. It reminds one that complaining about "too much work" is often just a poor excuse for petrifying in a niche of self-satisfaction and comfort. I can't read all of this, browse what you've accomplished in so little time, and doubt the feeling great things are destined for you. Congrats!


I'm a software engineer. I love this style of learning.

However, if the idea of building 180 different websites in 180 days sounds so unappealing to me I actually winced when I read the title, should I find another career? (real question)

I'd rather do the opposite thing, sell my laptop and do 180 drawings or sculptures in 180 days.


Jennifer, I've skimmed through a handful of your projects and they are all very creative, fun and thoughtful. I'd be excited to see what you could do with d3.js (http://d3js.org/). Check it out if you haven't already!


Congratulations! I'm impressed how you just got started rather than waiting for "the perfect moment." Your persistence and progress are inspiring. Also, your work doubles as a collection of engaging content ideas for teaching beginning programming :) Thank you!


As someone else mentioned, I think the hardest part is coming up with idea.

Most of these are really cool! Awesome job.


Thanks so much for posting this. This is the most inspiring "show HN" I've seen here.


I've thought of doing this before. Make one attempt every day, and see it through. Not just for websites but for other skills like songwriting, drawing, short-story writing, and also other types of programming. Needless to say I never went through with it, but it's good to see someone who has.

Taking songwriting as an example, what's interesting to me is that basically anyone can try it. Sit down with a note pad, think of a tune, and make a verse-chorus-verse-chorus song (chords and riffs are optional extras). No doubt people like Paul McCartney do try this every day, but then there's the vast majority of people who never make the attempt once in their life, despite their being no real barriers.


Wow, a huge congratulations to you! I'm just starting my journey to become a programmer and am dedicating the same amount of time. You're dedication, patience and work ethic really inspire me! Awesome job on all of your projects.


I was leaving the film industry and unemployed for a year. I only did about 4-5 hours a day (had $$ saved) and got far enough to get a great job, but wow. I like that you're not just BS-ing 180 days, but actually challenging yourself.


Just made my middle-school kids' summer break more interesting. If you take all this js knowledge and add android/ios skills, you can increase your hourly fees by 10X. I myself would hire you for my mobile suite of apps.


Kudos to you Jennifer. I hope your path inspires many other aspiring programmers.


It's a great way that learning to code can produce a ton of content and experimental innovation. Code Academy (and others) listen up: What if everyone produced content while learning to code?


that's a great idea! It's actually similar to the idea behind duolingo.com People produce translations while learning a language


Super Impressive, dedicating the time to accomplish this remarkable.


How admirable, good for you. I don't have anything more to add than my sincere appreciation for seeing what you're doing, it's a fantastic example.


Great Jennifer, you have just greatly inspired me. I will get started, maybe do one site a week instead of a day since I have this thing called full time job!

Keep it up


This is really great! There are quite possibly many better ways to spend 180 days if you wanted to make money (#1 would probably be completing every Rails tutorial available) but I don't think that is important here. Rather, I find her approach inspiring and it's something that can be applied to any endeavour.

One nice thing that she will have, even if she doesn't make it through the full 180 is a record of her earliest creations through to her latest. Like when keeping a journal she'll be able to refer to it when she's feeling low and see the progress she's made, and she'll have a record of what she's done that transcends her memory.

At my first job I was lucky enough to report directly to the Technical Director of the company who took the time to mentor me on what it means to be a good software engineer. The first thing he had me do is to keep an engineer's journal. The benefits of this would only become clear a few weeks down the line but clear it was: I would encounter a problem I knew I had solved before but couldn't quite recall the solution to; I would flip back to find my notes and there it would be. Fast forward a few months, then a year and the value received from this simple act of keeping an organised journal far exceeded my expectations.

I have since kept the habit going but I feel that more can be done here. On one level you can keep notes for yourself and improve your own productivity. A level up would be to write those notes up on an internal wiki. One level up further and you've polished them into material you can publish to a wider community. One level up again you can inspire others to do the same through your efforts. One such effort that I have seen (outside of Jennifer's) that I think is completely worth anyone's time to explore is Journey of an Absolute Rookie: Paintings and Sketches (http://www.conceptart.org/forums/showthread.php?t=870), 10 full years of recorded progress of a beginning artist that blew my mind. Warning: you may lose a lot of time to that forum thread!

There is something beautiful and powerful in things that have been worked on and tended to for years, things that cannot be rushed no matter what: the only way to have 10 years of recorded progress today is to have started 10 years ago and to have kept it up for the duration. What a present to give to yourself!


i'd love to hear more about the resources you are utilizing. plus - how do you find time to work on this for 10 hours/day!?


you could really help a lot of people out by writing a basic curriculum!


Fantastic and I'm also glad to see that most of the comments are positive. I was almost afraid to click on the comments link.


This is pretty cool, but I think spending a bit more time with a bigger project instead of doing 180 small ones would be more beneficial. But maybe her goal is to jump into bigger/long term stuff after the 180 days. Either way, congrats for getting out there and building stuff!


Keep in mind, she's starting from scratch, and her goal is to learn fundamentals of programming, not project management. Managing an large, interconnected project is a formidable task in itself.

She's made a pretty strong case for starting small, managing scope, and keeping realistic expectations.


This is awesome, humbling, and inspiring at the same time.

(There were 180 comments on this story, now there are 181)


Incidentally, does that remind anyone of the "Cascade Cassette 50"?

http://en.wikipedia.org/wiki/Cassette_50

The work is of profoundly higher quality, though, I just mean in terms of volume!


This is so awesome! Thanks for sharing your work. :) I really love the Window Master!


So many envious comments here, ridiculous. Jennifer, this is really inspiring stuff!


i like day 114 http://jenniferdewalt.com/image_palette/page was looking for an online quick to user color picker just yesterday


Ah, but note that Mondrian uses stripes of varying width -- it adds a lot to the piece. Consider trying to make the width individual stripes changeable. This might even provide even some insight into Mondrian's art.


I want to learn from your code, but it looks like it's all hidden somewhere?


Good on you, your progress is amazing. If you want a job, you'll get it.


This is inspirational ... find time to dedicate to learning something new


Wow. Unimaginable patience.


Wow this must really time consuming. Really great work. Inspirational


Amazing story, love it. Yes it's all about building wonderful things. I've been doing one screencast per week since 2011, I have to say it's really really lots of fun.


happypeter: Would love to hear about what type of screencasts you're building, my company (https://www.bitcast.io) is looking for the best screencasters we can find. Feel free to reach out at nikhil at bitcast.io.


It looks like the majority of her Github commits are happening during 6pm-12am http://imagebin.org/265513


Wow. Impressive dedication, and even more impressive creativity.


This is great. - she is learning to code - she works hard - she is creative with her ideas - everyday - and she is communicating very well - and getting better at it.


Wow. This is inspiring. I've been programming for years, and don't think I'd be able to create something new every day for 180 days. Major props.


Jennifer, you are just plain amazing. You are my inspiration.


Great idea. One minor quibble though: it's 180 webpages or webapps for me at least. I'd say that websites require full infrastructure etc.


Congrats, it's amazing what you have achieved.


Dear Jennifer, something tells me this will be the most difficult of the 180 days. If all this buzz does not distruct you, nothing will.


This is awesome, Jennifer. Keep up the good work!


Great job! Will stay tuned for the 65 days left!


this is super smart. also, it gives me a good guide for ideas for the sites i want to build as i'm learning to code. THANKS!


Hi, what day-to-day tools did you uses to create these? I wish I did something like this too instead of just playing all day :(


I tried to splode a bacon bit, but it would not splode. Very disappointed. But love the execution. Good job and keep going!


Is fizz buzz broken? A random number is nice, but what if not divisible by 3 or 5 - what do I enter? Example: I got 559.


Cool! That's DEF fun and creative!! :D


Awesome stuff, Jennifer! Congratulations!


It's 180 HTML & Javascript PAGES, not 180 WEBSITES! Big Difference.

Nevertheless, congratulations on your dedication.


My plan is to learn how to code by reading the code for 180 of Jennifer Dewalt's websites in 180 days.


Not a good plan.


I wish I had time to do similar approach solely to learn new things using HN: Hacker News University.



Great idea. Way to go, Jennifer.


180 iterations of the same website in 180 days and you have a company :]


Cant wait until Number 180 when you build a complete Web Framework ;-)


Who has the time or money to teach yourself to code in 180 days?


Very inspiring! Keep up the good work!


Really Wow! Quite inspiring.


Great Work! Keep Going !!


Way to go, Jennifer.

Best wishes for you!


How cool! Keep it up!


I have a new hero.


i'm curious what kind tools are you using.


execution


I wouldn't launch this kind of project without some kind of ace up my sleeve.

I'd either prepare it in advance, vamp it all from the "tutorials," or have some backup code somewhere.

That would be necessary to avoid having a mundane interruption cause the project to fail.


Steven King vs. Vladimar Nabrakov


this is inspiring


I thought you said "websites". You mean pages with a single purpose.

It's a good idea though and you probably learn a lot from it, but I wouldn't say that I'd made 180 websites after completing this.




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

Search: