Название | Getting a Coding Job For Dummies |
---|---|
Автор произведения | Nikhil Abraham |
Жанр | Зарубежная образовательная литература |
Серия | For Dummies |
Издательство | Зарубежная образовательная литература |
Год выпуска | 0 |
isbn | 9781119121022 |
In 2011, Marc Andreessen, creator of Netscape Navigator and now a venture capitalist, noted that “software is eating the world.” He predicted that software companies would rapidly disrupt existing companies. Traditionally, software was used on desktops and laptops. The software had to be installed, and the installation process at a minimum varied by computer type and might not even work or might be incompatible with your computer hardware and software. After the software was installed, you had to supply data to the program.
Four trends have dramatically increased the use of code in everyday life:
✔ Web-based software: This software operates in the browser without requiring installation. For example, if you want to check email, you previously had to install an email client by downloading the software or from a CD-ROM. Issues arose when the software was not available for your operating system or conflicted with your operating system version. Hotmail, a web-based email client, rose to popularity in part because it allowed users visiting www.hotmail.com to instantly check email without worrying about installation or software compatibility. Web applications increased consumer appetite to try more applications, and developers in turn were incentivized to write more applications.
✔ Internet broadband connectivity: Broadband connectivity has increased, providing a fast Internet connection to more people in the last few years than in the previous decade. Today, more than 2 billion people can access web-based software, up from approximately 50 million only a decade ago.
✔ Coding repositories: Anyone can publish code for others to view and use. Popular coding repositories, such as Github, are making coding a more collaborative, open, and public process than ever before. Programmers publish code to show others what they can build, to solicit feedback to increase functionality or find vulnerabilities, and to quickly spread software to other programmers.
✔ Mobile phones: Today’s smartphones bring programs with you wherever you go and help supply data to programs. Many software programs became more useful when accessed on the go than when limited to a desktop computer. For instance, the use of maps apps greatly increased thanks to mobile phones because users need directions the most when lost not just when at home on the computer planning a trip. In addition, mobile phones are equipped with sensors that measure and supply data such as orientation, acceleration, and current location through GPS. Now instead of having to input all the data to programs yourself, mobile devices can help. For instance, a fitness application such as RunKeeper automatically tracks your distance, speed, and time.
The combination of these trends has resulted in software companies that have upended incumbents in almost every industry, especially ones typically immune to technology. Some notable examples include the following:
✔ Airbnb: A peer-to-peer lodging company that owns no rooms, yet books more nights than the Hilton and Intercontinental, the largest hotel chain in the world. See Figure 1-3.
✔ Uber: A car transportation company that owns no vehicles but books more trips and has more drivers in 200 cities than any other car or taxi service.
✔ Groupon: A daily deals company that generated almost $1 billion after just two years in business, growing faster than any other company in history, let alone any other traditional direct marketing company.
Figure 1-3: Airbnb booked 5 million nights after three and a half years, and its next 5 million nights six months later.
The one constant in technology and coding is change. Improvements in existing computer architecture will lead to the creation of newer, faster, and smaller hardware devices, and developers will then write code to operate and control those hardware devices.
Moore’s Law, a rule of thumb used in the computer hardware industry, predicts that the number of transistors per square inch on an integrated circuit will double every year. The prediction has proved to be true for the last 50 years, although some experts doubt whether it will continue to hold true for the next 50 years.
The following technology developments are increasing in popularity and should remain relevant at least for the next five years:
✔ Internet of Things (IOT): Computing power is transforming dumb hardware devices into smart, connected, self-regulated devices. For example, the Nest thermostat uses a motion detector to record when people are present, and then heats and cools homes when people are expected to be at home instead of all day. Similarly, Lockitron makes a device that allows you to lock and unlock your front door with your smartphone. Other connected devices, such as the FitBit fitness tracker and the Apple Watch, need coders to add functionality and connect people in new ways.
✔ Machine learning: For years, databases just stored data. Now, code is finally being written to analyze the data and make intelligent predictions. For example, mapping applications use real-time and historical data to predict traffic and the time your route will take to complete. 23andme, a genetics company, compares your human genome against its database to predict which diseases you are more likely to have. General Electric has outfitted industrial machines such as hospital equipment and jet engines with sensors, and uses historical data to repair machines before they break, decreasing downtime and increasing revenue. Coders will continue to write analytics programs to crunch large datasets and generate predictions with increasing accuracy.
✔ Interconnected applications: An application programming interface (API) allows one program to talk to and request data from another external program, which provides a response. Although APIs are powerful, their functionality can be limited and they rarely talk to one another. For example, Dropbox, the storage provider, has an API to allow third-party applications to back up data, and Facebook has an API that lets third-party applications retrieve a user’s photos. However, using just those two APIs, you cannot automatically back up every Facebook photo to Dropbox. Companies such as IFTTT (If This Then That) allows users to create recipes that combine APIs.
✔ Virtual software containers: Traditionally, software programs could be described as an interconnected web of your code and code written by others. To incorporate someone else’s code into your own program, you had to check that both programs were compatible and that any third-party code used by the external program, called a dependency, was also compatible with your code. The process of resolving conflicts was frequently time-consuming and frustrating. One solution is to move away from the current interconnected system of software programming to an independent self-contained system. Docker is one company that hosts an open-source project to help programmers package software and its dependencies into a self-contained program called a virtual container. These virtual containers have standardized inputs and outputs, run on many operating systems, and can connect to each other with little need to check for compatibility. Just like standardized shipping cargo containers make it easier and faster to load and unload ships, so too do virtual containers make it easier and faster to package programs to work easily with other programs.
Tracking the Explosion of Coding Jobs
Creating applications and making computer programs work seamlessly requires many people working many hours because every instruction must be explicit. The Bureau of Labor Statistics estimates that across all industries, about 140,000 jobs in computing are being created every year that pay approximately $80,000. In some industries, computing jobs are growing by over 20 percent, which is two to four times the average growth rate across all occupations.
The demand is great, but computer programmers are