Quality programming requires complex intellectual skill sets to best get the job done. Learn some tips from an industry expert on how to establish a true developer mindset.
I've worked with developers for years in my capacity as a system administrator and I've known some truly unique and brilliant personalities. Frankly, I've found myself envious of people working in a discipline often committed to "single tasking" rather than the constant multi-tasking my duties entail, even though the single task may be incredibly complex.
SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)
Learning to write quality code isn't about doing the same thing all day, and while there are some shortcuts like reusable code samples and code development collaboration on sites like Github, developing the right mindset as a developer goes beyond just typing away on a keyboard or copying and pasting.
Like building a house requires knowledge of mathematics, physics, environmental factors, and other critical elements, good programming skills require an innovative mindset.
I spoke with one of the founding godmothers of the Google Cloud, Jessie Jiang, about how she's spent the last couple years reinventing online learning's best practices. Jiang is the founder of Create and Learn, an online education startup that is making computer science education accessible for elementary school students.
When Jiang started teaching her 6-year-old daughter computer science years ago, she took a novel approach. She didn't focus on teaching Python or how to code, rather, she focused on building a more well-rounded individual.
"We did project-based learning," Jiang said. "Every time we got together, we didn't say, 'How do you do loops?' 'What is a function?' We'd say, 'Hey, today we're building an animation! Today we're telling a story!'"
Scott Matteson: Why is it important to focus on critical and creative thinking vs. learning to code?
Jessie Jiang: The goal is to deliver both, where coding is more tactical and is a tool. Creativity and critical thinking are skills that transcend technologies and specific tools. According to the World Economic Forum, problem-solving, creativity, and critical thinking are the most important skills for the future (the importance of communication and resilience was also cited).
SEE: Linux commands for user management (TechRepublic Premium)
Coding, when taught correctly, is one of the best ways to develop critical thinking and creativity. When kids grow up, most likely there will be other coding tools. However the understanding they gain about how computer systems work in the process of learning coding and the creativity and critical skills will apply regardless of how the tools change.
Scott Matteson: How do small groups focusing on how computer science intersects with medicine, the arts and environmental management build character in young people?
Jessie Jiang: It helps students broaden their view of the world and care about people and things beyond their small circle. This not only helps them make better choices about their careers down the road, but also helps with their social emotional growth.
When we work with elementary and middle school teachers, this is often a key reason why they believe it is very valuable to introduce students to artificial intelligence (AI) and data science. For instance, when students see how AI can detect coral changes, deforestation, or melting glaciers, they naturally learn more about our world. When they learn how data science and AI can help diagnose diseases, they are more empowered.
Scott Matteson: How is computer science a tool for kids to better express themselves?
Jessie Jiang: There are many ways. Take Scratch as an example. It is one of the most popular platforms for students to get started on learning coding. If you go to their website scratch.mit.edu, you will see many creations of stories, games, and animations.
Children are using the tool to tell their stories. The amazing thing is they can start doing it within the first 10 minutes of learning it and can keep improving as they learn more. When my daughter applied for middle school, they asked applicants to create something about themselves. Instead of writing or drawing, she created an animation using code to tell the story about herself.
Scott Matteson: How is a holistic understanding of technology (rather than simply knowing how to code a computer language) helping to build more well-rounded leaders?
Jessie Jiang: Let's consider an analogy. Take a flower seed, teach someone how to dig a hole, plant the seed, water it, put on fertilizer, get rid of the bugs, prune it, till it blossoms. Now, consider another person, not only teach him or her how to grow a flower, but also how different flowers might attract different birds and butterflies, how different plants might complement each other so you have a beautiful view in all seasons, how you grow some in the shade vs. in the sun.
SEE: C++ is now the fastest-growing programming language (TechRepublic)
Which one do you think will likely build a better garden in the long run, or find something he or she loves in the whole garden as opposed to just being the person growing flowers? Growing a flower is a perfect place to start, that's not where we end. Coding is a great place to start; there are a lot more things to learn than coding that will help have huge impacts.
Scott Matteson: What are best practices for online learning?
Jessie Jiang: It needs to be designed from the ground up for online learning. Take students and teacher interaction as an example. In a classroom, it is very easy for teachers to walk around, check students' work, and help as needed. Online tools can't do that yet. So the curriculum needs to be designed to make classroom interactions in an online environment more effective.
There are also advantages of online learning. It is a lot easier to bring the best expertise that would otherwise be impossible to get locally to students all over the world. This is what we aim to accomplish, which is to bring top quality computer science (CS) education everywhere.
Scott Matteson: What other observations or tips can you share from your Google Cloud experiences and background?
Jessie Jiang: Based on what I have seen from Google Cloud and the technology trends in general, compare that with what students are learning even in the top school districts in the US, our technology education is falling further behind.
SEE: IT pros gained confidence, new skills amid pandemic (TechRepublic)
CS education for K-12 has made a lot of progress thanks to the work of many great organizations in the last 10 years. However, technologies are developing even faster than the speed that we can change our education system. It is not difficult to see why this might be the outcome simply by looking at one area—money invested in technology start-ups vs. education programs that are about what students learn. That said, I do believe the situation can be changed with creative approaches. I am very optimistic about the approach we are taking and would love to see more creative solutions from others.
Holistic learning is for leaders, too
Create & Learn hosted a free webinar on Minecraft last May with students from University of California, Berkeley, to talk about how they built their Minecraft campus to hold virtual graduations. There are more upcoming webinars.
I also spoke about the subject with Rachel Roumeliotis, O'Reilly Media's vice president of Content Strategy, who added more about holistic learning.
"Programming languages, frameworks, etc., are the tools that are used by software developers but these tools don't think—at least not yet. To solve problems with these tools you need to focus on applying intelligent thought with these tools. One doesn't work without the other," she said. "A holistic understanding of technology helps build more well-rounded leaders rather than simply knowing how to code a computer language. Leaders need to understand technology—and people. Same concept here, one doesn't work without the other. It is the combination of the two that really makes things happen. Bad with coding and you can't accomplish a polished, optimized final product. Bad with people, you can't accomplish a polished, optimized final product. Understanding how to work with the people that know better how to code than you will breed the innovation that you need to see for your company's growth."
- Listen to TechRepublic's Dynamic Developer podcast (TechRepublic)
- How to become a developer: A cheat sheet (TechRepublic)
- Microservices: A cheat sheet (free PDF) (TechRepublic)
- Hiring Kit: .Net developer (TechRepublic Premium)
- Programming languages: Developers reveal most loved, most loathed, what pays best (ZDNet)
- It takes work to keep your data private online. These apps can help (CNET)
- Programming languages and developer career resources (TechRepublic on Flipboard)