Why Skills Training Matters for Young Programmers
There is no doubt that millennials have brought great energy and technological advances to the world of business over the last several years. Their contributions have helped lead the rapid transformation of many companies. However, there are times that millennials bypass tried-and-true techniques in favor of their own creative solutions and miss out on foundational skills and ideas. While it is certainly true that senior engineers can learn a lot from their younger counterparts, the reverse is also true. We have learned a lot over close to seven decades of application development and there are many lessons millennials and Generation Z-ers (who have just begun to graduate from college and exhibit many of the same attitudes regarding programming) can learn from their elders. In order to close the skills gap there must be synthesis and convergence between established ideas and new ways of learning.
The good news is, convergence is already taking place naturally between core application development on IBM i and the environments millennials and Gen Z-ers are used to moving through. The IBM i continues to become more flexible and robust, supporting new technologies such as open-source tools, cloud, the app economy, services, modularity, agile development, machine learning, and more. In this way, established systems are learning to “speak the kids’ language”, enticing millennials into investing their time in these core systems that continue to run our business operations. Just by embracing new programming languages like Python, Node.js, Ruby, and others, IBM i has opened itself up to an entire generation of creative and dedicated young professionals who have already changed the programming landscape.
It is not enough, however, to just change IBM i and hope recent grads come to check it out. Instructors and developers must understand the Millennial and Generation Z minds and adjust their teaching techniques to both spark their new students’ imaginations and keep their attention. That means treating younger programmers with respect and making certain compromises with a minimal amount of grumbling about “kids these days.” Any experienced teacher will tell you that students change over time, and only by keeping up with trends and learning styles can you really influence how people think and learn. Without compromise and creative new ways of teaching, millennials might “kill” these key skills for later generations like they’ve done to home-ownership, the diamond industry, and napkins.
To start with, employers should not expect younger programmers to enjoy using green screen applications or old-style development tools. They won’t enjoy the learning process as it requires re-adjusting some of their key skills and will seem hopelessly dated, and they won’t stay around long if they feel like they’re programming dad’s computer. Many companies use legacy systems that include a green screen, and while green screens can be very efficient and easy to use, they just do not jibe with the way programmers in their 20s view coding and computing. By all means employers should keep their green screen systems available if necessary, but should move towards providing user experiences and interfaces taught in higher education today.
Help a Man Teach Himself to Fish
A key part of training millennials and Gen Z-ers is to let them train themselves. The paradigm today is: if you want to learn something, you don’t sit in a lecture or observe as someone does it live, you go online and watch avideo or go through a tutorial. Young programmers today are autodidactic and used to training themselves on new systems and technologies, working alone so they can tailor the experience to their learning style and not expect someone else to get to learn and adapt to that style all on work hours. This sort of self-instruction also comes with a feeling of satisfaction that builds confidence, even if it is a myth that millennial confidence is fragile.
This means the IBM i community has to embrace and empower self-teaching. We need to develop and post clear usage instructions online, as well as instructional videos and automated tutorials. The more we translate our skills from oral and in-person teaching to recorded and replicable instructions, the better we equip our younger employees to empower themselves and master needed skills, all while recording existing expertise moving forward. Shifting to a millennial structure for learning will help our Gen Y staff internalize and embrace their new skills.
Closing the Gap
Ideally, new recruits should learn new skills and adjust to working with IBM i without even realizing they’re doing it. The goal is to let younger programmers and engineers work just like they would on any other platform. This means adapting to new systems the same way we want new IBM i-ers to adapt to how we do things. And just as they reap the benefits of their skills training, implementing cutting-edge solutions will make the entire working process more efficient and effective across the entire company. Free open source systems like git, for example, can dramatically streamline workflow and version control while appealing to millennials and Gen Z-ers already familiar with how it works. Likewise, embracing new languages like Python will make it easy for younger employees to sit down and start creating.
The name of the game is convergence. If established developers must embrace self-teaching, move away from green screens, and implement new technologies, millennials and Gen Z-ers will have to meet their elders halfway. This means younger professionals must learn something about the i in IBM i. They need to learn the secrets of building robust, reliable, high quality business applications that evolve with the company. Building code in Python or Perl is great, but the code must still be tested, and regardless of age, IBM i programmers have to know how to use the IBM i test tools to spot issues and recognize possible solutions
It takes effort on both sides to close the generation gap and the skills gap, but by adjusting the ways in which we teach and expect work to get done, we open our systems up to a creative and dynamic generation of people for whom computing is second-nature, and help them carry important skills over for when their kids are driving them insane.