Ad

Monday, October 21, 2013

Y Combinator Startup School 2013 Highlights

I wrote most of these tweets, but to cross-check for originals versus retweets please check here http://www.twitter.com/i_stanford


Y Combinator Startupschool 2013 Highlights

Ron Conway ultimate Angel Investor godfather

User interface IP is the new algorithm (the sauce of startup success) @startupschool #ronconway

hire fast fire fast, even if it is cofounders

Ben @pinterest was a founder with a rare non-type-A calming effect says #ronconway

When @pinterest started Ben had to do focus groups with women in coffee shops call them next day to ensure engagement. #feedbackloop

40% of his startups will fail [talking generic stats, and expectations highlighting inherent risks of startup failing]



Paul Graham (Y Combinator): 

Successful entrepreneurs are the cockroaches of the corporate world. [refers to resilience in light of hardship]
Mark Zuckerberg: pre-FB friending meant 0, no access to content like newsfeed. Paul Graham: social networks had the nodes of friend graph no arcs

Nathan Blecharczyk (founder of Airbnb): 

investors want the Bs not the Ms baby. [b = billion, m = million major lol humor]



Mark Zuckerberg Founder of Facebook.com

Facebook.com: will enter lockdown mode when competitors are ahead on strategic positions. [Mark Zuckerberg]
Mark Zuckerberg: pre-FB friending meant 0, no access to content like newsfeed. Paul Graham: social networks had the nodes of friend graph no arcs

By another Twitter account: Optimizely raised their A round by hosting a mock board meeting with the top investor prospects. Genius

"As an entrepreneur, your job is not to execute the algorithm, your job is to write the algorithm." -  by twitter account Christopher

Dan is all about feedback and action loops. @startupschool while cash > 0 do feedback then action repeat

Scale talent @Optimizely by @dsiroker it was about hiring new people > current average of existing talent pool. Always scale. 

Product.name  = "Google" + http://product.name  ensured substantial user for feedback loops @Optimizely @startupschool

an from @Optimizely @dsiroker  started with @stanford fashioning neon orange shoes at @startupschool @ycombinator color [this was retweeted by Dan!]

Startup School account tweet: Motivation for creating : wanted to build something "sufficiently epic" to be his life's work.

3 weeks of cash left @evernote investor wasn't going to close deal on the day Lehman collapsed. Phil called everyone in vain @startupschool [this tweet was retweeted by startupschool]

@evernote is Phil's epic work epic work doesn't need an exit strategy. 

 Phil founder of @evernote joked don't even make friends with people you can't found company with. Laughingly @startupschool   @ycombinator





Jack Dorsey founder of twitter and square :  

"The Art Spirit" by Robert Henri

advice is to have a do and donts daily everyday.

the heart of a startup is the founding team's art & crafting, mastery of crafting

Chris Dixon at andreessen horowitz

idea exercise: what would for X Y look like? office hr team today : we are building games like codecademy

university education is a bundle of experiences which will be tear apart 2 b replaced slowly

Tweet by @startupschool “The same thing that’s happened to newspapers in the past 20 years will happen to education in the next 20 years.” - on MOOCs

Additional highlights:

"It's better to make a small number of users really love you than a large number kind of like you"

Stanford Professor Startup Engineering Coursera teacher - balaji srinivasan

philosophy US is a nation of VOICE & EXIT. Vote to change system or immigrate,leave. In startup world is found ur own company

startup tech landscape illustrated



Y Combinator Startup School 2013 - Speaker List plus a casual summary



While the event is by invitation only, it could be watched live. The startupschool 2013 videos are available here on youtube. Checkout the impressive speaker list, and a casual overview of what they said:


This is a pretty awesome casual summary, though casual.

Chase Adam | Founder, Watsi

unusually successful talk by founder of first non-profit at Y Combinator. Business + Tech applied to non-profit in  providing health care

Nate Blecharczyk | Founder, Airbnb

talks about exponential growth and handling exponential growth

Ron Conway | Partner, SV Angel 

overview of fundraising, paperworks, financial backbone of startups

Chris Dixon | Partner, Andreessen Horowitz; Founder, Hunch, SiteAdvisor 


talks about ideas and how to find winning ideas

Jack Dorsey | Founder, Square, Twitter 

gets personal and talk about how to use philosophical wisdoms in literature and non-fiction to get by tough times in startups

Diane Greene | Founder, VMWare

the early founding of VM and getting the process right

Phil Libin | Founder, Evernote, CoreStreet 

gets personal talks about tough times at Evernote, building lifetime epic work in startup

Dan Siroker | Founder, Optimizely 

the philosophical algorithms of founding companies and getting it right through feedback loops

Balaji Srinivasan | Founder, Counsyl; Lecturer, Stanford 

philosophical examination of new tech utopia, as the backbone of US economy and "political exit"

Mark Zuckerberg | Founder, Facebook


gets personal and talk about early startup years of Facebook, and hacking building constantly in Harvard

Need to think about how to succeed in Y Combinator interview and get into the accelerator, or better yet understand how to have super-fast legit reflex speed answers for a oral business plan fitting for Y Combinator? Checkout Paul Graham and Sam Altman's live office hour interview for 3 startup ideas, 1 admitted 2 failed. Ask yourself why and why not?


Two additional parts of the blog post:
You can get a sense on my twitter account http://www.twitter.com/i_stanford if you filter by @startupschool or #startupschool #startupschool2013 I had Twitter on the entire time, so this is going to be epic.
2. Why Y Combinator has turned me away from startup-ing, with a twist though!

Sunday, October 6, 2013

Product Management Studies: Evernote Physical Product UI

Read about Evernote's new Post-It Note partnership product on Mashable.com You can now tag each color with smart tags, given them meanings, get free premium membership, and digitalize your doodles and blueprints with the help of 3M.

Checkout the new Evernote market place https://www.evernote.com/market/ It is making physical products cool again.

Post-It Note may not be the sexist product any more, but honestly, honestly, these four colors are pretty FLAT, yes, that means they are cool! >_< right? iOS7 is flat (though it may not be cool), but these vintage colors are making a come back. Electric blue? Just a little more neon than the flat blue. Not the same I know, but definitely some affinity. If I were 3M, I would turn these four colors to flat colors though. Then it would be perfect!

What about an Evernote green? What would you tag it with? Your answer may just be the brand value/image of Evernote.


The product is rather similar to the Moleskin Evernote notebooks, which have beautiful pressed cover filled with Evernote's popular logos and icons (the founder was very proud of the logo).


Then I can't help but noticed the wallet, seemingly simple. I immediately noticed to whom Evernote is trying to market. Can you guess what is the geo location of its potential customers?
If you have used the fast on-time metros of the far east, or their ever-so-abundant vending machines, you may recognize the tiny green card that is known as Suica (yes, our clipper cards might have learnt a thing or two from this one). Below is a "infograph" of the intended contents. Yes, all Japanese.

Evernote has achieved somewhat of a cultish status and popularity in Japan. The fan base was like the Mac Apple lovers back then. It is not too surprising that Evernote will boldly display these pictures on their American website. Japan is also associated with good modern designs, high quality, concise, and top-notch. Imagine, how people will feel, if these bills were Chinese (no offense to any one, i am just proposing a quick exercise of perspective)? It just doesn't say the same about design quality.





Friday, September 27, 2013

[Featured Guest Blog] The top 10 reasons why people stall out learning to program - by Tony, founder of Hack Reactor

Biography
Anthony Phillips is the co-founder of Hack Reactor, along Shawn Drost, Doug Calhoun and Tony's brother Marcus, who works at Twitter; they are figuring out how to teach people to be developers through intensive web development bootcamps. A short official bio:



Tony knows what it is like to be in your shoes. After spending years as a director and lead teacher of a language school in South Korea, his brother (Marcus, twitter) convinced him to quit his job and move to SF to become a software engineer.


Tony did every self-guided tutorial online, and within 4 months was able to land his first developer position. However, he quit to join the inaugural class of Dev Bootcamp. After finishing the program, he stayed with DBC to develop software, help students learn to code, and organize admissions.
Tony on Quora
Hack Reactor - JavaScript-focused web development bootcamp
Tony was kind enough to share his email at the end. Feel free to reach out to him! : ) Great opportunity

Interested in doing a guest blog post? We are excited about what you have to say, message us.

Codesum, previous posts about Hack Reactor
~ Curriculum interview and more
~ Curriculum and student projects
~ The Human Factor of Hack Reactor : instructors and time

Today's news in the beginner tech learning communities:
~ Find out more about how to get started with various technology by joining our online community ABCamp  today's content how to get started developing for CRM at Hackathons

~ Treehouse now has a class on Git
~ Code School now has a class on JavaScript
(please use our referral to support this blog)


Actual Content of the Blog Post

The top 10 reasons why people stall out learning to program

We see a lot of people who are learning to program both during our course and in the interview and pre-course periods.  Everyone finds a certain part of learning to program challenging, but we have noticed that some people fall off the interview schedule or struggle in the class and there have been some trends in the pitfalls that we see people falling into. 

I'll try to outline strategies for staying away from these pitfalls below, but some of them are just hurdles that need to be overcome with brute force.  As someone who has been through the immersive programming education process, I have found the reward of learning to program to be so great that I hope to smooth the road for people who, like myself, were mired in unnecessary anxiety.

1. “Why can’t I get this?”
           
The number one thing I discuss with struggling students is how much time they spend thinking about their status relative to the rest of the class or the rest of the world.

 In extreme cases, some people are spending half of their days dwelling with others on the bleakness of their understanding, or beating themselves up by pondering, "Maybe I can’t understand this.  Why can’t I pick this up as fast as other students?"

            There are two problems with this. The first is that it's depressing and these students tend to have a self-reinforcing downward spiral of anxiety. This can lead to people deciding not to work on programming for a particular day because it is so associated with the negative energy of 'not getting it'.

            The second is that it takes up time. Frequently I notice that people in this situation would probably be on track if they would simply take the time they spend worrying about not being on track and reallocate it to working on the code they are struggling with. This is frequently a very difficult task for this group of people because this particular line of thinking is their go-to thought when they don't get something.

            SOLUTIONS:
           
a.  At Hack Reactor, we tell people to completely rely on us to tell them if they are not doing well and need to worry.  We keep track of whether they are making good progress or not and ask that they spend zero brain cycles on figuring out if they are failing or succeeding, ahead or behind.  If you can find a mentor, have them do the same thing and check in with you once a week. I would suggest having them take on this responsibility and let yourself have a vacation from worrying.

            b.  Get a win!  Frequently people fall into this line of thinking when they are struggling with a problem.  Sometimes just putting down that problem and doing something you know you can succeed at will put you back in the right frame of mind.  Find a task in your project that you know you can ace or do some easy toy problems that you found on the Internet.  Either way, you will keep yourself from starting the downward spiral.

2. Guess-and-check debugging

            People who do not apply a process to their debugging will frequently find themselves very frustrated and assume 'she/he is not meant to program'.  One symptom of this problem is when a student cannot tell where the exact problem is, but is changing the code.  For example, sometimes students will get an error message about a method being undefined and will start to look up the correct usage of that method and tweaking it over and over again, without walking through the code and finding out where their expectation departs from reality.  Sometimes they continue to tweak their usage of the method, when in fact the problem is that the object they are calling the method on is not even the object they expected.

            It happens to be the case that applying a very procedural approach to isolating exactly where the bug is makes a programmer’s life not only easier, but more straightforward.  Building this process is something that each programmer has to do for him/herself, and there is as much art to isolating a bug as there is science, but continually working toward a process is a must for any newbie programmer.

            SOLUTION:

            a.  Force yourself to isolate bugs to a specific line, specific function, or specific area.  Only allow yourself to build a hypothesis for how to solve the bug when you have isolated it as much as you can.

3. No actual building

            One thing I hear all the time is that people are spending a lot of time learning, but not making progress.  In interviews, people will list out all the things they have done to learn on their own, and for sure these activities add up to a significant number of hours. 

However, when we actually start coding, it turns out the person cannot even write a function definition.  This comes from spending time passively taking in information without truly applying it.  It can feel like you understand what you are learning, but when you are forced to do it on your own, you may realize that you are actually completely dependent on the system you were learning from to hold up your understanding.

            This is one of the reasons that we use CodeSchool as part of our pre-course curriculum.  It has the passive learning piece that gives you the context to understand what you are doing, but then it very quickly asks you to do something with the knowledge, and you have to actually switch gears into doing mode.  The more doing the better.

            SOLUTION

Make sure your learning focuses around doing.  I suggest creating some project along side of your learning and constantly applying your learning to that project.  Do not count watching videos or doing exercises that have leading hints as progress unless they are accompanied by actually using the new concept to program/code something that works.

4. The Buddy System

            This one isn't so much a suggestion of what to avoid as it is a suggestion of what to attain. Get yourself a buddy. You will find yourself working much harder and you will be much more accountable if you simply find someone to meet with once a week and agree to having accomplished x,y,z by that time.

            Go a step further and pair with the person once or twice a week and you will see significant improvements.  Try to figure stuff out together and throw ideas back and forth. Coding can actually be an amazingly social activity and it can be very enjoyable and motivating to work on a project with another person.

5. Nail down the basics

           It can be incredibly frustrating for beginners who try to solve a problem, believe that their ideas are just not quite right, spend hours reworking their code, only to find that they were missing a parens somewhere or some similarly simple syntactic mistake. I think a lot of people start off losing efficiency in this way because they want to 'jump right in' and they don't want to lose time with less interesting tasks like memorizing syntax.
 A student ends up losing significant amounts of time trying to hunt down their minor syntactic mistakes and it detracts from the interesting stuff: conveying your ideas through code.

            SOLUTION:

            We recommend that beginners straight up memorize certain bits of syntax.  Go find a style guide somewhere on the internet and model your syntax after that style guide.  Make flash cards with 'iterate over an array called numbers' on one side and
                        `for(var i = 0; i < numbers.length; i++){
                                    //some code;
                        }`
on the other.  Then quiz yourself when you are bored or over breakfast and see if you were missing a `var` or your indentation was off and keep trying until you can write a for loop without even using your brain.  For the simple building blocks of programming (loops, function declaration, assignment, if/else, etc) it is better to know them to the point where you are on autopilot writing the skeletons of these building blocks and then filling in the meat of them afterward.

6. Trying to do things ‘the right way’

            This one is pretty self-explanatory. Many people see coding as a math problem, where there is a right way and a wrong way to any given problem or implementation. It's actually closer to writing in any other language than it is to math. There will be trade offs to any implementation and very senior engineers frequently argue over the merits of one implementation over another.

            SOLUTION:

            For beginners, just let it go.  Make the thing work how you want it to first, and then go back and refactor it to make it better. The wheel-spinning that happens when you try to conceptualize the problem perfectly before dedicating one step toward any implementation is highly inefficient.

7. Lack of a roadmap

            There are so many different things you could spend hours and hours learning. It's easy to go down rabbit holes and find yourself learning about bitwise operators when what you should be focusing on is how to put together simple programs. As you continue to add to the stack of things you have to read, more and more tabs build up in your browser. Eventually you get tired and decide to call it a day, not having even finished one of the small features you set out for yourself when you sat down. 

The skill of catching yourself right before you are about to embark on a learning adventure that will waylay you for 3-4 hours is something I have been building for a long time and still have not got a great handle on, but I get better at noticing when I'm about to depart from the task at hand. I try to stop myself when I notice it is happening.

            Another aspect of a roadmap is where to aim yourself. You could learn Backbone, Ember, or Angular, and that's just for front-end frameworks. Once you have a certain set of skills nailed down, knowing what the next logical step should be is rarely clear.

Knowing when to build a big project and really invest in it or when to iterate over a bunch of little projects to solidify your skill set is tough. Knowing which framework is going to make the most sense based on what you have learned so far is similarly difficult.

This uncertainty can lead to people spending hours on topics they need to eventually know, but don't need to know right now. It can mean they end up with a skill set with large holes in it.

            SOLUTION:

            If you have found yourself a mentor, it is a great idea to have them sit down with you and lay out a roadmap of technologies and concepts to learn and in what order.  If not, it's a great idea to go to meetups and ask developers what they think. Write it down and try to follow it as closely as possible, allowing yourself to be pulled off the plan only when it’s super fun and energizing.

8. Yak shaving

            Sometimes there are major roadblocks that beginners run into that are only tangentially related to coding. Sometimes what stops them from making progress is that their version of ruby is outdated and installing a new version is a major project because the compiler in OSX changed recently.

Sometimes they can’t get their database to set up correctly because for some reason the permissions have been set incorrectly. These problems are useful to learn how to solve and are important eventually, but I would argue that learning them can be delayed for a long time without too much damage, and that a student should avoid dealing with them as much as possible while they are a beginner.

            SOLUTION:

            Have a dev friend/mentor set up your dev environment OR go to a meetup and offer to buy dinner to the first dev you meet if they will help you set up your dev environment. I know this sounds like avoiding the problem…and it is!  Try to spend as little time doing things other than coding as you can. Later (probably when you buy your next computer) you can endeavor to set up your own dev environment.

9. Persistence and speed in debugging

            Students who are debugging a problem with their code will frequently have tried two or three strategies by the time I sit down with them.  This is great, but usually it has taken them too long to get through those two or three strategies.  They usually think that I will have some sort of intuition that they do not have and will see the problem immediately.

            However, what actually happens is the first two or three strategies that I have for how to find or fix the problem are exactly the same ones that they tried, but I do it in a fraction of the time. 

I don't think this is due to me knowing more than they do in most cases, I think it is due to both a process that I have for how to debug and a familiarity with my tools so that I can use them quickly to diagnose. 

For example, the fact that a student might use the mouse to click on the browser and then move the mouse to the refresh button and click on it to refresh their tests and then scroll down to where they have a failing test can make the whole process take up to a minute just to get some data back to help diagnose the problem!

 This process for me is as fast as 2 seconds because I use keyboard shortcuts to move to my browser and refresh. This may seem trivial, but when you add up the number of times that you need to move from browser to text editor and back, it can be very significant.

            SOLUTION:

           When debugging, do not get at all discouraged if your first hypothesis did not solve the problem or if your first five hypotheses did not solve the problem. Keep iterating and try as many different ideas per minute as you can while gathering as much data about the problem as you can. In addition to this, invest some time in shortening the loop between your text editor and your browser. Learn your tools and get to the point where you can move around your dev environment very quickly.

10. Find the thing you love

            Sometimes people give up because they wind up thinking "programming just isn't for me." It may be the case that programming isn’t for some people, but we have seen a good number of people who started off feeling that way, and then they started learning back end stuff, or they started learning front end stuff, or they started learning algorithms and their view on programming completely changed.

 Programming takes a significant down payment up front, and then there are lots of different directions you can specialize in. It's a great idea to try to find the topic that interests you most.  You may hate every minute of CSS/HTML that you have to work on, or you can stay up all night trying to make your algorithm slightly more efficient.  Once students find that thing or those things, they usually hit an inflection point and their learning accelerates and they become much happier.


I hope you found some tips in here that save you hours, days, or more of inefficiency in your adventure to learn programming. I would love to hear other pitfalls that people have observed and how they overcame them. Feel free to email me at tony@hackreactor.com for clarification on any of these points or if you have questions about your own adventure learning to code.

Tuesday, September 17, 2013

Hacking the Learning Curve, Deep and Effective Learning applied to learn Web Development

Myth or Truth: you have to be good at Mathematics to learn to program? Or use technology? Join our San Francisco meetup meeting to find out!

Myth or Truth: you have to be a uber genius to learn how to code? Or use technology? Join our San Francisco meetup meeting to find out!

Myth or Truth: I don't like my high school / college science classes, I must hate computer science and technology? But you love iPhone! Join our San Francisco meetup meeting to find out!

Myth or Truth: I love Mindcraft, but I can't code, so I can never write my own game, truth or myth? Join our San Francisco meetup meeting to find out!

This will be the last post about the Google Hangout presentation on Wednesday about Getting Started with Web Development, hack the learning curve. It's an initiative from the online community that I am starting. ABCamp

I was fortunate to meet many beginners in technology, through Codecademy.com, Crunchies, Women Who Code (San Francisco), Girls Develop It and social media. I was able to collect qualitative colloquial research data from them to understand the challenges, obstacles and the environment. Thanks to "bad" influence from Freakonomics, I am determined to use my economics background to solve and hack some of these issues. I am borrowing cognitive power from Scientific American Mind too.

During this Google Hangout presentation, I want to cite challenges, solutions, motivation, and learning strategies that I have collected so far, share with beginners. The goal is to make learning web development basics more fun, less daunting, have more affinity with their current career, so they don't have to take a jump like I did from consulting career, they can pursue both a business and a technical career. It is especially important for me to present how to use technology to enhance job seekers' skills and opportunities to get hired, improve the productivities of those on the job. It's a win win. I have seen many qualified candidates, missing just one technical stroke when they are almost able to get a great job. I have seen many older employees or employees who have been loyal to their field missing out on the overall job opportunity. They get locked in, pigeon holed, then one day, they may even lose their only job. That's unfortunate, and not the way to go.

Check out the meetup here, remember to sign up for the Google Hangout via Google forms. This meetup is only hosted live streamed, not in-person.
http://meetu.ps/208sPg

Sounds like a lot to cover but actually it is simple. There are a lot of tutorials out there, I just need to show people what are the shortcuts. Then they can always seek experts in each field. Getting started is the hardest.






React UI, UI UX, Reactstrap React Bootstrap

React UI MATERIAL  Install yarn add @material-ui/icons Reactstrap FORMS. Controlled Forms. Uncontrolled Forms.  Columns, grid