The P’unk apprenticeship stands as one of the most difficult and rewarding things I have ever done. I began the program running on a volatile combination of uncertainty and confidence, knowing little more than how to build and style a basic website, but driven by the excitement of the totally unknown. By the close of the apprenticeship, I had acquired the tools necessary to work within our technology; but, more importantly, I had learned a lot of things about myself – I learned a lot about learning.
Everyone knows that learning programming is hard. Your brain will hurt. Why? There is a learning curve whose escape requires a unique way of approaching problems. The first thing I learned about learning was to anticipate how to navigate the inevitable plateaus of understanding along that curve.
In the beginning, it was difficult to turn on a the necessary brain functions to build a program. I’m a recovering architect, a creative problem solver, a visual learner, who works through ideas by reading, writing, drawing, by thinking spatially.
In programming, you are working in the complete abstract, sometimes solving problems from the inside out, with tools whose definitions and applications are variable. Once you understand the relationship of one part to another part or one part to the whole, there is a subsequent relative relationship to consider, which may also differ from problem to problem. These relativities do not present a clear learning pattern to follow when you are developing your own methods of study.
This was my first plateau. I had to find a way of working that allowed me to more effectively turn on that abstract problem-solving. I learned to identify when I was learning because it felt as though I was pushing my brain through a sieve. I adapted my strengths to address my weaknesses. Adaptation is the key to navigating plateaus in learning.
Climbing that first plateau develops the skills that feed right back into tackling the next challenge in understanding and application. The hike is toughest when you’re going vertical, but you’ll be running on the flatland in no time, looking for the next climb.
Learning programming is difficult. It was discouraging to be reminded that, in learning difficult things, curiosity is not sufficient. Curiosity must be grounded with a heaping pile of vision and passion for it to provide any real traction for your virtual endeavors. Assuming you’ve already mastered certain amounts of self-discipline and hopefully found the ways in which you can best harness your creative energies, it’s necessary to feed your passion and to continually reassess the vision you hold for yourself.
I can’t tell you how many times I doubted myself, but I can tell you I never lost my vision. I changed my perception and the meaning behind my vision, adding and subtracting ideas and ideologies to build a foundation of vision to draw from when stress, self-doubt and distraction pulled me down. I could continually return to this repository and pull out the motivation and reassurance I needed to reach the next plateau. I found the seeds of passion in the people, places and things that I love. Actively cultivating those passions to define and redefine your vision generates a feedback loop to supercharge your learning.
I may be cheating here, but I promise, the two are inseparable.
I have been guilty of putting myself through unnecessary duress to achieve certain ends. Thankfully, I encountered a sign on East Passyunk which laid plain what I had been struggling to define as a counter to my bad habit - “Pain is not a lifestyle.”
Take it slow. Take time off. Reinvigorate your passion. BUT when you do spend time slogging through O’Reilly Books, deciphering other people’s programs, and generally doing what it takes, take the long road, or, better yet, go off-road – apply your knowledge by starting from scratch. Copy and paste is great, but no one ever learned to bake a genoise by buying every boxed cake mix in the baking aisle. At some point, you have to break out your beaters and whip the egg-whites yourself.
Developing your own understanding and analytical relationship to programming requires approaching problems from your own unique perspective, and that means you should do it the hard way. But when you’ve created your first masterpiece, you should celebrate it in your favorite ways, because pain is not a lifestyle.
“Tell me and I forget, teach me and I may remember, involve me and I learn.” - Ben F.
In February of this year, I overcame my own scope-comprehension during a trip to JS Fest in San Francisco. After participating in a Node School meetup I was invited to join a group of new friends on the roof of Github. The invitation must have been a small gesture for our hosts, but for me, it was the ultimate moment of inclusion. It affirmed and grounded my vision in the larger community, it provided invaluable perspective that I had not, as I thought, been an observer, but instead was a participant, and had been from the very beginning. Leveling with people who share passion, vision and energy was the greatest gift I allowed myself in learning.
The programming community is incredible. The genius and generosity of people is limitless and perhaps the most rewarding part of this journey so far has been realizing that once you join the community, you’ve come full circle.
You are ready to help others as others have helped you.