On Mon, Nov 21, 2016 at 5:39 PM, kirby urner <kirby.ur...@gmail.com> wrote:
> > I'm continuing to advance the notion, in > Medium comments and elsewhere, that > learning one computer language at a > time may be less efficient than tackling > two or more, but with a "main one" front > burner. [1] > > I credit the LEX Institute for this idea.[2] > > The theory being: contrasts and comparisons > help concepts stick, whereas just one example > (of a language, human or computer) provides > less traction, a slipperier slope. > > Like learning the J language (jsoftware.com) > even a little helps one realize how different > languages can be, bringing Python into sharper > relief against a background. > > But J (of APL heritage) might be too exotic > as a #2, why not do JavaScript? Python + JS > could be as common as HTML + CSS. > I'm a lurker here, but I wanted to chime in and say that I'm using exactly this combo (HTML/JS frontend + Python backend) for pretty much every app I've written in the past few years. Needless to say, I've become a big proponent of the approach. In fact, I'm writing a little command line tool that helps create the scaffolding needed to make an app using this approach called PyEverywhere. ( http://pyeverywhere.org) It's still a work in progress, but I hope to have it supporting all major platforms by early-to-mid next year. >From a learning perspective, I think the JS + Python combo offers a lot of benefits. First, in this internet age it's hard to find developers who would have no use for some HTML + CSS + JS skills, so there's a huge benefit to teaching them early on as part of any programming curriculum. Second, I think the idea of separating front-end and back-end and using different tools really helps prepare them for the sort of technology stacks they will see in real-world apps. Finally, as you said yourself, different languages look at problems in different ways, and learning those different approaches helps build the flexibility to view a problem from different angles that any good programmer should have. Regards, Kevin > That's a little self serving as a common bootcamp > design if JS front end, Python back end. Our > PDX Code Guild in Portland takes that tack. > > The curriculum, then, would continually bring > them together to discuss their similarities and > differences. Either one could be foreground > first, with the other as background, but we'd > do a lot of jumping back and forth (and not > just with JSON :-D). > > A breakthrough realization I had earlier today > was that Jupyter Notebooks already gives me > a JavaScript interpreter, even when my main > kernel is Python 3. > > %%javascript at the top of any cell creates a > node-like experience, and I'm able to write > ES6 (JavaScript) with classes, arrow functions > and everything. It feels a lot like using > node --harmony testfile.js on cloud9 (another > learning platform I visit). > > Here's an example, of a Jupyter Notebook > running through nbviewer, with both Python > and JS code cells. The point is to show off > the similarities. > > https://goo.gl/nj9RPO > > Kirby > > Useful tools: > http://codepen.io/ > http://jsbin.com/ > > [1] https://goo.gl/U4Yx6l (comment on one > of Quincy Larson's, about which language > to learn first) > > [2] 'Who Is Fourier?' (one of its pubs) appears > way back in edu-sig. Jason Cunliff and I > met and talked about it in New York that > time. > > Here's one of Jason's from 2002: > > https://mail.python.org/pipermail/edu-sig/2002-September/002255.html > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > https://mail.python.org/mailman/listinfo/edu-sig > >
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig