This week I taught my last class as a part-time adjunct instructor at a community college. I’ve been there for six years – 12 consecutive semesters. Each term, alongside the actual curriculum, I incorporated my work experiences and lessons learned about the reality of working in IT. Making the class meaningful from a real-world perspective was very important to me.
For my very last class, I chose not to cover anything in the textbook or any of the bullets on the syllabus. Instead, I introduced my students to systems and network automation. What may seem old news to you and me was brand-new to my class, and I don’t believe this is the exception.
There is a huge gap between what’s happening in classrooms and in real-world IT, and colleges aren’t preparing students effectively.
I believe the history of technology is important to learn, and I believe understanding foundational concepts is also critical. However, these elements need to be taught within the context of what’s happening in information technology right now. This way, even obscure computer science principles become relevant to the actual work a student can expect to perform in their career.
I know there are exceptions, of course. Students that plan to build careers in pure research should stay focused more on deep concepts and less on how to create a new VM in ESXi. But the majority of young people graduating colleges with two and four year IT-related degrees are getting jobs as sysadmins, network engineers, developers, help desk analysts, and so on. Knowing the foundational principles is certainly important, but does it also prepare them to configure a core switch or create new storage for the applications team?
Some two and four year schools advertise degree programs in network administration, cybersecurity, etc, in what I assume is an effort to provide a more relevant education. Some advertise they utilize the Cisco Networking Academy and Microsoft Online Labs. But after working in the trenches in some of these programs, I don’t think they are nearly as relevant as schools think they are. And frankly, I believe this is doing a disservice to tuition-paying students.
During my last class, I gave students an overview of systems automation and introduced things like Chef, Puppet, Ansible, and Powershell. We discussed the difference between on-box and off-box management. We talked about what programming languages they should learn on their own, the importance of getting familiar with navigating a Linux file system, and what changes are going on in the industry today.
None of my students knew what the “cloud” was. None knew any programming languages other than the little bit of C++ and Java they learned earlier that semester. None had any idea about virtualization, a 20 year-old technology.
There’s a big gap between what’s being taught and what employers are looking for, and I believe teachers and those who write curricula are the ones to address the issue head on. Administrators have no clue about what’s going on in our industry, and college advisers at best have only a cursory knowledge of what a hiring manager wants to see on a resume.
Colleges need to hire teachers with solid industry experience. They need to prefer adjuncts that are working in the field right now, and then pay them enough to keep them around. Curricula needs to be modified, or in many cases just thrown out. As much as possible, a course’s curriculum should reflect what’s going on in the industry. As budget allows, labs need to be built, and industry news publications need to be part of the course reading list.
This may not be applicable to many departments at a typical college, but it’s vital in IT. Our field lives and breathes change, and it doesn’t need a new generation of job candidates that have months of experience configuring VTP but little else.
For me, it’s not about explaining DNS, OSPF, or what a hypervisor is. It’s much more about helping bridge the gap between someone learning these things for the first time and making the leap to a productive member of an IT department. Sure, that means memorizing well-known ports and learning about data structures, but it also means discussing DevOps, cloud computing, containers, or whatever technology is immediately relevant.
I left my teaching position for several personal reasons, but I hope to get back there one day. I love being in the classroom, and I love working with young people starting their own career journeys.
A real joy for me was making every three hour evening class as relevant and meaningful as possible, and sometimes that meant abandoning the five-year-old textbook and reviewing a recent blog article instead.