5 Ways to Help Kids Develop an Engineering Mindset
How do you feel when you come across a new or complex problem? Do you feel overwhelmed? Frustrated? Or perhaps excited to start digging in?
Every day, software engineers come across complex challenges that require extreme concentration and persistence. In fact, these engineering challenges can arise multiple times a day. If you're teaching your students how to code, developing strong technical skills will definitely help them solve tough problems. However, kids also need to learn to adopt an engineering mindset when tackling complex programming tasks so they can muscle through when the work is difficult.
How do top software engineers think and behave when confronted with challenging problems? From speaking with, observing, and working with software engineers, I've learned a great deal about how some of the most talented engineers approach their work. These engineers share the following beliefs about themselves:
1. I can adapt.
Technology is always changing and it's important to help students understand that. Software engineers avoid getting too attached to any one device or tool because tomorrow something more optimal will probably come around. Rather than fearing new tools, engineers fully embrace the fact that technology is constantly evolving. More importantly, engineers believe that they have the ability to adapt to new tools and commit to doing so.
2. I can acquire new technical skills.
Just as technology evolves over time, technical skills, frameworks, and programming languages do, too. Engineers need to keep their technical skills fresh and even learn an unfamiliar programming language in order to tackle a new project. Students shouldn't shy away from a great or interesting project solely because it involves learning a new skill or programming language. Instead, we want to help students identify what skills they need to learn in order to solve a particular challenge and empower them to grow their technical skills.
3. I can do it.
When working on a coding project, students are bound to get stuck at some point and will probably feel frustrated when the solution doesn't come easily. It's important that kids know even the best, most experienced software engineers get stuck on problems all the time! Instead of giving up, engineers persevere and keep trying different solutions. In fact, software engineers might work on the same problem for a few days or perhaps longer depending on its complexity. Many tough engineering challenges can't be solved in just one forty-five minute class period. Students need time and encouragement to persist and work through tough problems.
4. I can ask.
Software engineers are not expected to know and memorize everything. That's unrealistic and also impossible! Engineers, however, are quite resourceful and understand the value in asking and Googling constructive questions. They spend a lot of time Googling their questions in order to find the right material, tutorial, or piece of documentation they need to move forward. Additionally, they 're not afraid to seek help from other engineers when they've hit a roadblock. Software engineers often ask questions and discuss challenges with other developers to come up with better solutions.
Students need to be comfortable with asking questions as it's a critical skill for software engineering. We want to teach kids to ask good questions and research these inquires. By doing so, they'll be taking a more active and independent approach to problem solving even when they don't know the answer. If students come to you with programming questions, rather than providing an answer, help them craft useful questions that they can discuss with peers or look up online.
5. I can take a break.
Working on a complex task for a long period of time can be draining. When software engineers are stuck on a the same problem for a while, they temporarily step away from that task to clear their thoughts and boost creativity. They might even work on another project in the meantime. When engineers are removed from the task, they become less myopic in their thinking and consider new ideas more easily. We need to let students know it's definitely okay to take breaks from challenging work. Help your students recognize when they need to take a break. It will be a valuable, lifelong skill.
Engineering work can be quite challenging and demand a lot of brain power and patience. There are times when students might feel insecure about their programming skills and want to give up. We need to teach kids how to have an engineering mindset so they start thinking like an engineer when confronted with challenging technical work. Instead of responding with, "I don't know or it's too hard," let's push kids to say, "Hmm I don't know this yet, but I can look it up and learn about it."
We can't just teach kids how to write code. We need to give them the skills to think and behave like engineers. Students really need to see the whole picture of what an engineer really is - someone who is eager and confident about taking on new challenges that come their way.