A little over 4 months ago, I decided I was going to learn to code.
Ignoring the fact that I had no prior coding experience and had never taken any “technical” classes in school, I decided to build 180 websites in 180 days with no days off.
Today is Day 115.
My background is in art. The thing that originally drew me to art is that it’s an avenue to explore how people represent themselves to the world. What clothes we wear, our mannerisms, and how we communicate. In the past I’ve tried to capture this projection of the self with drawings and sculptures.
But now it is 2013 and we are no longer governed by physical media. We have the internet! The internet is awesome because it breaks down so many obstacles that used to inhibit communication. Barriers to communication are so low, in fact, that we feel compelled to create virtual identities in order to communicate and interact with each other.
An artsy website from week one.
I think this virtual interplay is ridiculously awesome, and I’m not satisfied with just being part of the conversation. I want to be able to create the communication channel that makes these interactions possible.
What’s the best way to learn to code? After pondering this question for way too long, I decided to JFDI. But instead of just starting aimlessly, I decided to adhere to a simple and strict structure:
- Build a different website every day for 180 consecutive days.
- Every website must be accompanied by a blog post.
- Any code I write must be made publicly available on GitHub (open source) so that everyone can see it.
It’s scary to have all of my mistakes and misunderstandings out in the open. The fact is, that if you want to learn to code you are going to make a lot of mistakes, but just because your code might look a little goofy doesn’t mean you should stop coding. And you don’t need to be a certain type of person, you don’t need to be a math whiz, and you don’t need any prerequisites, because the compiler doesn’t give a damn about that. You just need to start typing.
Simon, week 4.
No bootcamps, no books When I decided I was going to learn to code, the first step was to figure out how I was going to go about it. There are a lot of options to consider. There are tons of courses you can follow or boot camps you can sign up for, but none of those really appealed to me. I think learning to code is a lot like learning to roller skate. You might need a helping hand to get your footing beneath you, but to gain any real finesse you’ve got to do it on your own.
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.
Learning about objects with the Little Dude in week 6.
Day-to-day Working from home wouldn’t have been a good idea, so I do almost all of my coding from an awesome co-working space in SoMa. Besides providing me with my own desk to call home, I get all the free diet cokes I can drink and all the jelly beans I can eat. For hardware, I’m using a 13” Macbook Pro hooked up to two monitors, because if there is one thing I love, it’s screen space! I’ve also got a little Jambox on my desk for late night dance parties.
I start each week by writing a blog post about my impressions of the previous week. Every day I push my code to GitHub, deploy the day’s website, and write a daily blog post. After that, I usually end up fixing a million bugs and typos I missed before pushing the website live. I’ve done this 114 times so far.
Paratroopers game using physics from week 8.
Not having a clear cut path for this project has allowed me to explore whatever concepts strike my fancy. It turns out that what I want to work on next is hugely influenced by what I’m currently working on. Much more so than I would have originally guessed. Earlier in the project, I wanted to make a simple weather app and I needed to find a way to get weather data. All of a sudden I became interested in APIs. But ajax doesn’t work cross domain, so that led me to JSONP. Honestly, I never thought I would be interested in JSONP. Finally, since there aren’t terribly many APIs that even support JSONP, I became inspired to start working on Rails sooner rather than later.
Rails website from week 14
But what if you just …? Often when I tell people about what I’m doing they immediately start looking for loopholes. I’ve fielded a lot of questions like, “Why don’t you just skip today and do two tomorrow?” While I know everyone means well, there aren’t any loopholes because I made up the rules and there aren’t any loopholes.
Something on the fun-side from week 16.
It’s hard Building new stuff every day is hard. Coming up with new concepts can be exhausting and switching from brainstorming mode to execution mode isn’t seamless. But the hardest thing about this project is that, in a sense, every day I fail. Every website that goes out the door is unfinished and since I’m something of a perfectionist, the temptation to redo or extend every website is really strong. The thing is, the way forward is not to keep tinkering and tweaking to make something perfect. The way forward is to move on to the next concept and build it.
- mayorjenova likes this
- ali6p likes this
- coco-jozes likes this
- julia-chen likes this
- jayguar likes this
- roguecodingbandits reblogged this from jenniferdewalt
- vector-queen likes this
- stateofglory likes this
- lesfollesmarquises likes this
- bohemianelitist likes this
- dragnmistris likes this
- vreup likes this
- qarolbagh likes this
- erzhanunicum likes this
- pros-love likes this
- knskx likes this
- splusx likes this
- splusx reblogged this from jenniferdewalt
- manicpixiedreambakla likes this
- paytonromeo likes this
- tayefuelk likes this
- makeventure likes this
- allyteration likes this
- neoniatv likes this
- meemzo likes this
- oioioicode likes this
- nata488 reblogged this from jenniferdewalt
- lijiashen likes this
- tenthousandthingstodo likes this
- subtletumbles likes this
- kvzivn likes this
- readthislater reblogged this from jenniferdewalt
- lostballoon likes this
- apiwat-h likes this
- interesting-photos likes this
- thegodiseverything likes this
- gaussianmixture likes this
- chengrundong likes this
- zou-yuzhou likes this
- mashock likes this
- nikooruuu reblogged this from jenniferdewalt
- nikooruuu likes this
- xjanettx19 likes this
- chengmu likes this
- mtooo reblogged this from jenniferdewalt
- mtooo likes this
- tumblejoo likes this
- serapham reblogged this from jenniferdewalt and added:
- dieuhhuynh likes this