4 ms·
> "which turns out to be a social process." I used to agree with this 100%, particularly as I was teaching myself to program. Now I don't. Not even a little
by austincheney 9y ago
> "which turns out to be a social process."
I used to agree with this 100%, particularly as I was teaching myself to program. Now I don't. Not even a little bit.
I learned to program, almost entirely, on my own, in a vacuum. I started learning to program just before I was pulled into my second military deployment, years on the job at Travelocity, and then refined my skills during my third military deployment.
It wasn't completely a vacuum as I could talk to people online. I learned most of my early architectural concepts from practicing against the recommendations of Douglas Crockford. I had nobody in the real world I talked to about my programming. In reflection this made me a substantially better programmer, and I never realized it until somebody in the military explained why.
I am a JavaScript developer. I first started learning to program just before abstraction libraries became the religious dogma that nobody could live without and ultimately coalesced around jQuery. This was not a technology phenomenon it was a social phenomenon. I largely missed the insanity that was so popular in the social business world as I was bouncing around various FOBs in Afghanistan without an internet connection. I learned to write against the vanilla DOM and optimize my code to perform quickly, cross browser, with simplified logic. I didn't an abstraction library and a bunch of dependencies to slow me down.
When I came back to Travelocity my ability to write fast code in the browser that just always seemed to work earned me a promotion and I became a senior developer and the A/B test experiment guy for the company.
When I started my second deployment I taught myself to program by writing an open source code beautification tool that worked in the browser. Node.js was just invented and I wasn't aware of it just yet, so my tool was limited to the browser. I taught myself language parsing for various different kinds of grammars. Much of this code mostly worked but it was poorly constructed and certainly not 100%.
When I was sucked into my third deployment I wasn't skilled enough to be a software architect. I had more learning to do, but a few months in I really learned to refine my approach to architecture and wrote some new language parsers from scratch that turned out to be solid and extensible. At this time while I was again out of the mix from the corporate world large MVC frameworks became the rave that suddenly became the thing developers could not live without. I learned to live without them and continued programming on my own refining and extending my little open source application. I was easily able to apply the architectural concepts I taught myself in place of large generic MVC frameworks to produce code that is significantly smaller and generally executes much faster.
Late into my third deployment I overheard a conversation about the origins of Best Buy. The key guy, Richard Schulze, never went to industry trade conventions or focused on common industry practices for doing business of his new "Best Buy" store model. He had found the concept by accident and refined it over time into a more retail without commission concept that allowed his stores to out sell the competition. This was a process of refinement and reward over time by practice and experimentation. The concept was successful because it discard the social process of industry peers!
The social process is a means of validation. It lets you know how you fare against the median population you are competing against. If your goal is to be average the social process is your guide. If you want to be more than that you have to be willing to step back from what is popular.
- kartan 9y ago> I learned to program, almost entirely, on my own, in a vacuum. Innovation is what requires a critical mass. You can learn from books, or nowadays from the internet, any skill. But what makes you move thousands of kilometers to a more vibrant city is the opportunity to grow beyond the old trends to create new ones. Your achievement is impressive, but it just benefits you and your employer. Innovation is copied and used by the community as a whole.
- austincheney 9y agoPeople move to big cities for employment, not because they want to be innovative scientists. You can innovate from anywhere.
- boomlinde 9y agoThat you are developing software for web browsers and are still able to maintain the notion that your innovations exist in a vacuum is flabbergasting. Who built the browser and made its API discoverable? Who made it so that you can write nearly the same code and target different browsers? Who built the operating systems browsers run on? The network protocols and infrastructure without which your webapps would at best be interesting diversions for the developer? Neither of these involved social processes? Your innovation, in the greater scope of things, is inconsequential. You reinvented the wheel because you had none, but you still reinvented the wheel.
- austincheney 9y ago> That you are developing software for web browsers and are still able to maintain the notion that your innovations exist in a vacuum is flabbergasting. Who invented the software language you use or designed the earliest forms of hardware you use or discovered the electron? The fact that you type on a keyboard and yet consider your imagination innovative is flabbergasting. https://en.wikipedia.org/wiki/Reductio_ad_absurdum https://en.wikipedia.org/wiki/Reductio_ad_absurdum
- boomlinde 9y ago