The Path to Technical Proficiency
Our school teaches full stack development to students from nontraditional backgrounds. We have graduated and placed students with a wide range of professional backgrounds, including butchers, opera singers, stay-at-home parents, and a variety of service-oriented roles. It has given us a chance to capture and define the education process that works best for our learners. We have defined ‘Read, Write, Speak, and Teach’ as the educational foundations to our ‘Path to Technical Proficiency.’ Our focus on these key areas have benefited students and helped us to teach more effectively.
Below you will read about our definition of Proficiency levels. If you are learning or perhaps mentoring others, we think this will give you a chance to reflect on your learning process. We also hope that these definitions will spark ideas on ways that you can provide additional support for your own learning environments.
Read
The Read proficiency is all about giving people the tools in their toolbelt to understand the topics at hand. Think about any given buzzword or term that exists in your industry; gaining the understanding of the definitions of those words allows one to become Read proficient in a given field. Can the student look at the terms and know what they mean? In programming, could you open up the code and at least make an educated guess about what the code is doing, based on the syntax that you’re seeing?
This is often the foundational proficiency that is gained while a student is in lecture, reading a book, or exploring a tutorial. The initial connections between the problem space and ways to go about solving problems are still being formed in the learner’s brain. At this point, the learner is building their understanding of what the tools do and how they could be used. They may not be making the most effective decisions about when to use the tools yet, but they understand how the tools work.
Write
Write goes beyond ‘just being able to write code’, so to speak. If Read is building out the initial tool belt, Write is about both knowing which tool to select and how to apply it appropriately and contextually to a challenge at hand. It's about looking at a problem and being able to make a conscious decision about what to do next and tactically how to do it.
In the many years of assisting learners tackle programming, I have made the observation that this is the proficiency that people struggle with the most. Transitioning from Read to Write means that you need to actually start building software. If you are only reading books or tutorials, you are not often in the position where you have to plan through a problem. The nature of a book or tutorial typically involves following along with an example and building what the author is building through clearly-defined steps.
This is not to say that those materials are not important. They make the connection between problems and solutions more defined. Essentially, they are improving your Read proficiency. However, in my development career, I have never been asked to build something that I could build from a tutorial. Custom development is a set of unique problems that very rarely match the configuration of a tutorial.
There are many sites that offer ideas for projects that you can build. One of the most important activities for any new learner is to simply build a lot of things. If you pair that with GitHub, you will now have example code bases that hiring managers will love and show that you are capable of solving problems. In essence, it demonstrates that you are ‘Write proficient’.
Speak
The Speak proficiency is about translating complex ideas into simple ideas. The recipient of your communication need not understand the complexities of the technology that you are working in. They should be able to follow your logic clearly, and understand what it is that you are working with and how it provides value. This becomes particularly important if you are communicating with clients.
If you have ever communicated across technical-differences with clients or coworkers, you know that technical jargon can bog down a conversation and cause a loss of attention. As a developer, good working relationships in your profession will be influenced by your ability to talk about the important things you can do in a way that people with different skills can understand. Additionally you need to understand the needs of the person you are speaking with and have empathy for how your work may impact or benefit them.
Early in my career, I was a salesman at an electronics retailer selling computers. This is where I really began to understand the importance of communicating at a level that the recipient could understand. While it’s great that I knew about all the specific components of a computer and how they worked together, if I could not translate that into how that would benefit the buyer that knowledge would have been worthless.
Often when you are speaking about these topics, you will start to discover gaps in your own understanding. The more you talk about the technical things in a non-technical way, the more you will solidify your core understanding of the technologies you work with. Through solidifying Speak, you also solidify your Read and Write proficiencies.
Teach
Teach is very purposefully different than Speak, but it builds off of similar foundations of awareness and empathy. Teaching is the actual act of taking what you know technically, and transferring that knowledge to a recipient. The trick to this is to approach it from the learner’s context, rather than your own. Although I have been working in development a long time and know a lot of concepts, I understand that I cannot effectively teach a newcomer unless I first focus on what they know, and teach from there.
I use a marketing term, Contextual Targeting, to describe the approach that an educator should take with a learner. Whether I’m answering a student’s question or preparing a lecture, I always immediately ask myself “where is this person currently at with the material?” That process of reflection will often inform different approaches to presenting information, practice, or posing generative questions back to a learner. The phrase I use with others is, “Remember that this is about a peer’s learning process, not an opportunity for you to show what you know.”
That statement alone that will separate those who are great at teaching and those that are not. My career has been a healthy mix of both education and development, so you can imagine that I have come across many educators who teach very technical topics. The ones that struggle at educating others seem to be approaching education as an opportunity to show how smart they are.
Conclusion
In my experience, I have found that all of these proficiencies are critical for long-term student success. The most effective educators demonstrate new material and allow the students to build up a level of Read proficiency. Then, the educator prepares an activity that makes the students work through it, developing out the Write proficiency. The next step is to provide a Speaking venue for learners to talk about what they built with others at different contextual levels. Finally, giving the students an opportunity to Teach others will strengthen their depth of understanding, confidence, and vital communication skills.
Approaching learners with this model has proven to be extremely successful for our students. It’s my hope is that they take this model with them into their new workplaces, so that they can continue to learn and mentor others within a cycle that’s accessible, collaborative, and self-sustaining. But what do you think? Are there struggles in your learning or mentoring processes that you are having difficulty overcoming? Are there other models that have been working great for you?
Regional Sales Coordinator at Learnt ?
8 年Scott you really shaped the way I approach learning programming. Since I saw you present this topic at JSmn I have changed the way I think about learning. This simple read write speak teach philosophy really resonated to me and every single learning session I do now I consider these 4 things. I have started making JavaScript YouTube videos for codecademy's path shortly after I finish myself. I have started blogging about my daily learning just to exercise my ability to articulate and regurgitate everything I just learned. I ended up signing up with The Iron Yard for a bootcamp instead of Prime Digital Academy however your idea will be stuck with me forever and I am forever grateful for that. Keep on shaping great developers Scott!