We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Learning programming in the XXI century

Formal Metadata

Title
Learning programming in the XXI century
Subtitle
How to say goodbye to "Hello, world"
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
With DOM, software-defined architecture, advanced build tools, StackOverflowand ultra-high-level languages, main languages are still taught (and learned)via I/O operations, simple data structures, loops and switches, and littlespace to development and deployment environment advances and even algorithmicchanges, like asynchronous running, that completely upend the way programminglanguage, and programming, concepts should be assimilated. In thispresentation I'd like to advocate for a multi-lingual, multi-paradigm, multi-tool approach to learning programming languages and how this could eventuallybe carried out. The new century has seen an explosion of new ways of learning: through MOOCs,Webinars, bootcamps and incorporation of new technologies to learning. Still,syllabus of programming languages pretty much stays the same. There isenphasis in learning a single language (front end, back end, DSL) and aprogress that goes from very simple input/output operations through somesimple data structures to loops and other programming structures. This worksusually well and the proof is all around us; besides, the ten firstprogramming languages are the hardest, it is downhill from there. However, itcould be much easier if we acknowledged the existence of this multi-environment (console, UI, web, embedded), multi-language (many languages in asingle application, from data description to UI language), multi-tool (fromsimple compilation tools to deployment and monitoring tools) and organized ourlearning experience around it. And first we should use whatever we have onhand, like command-line interfaces (some of them with powerful languages) oreven the browser itself, which always include a programmer mode. Also usevisual languages like Scratch to teach more complicated concepts, as long asthey are put into use with languages that can run the whole nine yards. Inthis lightning talk I will try to outline what would be the first basic stepsin a course following these principles, and why I think this would lead tofaster formation of programmers and the creation of a more adaptive mindsetwhen tackling new careers or project in programming.