I'm learning to code by building 180 websites in 180 days. Today is day 115
blog.jenniferdewalt.com
blog.jenniferdewalt.com
===
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.
It's a vicious cycle.
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!
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
After receiving your 20th "I forgot my password" email, you're sure to build that reset-password feature.
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.
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.
I totally agree to this one.
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.
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.
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!!
Otherwise practice makes permanent in many cases. Just hope you're doing whatever it is right.
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.
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.
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.
'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?
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!
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.
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?
And that's a great project, Jennifer.
Perfect practice makes perfect!
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.
The funny thing is you already knows unbelievable amount of backend code for a beginner. (https://news.ycombinator.com/item?id=6099489)
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...
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.
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 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
Only down side is they kept flooding the basement having tide marks on you computer rooms walls is not ideal :-)
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.
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.
I would love some deeper insight into this, do you have any sources? Thanks.
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.
Of course, this is a tiny sample size and there are all kinds of biases, so take it as it is -- a personal anecdote.
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.
"Hey, that doesn't match my experience." -> "Sources. Now."
http://www.amazon.co.uk/Art-Fear-Observations-Artmaking-eboo...
"The greats weren't great because at birth they could paint. The greats were great cause they paint a lot."
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 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.
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.
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 :-)
(And that made-up anecdotes will take you pretty far.)
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.
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 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.
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.
I have no doubts about the main thrust, just some details seem as if they are embellished.
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.
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.
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.
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 ...
...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.
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
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.
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...
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();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.
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.
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.
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.
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.
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.
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.
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.
So I agree, this isn't a good measuring stick for newbies who don't have the same time or focus.
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
Good work on them. Perfect way to have a portfolio ready for the world.
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.
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.
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.
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.
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.
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.
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.
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.
(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.
And, unlike the subject of the post, 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.
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.
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...
[1] - http://grapefeed.com
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.
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.
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.
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 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.
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.
Please, no one believe this jerk.
[0]: https://github.com/jendewalt/jennifer_dewalt/tree/258e91c40f...
[1]: https://github.com/jendewalt/jennifer_dewalt/commit/c0d02c8c...
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?
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.
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 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.
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 wrote a little about this here - http://blog.jenniferdewalt.com/post/53231496490/week-11-lets...
My girlfriend wants to learn about coding as well. She's in the East coast and I'm on the West coast. I want to help her, but I am not sure how. Did you have any programmer mentor? If so, what kind of role have they played?
This is an incredible effort and dedication. Great job and keep it up.
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.
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.
So yeah, highly doubt this is truly her first rodeo. Cool project(s) nonetheless and impressive dedication.
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 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.
Then again, thanks for the point about her Github repo. It's probably clearer to just go read that. :)
Rails has a feature called 'The Asset Pipeline'[1] which handles concatenation, minification, and compression
https://github.com/jendewalt/jennifer_dewalt/blob/master/app...
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.
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.
Consistency is so hugely important. 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".
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).
* 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
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.
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.
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.
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 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!
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- 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
I guess this works for learning programming too.
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!
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.
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.
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?
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...
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!
Very true - but your location is a huge benefit to someone who's in say, the middle of Iowa or Kentucky.
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.
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!
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!
:-]
[2] http://www.cabrillo.edu/academics/digitalmedia/index.shtml
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.
Somebody hire this person!
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.
Most of these are really cool! Awesome job.
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.
Keep it up
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!
She's made a pretty strong case for starting small, managing scope, and keeping realistic expectations.
(There were 180 comments on this story, now there are 181)
http://en.wikipedia.org/wiki/Cassette_50
The work is of profoundly higher quality, though, I just mean in terms of volume!
Nevertheless, congratulations on your dedication.
Best wishes for you!
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.
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.