Friday, September 28, 2012

Codecademy, at last

Context: See Focus going forward - Update of Codecademy use.


I discovered the site from reading a WSJ book review. The book was Randall Stross' The Launch Pad which depicts a writer watching the 'boot camp'-like experience that some developers went through to define the next big thing in terms of a software product that might appeal to the masses and to obtain funding for launching such. Or, as read the headline, "Where Apps are Hatched."

It was an interesting read for several reasons. For one, there was the use of 'hope' in the review. As in, the motivation is a driving hope to hit it big (and lots of money and, perhaps, fame). And, we know the importance of 'hope' in several different ways. So, we'll be getting back to that discussion frequently (in the all of the several contexts).

Too, the 'learning to code' idea has a lot of merit. Everyone ought to be able to code, similar to their knowing how to use numbers. In a sense, most code ought to be in some easy to understand framework; the emphasis on legal documents being more readable by the general public is analogous.

Most? Yes. No matter the computer language, a program still needs to execute. The general solution might be executable specifications, as in expressing something in a mode that is understandable by someone who works within the related domain (area of human expertise, okay?). Yet, from any higher-level view, such as this, there will be transforms to what the machine can process. Our 'hope' there is that these changes are 'true' to expectation of the domain (one aspect of truth engineering).

Which brings up another point: some things cannot be expressed in natural language. Just consider, if you would, how things go awry when mathematically-framed ideas are brought out to the publicly-witnessed state. Confusion is one way to describe this. Sometimes, it seems like the message means several things. The expert always says, if only you could see the math.

The phenomenon of coding has this downfall as the underlying enabler is a formal system. Somehow, that seems to have been lost in the infatuation with apps on mobile devices. Many 'stupid' realizations have resulted from the mania; but, that genie is out of the bottle, so to speak. Somehow, we'll have to have ways to measure apps beyond their appeal or monetary uptake (for instance, we don't let worms out on app space). But, that is a whole new realm to explore as there is a growing basis (seemingly unbounded).

Having been involved with code throughout my career, the newer thrusts appeal. For one, a brief B&N browse confirmed to me that there is a progression (as in, worked in all of these major paradigms - in fact, started to do so more than two decades ago -- and, have had my hands in the water the whole time). The difference is one of viewpoint and experience. I've seen waves of boom/bust, several times. Youthful exuberance, left alone by clueless adults, goes awry more than not. Yet, we have not found a way to keep technology from eating its own tail.

To me, the elders rested on their laurels, in many cases. In other cases, it was considered beneath their exalted view of themselves. Or, it was just too darn hard. Having, as a result, situations arise, such as the latest downturn caused by idiots who were empowered by computational elements way beyond their comprehension.

Everyone coding is not the answer. Removal of the wizard element is not either. For one thing, we need to be able to rate apps by something other than gross, mass appeal. Oh, I know, those who roll in the dough love to hit it big. Yet, money is not the true measurable, either. Saying that might seem unwise, since our current election is mainly about too many bucks being allowed to muck up the waters. No one knows the outcome of the current messes.


So, development might turn out to be similar to the adage about mathematicians (after 25, you're done). But, we know, from looking at the professorship, that it's not entirely true. After all, there is some role for maturity (which is hard for youth to fathom, heck, it's hard for some of the elders to do so, too).

But, from the viewpoint of a sustainable worldview, there needs to be some type of generational overlap. The baby-boomers were the first to cast off the shackles that had been laid down (in a sense - but, not entirely true -- we'll look at the history of the emergence of free thinking in this regard). But, limits is a technical concept, to boot. We will address that, at some point.


Flash in the pan comes to mind, for some reason. My last thought, here, is that some collection of 'apps' ought to stand the test of time. And, sustainable is more about constrained waves, rather than big splashes (remember, someone has to clean up the mess -- in the latest case, change the diapers of those who crapped on the world, big time -- won't name names).


03/03/2014 -- We need to relook at several things. Yes, like, bringing memes (and more) to the fore in the discussion. Mathematicians have their "ancestors," know about them (and their contributions), and honor them. What other field does that? My mathematical pedigree: Galileo Galilei (1585), Vincenzo Viviana (1642) Isaac Barrow (1652), Isaac Newton (1668), Roger Cotes (1706), Robert Smith (1715), Walter Taylor (1723), Steven Whisson (1742), Thomas Postlethwaite (1756), Thomas Jones (1782), Adam Sedgwick (1811), William Hopkins (1830), Arthur Cayley (1864), Andrew Russell Forsyth (1881),  Edmund Taylor Whittaker (1895), G.H. Hardy (), Edward Charles Titchmarsh (), Andrew P. Guinand (), Lucio Arteaga (1964), the blogger (). I took it back to 1585 since that would be co-temporal with those who were involved with the Great Migration to New England. Too, note that the ancestor is an adviser or mentor or tutor. This brings to mind that a meme'tic look at descendancy would consider the influence of step-child-ness. I have found many of these relationships.

02/24/2014 -- Put in context link, at the start.

02/23/2014 -- I ran across in 2012. At the time, my interests were directed at other than code (if someone had asked me six years ago if that were possible (you see, I was buying into the code-based worldview - even though I knew that being was not subsumed therein), I would not have understood the question -- yes, one can live, nicely, without code - but ought we?). Then, today, I noticed that the below post had been recently read, several times, so I looked again at the site.

Codecademy has a nice feel with its little interactive, interpretative environment. Too, it makes me wonder if we could use this type of approach to upgrade someone's skills (as in, an older person who has been around computing awhile who needs to transition to something modern - and, there are lots of these). Beside, we have this question: would coding delay mental decay? Gaming has been shown to have a benefit, thusly. Playing with code ought to be as titillating, if one is working on serious problems (the psychology and sociology issues might be brought up here).

As mentioned elsewhere, I have been involved in computing (technically, software) for a long while. I have touched all sorts of systems (environments, operating systems, 50-plus languages (spanning the generations), all sorts of domains: databases - all aspects, including database system development - as in, vendor, design, administration, data languages; too, the project environments ran the gamut: research, development, delivery, maintenance.

For the younger crowd, I can say that I first touched C++ in the 80s (advanced computational group in a corporation - but, at the time, we had extensively networked Lisp machines to play with - ah, what fun! ... little C++ was a new-born at the time, comparatively). Believe it or, I was able to keep using Lisp/C up until about 10 years ago. In the meantime, I had touched many of the emerging methods (leaning toward Python - it has a huge baggage set that comes with it, though).

The point? As I re-acquaint myself, there are some differences in platforms and nuances of syntax, but here is a truism that needs some discussion.

    Know one, know them all
           (corollary - 20% knowledge can, many times,
                                     get 80% of the work done)


It gets me when job descriptions filter strictly by language. Why? It's, essentially, discriminatory by setting limits that have no basis (beyond short-term considerations). Over my years, I have seen lots of people move back and forth between languages (including being dropped into the production environment that is new to them). In fact, we successfully taught Lisp to engineers so that they could code their own rules and heuristics. It worked. With the decline in the Lisp machine, we lost our good interactive environment. Yet, this worked. So, I must admit, it was good to see the interpretative approaches emerge with the web.

The largest stumbling block in training seemed to be the transition to structures related to object-based (behavioral) views. But, even there, six months of exposure could really help.

09/28/2012 -- Nice little issues continue to be ignored.

Modified: 03/03/2014