I must confess. Although I like gadgets, I am not a techie per se. Many of us enjoy technology and believe that we are well versed in it. But, I would call that the End-User Syndrome. That is, we enjoy the benefits of our smart phones and mobile devices. We love to be able to do all sorts of things online, including looking up answers quickly, making purchases, and paying bills (OK, that’s not so much fun). However, few of us would ever be interested in assembling hardware or even writing the code which drives the Internet or the apps we use.
Today, I had an opportunity to meet with recruiters Alexa and Lee at a technology recruiting company in my area. Following an explanation of what I do, I asked them about their staffing needs. I also asked them what areas were hard-to-find and therefore represent opportunities for current and future job seekers in our community. They replied, practically in stereo, “Java”! And they did not mean the kind from Starbucks or Dunkin Donuts. I then asked them to list other areas of IT and we came up with the list which appears below.
Caveat: I mentioned that I am not a techie, right? So, I cannot say that I am conversant with these languages or platforms. I can’t say that I fully understand the descriptions which I gathered from my research. But, what I can say is that based on this recent meeting and the information I have gleaned from other IT professionals, these represent current, imminent, and future skill areas which are in demand. The Baltimore-Washington corridor is full of government employers, contractors, and commercial technology companies who are starving for these skill sets. There are many quality jobs out there which are ripe for the taking, if people would have these skills. Within Information Technology (“IT”) the unemployment rates range from less than 1% to just over 3%, which is half of the national rates. See this graphic.
It would therefore be important for parents of young people to pay attention to what is out there by way of available jobs and those skills which will be needed for kids to achieve gainful employment. Peruse job descriptions and titles. Look at the experiential and education requirements. Young people should be encouraged to learn these areas early and often, in school and at home.
So in that spirit, I am presenting some areas which came up during my meeting, starting with the coffee (which they did offer me, by the way), or more importantly Java.
Java (not to be confused with Java Script) is a programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2014, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers. The language derives much of its origins from C and C++, but it has fewer low-level facilities than either of them.
Ruby on Rails (or “Rails”) is an open source full-stack web application framework written in the Ruby Programming Language. Rails is capable of gathering information using pages and applications from the web server and can interact with a database and can retrieve information from the database. Rails works as routing system that works independently from the underlying web server. Rails is designed to make building web applications simpler by utilizing convention over configuration. In doing so Rails greatly simplifies the creation of certain applications while complicating the creation of others.
Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C. The language provides constructs intended to enable clear programs on both a small and large scale.
Extensible Markup Language (or “XML”) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all free open standards.
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility (like the electricity grid) over a network (typically the Internet). Clouds can be classified as public, private or hybrid. The term “moving to cloud” also refers to an organization moving away from a traditional CAPEX model (buy the dedicated hardware and depreciate it over a period of time) to the OPEX model (use a shared cloud infrastructure and pay as one uses it).
MapReduce is a programming model and an associated implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster. A MapReduce program is composed of a Map procedure that performs filtering and sorting (such as sorting students by first name into queues, one queue for each name) and a Reduce procedure that performs a summary operation (such as counting the number of students in each queue, yielding name frequencies). The “MapReduce System” (also called “infrastructure” or “framework”) orchestrates the processing by marshalling the distributed servers, running the various tasks in parallel, managing all communications and data transfers between the various parts of the system, and providing for redundancy and fault tolerance.
Apache HTTP Server (or “Apache”) is a web server application notable for playing a key role in the initial growth of the World Wide Web. Originally based on the NCSA HTTPd server, development of Apache began in early 1995 after work on the NCSA code stalled. Apache quickly overtook NCSA HTTPd as the dominant HTTP server, and has remained the most popular HTTP server in use since April 1996. In 2009, it became the first web server software to serve more than 100 million websites.
Apache Hadoop is an open-source software framework for storage and large-scale processing of data-sets on clusters of commodity hardware. Hadoop is an Apache top-level project being built and used by a global community of contributors and users. It is licensed under the Apache License 2.0.
The $64,000 question is from where and how skills in these areas are to be obtained? Well, a first step is to get our youth interested in IT fields such as programming (or “coding”). Here are some helpful resources for parents. For parents of younger children, see here. For older children, there are a bunch of often free online tutorials which can be accessed here, here, and here. For information on the up-and-coming specialization of robotics, please see here.
Another step is to encourage local educational entities to get on board in terms of added focus and classes. Our middle and high schools, colleges, and experiential training environments need to be encouraged to offer classes these areas. These classes will serve to expose students to as well as hopefully cultivate interest in IT (I have previously expressed the same for all of STEM fields.) Given the current and emerging opportunities in the Baltimore-Washington area, this would serve to align our youth with a path towards gainful employment.
Another step is to seek out training opportunities. These might come in the form of experiential scenarios like internships and entry-level jobs in IT. Since much of what goes on in IT is gained on the job, exposure to current and emerging technologies might be more important than what could be taught in a classroom. This does not obviate the need to consider degree programs or industry recognized certifications in various technologies. For some jobs, an IT degree is required and will often be critical to career growth to management or higher-level positions.
One comment which I frequently get from parents and young people is “if the technology is constantly changing, what I learn or train on today will be obsolete by the time I will be looking for a job”. While that might sound logically true, it is in fact erroneous. What a person learns today will provide the foundation of the fundamentals for how things work within IT. Therefore, exposure and experience today will lay the groundwork for the future.
In closing, I will add a few points:
- Qualified IT professionals are in very high demand, and will be, for the foreseeable future. There are many vacancies and recruiters struggle to find suitable people to fill them. However, not all credentials are the same. Degrees from accredited, recognized, and respected institutions will always garner significantly more interest from employers than certifications from dubious ones.
- IT degrees are a great investment. To earn such a credential requires much less investment of time than the training required in obtaining comparable levels of employment and compensation. A solid Bachelor’s degree in IT will usually result in positive job prospects upon graduation.
- The Baltimore-DC area has many government bureaus, security agencies, and contractors. Because many such employers require U.S. Citizenship as a requirement, people born in the U.S. are often at an advantage, if they are qualified technically. Furthermore, those born in this country may have an easier time being issued a Security Clearance, which is also required for many well-paying IT positions. So, the combination of technical training, skills and being from this area will make for a very compelling resume.
- The incredible popularity of portable computing made possible by smart phones and mobile devices will only increase as new devices and technologies are introduced. Consequently the skills listed above will be even more marketable.
The world is rapidly changing and so is IT, perhaps even more so. In a very different context during my years in summer camp, we were told that “learning never ends…clean-up begins right now”. For IT as well, this is so true. The proper perspective is to not only gain skills at the entry-level but maintain currency. This requires a mindset of continuous learning and adaptability to whatever comes down the pike.
[Blogger’s note: I wish to thank Alexa, Lee, and Sam for their helpful technical input in preparing this, as well as Wikipedia for translating many of the technical terms into plainer English.]