117 days ago, having never done any programming in her life, Jennifer Dewalt built her first webpage. The next day, she built another, and she has kept building one new webpage every single day.

Instead of beginning with "Hello World," a class, or an interactive tutorial, Dewalt decided to just start coding, she wrote on Wednesday, day 115 of her trial by fire.

What’s the best way to learn to code? After pondering this question for way too long, I decided to JFDI. But instead of just starting aimlessly, I decided to adhere to a simple and strict structure: 1. Build a different website every day for 180 consecutive days.

2. Every website must be accompanied by a blog post.

3. Any code I write must be made publicly available on GitHub (open source) so that everyone can see it.

The San Francisco resident notes that her background is in art, but she wanted to move beyond drawings and sculptures. "[W]e are no longer governed by physical media," she wrote. "We have the Internet! The Internet is awesome because it breaks down so many obstacles that used to inhibit communication. Barriers to communication are so low, in fact, that we feel compelled to create virtual identities in order to communicate and interact with each other. I think this virtual interplay is ridiculously awesome, and I’m not satisfied with just being part of the conversation. I want to be able to create the communication channel that makes these interactions possible."

Links to each webpage she built are right here. The first was the project's homepage. The second one is interactive, allowing visitors to choose one of three doors, getting a different result depending on which one is opened.

On day 52 she created an Etch a Sketch, on day 66 an Atari-esque game called "Alien Attack," on day 85 a mouse-controlled fish swimming in a tank, on day 97 a text-to-Braille converter, and on day 100 a "song machine" that lets the visitor create music. The most recent are a game involving exploding bacon, and another game called "Glob Glob" in which each visitor grows a glob by frantically hitting the space bar, with the goal of creating a bigger glob than the previous visitor.

"At first, my websites were very simple: some HTML, a little CSS and a couple of lines of JavaScript," Dewalt wrote. "Over time they’ve been getting more and more complex. I’ve made games, calculators, clocks and silly kittens. Right now, I am pretty comfortable with CSS and I am developing fluency with JavaScript. Recently, I started using Rails to build dynamic websites that allow people to communicate with each other and make profiles. Playing with Rails has been super exciting since it allows me to transition from making games and toys to building actual tools. I’m not sure what technology I’m going to try next or what platform I’ll be using at the end of this project, and that is super cool."

Dewalt purposely avoided courses or coding boot camps because, she writes, "I think the best way to learn is to solve problems that you actually have." Still, a bit of outside help is necessary to get started. "When I have questions, I look them up on Stack Overflow," she wrote. "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."

Dewalt does most of her coding on a 13-inch MacBook Pro hooked up to two monitors, at a co-working space with "all the free Diet Cokes I can drink and all the jelly beans I can eat." Prior to starting the project, she saved up some money so she could learn to code full time.

Dewalt's project became more well-known this week when her day 115 blog post became popular on Hacker News. She wrote that it's unnerving to "have all of my mistakes and misunderstandings out in the open." But "[t]he fact is, if you want to learn to code you are going to make a lot of mistakes... just because your code might look a little goofy doesn’t mean you should stop coding. And you don’t need to be a certain type of person, you don’t need to be a math whiz, and you don’t need any prerequisites, because the compiler doesn’t give a damn about that. You just need to start typing."