I first learned basic array methods several months ago. I learned them, I moved on, and I forgot them.
So – I didn’t really learn them. In fact, I could never remember the difference between pop and push, and shift and unshift. Which ones were additive and put more stuff in the array, and which ones were subtractive and took stuff away from the array? Which ones added elements to the beginning of the array, and which ones added elements to the end of the array?
Finally, I got fed up trying to remember these abstract words, so I made myself a cheatsheet that associated these new concepts with an familiar existing concept in my brain – a rainbow.
Note: this only covers, pop, push, shift, and unshift. There are more array methods to learn. Here are some resources:
This post is dedicated to talking about one of my recent projects, Mindfull World. To note, this project is not yet complete in its vision, but is at the time of writing this, at a phased stopping point.
Because I ❤️ process, I’ll talk about that and also get include the HTML and CSS for parts of the project along the way.
First, there was…
While I wish this project involved some of the above (I guess it’s never too late?), it started after I discovered CSS loaders. I was playing around with them and decided to include one on Playfull World when realized I could nest CSS loaders inside one another.
I worked on it for a couple of hours and put it on Playfull World.
However, I was not done with the song, which had prompted more thinking about movement.
So I created a counterpart to Breathe, called “Move.”
I made only a few modifications – just the color palettes, shapes (in animation, square characters project solidity and strength, a more fitting shape than circles for something dedicated to movement), and the timing of the pulse cycle.
It had more energy.
This was something I could look at and feel inspired to start moving my body.
Once again, I hosted it on my portfolio and brushed my hands off. I was fairly happy with it and really done looking at the pink.
After a couple weeks, I came back to Breathe and Move. It bothered me that they were both floating out there on my portfolio without a common landing page, despite being so related to each other.
I started thinking about what they had in common and came up with this list:
This image (essentially as it appears below) came to mind, so I created very first iteration of Mindfull World.
And that brings us to today and the live version of Mindfull World.
To wrap things up, some parting thoughts…
I really loved making Mindfull World because I got deep into the creative flow state. All of the hours flew by. I am passionate about mindfulness, being connecting to one’s body, and art – this project was a combination of so many of my interests. In case you haven’t heard of the flow state:
[The flow state is a] trance-like altered state of total absorption and effortless concentration…
“There’s this focus that, once it becomes intense, leads to a sense of ecstasy, a sense of clarity: you know exactly what you want to do from one moment to the other; you get immediate feedback. You know that what you need to do is possible to do, even though difficult, and sense of time disappears, you forget yourself, you feel part of something larger. And once the conditions are present, what you are doing becomes worth doing for its own sake.”
Secondly – I applied concepts to this project from the Agile Manifesto! Who knew that was possible?! There were so many directions I wanted to go with Mindfull World. Most ideas, I set aside for the future so I could release something in the present. To achieve a more Agile approach, I:
kept coming back to my favorite Agile principle: Simplicity–the art of maximizing the amount of work not done–is essential.
Sometimes, planning is not great
Lastly – self-imposed creative parameters/themes/rules are useful… but only to an extent. I spent several hours trying to make the colors fit within the mathematical schema I had planned for the entire project, and it just didn’t work out. I could’ve saved myself a lot of time (and been kinder to myself) if I had been a less rigid about making my creation fit into these parameters I had established for myself and the project.
This post introduces a useful tool I discovered for reflecting on my own learning process. Education is full of paradigms, theories, and tactics – as a former educator, I am familiar with some of these and never thought to use them as self-reflection tools, as a learner of programming, until recently.
What is Experiential Learning Theory (ELT)?
Experiential Learning Theory (ELT) is a learning modal established by David A. Kolb, in which reflective observation is a critical component of the learning cycle.
In this model, Kolb defined learning style on a two-dimensional scale based on how a person perceived and processed information. How a person perceived information was classified as concrete experience or abstract conceptualization, and how a person processed information was classified as active experimentation or reflective observation (Simpson & Du, 2004).
Accordingly, Kolb (1985) described the process of experiential learning as a four-stage cycle involving four adaptive learning modes: Concrete Experience (CE), Reflective Observation (RO), Abstract Conceptualization (AC), and Active Experimentation (AE). CE tended towards peer orientation and benefited most from discussion with fellow CE learners. AC tended to be oriented more towards symbols and learned best in authority-directed, impersonal learning situations, which emphasized theory and systematic analysis. AE tended to be an active, “doing” orientation to learning that relied heavily on experimentation and learned best while engaging in projects. RO relied heavily on careful observation in making judgments.
Kolb (1985) also identified four learning style groups based on the four learning modes: Divergers favored CE and RO, Assimilators favored AC and RO, Convergers favored AC and AE, and Accommodators favored CE and AE.
I express an innate preference for the Converger learning style: abstract conceptualization into active experimentation (ahem, Playground).
These students [Convergers] are motivated to discover the relevancy or the “how” of a situation. Application and usefulness of information is increased by understanding detailed information about the system’s operation.
However, I would like to gain a slightly more balanced learning approach by integrating more reflective observation experiences. This means chatting with folks about what I’m learning and writing more about what I’m learning as part of that social outreach. This way, I can be aware of my innate preferences, but also push myself to learn in different ways to increase my knowledge retention.
The theory considers learning styles to be on a mutable continuum, with learners perhaps expressing one preference or another but able to shift and move around on the continuum throughout their lives. I am drawn to this theory for multiple reasons, this being one of them.
My intent as a learner is to develop a habit of checking my assumptions and unconscious preferences as I learn programming (and just about anything). I feel this is a vital skill in the information age.
What lies at the heart of every living thing is not a fire, not warm breath, not a spark of life. It is information, words, instructions. If you want a metaphor, don’t think of tires and sparks and breath. Think, instead, of a billion discrete, digital characters carved in tablets of crystal. If you want to understand life, don’t think about vibrant, throbbing gels and oozes, think about information technology.
As the quantity of information continues to increase over time, there are few more important skills than learning how to learn in the most efficient way possible.