the discussion on HN</a>!</p>\n<p><strong>A Note on Math Anxiety</strong><br />\nIt turns out that a lot of people — including engineers — are scared of math. To begin, I want to address the myth of “being good at math.”</p>\n<p>The truth is, people who are good at math have lots of practice doing math. As a result, they’re comfortable being stuck while doing math. A student’s mindset, as opposed to innate ability, is the primary predictor of one’s ability to learn math (as shown by <a href=https://www.ycombinator.com/"https://www.theatlantic.com/education/archive/2013/10/the-myth-of-im-bad-at-math/280914//">recent studies</a>).</p>\n<p>To be clear, it will take time and effort to achieve this state of comfort, but it’s certainly not something you’re born with. The rest of this post will help you figure out what level of mathematical foundation you need and outline strategies for building it.</p>\n<h2>Getting Started</h2>\n<p>As soft prerequisites, we assume basic comfortability with <a href=https://www.ycombinator.com/"http://cs229.stanford.edu/section/cs229-linalg.pdf/">linear algebra/matrix calculus</a> (so you don’t get stuck on notation) and introductory <a href=https://www.ycombinator.com/"http://cs229.stanford.edu/section/cs229-prob.pdf/">probability. We also encourage basic programming competency, which we support as a tool to learn math in context. Afterwards, you can fine-tune your focus based on the kind of work you’re excited about.</p>\n<p><strong>How to Learn Math Outside of School</strong> I believe the best way to learn math is as a full-time job (i.e. as a student). Outside of that environment, it’s likely that you won’t have the structure, (positive) peer pressure, and resources available in the academic classroom.</p>\n<p>To learn math outside of school, I’d recommend study groups or lunch and learn seminars as great resources for committed study. In research labs, this might come in the form of a reading group. Structure-wise, your group might walk through textbook chapters and discuss lectures on a regular basis while dedicating a Slack channel to asynchronous Q&amp;A.</p>\n<p>Culture plays a large role here — this kind of “additional” study should be encouraged and incentivized by management so that it doesn’t feel like it takes away from day-to-day deliverables. In fact, investing in peer-driven learning environments can make your long-term work more effective, despite short-term costs in time.</p>\n<p><strong>Math and Code</strong><br />\nMath and code are highly intertwined in machine learning workflows. Code is often built directly from mathematical intuition, and it even shares the syntax of mathematical notation. In fact, modern data science frameworks (e.g. <a href=https://www.ycombinator.com/"http://www.numpy.org//">NumPy) make it intuitive and efficient to translate mathematical operations (e.g. matrix/vector products) to readable code.</p>\n<p>I encourage you to embrace code as a way to solidify your learning. Both math and code depend on precision in understanding and notation. For instance, practicing the manual implementation of loss functions or optimization algorithms can be a great way to truly understanding the underlying concepts.</p>\n<p>As an example of learning math through code, let’s consider a practical example: implementing backpropagation for the ReLU activation in your neural network (<a href=https://www.ycombinator.com/"https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b/">yes, even if Tensorflow/PyTorch can do this for you!</a>). As a brief primer, backpropagation is a technique that relies on the chain rule from calculus to efficiently compute gradients. To utilize the chain rule in this setting, we multiply upstream derivatives by the gradient of ReLU.</p>\n<p>To begin, we visualize the <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/Rectifier_(neural_networks)/">ReLU activation, defined:</p>\n<p><a href=https://www.ycombinator.com/"https://ghost.prod.ycinside.com/content/images/wordpress/2018/08/Math-for-ML-1.png/">\"Math\"Mathhere.

/n

Math for Building Machine Learning Products</h2>\n<p>To inform this section, I spoke to machine learning engineers to figure out where math was most helpful in debugging their systems. The following are examples of questions that engineers found themselves answering with mathematical insights. If you haven’t seen them, no worries— the hope is that this section will provide some context into specific kinds of questions you might find yourself answering!</p>\n<ul>\n<li>What clustering method should I use to visualize my high-dimensional customer data?<br />\n○ Approach: <a href=https://www.ycombinator.com/"https://stats.stackexchange.com/questions/238538/are-there-cases-where-pca-is-more-suitable-than-t-sne/">PCA vs. tSNE</a> </li>\n<li>How should I calibrate a threshold (e.g. confidence-level 0.9 vs. 0.8?) for “blocking” fraudulent user transactions?<br />\n○ Approach: <a href=https://www.ycombinator.com/"http://scikit-learn.org/stable/modules/calibration.html/">Probability calibration</a> </li>\n<li>What’s the best way to characterize the bias of my satellite data to specific regions of the world (Silicon Valley vs. Alaska)?<br />\n○ Approach: Open research question. Perhaps, aim for demographic <a href=https://www.ycombinator.com/"http://blog.mrtz.org/2016/09/06/approaching-fairness.html/">parity?\n\n

Generally, statistics and linear algebra can be employed in some way for each of these questions. However, to arrive at satisfactory answers often requires a domain-specific approach. If that’s the case, how do you narrow down the kind of math you need to learn?</p>\n<p><strong>Define Your System</strong><br />\nThere is no shortage of resources (e.g. <a href=https://www.ycombinator.com/"http://scikit-learn.org/stable//">scikit-learn for data analysis, <a href=https://www.ycombinator.com/"https://keras.io//">keras for deep learning) that will help you jump into writing code to model your systems. In doing so, try to answer the following questions about the pipeline you need to build:</p>\n<ol>\n<li>What are the inputs/outputs of your system? </li>\n<li>How should you prepare your data to fit your system? </li>\n<li>How can you construct features or curate data to help your model generalize? </li>\n<li>How do you define a reasonable objective for your problem?</li>\n</ol>\n<p>You’d be surprised — defining your system can be hard! Afterwards, the engineering required for pipeline-building is also non-trivial. In other words, building machine learning products requires significant amounts of heavy lifting that don’t require a deep mathematical background.</p>\n<p><strong>Resources</strong><br />\n• <a href=https://www.ycombinator.com/"https://developers.google.com/machine-learning/guides/rules-of-ml//">Best Practices for ML Engineering</a> by Martin Zinkevich, Research Scientist at Google</p>\n<p><strong>Learning Math as You Need It</strong><br />\nDiving headfirst into a machine learning workflow, you might find that there are some steps that you get stuck at, especially while debugging. When you’re stuck, do you know what to look up? How reasonable are your weights? Why isn’t your model converging with a particular loss definition? What’s the right way to measure success? At this point, it may be helpful to make assumptions about the data, constrain your optimization differently, or try different algorithms.</p>\n<p>Often, you’ll find that there’s mathematical intuition baked into the modeling/debugging process (e.g. selecting loss functions or evaluation metrics) that could be instrumental to making informed, engineering decisions. These are your opportunities to learn!</p>\n<p>Rachel Thomas from <a href=https://www.ycombinator.com/"http://www.fast.ai//">Fast.ai is a proponent of this “on-demand” method — while educating students, she found that it was more important for her deep learning students to get far enough to become excited about the material. Afterwards, their math education involved filling in the holes, on-demand.</p>\n<p><strong>Resources</strong><br />\n• Course: <a href=https://www.ycombinator.com/"http://www.fast.ai/2017/07/17/num-lin-alg//">Computational Linear Algebra</a> by fast.ai<br />\n• YouTube: <a href=https://www.ycombinator.com/"https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw/">3blue1brown: Essence of <a href=https://www.ycombinator.com/"https://www.youtube.com/watch?v=kjBOesZCoqc&amp;list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab\%22>Linear Algebra</a> and <a href=https://www.ycombinator.com/"https://www.youtube.com/watch?v=WUvTyaaNkzM&amp;list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr\%22>Calculus
Linear Algebra Done Right</a> by Axler<br />\n• Textbook: <a href=https://www.ycombinator.com/"https://web.stanford.edu/~hastie/ElemStatLearn//">Elements of Statistical Learning</a> by Tibshirani et al.<br />\n• Course: <a href=https://www.ycombinator.com/"http://cs229.stanford.edu/syllabus.html#opt\">Stanford’s CS229 (Machine Learning) Course Notes</a></p>\n<h2>Math for Machine Learning Research</h2>\n<p>I now want to characterize the type of mathematical mindset that is useful for research-oriented work in machine learning. The cynical view of machine learning research points to plug-and-play systems where more compute is thrown at models to squeeze out higher performance. In some circles, <a href=https://www.ycombinator.com/"https://arxiv.org/ftp/arxiv/papers/1801/1801.00631.pdf/">researchers remain skeptical</a> that empirical methods lacking in mathematical rigor (e.g. certain deep learning methods) can carry us to the holy grail of human-level intelligence.</p>\n<p>It’s concerning that the research world might be building on existing systems and assumptions that don’t extend our fundamental understanding of the field. Researchers need to contribute primitives— new, foundational building blocks that can be used to derive entirely new insights and approaches to goals in the field. For instance, this might mean rethinking building blocks like Convolutional Neural Networks for image classification, as Geoff Hinton, “the <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/Geoffrey_Hinton/">Godfather of Deep Learning,” does in his recent Capsule Networks <a href=https://www.ycombinator.com/"https://arxiv.org/pdf/1710.09829v1.pdf/">paper.

/n

To make the next leaps in machine learning, we need to ask fundamental questions. This requires a deep mathematical maturity, which Michael Nielsen, author of the Deep Learning book, described to me as “playful exploration.” This process involves thousands of hours of being “stuck”, asking questions, and flipping problems over in pursuit of new perspectives. “Playful exploration” allows scientists to ask deep, insightful questions, beyond the combination of straightforward ideas/architectures.</p>\n<p>To state the obvious— in ML research, it is still impossible to learn <em>everything</em>! To properly engage in “playful exploration” requires that you follow your interest, rather than worrying about the hottest new result.</p>\n<p>ML research is an incredibly rich field of study with pressing problems in fairness, interpretability, and accessibility. As true across all scientific disciplines, fundamental thinking is not an on-demand process— it takes patience to be able to think with the breadth of high-level mathematical frameworks required for critical problem solving.</p>\n<p><strong>Resources</strong><br />\n• Blog: <a href=https://www.ycombinator.com/"https://www.maa.org/external_archive/devlin/devlin_10_00.html/">Do SWEs need mathematics?</a> by Keith Devlin<br />\n• Reddit Thread: <a href=https://www.ycombinator.com/"https://www.reddit.com/r/MachineLearning/comments/73n9pm/d_confession_as_an_ai_researcher_seeking_advice//">Confessions of an AI Researcher</a><br />\n• Blog: <a href=https://www.ycombinator.com/"http://www.people.vcu.edu/~dcranston/490/handouts/math-read.html/">How to Read Mathematics</a> by Shai Simonson and Fernando Gouvea<br />\n• Papers: <a href=https://www.ycombinator.com/"https://papers.nips.cc/book/advances-in-neural-information-processing-systems-30-2017/">NIPS and <a href=https://www.ycombinator.com/"http://proceedings.mlr.press/v70//">ICML recent conference papers<br />\n• Essay: <a href=https://www.ycombinator.com/"https://www.maa.org/external_archive/devlin/LockhartsLament.pdf/">A Mathematician’s Lament</a> by Paul Lockhart<sup id=\"footnoteid1\"><a href=https://www.ycombinator.com/"#footnote1\">1</a></sup></p>\n<p><strong>Democratizing Machine Learning Research</strong><br />\nI hope that I haven’t painted “research math” as too esoteric, because the ideas formulated using math should be presented in intuitive forms! Sadly, many machine learning papers are still <a href=https://www.ycombinator.com/"https://arxiv.org/abs/1807.03341/">rife with complex and inconsistent terminology</a>, leaving key intuition difficult to discern. As a student, you can do yourself and the field a great service by attempting to translate dense papers into consumable chunks of intuition, via blog posts, tweets, etc. You might even take examples from <a href=https://www.ycombinator.com/"http://distill.pub/">distill.pub as an example of a publication focused on offering clear explanations of machine learning research. In other words, take the demystification of technical ideas as a means towards “playful exploration”— your learning (and machine learning Twitter) will thank you for it!</p>\n<h2>Takeaways</h2>\n<p>In conclusion, I hope that I’ve provided a starting point for you to think about your math education for machine learning.</p>\n<ul>\n<li>Different problems require different levels of intuition, and I would encourage you to figure out what your objectives are in the first place. </li>\n<li>If you’re hoping to build products, seek peers and study groups through problems and motivate your learning by diving into the end-goal. </li>\n<li>In the research world, broad mathematical foundations can give you the tools to push the field forward by contributing new, fundamental building blocks. </li>\n<li>In general, math (especially in research paper form) can be intimidating, but getting stuck is a huge part of the learning process. </li>\n</ul>\n<p>Good luck!</p>\n<p><strong>Notes</strong><br />\n<b id=\"footnote1\">1.</b> A rather pointed criticism about math education that details “playful exploration.” But I suspect that Lockhart would disagree with the thesis of this post &#8212; that math should be used for anything <em>but</em> fun!.<a href=https://www.ycombinator.com/"http://cs229.stanford.edu/section/cs229-prob.pdf/">↩

/n
bitcoin white paper</a> and <a href=https://www.ycombinator.com/"https://github.com/ethereum/wiki/wiki/White-Paper/">Ethereum white paper</a>.</p>\n<p>Our goal in this post is to:<br />\n1&#46; Explain how blockchain development differs from existing development paradigms<br />\n2&#46; Provide context for the opportunities and challenges in this space<br />\n3&#46; Point you to resources that will give you the foundation to start developing in this new paradigm</p>\n<h2>Paradigm Shifts for Developers</h2>\n<p>Internet applications benefit from network effects because they maintain centralized silos of information. Built upon shared, open protocols (e.g. TCP/IP, HTTP), companies like Yelp, Facebook, and Amazon benefit from having all of their users &#8211; and, as a result, data &#8211; in one place. This way they not only have an advantage over competitors with less data but also complete control over the way they monetize the data. <a href=https://www.ycombinator.com/"http://www.usv.com/blog/fat-protocols/">In the words</a> of crypto investor Joel Monegro, the current Internet paradigm captures most of its value through <em>fat</em> application layers, whereas the <em>thin</em>, underlying communication protocols capture minimal value.</p>\n<p>Alternatively, the distribution of value in the blockchain paradigm can be described with <em>fat</em> protocols and a <em>thin</em> application layer. This paradigm shift is possible due to the innovation of cryptographic tokens, which are described well by Albert Wenger of USV:</p>\n<p>“Historically the only way to make money from a protocol was to create software that implemented it and then try to sell this software (or more recently to host it)&#8230; With [cryptographic] tokens, however, the creators of a protocol can ‘monetize’ it directly and will in fact benefit more as others build businesses on top of that protocol.”</p>\n<p>Previously, the creators of open communication protocols for the Internet, largely <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/DARPA/">DARPA researchers and non-profit contributors, could not align financial incentives with protocol development. In contrast, protocol creators today can issue “tokens”, like Bitcoin and Ethereum, that represent the value of their decentralized protocols.</p>\n<p><a href=https://www.ycombinator.com/"http://www.usv.com/blog/fat-protocols/">Monegro believes</a> that this paradigm shift affects the way that developers should think about their applications: &#8220;The combination of shared open data with an incentive system that prevents “winner-take-all” markets changes the game at the application layer and creates an entire new category of companies with fundamentally different business models at the protocol layer.”</p>\n<h2>Ethereum</h2>\n<p>We’ve come to the understanding that in the blockchain paradigm, developers can capture value through protocol innovation. To continue our discussion, we review how blockchain technologies evolved to eventually cater to developers. Eight years ago, Bitcoin was conceived as a virtual currency that removed the need for centralized financial systems. Initially, developers actually tried building applications upon the Bitcoin blockchain by storing data in the blockchain itself, but it turned out to be pretty inefficient (as described in <a href=https://www.ycombinator.com/"http://joel.mn/post/104755282493/the-shared-data-layer-of-the-blockchain/">another old Joel post</a>!). One of these developers, Vitalik Buterin, was frustrated by Bitcoin’s immobilism and risk averse culture for adopting new developer-friendly features. So, he built his own platform, Ethereum.</p>\n<p>While Bitcoin was originally intended to serve as a new medium for financial store of value, Ethereum was invented to serve as a Turing complete developer environment. In Ethereum, developers write smart contracts in the Solidity programming language, and those smart contracts are run in the Ethereum Virtual Machine (EVM). Here, we observe an opportunity for developers to fork and implement their own blockchains to serve different purposes. To do so, however, would require rekindling developer support and network effects that existing blockchain technologies had previously achieved. Today, building on top of existing networks like Ethereum allows developers to become stakeholders in not only their own applications, but also the underlying protocol.</p>\n<h2>Dapps, App Coins, and Smart Contracts</h2>\n<p>Today’s blockchain developers often build decentralized applications, or dapps, on top of existing protocols to address specific markets and end users. In doing so, developers can issue <a href=https://www.ycombinator.com/"https://blog.0xproject.com/the-difference-between-app-coins-and-protocol-tokens-7281a428348c/">tokens, or app coins</a>, that are used to execute certain “functions” of the dapps themselves, not unlike Chuck-E-Cheese tokens are used for specific purposes like skeeball. These “functions” are the “smart contracts” that promise a dapp’s services in return for a digital asset, thereby removing the need for a middle-man to ensure the transaction. In other words, smart contracts promise that for one Chuck-E-Cheese token, you can exchange one game of skeeball.</p>\n<p>As the functionality of the dapp becomes more sought after, the fixed number of app coins increase in value as a function of supply and demand. In other words, if it turns out that the Chuck-E-Cheese experience is truly remarkable and highly-demanded, the fixed supply of tokens become more valuable. This is the underlying principle that informs all ICOs (initial coin offerings), in which dapp developers solicit investment by offering app coins in return for capital to fund their projects.</p>\n<p>But wait, you might ask, “Why not use an existing token as opposed to issuing your own, dapp-specific token in the first place?” Dapp-specific app coins enable small-scale economies that facilitate the application’s purpose. These <a href=https://www.ycombinator.com/"https://ycombinator.wpengine.com/the-token-effect//">tokens serve as scarce resources that can be regulated and governed to more closely align with the functionality of a dapp. This is where Ethereum comes back into the picture &#8212; with Ethereum, developers can very easily issue their own tokens for the specified use of their own dapps.</p>\n<h2>Early Opportunities</h2>\n<p>With an understanding of the underlying mechanisms of dapps, it’s important to think carefully about how decentralization would benefit your end users. Rather than jumping into a list of side projects, swapping relational databases for blockchain implementations, we urge you to consider the benefits of decentralization. For instance, <a href=https://www.ycombinator.com/"https://augur.net//">Augur creates prediction markets by relying on decentralized participants to make correct predictions because they share financial incentives.</p>\n<p>At a meta-level, there are also opportunities for innovation in the developer stack. Many blockchain developers liken the maturity of the blockchain tools and frameworks to those of the web during early days of the Internet. We spoke to Ben Yu of <a href=https://www.ycombinator.com/"https://streamtoken.net//">Stream, who described this as a new opportunity for developers: “There is extremely low-hanging fruit in making the field more accessible, and a lot of technical infrastructure needs to be built up to bring blockchain from 1994, in internet terms, to 2017.”</p>\n<p>With the innovation of the blockchain, many have identified the opportunity to build a new, decentralized web stack that does not depend on centralized government or corporate entities. The traditional web stack is composed of building blocks like TCP/IP, DNS, databases, web servers, authentication systems and CDNs, and we are in the midst of replicating these components by using platforms like Ethereum as the base layer.</p>\n<h2>Challenges of Immutability</h2>\n<p>Unfortunately, a technology that is likened to the early iterations of JavaScript almost certainly comes with challenges, the most apparent of which is related to the immutability of new protocols. Developers cannot change the underlying blockchain or higher-level smart contracts. Libraries or contracts cannot be easily versioned. The recent Parity bug that <a href=https://www.ycombinator.com/"http://mashable.com/2017/11/08/ethereum-parity-bug//">locked 150MM USD in funds</a>, among many other similar incidents, reminds us of the urgent need to build “future-proof” architectures.</p>\n<p>Brandon Millman, an <a href=https://www.ycombinator.com/"http://0xproject.com/">engineer at 0x</a>, described how blockchain immutability affects the way he thinks about security concerns: “Being in this space means being a lot more careful, especially because people&#8217;s money is at risk. Part of the benefit of the blockchain paradigm is that if you&#8217;re holding onto your private key, it&#8217;s hard for people to take money from you, but a lot of scams are getting you to willingly send your money to the wrong place instead of reaching in to steal money from your wallet.”</p>\n<p>Developers, especially those accustomed to the fast pace of the startup world, are forced to consider tradeoffs between speed and security. As Ben Yu of Stream describes, “You have to move extremely fast, because the space is going enormously fast, but you can&#8217;t move fast and break things, which is the traditional philosophy for development being done now. If you break things, you lose hundreds of millions of dollars.”</p>\n<p>Building on the blockchain requires a different level of planning. Developers can no longer apply hot-fixes or overnight patches, because they no longer have centralized control over entire systems. Instead, introducing system changes often involves hard forking entire protocols, or in some cases, providing separate sources for protocol parameters that aren’t tied directly into the blockchain.</p>\n<h2>Ethereum’s Limitations</h2>\n<p>Beyond the general challenges of immutability, Ethereum includes several limitations that blockchain developers might encounter. For one, Ethereum is unable to access real time data from outside the blockchain. Developers need to rely on trusted third party data providers, <a href=https://www.ycombinator.com/"http://www.oraclize.it//">called oracles</a>, to provide smart contracts with outside information like weather, random numbers, or currency values.</p>\n<p>Moreover, Ethereum’s specification prevents real-time computations. Processing of block transactions takes upwards of 15 seconds (which is lightning fast compared to Bitcoin’s 10 minutes). As a result, developers need to write asynchronous code with front-end frameworks that can update states accordingly (like React).</p>\n<p>With Ethereum, you are also tied to paying for your transactions by the operation with gas that translates into Ethereum’s ether. As a result, using the current version of Solidity, you could very feasibly find yourself hitting a transaction limit if the computation you intend to perform is too expensive (like verifying checkmate in a <a href=https://www.ycombinator.com/"https://medium.com/@graycoding/lessons-learned-from-making-a-chess-game-for-ethereum-6917c01178b6/">game of chess</a>). As a result, on-chain computations because become costly in terms of money and network bandwidth. There are interesting alternatives like <a href=https://www.ycombinator.com/"https://truebit.io//">Truebit to perform more intensive computation off-chain.</p>\n<h2>Getting Started</h2>\n<p>In general, it can certainly feel overwhelming getting into this space. It’s an interdisciplinary field, spanning domains of economics, game theory, finance, computer science, math, cryptography, and more. However, that also means that there’s a lot of surface area to contribute.</p>\n<p>Brandon of 0x recommends diving into areas where you have some interest or experience instead of trying to learn everything at once: “If you’ve done JS development beforehand, there are a lot of JS libraries that you can contribute to. While you will definitely need to know [how everything fits together] eventually, you don&#8217;t need to feel like you need to take an entire course initially.”</p>\n<p>In the spirit of decentralization, most of the code for projects on the blockchain are also available through open-source. There are a number of good resources to get your hands dirty:</p>\n<ul>\n<li>The <a href=https://www.ycombinator.com/"http://solidity.readthedocs.io/en/latest//">official Solidity docs</a> are a good place to start. </li>\n<li>The <a href=https://www.ycombinator.com/"http://truffleframework.com//">Truffle Framework</a> is one of the best solidity frameworks. </li>\n<li>See how tokens and token sales are developed in the <a href=https://www.ycombinator.com/"https://github.com/OpenZeppelin/zeppelin-solidity/">zeppelinOS repo</a>, one of the most trusted libraries to build dApps. </li>\n<li>Blockgeeks also provides an in-depth <a href=https://www.ycombinator.com/"https://blockgeeks.com/guides/ethereum-token//">Ethereum token guide</a> with code samples and high-level concepts. </li>\n<li>You can even learn from Crypto Kitties and <a href=https://www.ycombinator.com/"https://medium.com/loom-network/how-to-code-your-own-cryptokitties-style-game-on-ethereum-7c8ac86a4eb3/">create your own digital game on the blockchain</a>. </li>\n</ul>\n<p>In addition, the developer communities are remarkably receptive and helpful. Check out:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"https://www.reddit.com/r/ethereum//">/r/ethereum </li>\n<li><a href=https://www.ycombinator.com/"https://www.reddit.com/r/ethdev//">/r/ethdev </li>\n<li><a href=https://www.ycombinator.com/"https://blockgeeks.com//">https://blockgeeks.com//n/n

If you learn primarily by coding up your own projects, here are some ideas to get started:</p>\n<ul>\n<li>Build your own wallet. It can be a be a web, mobile app or desktop app. </li>\n<li>Create your own ERC-20 token and deploy it on the test net. </li>\n<li>Modify crypto kitties (dogs, tanks, zombies&#8230;) and deploy it on the test net.</li>\n</ul>\n<h2>Looking Forward</h2>\n<p>In its current state, yes, blockchain development is messy. No, there aren’t clean frameworks and tools analogous to those that exist for modern web development. But why not see the blockchain’s nascent state as an opportunity to impact a paradigm-shifting technology?</p>\n<p>On the blockchain, you don’t need to deploy any centralized servers, which means that there’s no single point of failure. If your whole stack is decentralized, there is no trusted third party involved making it censorship resistant, and your database is publicly verifiable. As the new paradigm offers opportunity to publicly share data, we observe a supreme advantage to decentralizing databases. This is the future we’re building towards on the Blockchain— where information and power are distributed systematically by cutting out the middleman.</p>\n<p><a href=https://www.ycombinator.com/"https://news.ycombinator.com/item?id=16107597\%22>Comment on Hacker News</a>.</p>\n<hr />\n<p><em>Thanks to Ben Yu (Stream) and Brandon Millman (0x) for lending their time to be interviewed, and thanks to Niharika Bedekar, Craig Cannon, Claire Shu for reading drafts of this post.</em></p>\n<!--kg-card-end: html-->","comment_id":"1101697","feature_image":null,"featured":false,"visibility":"public","email_recipient_filter":"none","created_at":"2018-01-09T03:28:17.000-08:00","updated_at":"2022-02-03T16:40:50.000-08:00","published_at":"2018-01-09T03:28:17.000-08:00","custom_excerpt":"If you’re here, we assume that you’re a developer/hacker who’s intrigued by the blockchain. You’re convinced that you understand how it works and now you’re itching to figure out what the blockchain means for you and your developer skill set.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"authors":[{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"/blog/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"}],"tags":[{"id":"61fe29efc7139e0001a7118f","name":"Blockchain","slug":"blockchain","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/blockchain/"},{"id":"61fe29efc7139e0001a7118d","name":"Paths","slug":"paths","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/paths/"}],"primary_author":{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"https://ghost.prod.ycinside.com/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"},"primary_tag":{"id":"61fe29efc7139e0001a7118f","name":"Blockchain","slug":"blockchain","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/blockchain/"},"url":"https://ghost.prod.ycinside.com/building-for-the-blockchain/","excerpt":"If you’re here, we assume that you’re a developer/hacker who’s intrigued by the blockchain. You’re convinced that you understand how it works and now you’re itching to figure out what the blockchain means for you and your developer skill set.","reading_time":8,"access":true,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"61fe29f1c7139e0001a7197b","uuid":"a3c57199-e345-4326-999d-e7bd632aa6d8","title":"How to Get into VR","slug":"how-to-get-into-vr","html":"<!--kg-card-begin: html--><p>This is the second edition of <a href=https://www.ycombinator.com/"https://ycombinator.wpengine.com/category/paths//">Paths, a series outlining emerging technologies with clear steps on how to get started in each field.</p>\n<p>This series was designed with makers and aspiring entrepreneurs in mind. We talked to college students interested in engineering, business, and technology to figure out what resources would be most helpful to them. Then, we reached out to experts from academia, industry, or some combination of the two.</p>\n<p>We’re excited about the potential for this series to evolve, and we’d love to hear your feedback at <a href=https://www.ycombinator.com/blog/author/\"mailto:macro@ycombinator.com\">Macro@YCombinator.com. What would you like to learn about next?</p>\n<p>Today, we’re going to talk about VR.</p>\n<hr />\n<p>Science fiction writers and futurists dreamt up virtual reality (VR) decades ago, and hackers have been attempting to build it ever since. Today, the technology is rapidly advancing with the promise to shift modern computing into a new paradigm, not unlike smartphones did one decade ago.</p>\n<p>Some people are skeptical about whether VR will stick around, because the technology is still very much plagued by issues like high cost, unwieldiness, and <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/Simulator_sickness/">simulator sickness</a>. However, many are excited about VR’s potential to become the most intimate human-computer interface that has ever existed.</p>\n<p>In this post, we’ll explore why it’s an exciting time to get into VR now&#8211;both for consumers and developers. Then, we’ll discuss how a wide range of interdisciplinary fields have pushed the technology forward. Lastly, we’ll identify concrete ways in which you can get started.</p>\n<p><strong>Why Now?</strong><br />\n<em>“VR is not a new technology. It just became accessible.” &#8211; Jeremy Bailenson (Stanford VHIL)</em></p>\n<p>VR technology has existed for many years, in many forms, from stereoscopes <sup id=\"footnoteid1\"><a href=https://www.ycombinator.com/"#footnote1\">1</a></sup> to flight simulators. Academics and researchers in fields like engineering and physics have been working to make the technology feasible. In the last few decades, head mounted displays (HMDs) have emerged as the standard for delivering VR experiences.</p>\n<p>During the late 90s/early 2000s, there were several attempts to bring VR to massive audiences. Sega announced (but never released) a headset. Nintendo launched Virtual Boy, a video game console that included a monochrome HMD. Nevertheless, these technologies were held back by a lack of visual fidelity and insufficient processing power.</p>\n<p>Only recently have developments in VR become more visible to the public eye. CPU/GPUs have reached a point where they can provide high-fidelity, immersive experiences for reasonable prices. Smartphones have enabled mobile VR as cheaper and more accessible options that don’t require you to be tethered to high-end computer. As more people have an opportunity to try VR, it’s becoming increasingly clear how the technology might reach consumers in a big way.</p>\n<p><strong>Virtual Reality and Augmented Reality (AR) are Siblings</strong><br />\nVR entails simulated worlds, and AR entails overlaid information in the real world. We can see the difference more clearly if we take the application of surgery as an example. VR can be used to simulate training for surgeons, while AR can be used to superimpose instructions and diagnostics on a live view in real-time surgeries.</p>\n<p>Some people believe that virtual reality is a stepping stone to augmented reality. While there exist larger technological leaps necessary to achieving high-fidelity AR, the strides made in VR development can help push us there.</p>\n<p>In this post, we avoid discussing whether VR or AR is better, more promising, or more applicable. Other people have speculated on this, so instead we will discuss their joint potential and respective engineering challenges. At this point in time, there is a wonderful opportunity to start developing for both platforms.</p>\n<p><strong>VR is a Concrete Engineering Problem</strong><br />\nThere is no such thing as VR&#8230; only tracking, rendering, and display. Tracking is the process of recording the user’s location and orientation in 3D space. Rendering is the process of constructing the appropriate image for a user. Display refers to the fidelity with which the hardware can produce the rendered image.</p>\n<p>We need to solve each of these problems well enough that a user doesn’t feel sick or uncomfortable. People experience simulator sickness when cues for self-motion from the visual and vestibular systems don’t match (the same reason for car/sea-sickness).</p>\n<p>This is a hard problem. For reference, traditional PC games render at a resolution of 1920&#215;1080 at a refresh rate 60Hz. The Oculus Rift runs at 2160&#215;1200 at 90Hz (over two displays&#8211; one for each eye).<sup id=\"footnoteid2\"><a href=https://www.ycombinator.com/"#footnote2\">2</a></sup> In other words, current VR solutions need to effectively render at 1080p, for two eyes, at a much higher refresh rate than PC games. <em>At the same time</em>, the processor needs to track a user’s location and provide that information to the headset with as little latency as possible.</p>\n<p>Even if those specs are achieved, it’s less than ideal! VR displays have yet to cover the full human field of view, and we can certainly improve rendering quality to reach the fidelity of modern retina displays. All together, this suggests that we need 8K rendering for VR!</p>\n<p>For now, we have the interesting engineering problem of exploiting limitations in the human visual system to optimize bandwidth and compute power. (e.g. Our peripheral vision is worse than our central vision&#8211; so why not try <a href=https://www.ycombinator.com/"http://www.roadtovr.com/nvidia-perceptually-based-foveated-rendering-research//">foveated rendering</a>?)</p>\n<p><strong>VR isn’t Just for Gamers</strong><br />\nYes, it’s fun to <a href=https://www.ycombinator.com/"https://www.epicgames.com/roborecall//">shoot robots in VR</a>.</p>\n<p>But VR will also enable <a href=https://www.ycombinator.com/"https://www.yahoo.com/news/virtual-orchestra-hits-high-notes-london-174308063.html/">immersive concerts</a>, <a href=https://www.ycombinator.com/"http://www.space.com/34129-destination-mars-now-open-kennedy.html/">reinvented museums</a>, and <a href=https://www.ycombinator.com/"http://ftw.usatoday.com/2016/09/2016-nba-finals-virtual-reality-cleveland-cavaliers-golden-state-warriors-lebron-james-steph-curry-video/">live, court-side sporting events</a>. With VR, <a href=https://www.ycombinator.com/"https://www.wsj.com/articles/virtual-reality-takes-on-the-videoconference-1474250761/">videoconferencing will improve, with better eye contact and the inclusion of nuanced, non-verbal cues. The cost of <a href=https://www.ycombinator.com/"http://www.spar3d.com/news/related-new-technologies/vr-training-construction-industry//">training will plummet without the need for human trainers in industries like construction or manufacturing. At the same time, the efficacy of repeatable, hands-on training will increase. Academics will conduct <a href=https://www.ycombinator.com/"https://vhil.stanford.edu/pubs/2002/immersive-virtual-environment-technology-as-a-methodological-tool-for-social-psychology//">social psychology research</a> with more reproducibility, diverse sample sizes, and day-to-day realism without the need for human confederates. VR will provide a scalable way to introduce true <a href=https://www.ycombinator.com/"http://finance.yahoo.com/news/lucile-packard-children-hospital-stanford-150000674.html/">experiential learning</a> into education.</p>\n<p>Personally, I’m extremely excited about the impact of <a href=https://www.ycombinator.com/"https://www.slideshare.net/waltergreenleaf/vr-to-transform-medicine/">VR on healthcare and medicine</a>. The benefits of VR in training/education will also apply to clinicians. In terms of patient care, VR can be used to <a href=https://www.ycombinator.com/"http://www.japantimes.co.jp/news/2016/10/09/business/tech/virtual-reality-helps-treat-phantom-pain-letting-missing-injured-limbs-move/#.WOrUplKZPdR\">manage pain</a>, <a href=https://www.ycombinator.com/"http://www.foxnews.com/health/2016/02/29/virtual-reality-heroin-cave-aimed-at-helping-addicts-kick-habit.html/">combat addiction</a>, and treat <a href=https://www.ycombinator.com/"http://www.techrepublic.com/article/how-virtual-reality-is-transforming-dementia-care-in-australia//">mental health</a> issues.</p>\n<p><strong>No Part of the VR Stack is Mature</strong><br />\n<em>“The field is a molten landscape.” &#8211; Morgan Sinko (NullSpace VR)</em></p>\n<p>There is no standard. No best practices. Everyone is trying something different.</p>\n<p>Here are a few technical domains that touch VR, and specific problems within each domain:</p>\n<ul>\n<li><strong>Human Computer Interaction</strong>: How do we implement <a href=https://www.ycombinator.com/"http://www.indiedb.com/features/diegesis-user-interfaces-and-virtual-reality/">non-diegetic UI</a>? </li>\n<li><strong>Optics</strong>: How can we fit a tiny projector for your eye on something with the form factor of prescription glasses? </li>\n<li><strong>Electronics</strong>: How can we optimize devices that we put on our faces for batteries, heat, and size? </li>\n<li><strong>Hardware</strong>: How can build haptics for better tracking and feedback on our bodies? </li>\n<li><strong>Computer Vision</strong>: How can we bridge the real-world and VR with 3D reconstruction and scene understanding? </li>\n<li><strong>Artificial Intelligence/Natural Language Processing</strong>: How do we create realistic agents to interact with us in VR?</li>\n</ul>\n<p>Even in non-technical domains, there exist many unanswered questions:</p>\n<ul>\n<li><strong>Psychology</strong>: What are the effects of VR on addiction? What are the effects of avatars on identity? </li>\n<li><strong>Sociology</strong>: What will it mean to have <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/Transformed_social_interaction?\%22>transformed social interactions (TSI)</a> (think automatic eye contact)?</li>\n</ul>\n<p><strong>We’re Close to Early AR, but Far from Mature AR</strong><br />\nIn many ways, it is more approachable to start prototyping in AR than it is in VR. With mobile phones, information provided by GPS and cameras can augment our experiences with the world around us (think Pokemon GO).</p>\n<p>However, AR faces many challenges that don’t exist in VR. By nature of the experience, AR technologies benefit from being untethered, so you can take advantage of the space around you. What does this mean for computing resources if we can’t carry a high-end gaming computer on our backs?</p>\n<p>Other challenges in AR lie in hardware and HCI&#8211; how do we create see-through displays with a large field of view? How do we create a form factor that <em>people would actually wear in public?</em> (Hint: <a href=https://www.ycombinator.com/"https://en.wikipedia.org/wiki/Google_Glass#Criticism\">remember Google Glass</a>?)</p>\n<p><strong>You Can Start Building Content, <em>Right Now</em></strong><br />\nDownload a game engine, like Unity or Unreal Engine, and start hacking. If you’ve developed games before, you’ll notice that the process is very familiar, except your headset is rigged to the correspond with the in-game camera.</p>\n<p>More generally, these game engines are engineered to be very intuitive and easy to learn. They only require basic scripting and utilize interfaces with shallow learning curves (e.g. <a href=https://www.ycombinator.com/"https://docs.unrealengine.com/latest/INT/Engine/Blueprints//">drag-and-drop visual scripting</a>).</p>\n<p>Here are a few useful resources for getting started:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"http://fusedvr.com/">FusedVR’s Tutorials and Live Streams</a>: Phenomenal walkthroughs for content creation&#8211; from modeling to game engine implementations. </li>\n<li><a href=https://www.ycombinator.com/"https://www.udacity.com/course/vr-developer-nanodegree--nd017/">Udacity’s VR Developer Nanodegree</a>: Thorough program that covers development, design, and optimization of VR applications. </li>\n<li><a href=https://www.ycombinator.com/"https://unity3d.com/learn/tutorials/">Unity and <a href=https://www.ycombinator.com/"https://docs.unrealengine.com/latest/INT/Videos//">Unreal tutorials. </li>\n<li>Toolkits:<br />\n○ VR: <a href=https://www.ycombinator.com/"https://vrtoolkit.readme.io/">VRTK
A-Frame [Update 05/15/17]<br />\n○ AR: <a href=https://www.ycombinator.com/"https://www.vuforia.com/">Vuforia, <a href=https://www.ycombinator.com/"https://github.com/Microsoft/HoloToolkit/">Hololens
AR.js [Update 05/15/17]</li>\n<li>Useful Threads:<br />\n○ <a href=https://www.ycombinator.com/"https://www.reddit.com/r/learnVRdev/comments/65cvxo/how_to_start_making_vr_games_for_beginners_what//">Reddit: How to start making VR games</a><br />\n○ <a href=https://www.ycombinator.com/"https://www.quora.com/I-want-to-be-a-virtual-reality-developer-From-where-can-I-start-What-are-the-best-learning-materials/">Quora: Where can I start? What are the best VR learning materials?</a><br />\n○ <a href=https://www.ycombinator.com/"http://vr.cs.uiuc.edu/">“Virtual Reality” by Steven LaValle</a>: “full-stack” VR textbook [Update 05/15/17]</li>\n</ul>\n<p><strong>An Understanding of the Graphics Pipeline Will Help you Appreciate VR’s Constraints and Possibilities</strong><br />\nFundamentally, VR is a cool application of stereo rendering in front of your eyes with head tracking. With a sound understanding of 3D geometries and how they are rendered, you’ll better understand the constraints and possibilities of VR.</p>\n<p>Here are some good online resources:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"http://inst.eecs.berkeley.edu/~cs184/fa12/onlinelectures.html/">Berkeley’s CS184: Computer Graphics (2012 Archive)</a> </li>\n<li><a href=https://www.ycombinator.com/"http://www.scratchapixel.com/index.php/">Scratchpixel: Learn everything from the math and physics behind graphics to advanced, modern techniques </li>\n<li><a href=https://www.ycombinator.com/"http://www.songho.ca/opengl/index.html/">Song Ho An’s OpenGL Notes</a>: Introduction to tutorials and concepts in OpenGL </li>\n<li><a href=https://www.ycombinator.com/"https://www.shadertoy.com/">Shadertoy: Code samples for shader programming [Update 05/15/17] </li>\n</ul>\n<p><strong>The Fields of Vision and Imaging are Pushing the Frontier of VR Forward</strong><br />\nIt could be massively rewarding to invest in an understanding of computer vision, optics, imaging, and related topics.</p>\n<ul>\n<li><strong>Computer Vision</strong>: How can we track and understand depth?<br />\n○ <a href=https://www.ycombinator.com/"http://cs231n.github.io/">Stanford’s CS231N Course Notes</a>: Phenomenally clear resource with modern CV techniques, by Andrej Karpathy (now, research scientist at OpenAI)<br />\n○ <a href=https://www.ycombinator.com/"http://www.computervisionmodels.com/">Computer Vision: Models, Learning, and Inference</a>: Slides, exercises, and code samples </li>\n<li><strong>Computational Imaging/Photography</strong>: How does light enter a camera and form an image? Analogously, how can we focus virtual images on our retinas?<br />\n○ <a href=https://www.ycombinator.com/"http://web.media.mit.edu/~raskar/photo//">Computational Photography (Raskar, Tumblin)</a>: Textbook from MIT and Northwestern professors<br />\n○ <a href=https://www.ycombinator.com/"https://www.udacity.com/course/computational-photography--ud955/">Udacity’s Computational Photography Course</a> </li>\n</ul>\n<p><strong>On the learning process: “Approach VR with a rookie mindset.”</strong> &#8211; Aashna Mago (RabbitHole VR)<br />\nYes, hype is real, which is all the more reason to take a step back from all the noise. Try to embody the perspective of a beginner: be willing to learn and absorb. Don’t start something because you feel like you have to. Now is a great time to learn, experiment, fail and become part of an amazing community. If you believe that you’re late to anything, I haven’t done a good job in this blog post!</p>\n<p><strong>Bonus Points: Read Science Fiction!</strong><br />\nThe development of VR has been surprisingly tied to science fiction. Authors in the field have envisioned the futures that engineers set out to build.<sup id=\"footnoteid3\"><a href=https://www.ycombinator.com/"#footnote3\">3</a></sup></p>\n<p>Fun fact: Neal Stephenson (author of Snow Crash) advises Magic Leap (AR Company) as their Chief Futurist!</p>\n<p>Must Reads:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"https://www.amazon.com/Ready-Player-One-Ernest-Cline/dp/0307887448/">Ready Player One</a> by Ernest Cline </li>\n<li><a href=https://www.ycombinator.com/"https://www.amazon.com/Snow-Crash-Neal-Stephenson/dp/0553380958/">Snow Crash</a> by Neal Stephenson </li>\n</ul>\n<p>My Personal Favorites:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"https://www.amazon.com/Neuromancer-William-Gibson/dp/0441569595/">Neuromancer by William Gibson </li>\n<li><a href=https://www.ycombinator.com/"https://www.amazon.com/Rainbows-End-Vernor-Vinge/dp/0812536363/">Rainbow’s End by Vernor Vinge</a> </li>\n</ul>\n<p><strong>TL;DR: Build Things. Talk to People.</strong><br />\nGet your hands on a headset, and start building in areas where your skills overlap with your interests. VR is a new medium, so creating compelling, shippable content is more of an unsolved problem than hacking on iPhone apps over a weekend. You’ll run into challenges, but in those challenges, you’ll find far-reaching opportunities to fix problems that many people in the field experience.</p>\n<p>In addition to building, talk to a wide variety of people. The process of building a beautiful experience requires the work of not only engineers, but artists, designers, and storytellers as well (game developers will understand this). Ask for feedback in online forums. Join clubs. Start clubs! <a href=https://www.ycombinator.com/"https://medium.com/@chrismtan/11-unconventional-ways-to-get-a-job-in-vr-ecee321836f2/">Work at a VR company</a>. The world of VR is still very small, and that’s really special for someone looking to make a big dent in the field.</p>\n<p>Here are some online communities that might be worth looking into:</p>\n<ul>\n<li><a href=https://www.ycombinator.com/"https://www.facebook.com/groups/virtualrealitys//">Facebook VR Group</a> </li>\n<li><a href=https://www.ycombinator.com/"https://www.facebook.com/groups/womeninvr//">Women in VR</a> </li>\n<li>Subreddits (<a href=https://www.ycombinator.com/"https://www.reddit.com/r/virtualreality//">/r/virtualreality, <a href=https://www.ycombinator.com/"https://www.reddit.com/r/Vive//">/r/vive, <a href=https://www.ycombinator.com/"http://reddit.com/r/oculus/">/r/oculus) </li>\n<li><a href=https://www.ycombinator.com/"https://news.ycombinator.com/item?id=13392885\%22>HackerNews Blog Post About VR</a> </li>\n</ul>\n<p><strong>“If you believe that VR is coming…”</strong><br />\n&#8230;that it’s going to be transformative, that it’s going to be ubiquitous, and very significant for the way that society interacts with one another, then it’s exciting to be at the very early stages.” &#8211; Jay Borenstein (Stanford CS)</p>\n<p>“The way that people react to VR is so amazing and so visceral. It renews your faith in it, I think, and you know that it&#8217;s something special.” -Aashna Mago (<a href=https://www.ycombinator.com/"http://www.rabbitholevr.org/">RabbitHole VR</a>)</p>\n<hr />\n<p><strong>Notes &amp; Refs</strong><br />\n<b id=\"footnote1\">1.</b> Stereoscopes are devices that show different images to the left and right eye. When viewed simultaneously, these images appear in 3D.<a href=https://www.ycombinator.com/"#footnoteid1\">↩</a><br />\n<b id=\"footnote2\">2.</b> Specs from: <a href=https://www.ycombinator.com/"https://www3.oculus.com/en-us/blog/powering-the-rift//">https://www3.oculus.com/en-us/blog/powering-the-rift/http://www.theverge.com/a/virtual-realityFacebook)
Stanford VHIL</a>)<br />\nJordan Cazamias (Engineer @<a href=https://www.ycombinator.com/"https://www.magicleap.com/">MagicLeap)
RabbitHole VR</a>)<br />\nVasanth Mohan (Founder @<a href=https://www.ycombinator.com/"http://fusedvr.com//">FusedVR)
NullSpace VR</a>)<br />\nGordon Wetzstein (Professor @<a href=https://www.ycombinator.com/"https://stanford.edu/~gordonwz//">Stanford EE</a>, Lead @<a href=https://www.ycombinator.com/"http://www.computationalimaging.org/">Stanford Computational Imaging Lab</a>)<br />\nChris Tan (CEO @<a href=https://www.ycombinator.com/"https://www.constructvr.io/">ConstructVR) &#8230;for lending their time to be interviewed</p>\n<p>And Jeremy Bailenson, Neel Bedekar, Niharika Bedekar, Craig Cannon, Jordan Cazamias, Darren Handoko, Jason Zheng, Aashna Mago, Kat Mañalac, and Vasanth Mohan &#8230;for reading drafts of this post.</p>\n<hr />\n<!--kg-card-end: html-->","comment_id":"1099282","feature_image":null,"featured":false,"visibility":"public","email_recipient_filter":"none","created_at":"2017-05-03T03:04:17.000-07:00","updated_at":"2021-10-20T13:10:05.000-07:00","published_at":"2017-05-03T03:04:17.000-07:00","custom_excerpt":null,"codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"authors":[{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"/blog/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"}],"tags":[{"id":"61fe29efc7139e0001a71174","name":"Advice","slug":"advice","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/advice/"},{"id":"61fe29efc7139e0001a7116d","name":"Essay","slug":"essay","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/essay/"},{"id":"61fe29efc7139e0001a7118d","name":"Paths","slug":"paths","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/paths/"}],"primary_author":{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"https://ghost.prod.ycinside.com/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"},"primary_tag":{"id":"61fe29efc7139e0001a71174","name":"Advice","slug":"advice","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/advice/"},"url":"https://ghost.prod.ycinside.com/how-to-get-into-vr/","excerpt":"This is the second edition of Paths, a series outlining emergingtechnologies with clear steps on how to get started in each field.This series was designed with makers and aspiring entrepreneurs in mind. Wetalked to college students interested in engineering, business, and technologyto figure out what resources would be most helpful to them. Then, we reached outto experts from academia, industry, or some combination of the two.","reading_time":9,"access":true,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"61fe29f1c7139e0001a71932","uuid":"1eea200b-a7bb-4da3-b610-d5cb47ff9d95","title":"How To Get Into Natural Language Processing","slug":"how-to-get-into-natural-language-processing","html":"<!--kg-card-begin: html--><p>We’re excited to introduce a new series we’re calling <a href=https://www.ycombinator.com/"https://ycombinator.wpengine.com/category/paths//">Paths. Each post will outline an emerging technology and give you clear steps on how to get started in that field.</p>\n<p>This series was designed with makers and aspiring entrepreneurs in mind. We talked to college students interested in engineering, business, and technology to figure out what resources would be most helpful to them. Then, we reached out to experts from academia, industry, or some combination of the two.</p>\n<p>We’re excited about the potential for this series to evolve, and we’d love to hear your feedback at <a href=https://www.ycombinator.com/"&#x6d;&#97;&#105;&#x6c;&#x74;&#111;:&#x4d;&#97;&#99;&#x72;&#x6f;&#64;Y&#x43;&#111;&#109;&#x62;&#x69;&#110;&#97;&#x74;&#x6f;&#114;&#x2e;&#x63;&#111;&#109;\">&#x4d;&#97;&#99;&#x72;&#x6f;&#64;Y&#x43;&#111;&#109;&#x62;&#x69;&#110;&#97;&#x74;&#x6f;&#114;&#x2e;&#x63;&#111;&#109;</a>. What would you like to learn about next?</p>\n<p>Today, we’re going to talk about NLP.</p>\n<hr />\n<p>We don’t often think about how easy it is for humans to understand language. In everyday conversation, we convey meaning without considering how our brains translate so much unstructured data into useful information. For machines, however, understanding human speech and language is very hard.</p>\n<p><strong>What is NLP?</strong><br />\nNatural language processing, or NLP, is a field concerned with enabling machines to understand human language.</p>\n<p><em>&#8220;The goal of this new field is to get computers to perform useful tasks involving human language, tasks like enabling human-machine communication, improving human-human communication, or simply doing useful processing of text or speech.&#8221;</em> (Jurafsky, Manning 2011)</p>\n<p>Beginning as a field rooted in linguistics, NLP evolved during the mid-twentieth century due to new advances in statistical analysis and, in the last few years, has erupted again as a result of novel techniques in artificial intelligence. Today, the field has become incredibly multidisciplinary, bringing together symbolic paradigms (think pattern-matching based on a set of rules) and stochastic paradigms (which draw from statistics and probability).</p>\n<p><strong>Why Should I Care?</strong><br />\nNLP is changing the way that we interact with our devices, and the field is evolving incredibly rapidly. It can be applied to so many different fields by people of incredibly diverse backgrounds.</p>\n<p>Here’s a look, by industry, into some ways that NLP is being used today:<br />\n&#8211; Medicine &#8211; Summarized physicians’ notes for billing; Interoperability (moving differently-formatted medical records across providers)<br />\n&#8211; Law &#8211; Improved and more relevant lookup/research for legal documents<br />\n&#8211; Financial Industries / Banking &#8211; Actionable insights based on sentiments world news or social media</p>\n<p>That said, there remain so many hard problems to solve in NLP, so it’s exciting to get involved now.</p>\n<p><strong>What Are Examples of NLP?</strong><br />\nPersonal assistants (Apple/Siri, Amazon/Alexa), automated language translation (Microsoft/Skype Translator, Google/Translate), question answering (Google/Search), and text summarization are examples of NLP in real-world products.</p>\n<p><strong>Why is NLP Hard?</strong><br />\nLanguage is highly ambiguous&#8211; it relies on subtle cues and contexts to convey meaning.</p>\n<p>Take this simple example: &#8220;I love flying planes.&#8221;</p>\n<p>Do I enjoy participating in the act of piloting an aircraft? Or am I expressing an appreciation for man-made vehicles engaged in movement through the air on wings?</p>\n<p>A single sentence can carry different meanings. After thousands of years of evolution, languages have evolved to become shorter and less explicit. For humans, this is very efficient. We have developed the ability to communicate with one another by relying on common sense, the context of our conversations, and knowledge about how the world works. The verbal message that we deliver contains as little information as possible to convey meaning.</p>\n<p>Today’s computers struggle immensely with resolving ambiguity. As a result, they fight the uphill battle of interpreting meaning without a full understanding of context, e.g. like common sense and culture.</p>\n<p><strong>Why Now?</strong><br />\nA key driver for NLP’s recent rise is the Web, which introduced tremendous amounts of spoken and written material. Modern computers, with faster multi-core CPUs/GPUs, can take advantage of these large datasets with the advent of more advanced machine learning methods that have developed in the last decade. As a result, we are witness to a ripe environment for applied NLP.</p>\n<p><em>“There exists a lot of infrastructure and tools that are available that weren’t as accessible before. Think about it like the boom of frameworks and tools for web development. An analog of that is now accessible for NLP.”</em> &#8211; Jimoh Ovbiagele, ROSS Intelligence</p>\n<p>A more subtle reason for recent progress in NLP is our comfort and trust in computing devices.</p>\n<p><em>“10 years ago, many people were afraid that [devices] were going to make decisions based solely on data and without a human’s perspective. Now, more than ever, people are willing to trust a 100% autonomous AI to send an email.”</em> &#8211; Sinan Ozdemir, Kylie.ai</p>\n<p><strong>I’m a Maker, And I’m Intrigued. What Can I Do?</strong><br />\nCertain fundamental skills will be useful for academic or applied work in NLP. As a baseline, foundations in college-level algebra and probability (e.g. random variables, distributions, topic models) will be necessary to understand frequently used methods. In addition, knowledge in linguistics (e.g. understanding of semantics, pragmatics, and symbolic representations of language) can provide useful intuition for why computational methods work in the first place.</p>\n<p>In addition to developing mathematical and linguistic tools, take courses that push you to…<br />\n<em>“&#8230; understand how to represent systems in ways that can be turned into something more automated or computational. I spent a lot of time in my undergrad looking at a bunch of mathematical models to get a sense of the important aspects of the system. It’s a way of communicating an abstract idea to myself.”</em> &#8211; Jacob Rosen, Legit Patents</p>\n<p>Finally, it can be incredibly valuable to get your hands on some data (e.g. Twitter or Reddit posts) to build an intuition for resolving ambiguity in text. What does this unfiltered/unstructured text look like? Why is data formatted in this way, for this specific platform? Before modeling anything, seek to understand the data. Then, work on building your statistical models and optimizing your system’s infrastructure.</p>\n<p><strong>For More Tools And Resources to Get Started, Check Out:</strong><br />\n&#8211; <a href=https://www.ycombinator.com/"https://www.youtube.com/playlist?list=PL6397E4B26D00A269\%22>Stanford NLP Lectures by Dan Jurafsky and Chris Manning</a><br />\n&#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/item?id=12916498\%22>HackerNews: “How Can I Get into NLP?”</a><br />\n&#8211; <a href=https://www.ycombinator.com/"http://www.nltk.org/book_1ed//">Intro to the popular Natural Language Toolkit in Python</a><br />\n&#8211; <a href=https://www.ycombinator.com/"https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-1-for-beginners-bag-of-words/">Project: Detect sentiment in movie reviews</a></p>\n<p><strong>Do I Need a PhD to Work on NLP?</strong><br />\n<em>“Having a PhD is not 100% necessary. Data science in general is such a new idea to a lot of people in the world, and the science part isn’t 100% there yet.</em></p>\n<p><em>Broadly speaking, we can break down roles into two categories: analysts and builders.</em></p>\n<p><em>Analysts have a more theoretical/statistical background. Therefore, [PhDs working in NLP] tend to approach problems from a mathematical standpoint.</em></p>\n<p><em>Builders work on pipelines that will handle all of the text until something is more usable to prototype.</em></p>\n<p><em>There is always a balance between these two mindsets, especially when building products that need to go to market.”</em> &#8211; Sinan Ozdemir, Kylie.ai</p>\n<p><strong>Okay. But What Would it Mean if I Did Get a PhD?</strong><br />\n<em>“It used to be the case that many mathematicians only became famous half a century later, when someone figured out a practical use for their work. Today, academic work is being utilized much quicker, sometimes within only a few years. The rapid influx of academic work will lead to a rapid outflux of production ready software.”</em> &#8211; Sinan Ozdemir, Kylie.ai</p>\n<p>In other words, there is tremendous value in pursuing deep work to push academia forward, and this kind of work is having tangible impact in real-world applications sooner and sooner. Additionally, returning to industry with the intuition of an analyst will provide a valuable perspective for shipping user-facing products.</p>\n<p><strong>What Are Some of The Biggest Challenges Working in NLP?</strong><br />\nMany practical challenges prevent us from taking full advantage of the theoretical frameworks and computational tools that have been developed for NLP.</p>\n<p>To work on real problems we need representative and relevant data sets. How can we solve the most pressing healthcare problems when we can&#8217;t access secure, patient records? How can we understand social networks in response to global news without infringing Facebook’s privacy policy?</p>\n<p>At the moment, there are two potential workarounds:<br />\n<em>&#8220;1) Collaborate. Work with doctors or hospitals on localized data sets. 2) Find data sets that are close to what you want. Use Reddit’s publicly-available dataset, instead of Facebook.”</em> -Dan Jurafsky, NLP Group @ Stanford</p>\n<p>Another challenge, especially in industry, is related to metrics and analytics. What is the right way to measure performance? How do we build robust feedback mechanisms to quantitatively measure the performance of an NLP system?</p>\n<p>Let’s consider the challenge of quantitatively evaluating a chatbot’s effectiveness:<br />\n<em>&#8220;We can guess all day long about how our system will be used, but the key will be observing and improving. Once we have that data, it will allow us to improve the logic for entity extraction and intent matching.&#8221;</em> &#8211; Taylor Halliday, Mesh Studio</p>\n<p><strong>Where is The Field Going?</strong><br />\nNew advances in artificial intelligence and deep learning have completely changed the way we think about NLP. With deep learning, systems handle inputs and outputs that are purely text:</p>\n<p><em>“Consider summarization snippets on Google search results. At the moment, algorithms still use statistical models to find frequent pieces and then paste them together. With deep learning, we use complex neural networks to map text into higher-dimensional representations, and re-generate a sequence of words. All of this work has been done in the last 3-4 years.”</em> &#8211; Dan Jurafsky, NLP Group @ Stanford</p>\n<p><strong>Sounds Exciting!</strong><br />\nWe’re at a very unique point in history where natural language interfaces are beginning to dominate the ways that we interact with our machines. With largely available datasets and open source frameworks, working on NLP problems has never been more accessible.</p>\n<p>Perhaps most exciting is that NLP can be tackled from so many different angles. Academic work has become increasingly relevant in real-world products. Diverse backgrounds and interdisciplinary approaches are advantages because context from other fields — linguistics, psychology&#8230; even healthcare or law— can be invaluable to solving specific problems from those fields.</p>\n<p>Language is perhaps the most effective and intuitive tool we have to interface with each other. With NLP, we’re working on extending this interface to machines.</p>\n<hr />\n<p><em>Update on 1/30/17</em></p>\n<p><strong>Additions From the HN Community</strong></p>\n<p><a href=https://www.ycombinator.com/"https://alchemy-language-demo.mybluemix.net//">Watson API demo: What’s possible?</a> &#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/user?id=garysieling\%22>garysieling
Advice from PhD on NLP, machine learning, and data monetization</a> &#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/user?id=danso\%22>danso
SyntaxNet in Context: Understanding Google&#8217;s New TensorFlow NLP Model</a> &#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/user?id=danso\%22>danso
Announcing Syntax Net: The World’s Most Accurate NLP Parser</a> &#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/user?id=danso\%22>danso
Curated Deep Learning for NLP Resources</a> &#8211; <a href=https://www.ycombinator.com/"https://news.ycombinator.com/user?id=andrewtbham\%22>andrewtbham

\n
ROSS Intelligence</a>. ROSS is an A.I. lawyer that helps human lawyers research faster and focus on advising clients.<br />\n&#8211; Sinan Ozdemir of <a href=https://www.ycombinator.com/"http://kylie.ai/">Kylie.ai. Kylie is an ai that clones employee personalities to automate conversations between a company and its customers. (Previously, Data Science @ Johns Hopkins University).<br />\n&#8211; Jacob Rosen of <a href=https://www.ycombinator.com/"https://legitpatents.com//">Legit Patents</a>. Building patent software for inventors.<br />\n&#8211; Taylor Halliday of <a href=https://www.ycombinator.com/"https://meshstudio.io//">Mesh Studio</a>. Mesh Studio is a technology design/engineering shop currently building a conversational commerce platform to overhaul to all digital channels of large retailers.<br />\n&#8211; Dan Jurafsky of the <a href=https://www.ycombinator.com/"http://nlp.stanford.edu/">NLP Group @ Stanford University</a>.</p>\n<p><em>Thanks Craig Cannon, Milan Doshi, Darren Handoko, Yonatan Oren, Sinan Ozdemir, John Kamalu, Kat Mañalac, Brexton Pham, Zachary Weingarten, and Evelyn Xue for reading drafts of this essay.</em></p>\n<!--kg-card-end: html-->","comment_id":"1098249","feature_image":null,"featured":false,"visibility":"public","email_recipient_filter":"none","created_at":"2017-01-20T01:16:53.000-08:00","updated_at":"2021-10-20T13:16:11.000-07:00","published_at":"2017-01-20T01:16:53.000-08:00","custom_excerpt":null,"codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"authors":[{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"/blog/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"}],"tags":[{"id":"61fe29efc7139e0001a71174","name":"Advice","slug":"advice","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/advice/"},{"id":"61fe29efc7139e0001a7118d","name":"Paths","slug":"paths","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/paths/"}],"primary_author":{"id":"61fe29e3c7139e0001a710cf","name":"Vincent Chen","slug":"vincent-chen","profile_image":"https://ghost.prod.ycinside.com/content/images/2022/02/vincent-chen.jpg","cover_image":null,"bio":"Vincent Chen is a student at Stanford University studying Computer Science. He is also a Research Assistant at the Stanford AI Lab.","website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://ghost.prod.ycinside.com/author/vincent-chen/"},"primary_tag":{"id":"61fe29efc7139e0001a71174","name":"Advice","slug":"advice","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://ghost.prod.ycinside.com/tag/advice/"},"url":"https://ghost.prod.ycinside.com/how-to-get-into-natural-language-processing/","excerpt":"We’re excited to introduce a new series we’re calling Paths. Each post will outline anemerging technology and give you clear steps on how to get started in thatfield.This series was designed with makers and aspiring entrepreneurs in mind. Wetalked to college students interested in engineering, business, and technologyto figure out what resources would be most helpful to them.","reading_time":7,"access":true,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null}],"filter":"By Vincent Chen","featured":null,"pagination":{"page":1,"limit":10,"pages":1,"total":4,"next":null,"prev":null}},"url":"/blog/author/vincent-chen","version":null,"rails_context":{"railsEnv":"production","inMailer":false,"i18nLocale":"en","i18nDefaultLocale":"en","href":"https://www.ycombinator.com/blog/author/vincent-chen","location":"/blog/author/vincent-chen","scheme":"https","host":"www.ycombinator.com","port":null,"pathname":"/blog/author/vincent-chen","search":null,"httpAcceptLanguage":"en, *","applyBatchLong":"Winter 2024","applyBatchShort":"W2024","applyDeadlineShort":"October 13","ycdcRetroMode":true,"currentUser":null,"serverSide":true},"id":"ycdc_new/pages/BlogList-react-component-c152f61a-97f1-469d-9376-68c5d32e2ba9","server_side":true}" data-reactroot="">

Recent Posts By Vincent Chen

All Posts

How To Get Into Natural Language Processing

by Vincent Chen1/20/2017

We’re excited to introduce a new series we’re calling Paths. Each post will outline anemerging technology and give you clear steps on how to get started in thatfield.This series was designed with makers and aspiring entrepreneurs in mind. Wetalked to college students interested in engineering, business, and technologyto figure out what resources would be most helpful to them.