The following presentation
is based purely on anecdotal evidence. Please consult your...self.
5 Places Michelle Associates With
"Extremely shocking."
10 Things Michelle Believed in College
#3 may surprise you.
9. Most problems should be solved with things I learned in my [AI, networking] class.
Problem: Add auto-define functionality to
Spanish flash
cards.
College solution: I'll use existing Spanish flash cards, strip
punctuation and definite articles and normalize letter casing and figure out
which definitions of words are the best based on occurrence and usage of the
card.
Our solution: Buy a Spanish dictionary.
Problem: I want to find the best, cheapest flight
route for free.
College solution: I know how to build an efficient crawler! I'll crawl the
internet for flights, somehow generate a custom scraper for each flight site, then use A* search with heuristics. As for speed...I'll
optimize my code as much as possible.
Google Flights' solution: Forget cheapest path--buy all the data, then throw servers at the problem and cache all the paths.
True story: git rage
git add .
git commit -am "lol"
git push --force
Try: Write a commit message for the following diff.
-var arr = ['stanford'];
+var schools = ['stanford', 'berkeley'];
git commit -am "add berkeley to array"
git commit -am "Update array of schools.
- Rename 'arr' to 'schools' to better describe what it is.
- Add Berkeley to the array, or they'll be sad."
7. I don't want to join a startup or do my own thing because I want to gain experience at a big company first.
"there are 10x fewer people who can scope well vs who can implement a spec well"
- Patrick Collison, this morning on IRC.
"god it's not even grammatical" - in response to this.
6. [testing, design docs, pair programming] is [silly, a pain, dumb].
ノ( ゜-゜ノ)
"Patience, young grasshopper"
5. * is [silly, a pain, dumb].
* is [silly, a pain, dumb] because ______.
In my opinion, * is [silly, a pain, dumb] because ______.
4. Optimization is the most important thing we should keep in mind. Optimization means less and faster.
var array = [1, 2, 3, 4, ..., 1000000000000];
for (var i = 0, len = array.length; i < len; i += 1) {
console.log(array[i]);
}
vs.
var array = [1, 2, 3, 4, ..., 1000000000000];
array.forEach(function(el) {
console.log(el);
});
assert(!something_exists || flag_set, 'Oh no! :(')
vs.
if something_exists && !flag_set
assertion_failed('Oh no! :(')
end
Style and readability are often more important than optimization.
3. Abstraction is simple! Cars and Garages.
Problem: Model a user system.
Solution: Have a "user" model with a username/password.
Problem: Now model friendships between users.
Solution: A "friendship" edge between users.
Problem: Now model posts and +1s of
posts.
Solution: A new "post" model, which has a list of users who
liked it and references the user who posted it.
Problem: Now what about pages? Are they a type
of user? Or are users a type of page? Or are they posts? Pages need to keep
track of likes, but also have a profile, and are owned by a user.
Problem: And what about organizations? I want my
user to be able to be in multiple organizations, and my organization to have
many users and posts.
Problem: Wait, but what about shared pages? I want
multiple users to be able to manage a page.
2. I'm going to get fired because I'm not as productive as my co-workers.
1. Projects can be finished.
Unpopular projects can be finished. You don't want your project to be finished.
0. The most important thing I learned in school was how to code.
Thanks for coming!
@michelle on Github
@hazelcough on Twitter
Thanks for listening, everyone. I'd love to see what you build!