364 comments

[ 2.8 ms ] story [ 273 ms ] thread
Good on you, your progress is amazing. If you want a job, you'll get it.
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!
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.

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

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

You can buy a large number of domains but don't want to spend $5/month for them?
(comment deleted)
Some domains are free. Why limit yourself to second-level domains?
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

Cool! That's DEF fun and creative!! :D
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?
Yeah as awesome as this looks, it also feels like a full time commitment is needed.
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.

Great job! Will stay tuned for the 65 days left!
Kudos to you Jennifer. I hope your path inspires many other aspiring programmers.
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.

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.

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

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.

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.

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

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.

It doesn't take much to save $10,000, which is more than enough to fund 6 months off work to learn something.
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.
(comment deleted)
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();
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.

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.

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

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.

(comment deleted)
> 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.
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

460 hours of practice seems like PLENTY of time to learn to do that.
also, you built MS Paint on day 39. again, shenanigans.
(comment deleted)
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.
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.
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'm going to move to India to do just this.
Just curious. Where in India?
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.
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.

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

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

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

Heh the whole "Here's a tasty sandwich" bit reminds me of The Little Schemer and not in a good way.
(comment deleted)
Personally, I liked your page and I am more likely to return to it than the usual self-important stuff floating around.
(comment deleted)
"shenanigans"?

Jesus Christ. This string of comments is awful. Why would Jennifer take this amount of time to pull the wool over your eyes? It's pretty obvious she has started from scratch.

Find that hard to believe? You probably just don't know how to push yourself through learning something quickly.

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.
The thing is, these spiteful naysayers are talking about her, nobody is talking about them, and probably never will.
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.

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?
As someone else mentioned, I think the hardest part is coming up with idea.

Most of these are really cool! Awesome job.

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.

"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.
> 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).
This is so awesome! Thanks for sharing your work. :) I really love the Window Master!
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."
(comment deleted)
Interesting how that is implemented. Didn't quite get from viewing page source. I mean, where is js?
at some point, she learned about minification and http requests and concatenated all her scripts into one "application" script.
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. :)

Wow, really cool concept and implementation. I have a lot of respect for people who can put together things like this quickly.
Super Impressive, dedicating the time to accomplish this remarkable.
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.

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!
This is inspirational ... find time to dedicate to learning something new
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.

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 :(
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!

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 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: you can't refactor code you haven't written yet.
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.

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.

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