Information Technology is a hot career field for many reasons. The pay is usually good, often you get to work on exciting things that can change the world, and often you can work in any location and with flexible hours. But what should you focus on if you're wanting to get a career in I.T.? I think there are four main areas that will be "hot" in the coming decades:
Data is used in virtually every computer program. Increasingly, we deal with truly huge amounts of data. Social networks must manage hundreds of millions of accounts, but that's the easy part. They then have to manage billions of posts, "likes", and photos -- every day! Financial companies must keep track of every transaction that happens. Systems administrators of large networks want to be able to track system statistics over time. Scientists need billions of data points for some simulations and forecasting applications. City-wide surveillance initiatives will need to collect untold photos every day for analysis. And on and on.
How do we deal with all this data? How do we store it as it arrives without losing any of it? How do we effectively get the information we need from it? That is what big data scientists need to figure out.
To be an excellent data scientist, you need to be good at statistics and other advanced math fields, depending on your specific application. You need to be good at computer science -- you must understand data algorithms, how a computer works its magic and what the costs are for each operation. You must balance the objectives of all users, ensuring that nobody's access of the data will lock out anyone else for an unacceptable period of time.
A relatively new way of thinking about I.T. operations, DevOps emphasizes the following:
To be great at DevOps you must have skill in systems architecture and administration, and also be a decent computer programmer. In addition you need to learn the tools of the DevOps trade -- which generally are a configuration management system (Chef, Puppet, Ansible, and SaltStack being the main contenders), a version control system like git with Github, and a build server like Jenkins.
In traditional application architecture, you have one or more very powerful servers, set up statically and usually configured manually. Applications were self-contained.
The cloud changes all that. Now, you have infrastructure on demand: When you need more computing resources, you ask for them with an API call. Imagine calling a function and having a new server, storage device, or load balancer pop into our infrastructure, all set up and ready to go. That is what this provides! This also allows "infrastructure as code" -- since servers are not physical, you can have your entire environment in a version control system and can easily be re-created with a single command.
Applications are no longer large monolithic blobs, but various small parts that talk to each other, often over message queues. Each small piece does one thing well, and you as the designer don't have to write everything -- many parts will be existing open source software products that can be leveraged and "plugged in" where they fit.
Being great at cloud application development will require meny of the skills of DevOps -- it is nearly inconceivable to launch a major cloud application without using DevOps methodology. You also need to have skill at large-scale architecture, being able to know how lots of pieces talk to each other and what they do. And you must think about the user experience and how your design will affect that. If a part of your infrastructure is unavailable, how will the other parts react in order to provide a user experience that is as good as possible?
I almost did not include this as a separate category, because security is so important to everything these days. No matter what you do in I.T., you need to work to make sure your data is secure. Making sure no one hacks into your systems is an important part of it, but that is just the beginning.
Professional security architects these days have a lot to deal with. There are various levels of compliance regulations for applications that process credit cards, handle health information, contain government data, or contain personally identifiable information (PII). A security architect will make sure all sensitive data stays only within systems that have strict access controls. Any data leaving these systems (for example, to log servers or applications that need to crunch stats) must be sanitized, having sensitive data removed.
To be a great security architect, one must love picking over policies with a fine-toothed comb. He or she may also need to put up with being perceived as the big bad obnoxious person, always telling others in the company "you can't do this [easy way to do it] because ...".
There you have it. If you can become conversant in all of these areas and highly proficient in one of them, you can look forward to a rewarding career in information technology.
This site will touch on all these areas, focusing first on data of course but covering the others on occasion as well.
Note also that these categories are highly interconnected, especially DevOps and Cloud Computing. A large modern application install will involve Big Data in the cloud, deployed in a DevOps manner with security and compliance in mind. But one person can do only so much.Share on Twitter Share on Facebook