What your CS and IS students need to know before they graduate
- select the contributor at the end of the page -
Core skills for CS and IS students
Technology must provide business value
Often, with technology, we're lured by the shiny new gadget or software that promises to solve all IT problems. But students need to know that the technology they're using is only a tool, one that provides value. The key is to not implement technology just for technology's sake. Understanding how to use that tech to provide business value is what's really important.
Core security concepts
Security is important, and the level of security knowledge needed depends on your student's emphasis. Students should understand the different vectors their systems can be vulnerable to. Also, it doesn't hurt to teach students how to employ concepts like cryptography, authentication, authorization, roles, threat analysis, defensive coding, monitoring and detection.
Any CS and IS student should have a basic comprehension of networking. IT-focused students will work with the network every day and therefore need a deeper understanding. They should know how to build an efficient, reliable transmission protocol, like TCP, on top of an unreliable transmission protocol, like IP. And programmers, at least, still need to understand the purpose of a network stack and routing protocols within a network.
Others in the workplace will depend on tech professionals for a variety of reasons, and once students are in the real world they'll get tickets, whether they end up as developers or IT ops-there's no way around it. A big part of ticket tracking is communication and organization, so make sure your students can communicate what they're doing in layman terms.
Getting familiar with data is imperative for any CS or IS student. Of course, some disciplines will work with data every day while others won't, but understanding it on a basic level will go a long way. Computer science and information systems students should be able to comprehend data processing, analytics, visualization and databases. They don't need to be well versed in all of these, but they should at least be familiar with them.
Hands-on experience in a test lab
So many CS and IS degrees make students spend all their time in the books, and not enough time actually working to configure environments. Although programmers and IT ops need access to test labs for different reasons, working in a lab is crucial. Working in a test lab gives future computer science professionals a lot of hands-on-experience before working their first job.
Create a portfolio
Your students should produce something like a personal blog or per-project page that's public. If they're developers, encourage them to have public code on a site like Github. Programmers should contribute to open source and link and document what they've done. IT-focused students can document their progress in their projects, as well their thoughts about current issues in the industry. These portfolios make it possible for future employers to accurately judge their ability. Design course projects with portfolios in mind so that students can update them at the end of every course.
Skills for IS/IT students
It's imperative that IS students understand virtualization because it has the ability to provide numerous efficiencies and cost savings. Through virtualization, you can utilize hardware to a fuller extent and provide more mobility/scalability in which you host your systems and application.
Students need to know things such as Active Directory, LDAP and cloud-based management. Identity management is the fundamental core skill they'll provide as part of an IT department. Customized access for users, as well as establishing and managing roles and access privileges is a crucial part of an IT job.
PowerShell gives you the ability to automate and simplify repetitive tasks by combining commands together and creating scripts. Your students can be more productive using PowerShell because of the hundreds of customizable commands available to them. If they become confident with PowerShell, they'll have a lot of opportunities since it's become an integral technology in the IT world.
Skills for computer science students
If your students aren't using a form of version control, like Git, they're already behind. Teams use version control to refer back to earlier versions when necessary. Understanding how it works is often a non-negotiable skill.
Create a project from end-to-end
Software development students need to know how different processes work together. If they work on something from beginning to end, they'll better understand the processes and languages they're using. Also, have them document what they learn-doing so will help them contribute to their portfolio site.
Learn more than one programming language
Mastering a new programming language is a skill that improves with practice. The more experience your students have with new programming languages, the better prepared they'll be to quickly learn the next hot language. Likewise, they should know different kinds of programming languages including:
- Object oriented
- Strongly typed
- Weakly typed
- Machine/assembly languages
Familiarty with flowcharts
Students should know how to plan a project from beginning to end and be able to communicate their decisions. A flowchart is a helpful way to think about how one step moves into the next, and also forces them to articulate their ideas in such a way that others can understand their process.
No matter which path a CS or IS student follows, a little bit of instruction goes a long way-make sure your students develop these tech skills before they toss that cap in the air.