Coding All-in-One For Dummies. Nikhil Abraham

Читать онлайн.
Название Coding All-in-One For Dummies
Автор произведения Nikhil Abraham
Жанр Зарубежная образовательная литература
Серия
Издательство Зарубежная образовательная литература
Год выпуска 0
isbn 9781119363033



Скачать книгу

software automates the process of testing your application across a variety of device types, saving a huge amount of time and a drawer full of phones. Mobile developers who can integrate testing software such as Crashlytics into their applications will get the data needed to continuously improve their application code.

      Mobile application developers work with designers to create easy and intuitive mobile experiences, with back-end developers to ensure that data submitted by or received from the phone is in sync with data on the website, and with product managers so that the application launches smoothly.

      Data analysis

      Data analysts sift through large volumes of data, looking for insights that help drive the product or business forward. This role marries programming and statistics in the search for patterns in the data. Popular examples of data analysis in action include the recommendation engines used by Amazon to make product suggestions to users based on previous purchases and by Netflix to make movie suggestions based on movies watched.

      The data analyst’s first challenge is simply importing, cleaning, and processing the data. A website can generate daily millions of database entries of users’ data, requiring the use of complicated techniques, referred to as machine learning, to create classifications and predictions from the data. For example, half a billion messages are sent per day using Twitter; some hedge funds analyze this data and classify whether a person talking about a stock is expressing a positive or negative sentiment. These sentiments are then aggregated to see whether a company has a positive or negative public opinion before the hedge fund purchases or sells any stock.

      Any programming language can be used to analyze data, but the most popular programming languages used for the task are R, Python, and SQL. Publicly shared code in these three languages makes it easier for individuals entering the field to build on another person’s work. While crunching the data is important, employers also look for data analysts with skills in the following:

❯❯ Visualization: Just as important as finding insight in the data is communicating that insight. Data visualization uses charts, graphs, dashboards, infographics, and maps, which can be interactive, to display data and reduce the complexity such that one or two conclusions appear obvious, as shown in Figure 1-3 (courtesy of I Quant NY). Common data visualization tools include D3.js, a JavaScript graphing library, and ArcGIS for geographic data.

      ❯❯ Distributed storage and processing: Processing large amounts of data on one computer can be time-intensive. One option is to purchase a single faster computer. Another option, called distributed storage and processing, is to purchase multiple machines and divide the work. For example, imagine that we want to count the number of people living in Manhattan. In the distributed storage and processing approach, you might ring odd-numbered homes, I would ring even-numbered homes, and when we finished, we would total our counts.

      FIGURE 1-3: The two Manhattan addresses farthest away from Starbucks.

      Data analysts work with back-end developers to gather data needed for their work. After the data analysts have drawn conclusions from the data and come up with ideas on improving the existing product, they meet with the entire team to help design prototypes to test the ideas on existing customers.

      Chapter 2

      Exploring Undergraduate and Graduate Degrees

      IN THIS CHAPTER

      ❯❯ Learning to code with a bachelor’s or master’s degree

      ❯❯ Coding outside class in clubs and hackathons

      ❯❯ Securing an internship to learn on the job

      “When I was in college, I wanted to be involved in things that would change the world.”

– ELON MUSK

      Going to college to learn how to code is probably the most traditional and expensive path you can take. A bachelor’s degree, designed to take four years, is rooted in the tradition of the English university system and was made popular by the GI Bill after World War II. More recently, the two-year associate degree has become more popular. It costs less than a bachelor’s degree, but many are designed as a way to eventually transfer to a four-year bachelor degree program.

      But when it comes to computer programmers, you likely know more people who didn’t graduate from college than did. Entrepreneurs such as Bill Gates, Steve Jobs, Mark Zuckerberg, and Larry Ellison dropped out of college to create technology companies worth billions of dollars. Still, the world’s biggest technology companies continue to hire mainly college graduates.

      Whether you’re thinking about going to college, are already in college, or attended college and want another degree, this chapter is for you. I explore learning to code in college or graduate school, and then building your credibility with an internship.

Getting a College Degree

The recent media attention on coding, with movies such as The Social Network and TV shows such as Silicon Valley, might make it seem like everyone in college is learning how to program. Although computer science (CS) graduates earn some of the highest salaries in the United States (see Figure 2-1), less than 3 percent of students major in computer science, and less than 1 percent of AP exams taken in high school are in computer science.

      Source: Digest of Educational Statistics; credit: Quoctrung Bui/NPR

      FIGURE 2-1: Bachelor’s degrees awarded in CS over the past 40 years, courtesy of NPR.

      The supply of students is low but is improving relative to the jobs that are available. Companies such as Apple, Microsoft, Yahoo!, Facebook, and Twitter recruit computer science engineers from schools such as Carnegie Mellon, MIT, and Stanford. It’s not just the companies you read about in the news that are hiring either. CS graduates are in high demand – the Bureau of Labor Statistics estimates that by 2020, there will be 1.4 million computing jobs but only 400,000 trained computer science students to fill those jobs.

      Yet far more important to employers than the name of the school you went to is what you did while you were in school. Employers will ask how you challenged yourself with your course load, and the applications you built and why.

      College computer science curriculum

      College CS courses offer a sweeping survey of entire computer systems from the hardware used to allocate memory to the high-level software that runs programs and the theories used to write that software. As a result, you gain a great sense of why computer systems behave as they do, which gives you the foundation to advance a technology or a programming language when the need arises.

      This approach differs dramatically from the learning you’d typically do by yourself or in a boot camp, where the focus is only on software development in a specific language such as Python or Ruby. Given the typical 12-week duration of a boot camp, there isn’t much time for anything else.

The core CS curriculum across universities is similar. Table 2-1 compares select core curriculum classes required as part of the Computer Science degree at Stanford and Penn State – a private university on the West Coast and a public university on the East Coast, respectively. Both have introductory classes to acquaint you with programming topics, math classes that cover probability, hardware classes for low-level programming and memory storage, software classes for designing algorithms, and higher level classes that cover advanced topics such as artificial intelligence and networking.

TABLE 2-1 CS Select Core Curriculum at Stanford and Penn State

      Until recently,