18 7 / 2011
1 year since I quit my job to learn how to code
It has been 1 year since I left my job to learn how to code full-time. While I loved every minute of it, here is a final post on the transition, the lessons I’ve learned & the risks I took to get it done. (Note- I do not recommend everyone to go a year without health insurance. Just throwing that out upfront. If I didn’t, my mother would kill me.)
Do you have enough $ saved?
Upfront, I think the financial risk was the biggest hurdle. In total, I’ve spent $15- 20k (rent, food, & taxes being the largest expenses). If you have enough money for a barebones existence then you are honesty set. This does exclude health insurance - which I haven’t had in a year. The cost was just too much to fit in with my meager budget. Other things I went without - new clothes, nice meals out, basically all discretionary spending. “2 Buck Chuck” was honestly my biggest gift to myself.
*One point, because of how little money I made last year, I didn’t think I would have to pay taxes. I was wrong. Check your tax situation upfront to know whether or not you will be on the hook.
*Second point, I didn’t try and get any unemployment benefits. There are people much worse off than me so I risked draining my savings since the worst thing that could happen would be to find a job (more on that below).
Force yourself to act.
Like most people, I can get into lazy spells where I just want to veg & relax. The blog forced me to get up and act. Some people say, ‘If you say what you will do before you do it, then you are less likely to act.’ I’m on the opposite side of that argument. I think - the more vocal you are with your actions, the more likely you are to act because you do not want to look like ‘the boy who cried wolf.’ Say what you want to accomplish, and go do it.
Blog your struggles. Don’t be afraid to look stupid.
When I started proudn00b, I thought someone may find it and want to lend a helping hand - I didn’t realize so many people would want to help. Everyone starts somewhere - so I think that is why people are so receptive to openly acknowledging your roadbumps. If you are thinking about learning a new skill, definitely blog about it.
*Thank you to Hacker News for all of the help & support.
Everything you will need is free & online.
There are free resources for learning absolutely anything. The first place I would turn to if you are interested in learning Python, Learn Python the Hard Way. As you get going, then turn to Google App Engine (GAE) to launch, free little sites without having to worry about a server. With my roommate, we built Dotty-dots on GAE which has had hundreds of thousands of visitors, and we have yet to have to pay a penny. Finally use Stackoverflow. Post your problems on there - it is truly an amazing resource. Have a question on anything related to to code? As long as you properly word & describe your problem, you will get an answer in less than a day.
Nothing beats local support
While the blog & online resrouces were incredibly beneficial - nothing beats emailing or iming two of my friends (Jon & Mark) who already knew Python and could point me in the right direction. Every week I get emails from people who are thinking about learning how to code. My biggest piece of advice - learn the language your friends know. If you know someone that knows Ruby, learn Ruby. If a friend knows PHP, pick PHP. You’ll want someone to bounce questions off of that person when you’ve extinguished all other options.
A new network of friends
One unexpected result was that I also got a whole new group of friends. 90% of the people I currently chat/ tweet/ email with, are people I have met in the last year. That has been the biggest benefit to this experience - those relationships. One interesting quote I heard over the last year - “you are the sum of the 5 people you spend the most time with.” Just think about that as you evaluate your current stage in life, and what you want to become.
Results - Pretty good Django developer -Python, HTML & CSS. n00b JS.
I don’t know what I don’t know.
This is the biggest hurdle I am facing right now. I do not know what ‘bad habits’ I have. I’d akin this to watching your roommate cook - you know it will taste good, but the kitchen is a mess. Until I get a job/internship/coding opportunity in a progressional setting, I won’t know what exactly I am doing right or wrong.
It is tough to find a job with 1 year of experience.
In the last few months, I have applied to at least ten places as I evaluated my next steps. I was able to get 4 phone interviews, 3 coding challenges, and 0 offers. This goes back to the point above - I have a good understanding of how to code, what goes into a website, and the logic involved. Regardless of how successful I have been at building a community around proudn00b, press, and a bit of internet notoriety, at the end of the day, companies want someone who can write good code. Most likely, an internship is the route to take- get some experience and find out exactly what I don’t know.
Housefed - the big success.
In the last few months, I have built Housefed, an 1,800 person community for people to find home meals in over 35 countries around the world (an Airbnb for food). With press from Techcrunch (twice) & Forbes, it is growing quite nicely as last week I had our first home-meal at my house (photo below). It definitely blew away any expectations I had, and was incredibly fun.

As I open the site to more meals, I can’t wait to see where Housefed goes. Definitely check it out if you haven’t.
Summary
This has been the best year of my life. I finally learned a skill I have wanted to for years. While my bank account is on its last leg, I wouldn’t have changed anything. Ultimately you have one life to live - go after the things you want. Tell people what you are doing - if they do not know what you want, how can they help? However the journey is longer than you think. Be prepared mentally and financially for that fact.
As they say in Japan, “Ganbatte kudasai!”
—-
PS If anyone has a paid dev internship in the SF Bay Area? Let me know!
Permalink 7 notes
30 11 / 2010
5 months after HN front page
It has been 5 months since I left my job to learn how to code. To be a little more specific, a sales job at a startup that had just raised $7m in VC funding. My initial post on HN was received with great support & criticism. One of my favorites, “I’m sorry, but I don’t wish you luck. You are setting yourself up for disappointment.” So whats happened since then?
I got a ton of help from HN-ers that found me via that post.
Exceptional people lent me a helping hand. I was extremely lucky to have received that type of support- but not everyone is that fortunate. As Duke Chung and Ching-Ho Fung said, the key traits of a good mentorship:
- 1. Look for someone who is looking (to mentor)
- 2. Ask the right questions and a lot of them
- 3. Make sure the prospective mentor really has the time
- 4. Give it time
- 5. Formalize the relationship
Most eager students are missing, “someone who is looking (to mentor).”
There are plenty of other people out there hungry to learn how to program, and change their life, but don’t have the mentors I have. So about 6 weeks ago, I thought I had learned enough to start a project. I was wrong of course, but thats the beauty of learning something new. You have to jump in over your head and work your way out.
As Reid Hoffman said, “If you review your first site version and don’t feel embarrassment, you spent too much time on it.”
To reciprocate the goodwill back to HN:
Mentor77 - to help other n00bs meet people willing to help them learn on an ongoing basis.
The opposite of Stackoverflow.
Helping someone with one problem is relatively easy. Fostering relationships for months/ years is much more difficult. I built the first version of Mentor77 about a month ago, and released a second version about a week ago. With the recent HNofficehours post, I wanted to share the approach I’m taking towards connecting HN-ers trying to learn something new.
LESSON FROM V1
The first version was almost identical in theory to HNOfficehours. A mentor would create a skill profile for the areas they are knowledgable in, and n00bs could message them. The problem?
Users wouldn’t cold-message experts.
This should have made sense. You wouldn’t walk up to a stranger, and say, “You know Python, help me.” I think it comes from a fear of embarrassment - people do not want to feel dumb for the sake of tarnishing their reputation. With that knowledge, I went to work, and launched the v2 a little more than a week ago.
TWO GOALS FOR V2
1. Lower the barrier for n00bs to get help.
Now user’s make public posts to the site- not a specific user. That should lower the barrier for users to feel comfortable enough to make posts on what they want to learn. It also allows for any user to respond to a user’s question- not just the individual messaged.
2. Simple Point system to encourage more interaction
This is a starting point for rewarding user activity. Let’s be honest, it sucks in its current, overly simplistic form. This will evolve in the coming weeks.
WHAT’S NEXT
1. Private Messaging
Allowing limited private messaging between Mentor-Mentee makes sense for fostering a closer relationship. This will come back from the v1, but in a slightly different form.
2. More professional design
The one thing I’ve heard over and over- make the design it’s childish. Just like art, it’s much easier to recognize greatness, than build it. A much smarter design is on the way.
WANT TO HELP OUT?
For this to be successful, Mentor77 needs a team. It’s time I open this project to more people who would like to contribute.
If you have experience with Python/Django or Front-end/Design, let me know!
Permalink 2 notes
01 10 / 2010
Advice from Hacker News
On Hacker News, there is a question:
I am a current college student majoring in Computer Science. I know that, after I am done with school, I want to start a startup at some point (not necessarily right out of school). I know it’s going to involve a lot of hard work, but this is something I have been thinking about for a while now. So, my question is this: what sort of advice can you guys give me that will prepare me for such an undertaking. Thank you.
Here is the top answer that I found to be very interesting:
1. Be good. Be very good. Don’t be the “front-end guy” or the “back-end guy”, or some other “guy”. Once you know what you want to build, building software is about five things: algorithms that solve your problem, programming languages that express your algorithms, computer architecture that makes your algorithms run efficiently on real hardware, the practical toolchain, and the management of complexity of real software. So study algorithms, and then graduate algorithms, and then advanced graduate algorithms. Do every challenge problem online. Study programming languages to express those algorithms. You can get away with three: C, Lisp, Haskell. Everything else is crud. Study computer architecture and compilers to see how your programs run efficiently. Learn great tools (Emacs/Vim/Visual Studio/bash/Linux/OS X/Windows whatever - just great ones that you’re damn good at). Learn how complexity is managed. Look at lare open source projects, study how they’re organized, and contribute patches to understand how small changes can effect a large system.
2. Learn what to build. Once you get really good, your time starts to be more valuable than gold. There will be very few people in the world who are as good (the internet will bias you to think that the world is full of great people - this ain’t so, there isn’t enough of ‘em). You owe it to people and to yourself not to bother with improving something by 1% or 10% because you’re wasting time in opportunity cost and could be improving something by 1000%. Make sure what you’re building is worth building, and make sure every line of code you write is worth writing, otherwise you will fail. Break the NIH syndrome in yourselves now (all good people have it, phenomenal people that build successful companies broke it in themselves). Learn to infer what people want.
3. If you’re that good, you will easily get a $100k job after graduation (probably more by then), and grow to $180k in a few years. That’s very, very comfortable. It’s not worth busting your ass 16 hours a day to build another CRM tool when you can have a $180k job. So don’t start a business to start a business. Start a business to bring a meaningful change in the world. A huge change. A 1000% change. There are lots of hugely successful companies out there that do what’s not meaningful to you - ignore them. But do make sure that what’s meaningful to you is also meaningful to millions (hopefully billions) of others. You won’t get rich writing Lisp compilers.
This is what matters. Most everything else is fluff.
Permalink 2 notes
26 7 / 2010
13,000 readers later - Lessons from Blogging
It has been 1 week since I quit my job, and jumped 100% into learning how to program.
This morning I received an email from a reader asking:
Questions:
- How many people came back organically?
- Did “narrative” posts work better than “technical” posts?
- Anything else I should know about how to leverage the experience?
Answers:
- Total 13,000+ (Yeah, it has blown me away too!) 300 per day organically.
- I am not sure. It seems people are interested in the blog for a few reasons.
Quick survey - Why do you read this blog?
- Interested in my story
- You want to quit your job or change careers too
- Are a programmer looking to help
- Other?
Please leave the answer in the comments! Thanks!
And to the final question- there is a lot to ‘leveraging the experience!’ Here are the lessons I’ve learned:
- Google analytics doesn’t automatically track outbound links, ex. to Twitter. Solution here
- #3 on Front Page of HackerNews brings over 7,000 visitors. Anywhere on the front page brings about 1,000 visitors
- Make a link to your Twitter account very prominent - http://twitter.com/emilepetrone
- There is also a Twitter account for just blog posts, but I do not highlight that account on the blog - http://twitter.com/proudn00b
- Track RSS feeds with Feedburner
- Things will break, just roll with the punches
- Taking a big leap, does bring big traffic.
- After a link on HackerNews gets a lot of traction, you will have a big drop in traffic. 90% do not return.
- Track your analytics with Ego (iPhone App $1.99)
- People need to understand your blog instantly. Have a short description in the header.
- Get into a posting rhythm - same time of day, with a certain frequency.
- People will contact you in every possible way (Twitter, Email, Facebook, Linkedin, Comments, etc). So have all of those accounts up to date!
- As for learning how to code- you will have interruptions. Just roll with them and go with the flow. (Friday got totally wrecked after Borders made me go all the way to Palo Alto to just return a book bc I didn’t have the receipt. Goodbye day!)
- Breaks are good for (required) reflection. Took this weekend off to decompress & analyze the traffic, feedback, and take stock of where everything is. Changes to the design are coming & bought the CSS Cookbook for just that.
- Get out of the house! Go to grab some lunch or meet up with friends after a long day. Not having to go to the office, is a good & bad thing. You miss the social interactions that comes with.
- Selfcontrol is a required app. It will keep you focused.
- Setup multiple inboxes in Gmail to filter out messages from Twitter, Facebook, Linkedin, etc. It will keep your inbox organized when a post suddenly takes off.
- Tweetie is great for maintaining multiple Twitter accounts & the @ messages to them.
- Random lesson, but I go to the grocery store much less frequently. I am out of food!
- If you can’t post from your laptop, make sure you can post via your phone. Only for emergencies..
- You will get haters. Just brush em off, and ignore their comments.
- I wish there was a way I could track my blog comments, HackerNews comments, @ replies all in the same place. Any recommendations?
- On learning, start with what you know. Get very broad & slowly work your way down to a niche. It will give you a base of knowledge, and open you to new ideas you hadn’t explored (or even knew about!)
- If you don’t know something, just ask! IRC #python & Twitter have been great for fast answers.
- Stay organized! This is critical. Ex. I have a folder for links, throw everything in there & read them at the end of the day.
- Disqus is pretty great for managing comments.
- Design is critical. Initially I heard a lot of noise on the font used & way I displayed links. I learned that lesson! More changes on the way…
- Blog posts take about 3 hours to write, review, and rewrite.
- 1% of your readers will follow you on Twitter. Out of 13,000 readers, I’ve seen a bump of about 130 followers.
- Strangers are awesome - if they find you, they will help.
- If you are wrong, readers will let you know! Just learn each time!
- Figure out a structure for each post. I haven’t figured that out just yet, but that is the goal.
And on that- yesterday I posted I will not be posting daily. After all of the feedback, let me make a small correction to that policy. I will post small, technical updates daily & save longer posts for maybe once a week. Smaller posts will hold my feet to the fire, and keep me focused. The longer posts just take too long to do on a daily basis.
So there you go- I think 32 lessons is a good place to stop. Thanks guys for an awesome Week 1! Here’s to you guys! Oh, and if you could also answer the survey question too, I’d appreciate it :)
Follow me on Twitter here: http://twitter.com/emilepetrone
Permalink 1 note