A similar and very powerful narrative can be found in _The Half Has Never Been Told: Slavery and the Making of American Capitalism_, by Edward E. Baptist. The book is slightly problematic in some of its methods, but overall I would highly recommend it to anyone who was taught the public school version of US history.
I once wrote a much hackier version of complex arithmetic in JavaScript [0]. It was to support a visualization of the complex derivative [1].
I found it useful to think of a complex number as a point in R^2 that operates under some different rules. I used Mathematica's `ComplexExpand` to translate from traditional notation for complex numbers [2].
This resonates with me very strongly. But it seems all too easy to extend this sentiment towards others and remind them that they don't know what they're doing, which creates a pretty toxic environment.
I've been working with Ember over the past few months and am still impressed with how simple and productive it makes every day tasks. Basic CRUD stuff, especially render code, is a lot less drudge work. I'm even more excited for where the community is leading the framework, through projects like ember-cli and htmlbars.
Ember is conceptually pretty massive though. A tutorial like Michael Hartl's Rails tutorial would be a huge benefit, it looks like that's what this is aiming for. Thanks!
One pain point I've really felt recently with Python is in the deploy step. pip installing dependencies with a requirements.txt file seems to be the recommended way, but it's far from easy. Many dependencies (such as PyTables) don't install their own dependencies automatically, so you are left with a fragile one-by-one process for getting library code in place.
It was all fine once I got it worked out but it would so much nicer to provide a requirements.txt file and have pip figure out the ordering and dependency stuff. That and being able to install binary packages in a simple way from pip would make me much happier with python (no more waiting 10 minutes for numpy or whatever to compile).
As far as actual language features go however, I still find python a joy to work in.
I've always wondered what coding is like for those who don't speak english, or only speak a little. I imagine it's something like working with code beatified by this tool.
Almost every codebase is filled with english verbs and nouns. They are one of the primary tools for making source code readable by humans, not just machines.
How do provisioning systems compare to Docker? Right now I have a development environment that consists of salt stack provisioning Vagrant. Spinning up a production server just means running salt on the host (Rackspace, DO, whatever.)
When I was learning more about this, I found this[1] article to be of great help.
I think the key idea is that JS is a prototype-based OO model. It's easy to forget because there are so many abstractions[2] that act like a JS is a static class based OO language.
Thanks. The low level stuff certainly seems like a good thing to learn—I made an effort to read Code[0] a while back and most of it went over my head. The high level programming languages most people work in today are abstracted to a point where it's extremely hard to see their relation to the low level stuff. It would be nice to understand that link better.
As a Senior in high school who already works in a startup, I have another question: what shit should I being trying to learn in college?
There's a prominent attitude here that a degree in CS isn't all that practical—work experience matters more. What should I try to get from college? Just wondering if anyone can chime in.
I would add RequireJS to the list. Being able to think in terms of modules while developing a large application is extremely helpful, and explicitly defining dependencies is great when it comes time to build/concat the project.
Mocha is another alternative for testing. It's very flexible and with a little bit of work can be run from the shell (using phantomjs).