fbpx
Home Blog Page 1434

Ask a Data Engineer: Warby Parker Edition 👓

0
Ask a Data Engineer: Warby Parker Edition 👓

wp-header

Codecademy’s very own Nick Duckwiler (left) and Ryan Tuck from Warby Parker (right) in our office. (📷: Mitch Boyer)

Last month, Codecademy and Warby Parker came together to work on a special Learn SQL from Scratch Capstone Project. It was during this time when I met Ryan Tuck, a Data Engineer at Warby, who played a major part in this partnership. So when he decided to drop by our office for the final QA round, I had to break out my notebook and ask some questions. Enjoy.


Hey Ryan, let’s start off with a question I’ve had for a while — what is a Data Engineer? (Is it similar to a Data Analyst or a Software Engineer?)

At Warby Parker, data engineers are responsible for creating and maintaining the plumbing required to support the data and reporting needs of the business. We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.

What languages/frameworks do you use at Warby?

On data engineering, we use Python as our general purpose programming language, as do most of the other teams in our Technology department. When it comes to databases, we use PostgreSQL for the majority of our SQL needs, and are beginning to use Amazon Athena and Google BigQuery for some of our larger datasets. We use Looker as our exclusive business intelligence entry point to all of this data.

What are some of the projects you worked on?

I’ve had the privilege of working with a lot of of smart people in every department at our company to help them solve their varied data needs, from reconciling financial data with the Accounting team to automating and modeling standardized performance metrics for our team of over 200 customer experience advisors.

As part of a team of five supporting the data needs of a rapidly growing company, I’ve tried where possible to focus on helping our analysts solve their own problems. This includes helping people learn Python and commit to our codebase, guiding the creation of data models in SQL, and encouraging people to submit pull requests to add features in Looker, our BI tool.

Seeing dozens of otherwise “non-technical” colleagues opening up PRs on a daily basis, and consequently being part of the democratization of tech that we value at Warby Parker, is probably the most rewarding “project” I’ve been a part of.

One project finished recently during our first annual “Hackweek” is called Pipes, which allows anyone at the company to easily move large amounts of data from wherever to wherever (Looker, Google Sheets, PostgreSQL, BigQuery, etc) on a regular cadence, or manually through a simple one-line chatbot interface. The adoption has been overwhelmingly positive and we’re looking to grow this sort of tooling out even more.

“We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.”

What got you into the data field?

I’ve always been drawn to analytical fields like math, and became pretty proficient in Excel during some internships in college. Once I had learned to program and learned more about data science and its applications in artificial intelligence, I knew that anything I could do to immerse myself in the world of data would be a step in the right direction.

Three and a half years ago, I landed a job as a junior software engineer at Warby Parker not fully knowing what I was in for, but am so glad I got the opportunity to help build tools to support an interesting and ever-changing data-driven culture here.

Where did you learn SQL and Python?

I had a background in C++, and was exposed to Python through an Intro to Data Science course. When Warby Parker hired me onto the Data team in 2015, I had never written a SQL query in my life, but picked it up quickly and within a few months started up internal SQL training classes, which I still teach on a monthly basis.

What does your tattoo say?


The ultimate cheatsheet.

This is Bayes’ Theorem, which is an equation that describes how to update probabilities given new evidence. Two summers ago I worked on building a tool to help predict weekly fantasy football performance. Some colleagues suggested a Bayesian approach would be appropriate, since there aren’t really enough data points in an NFL season to be able to use statistical approaches that require larger datasets, and I’d want to regularly update my predictions after each player’s latest performance.

I did a deep dive into understanding the (simple) math underlying Bayes’ Theorem and came out of that experience with a whole new worldview, understanding my entire knowledge of the world as a big and intricate probabilistic model that I was continuously updating with every experience I ever have. It was pretty transformative, and I figured that was worth a tattoo.

What is a concept in SQL/Python that’s essential to your work?

Donald Knuth said, “Premature optimization is the root of all evil.” I’ve generally found this to be true, and try to live by it in my work. For example, I’ll generally prefer to keep a data model simple by rebuilding it for all time on a daily basis using a single SQL query instead of making a more complicated model that requires iteratively adding to a table, keeping track of state, updated timestamps, when something last ran, etc.

A wise man once said, “Duplicating data makes things go fast,” but databases are already impressively fast to begin with, without implementing anything to improve performance. Ultimately, I almost always approach a problem thinking about optimizing for my time over machine time, for readability over performance, and for introducing as little cognitive overhead as is required by the problem at hand. Only once performance issues or readability issues present themselves will some code be worth a rewrite.

Last question! Since you wrote Warby Parker’s internal SQL training courses, I know there gotta be some inner Curriculum Developer in you. Can you teach a SQL concept in 2 minutes?

Sure! Have you ever written a query that yields some result set and you think, “I’d love to query the stuff I just produced like it was a table?” Enter the WITH clause.

Suppose I have a mega query that gives the transaction summaries:

select
    transactions.date as transaction_date,
    sum(items.price) as total_cost,
    count(*) as number_of_items
from
    transactions
inner join
    customers
    on
    customers.id = transactions.customer_id
inner join
    transaction_items
    on
    transactions.id = transaction_items.transaction_id
inner join
    items
    on
    items.id = transaction_items.item_id

Using WITH, I can create a temporary table within my query that I can SELECT from and treat it just like a regular old table.

I will put everything from the previous query in a parentheses and use WITH to give it the name transaction_summaries.

Then I’ll apply the date and customer filtering down below for a more readable query, to separate out all the JOIN logic from the actual WHERE filters that I want to apply on that data.

with transaction_summaries as (
  select
      transactions.date as transaction_date,
      sum(items.price) as total_cost,
      count(*) as number_of_items
  from
      transactions
  inner join
      customers
      on
      customers.id = transactions.customer_id
  inner join
      transaction_items
      on
      transactions.id = transaction_items.transaction_id
  inner join
      items
      on
      items.id = transaction_items.item_id
)

select 
        * 
from 
        transaction_summaries
where 
        first_name = 'beyonce'
        and 
        transaction_date > '2018–01–01'
order by 
        total_cost desc
limit 
        5

If you’re familiar with subqueries, this does a similar thing but makes the SQL far more readable, even if your query isn’t quite as performant as it would have been. This is essentially an implementation of the mantra “Don’t Repeat Yourself” that’s common in the world of programming.

Incredible. And love the SQL styling! 😍


Huge shout out to Ryan and the whole Warby Parker team for making this partnership happen. Special hat tips for behind-the-scenes support from:

  • Lon Binder, Chief Technology Officer, Warby Parker
  • Maddie Tierney, Executive Assistant, Warby Parker
  • Kayla Robbins, Executive Assistant, Warby Parker
  • Kaki Read, Senior Communications Manager, Warby Parker
  • Isabel Seely, Senior Brand Manager, Warby Parker

It’s been an absolute pleasure. And of course, the fam at Codecademy. You know who you are. Couldn’t do it without you.

Literary Protagonists

0
Literary Protagonists

Who are your favorite characters from the books you’ve read? What makes them stand out to you? What do you appreciate about them?

Tell us in the comments, then see the related piece to learn a little bit about the artist behind this graphic.

Find many more ways to use our Picture Prompt feature in this lesson plan.

Word + Quiz: dulcet

0
Word + Quiz: dulcet

1. pleasing to the ear

2. extremely pleasant, in a gentle way

_________

The word dulcet has appeared in eight articles on NYTimes.com in the past year, including on June 12 in “Can’t Sleep? Let Bob Ross Help You Find Some Happy Little Zzzs” by Laura M. Holson:

For years, insomniacs have been lulled to sleep by the dulcet voice of Bob Ross, the bushy-haired painter whose PBS show, “The Joy of Painting,” rose to popularity in the 1990s and has lately enjoyed a second life on YouTube. Now, the maker of a popular meditation app hopes Mr. Ross will put everyone else to sleep, too.

Calm.com, which produces meditation products, is recasting classic episodes of “The Joy of Painting” into “Sleep Stories,” an audio series designed for restless adults to ease the burden of slumber. It is the first time the company that manages Mr. Ross’s estate has agreed to license audio of the show that turned Mr. Ross into a celebrity and, after his death in 1995, a pop culture favorite.

_________

How Much Do You Know About Jordan?

0
How Much Do You Know About Jordan?

Can you find Jordan on a map? What else do you know about this Middle Eastern nation with 10.5 million people.

Do You Have Satisfying Friendships?

0
Do You Have Satisfying Friendships?

How important to you is having friends? What do you think it takes to make — and keep — a real friend? Is it ever difficult? Is friendship worth the effort?

In the Opinion essay “This Friendship Has Been Digitized,” Stephen T. Asma writes about an exchange with his 15-year-old son who had been playing Xbox with Scuzzball, a “friend” the son has never met outside of the online world:

My son’s indifference about playing with a person or a bot is actually very typical of gamers these days. They refer to one another as “friends,” but to me their bond looks very tenuous. I don’t recognize any sense in which Scuzzball and my son are real friends. And that concerns me. I wonder whether the pre-internet, face-to-face experience of friendship that I knew growing up will be lost to our post-internet children. And I’m not alone.

The Op-Ed continues:

Classmates and workmates can become friends, as can fellow members of sports teams and musical groups, spouses, religious or military colleagues, and so on. These examples suggest that friendship needs three criteria for full realization: shared experience, loyalty and shared intentionality, or mental connection.

What about in the digital sphere? Our online “friends” — whether it’s Scuzzball or the Facebook friend you’ve never met — satisfy the intentionality criterion, because we communicate extensively with language and report to each other long-term goals, disappointments, beliefs and other facets of mental life.

We can share experiences with a person online, but the experiences seem thin when compared with face-to-face experiences. Online adventures (social networking, gaming) can certainly strengthen friendship bonds that were forged in more embodied interactions, but can they create those bonds?

Teenagers playing “Call of Duty” with online teams, for example, are having collective emotional experiences, as in the case when my son’s squad must work to capture the enemy’s munitions. And these shared adventures strongly trigger the dopamine pleasure system, so it seems like there should be bonding. However, the online “friends” may be little more than dopamine-dosing tools and easily replaced without much dissonance. Indeed, one doesn’t even know who Scuzball is, or where he lives, or if he’s a he, or if he is a person or a bot.

The kind of presence required for deep friendship does not seem cultivated in many online interactions. Presence in friendship requires “being with” and “doing for” (sacrifice). The forms of “being with” and “doing for” on social networking sites (or even in interactive gaming) seem trivial because the stakes are very low.

More important, the “shared space” of digital life is disembodied space. We cannot really touch one another, smell one another, detect facial expressions or moods, and so on. Real bonding is more biological than psychological and requires physical contact. The emotional entanglement of real friendship produces oxytocin and endorphins in the brains and bodies of friends — cementing them together in ways that are more profound than other relationships.

Students, read the entire essay, then tell us:

— Can online “friends” be true friends? Is there anyone you’ve never met in real life that you consider your friend? If so, do you make distinctions between this person and the friends who are physically present in your life? Why or why not?

— Mr. Asma seems concerned that his son isn’t experiencing the same kinds of connections with peers that he had when he was a teenager. Do you think these concerns are valid? Or is this a mere generational difference? Do your parents and other older people you know say similar things about friendship that Mr. Asma is saying?

— The essay argues that fully realized friendships need “shared experience, loyalty and shared intentionality, or mental connection.” What do each of these mean to you? To what degree do you agree that these criteria are essential to real friendships?

— What is your advice for the kinds of relationships people your age should try to cultivate?

Students 13 and older are invited to comment. All comments are moderated by the Learning Network staff, but please keep in mind that once your comment is accepted, it will be made public.

What’s Going On in This Picture? | March 25, 2019

0
What’s Going On in This Picture? | March 25, 2019

Students

1. After looking closely at the image above (or at the full-size image), think about these three questions:

• What is going on in this picture?

• What do you see that makes you say that?

• What more can you find?

2. Next, join the conversation by clicking on the comment button and posting in the box that opens on the right. (Students 13 and older are invited to comment, although teachers of younger students are welcome to post what their students have to say.)

3. After you have posted, try reading back to see what others have said, then respond to someone else by posting another comment. Use the “Reply” button or the @ symbol to address that student directly.

Each Monday, our collaborator, Visual Thinking Strategies, will facilitate a discussion from 9 a.m. to 2 p.m. Eastern Time by paraphrasing comments and linking to responses to help students’ understanding go deeper. You might use their responses as models for your own.

Imperial College London Announces an Online Master’s Degree In Machine Learning on Coursera

0
Imperial College London Announces an Online Master’s Degree In Machine Learning on Coursera

Artificial intelligence (AI) is no longer a capability siloed with tech giants. Businesses of all sizes can use AI and machine learning to drive innovation, increase operational efficiencies, improve customer service, and more. But according to a recent report, there are just 300,000 AI researchers and practitioners worldwide while there’s a market demand for millions of roles.

To help address this critical skills gap, we’re thrilled to partner with Imperial College London to announce an MSc in Machine Learning — one of the world’s first online master’s degrees in this specialized field of computing. This rigorous program will train learners in the computational, mathematical, and statistical foundations of machine learning, preparing them for the most advanced engineering roles in AI, data science, machine learning, bioinformatics, and more.

This is an advanced degree with a deep focus on machine learning; applicants are expected to have an undergraduate degree in a subject like computer science, math, statistics, economics, or physics. Students will have the opportunity to work with industry-standard tools like PySpark and PyTorch and directly interact with top-notch faculty at Imperial. The curriculum also covers the ethics and limitations of machine learning to equip students with the skills to ethically apply these techniques to their future work.

We’re particularly excited that this degree is from a renowned institution like Imperial College London. The university is widely regarded as a world-leading center in AI and machine learning, and has more than 600 researchers and teachers currently working in the field. Degrees continue to be the most valuable credential in the job market, and Coursera is focused on providing high quality, flexible higher education options from top institutions. Imperial’s machine learning degree is stackable and modular, allowing learners to start their degree learning with an open course that can count toward the degree upon acceptance to the full program.

As technological advancements rapidly change the nature of work, it’s more important than ever to help learners keep pace with this change by increasing access to top-quality education. Together with Imperial College London, we look forward to preparing the next generation of machine learning experts with this innovative degree.
The online MSc in Machine Learning will officially launch in the fall of 2020. To learn more please visit https://www.coursera.org/degrees/msc-machine-learning-imperial.  

Distribution and Logistics Free Course

17

The following course in Distribution and Logistics is provided in its entirety by Atlantic International University’s “Open Access Initiative” which strives to make knowledge and education readily available to those seeking advancement regardless of their socio-economic situation, location or other previously limiting factors. The University’s Open Courses are free and do not require any purchase or registration, they are open to the public.

The course in Distribution and Logistics contains the following:

  • Lessons in video format with explaination of theoratical content.
  • Complementary activities that will make research more about the topic , as well as put into practice what you studied in the lesson. These activities are not part of their final evaluation.
  • Texts supporting explained in the video.
  • Evaluation questionnaire, that will grant access to the next lesson after approval.
  • Final exam for overall evaluation of the course.

The Administrative Staff may be part of a degree program paying up to three college credits. The lessons of the course can be taken on line Through distance learning. The content and access are open to the public according to the “Open Access” and ” Open Access ” Atlantic International University initiative. Participants who wish to receive credit and / or term certificate , must register as students.

Lesson 1: Logistics

Logistics is the management of the flow of goods between the point of origin and the point of consumption in order to meet some requirements, for example, of customers or corporations. The resources managed in logistics can include physical items, such as food, materials, animals, equipment and liquids, as well as abstract items, such as time, information, particles, and energy. The logistics of physical items usually involves the integration of information flow, material handling, production, packaging, inventory, transportation, warehousing, and often security. The complexity of logistics can be modeled, analyzed, visualized, and optimized by dedicated simulation software. The minimization of the use of resources is a common motivation in logistics for import and export.

Video
ConferenceLecture Materials

Lesson 2: Logistics complement

 Unit loads for transportation of luggage at the airport, in this case the unit load has protective function.
Unit loads are combinations of individual items which are moved by handling systems, usually employing a pallet of normed dimensions.
Handling systems include: trans-pallet handlers, counterweight handler, retractable mast handler, bilateral handlers, trilateral handlers, AGV and stacker handlers. Storage systems include: pile stocking, cell racks (either static or movable), cantilever racks and gravity racks.Order processing is a sequential process involving: processing withdrawal list, picking (selective removal of items from loading units), sorting (assembling items based on destination), package formation (weighting, labeling and packing), order consolidation (gathering packages into loading units for transportation, control and bill of lading).

Video Conference
Lecture Materials

Lesson 3: Cargo


Cargo (or freight) is goods or produce transported, generally for commercial gain, by ship or aircraft, although the term is now extended to intermodal train, van or truck. In modern times, containers are used in most long-haul cargo transport.

Break bulk cargo is typically material stacked on pallets and lifted into and out of the hold of a vessel by cranes on the dock or aboard the ship itself. The volume of break bulk cargo has declined dramatically worldwide as containerization has grown. One way to secure break bulk and freight in intermodal containers is by using Dunnage Bags

Video
Conference:Lecture Materials

Lesson 4: Cargo airline, Cargo sampling, Cargo scanning and delivery


Air transport is a vital component of many international logistics networks, essential to managing and controlling the flow of goods, energy, information and other resources like products, services, and people, from the source of production to the marketplace. It is difficult or nearly impossible to accomplish any international trading, global export/import processes, international repositioning of raw materials/products and manufacturing without a professional logistical support. It involves the integration of information, transportation, inventory, warehousing, material handling, and packaging. The operating responsibility of logistics is the geographical repositioning of raw materials, work in process, and finished inventories where required at the lowest cost possible.

Video
Conference:Lecture Materials

Lesson 5: Freight company, Freight Transport Association, Standard Carrier Alpha Code and Document automation

Freight Companies are companies that specialize in the moving (or “forwarding”) of freight, or cargo, from one place to another. These companies are divided into several variant sections. For example, international freight forwarders ship goods internationally from country to country, and domestic freight forwarders, ship goods within a single country.
There are thousands of freight companies in business worldwide, many of which are members of certain organizations. Such organizations include the IATA (International Air Transport Association), TIA (Transportation Intermediaries Association) the BIFA (British International Freight Association), or the FTA (Freight Transport Association) and various or other regional organizations.

Video Conference:
Lecture Materials

Lesson 6: Freight claim, Logistics automation and Performance-based logistics


A Freight claim is a legal demand by a shipper or consignee to a carrier for financial reimbursement for a loss or damage of a shipment. Freight claims are also known as shipping claims, cargo claims, transportation claims, or loss and damage claims.
The intention of a freight claim is for the carrier to make the shipper or consignee “whole” – that is to say, their position is as good as it would have been if the carrier had carried out their tasks according to the Bill of Lading. For this reason, claimants are generally expected to file a claim to recover their costs, not including profits, although in some rare cases claiming profits may be considered acceptable.

Claimants are also expected to take reasonable measures to mitigate the loss. For example, if the damaged product has retained some value, the carrier would only be required to pay for the difference between the original value and the damaged value. The claimant would then be free to salvage the damaged product by selling it at a reduced cost

Video Conference:
Lecture Materials

Lesson 7: Distribution (business) and Agricultural marketing

Product distribution (or place) is one of the four elements of the marketing mix. Distribution is the process of making a product or service available for use or consumption by a consumer or business user, using direct means, or using indirect means with intermediaries.The other three parts of the marketing mix are product, pricing, and promotion.

Video Conference:
Lecture Materials

Lesson 8: All-commodity volume

All-commodity volume (value) or ACV represents the total annual sales volume of retailers that can be aggregated from individual store-level up to larger geographical sets. This measure is a ratio, and so is typically measured as a percentage (or on a scale from 0 to 100).
The total dollar sales that go into ACV include the entire store inventory sales, rather than sales for a specific category of products – hence the term “all commodity volume.”
ACV is best related to the key marketing concept of placement (Distribution). Distribution metrics quantify the availability of products sold through retailers, usually as a percentage of all potential outlets. Often, outlets are weighted by their share of category sales or “all-commodity” sales. For marketers who sell through resellers, distribution metrics reveal a brand’s percentage of market access. Balancing a firm’s efforts in “push” (building and maintaining reseller and distribution support) and “pull” (generating customer demand) is an ongoing strategic concern for marketers.

Video Conference:
Lecture Materials

 Lesson 9: Import and export

An import is a good brought into a jurisdiction, especially across a national border, from an external source. The purchaser of the exotic good is called an importer. An import in the receiving country is an export from the sending country. Importation and exportation are the defining financial transactions of international trade.In international trade, the importation and exportation of goods are limited by import quotas and mandates from the customs authority. The importing and exporting jurisdictions may impose a tariff (tax) on the goods. In addition, the importation and exportation of goods are subject to trade agreements between the importing and exporting jurisdictions.

Video Conference:
Lecture Materials
E

Lesson 10: Incoterms

The Incoterms rules or International Commercial Terms are a series of pre-defined commercial terms published by the International Chamber of Commerce (ICC) that are widely used in International commercial transactions or procurement processes. A series of three-letter trade terms related to common contractual sales practices, the Incoterms rules are intended primarily to clearly communicate the tasks, costs, and risks associated with the transportation and delivery of goods.
The Incoterms rules are accepted by governments, legal authorities, and practitioners worldwide for the interpretation of most commonly used terms in international trade. They are intended to reduce or remove altogether uncertainties arising from different interpretation of the rules in different countries. As such they are regularly incorporated into sales contracts worldwide.

First published in 1936, the Incoterms rules have been periodically updated, with the eighth version—Incoterms 2010—having been published on January 1, 2011. “Incoterms” is a registered trademark of the ICC.

Video Conference:
Lecture Materials

We understand how busy adults do not have time to go back to school. Now, it’s possible to earn your degree in the comfort of your own home and still have time for yourself and your family. The Admissions office is here to help you, for additional information or to see if you qualify for admissions please contact us. If you are ready to apply please submit your Online Application and paste your resume and any additional comments/questions in the area provided. (Online Application) (Request Info)

Atlantic International University
800-993-0066 (Gratis en EUA)
808-924-9567 (Internacional)

**Curso Gratuito en Bases de Datos**

0

Este curso de Base de Datos y otros cursos abiertos son brindados en su totalidad por la universidad Atlantic International University (AIU) como parte de la “Iniciativa de Acceso Abierto”. Esta iniciativa es consistente con la Misión y Visión de la universidad.

A través de esta iniciativa, la universidad Atlantic International University (AIU) busca eliminar las barreras que existen actualmente en el acceso a la educación, información y trabajos de investigación. La universidad AIU le da mucho valor e importancia al conocimiento y aprendizaje de los individuos y espera que este curso pueda tener una gran repercusión en las vidas de nuestros estudiantes y la humanidad en general alrededor del mundo, quienes tienen la inclinación natural hacia la búsqueda de nuevo conocimiento. Esperamos que este curso en Teorias y Tecnicas de la entrevista y otros cursos gratis, disponibles por parte de esta iniciativa de acceso abierto, permitan el avance y actualización a quienes lo deseen.

El curso de Base de Datos contiene lo siguiente:

  • Lecciones en formato de audio con las que se explica el contenido teórico.
  • Actividades complementarias que le harán investigar más acerca del tema, así como, poner en práctica lo estudiado en la lección. Estas actividades no forman parte de su evaluación final.
  • Textos que respaldan lo explicado en la videoconferencia.

El curso de Base de Datos puede formar parte de un programa de titilación abonando hasta tres créditos universitarios. Las lecciones del curso se pueden llevar en línea através de estudio a distancia. Los contenidos y el acceso están abiertos al publico en función de la iniciativa “Open Access” o “Acceso Abierto” de Atlantic International University. Participantes que desean recibir crédito y/o certificado de termino, deben registrarse como alumnos (Conocer mas de AIU Acceso Abrierto).

Lección 1: Funciones de un DBMS

Determinado que una base de datos es una colección de archivos interrelacionados creados con un DBMS. El contenido de una base de datos esta almacenada de tal manera que los datos estén disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla.
La DB (data base) es solo un “almacén” de datos, lo que ha hecho indispensable el desarrollo de sistemas que los administren y procesen, siendo estos los DBMS.
El propósito general de los DBMS es el de manejar de manera clara, sencilla y ordenada, los datos de una Base de Datos (DB) que posteriormente se convertirán en información relevante, para un buen manejo de los datos.

Video
ConferenciaMateriales de Lectura y Estudio

Leccion 2: Desarrolladores y usuarios finales

De los datos en donde habrá usuarios, no solo uno, que accederán a los datos de muchos usuarios, que a veces es el mismo dato que se traslapa y de ahí la importancia que la DB sea integrada conociéndose como BASE DE DATOS ÚNICA.
Es importante entonces identificar el tipo de usuarios que acceden a una DB, que generalmente se clasificarán en dos tipos: desarrolladores y usuarios finales.
Los Desarrolladores o Diseñadores están operando dentro de un DBMS en los Niveles de Diseño: Físico y Conceptual.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 3: MODELOS DE DATOS

Un modelo de datos es una serie de conceptos que puede utilizarse para describir un conjunto de datos y las operaciones para manipularlos. Hay dos tipos de modelos de datos: los modelos conceptuales y los modelos lógicos. Los modelos conceptuales se utilizan para representar la realidad a un alto nivel de abstracción.
Mediante los modelos conceptuales se puede construir una descripción de la realidad fácil de entender. En los modelos lógicos, las descripciones de los datos tienen una correspondencia sencilla con la estructura física de la base de datos.
En el diseño de bases de datos se usan primero los modelos conceptuales para lograr una descripción de alto nivel de la realidad, y luego se transforma el esquema conceptual en un esquema lógico. El motivo de realizar estas dos etapas es la dificultad de abstraer la estructura de una base de datos que presente cierta complejidad. Un esquema es un conjunto de representaciones lingüísticas o gráficas que describen la estructura de los datos de interés.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 4: De red

En este modelo las entidades se representan como nodos y sus relaciones son las líneas que los unen. En esta estructura cualquier componente puede relacionarse con cualquier otro.
El Modelo de Red se puede entender como una extensión del modelo jerárquico. También se presenta mediante un árbol, pero en este caso, cada hijo puede tener varios padres. De este modo se reducen, o eliminan, las redundancias, Pero desaparece la herencia de los campos. La integridad de datos, asociada a los arcos padre-hijo, se mantiene.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 5: Conceptos Básicos

El modelo entidad-relación es el modelo más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chan en 1976. El modelo entidad-relación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas.
Originalmente, el modelo entidad-relación sólo incluía los conceptos de entidad, relación y atributo. Más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías de generalización, en lo que se ha denominado modelo entidad-relación extendido.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 6: Aplicaciones

Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las aplicaciones son parte del software de una computadora, y suelen ejecutarse sobre el sistema operativo.
Una aplicación de software suele tener un único objetivo: navegar en la web, revisar correo, explorar el disco duro, editar textos, jugar (un juego es un tipo de aplicación), etc. Una aplicación que posee múltiples programas se considera un paquete. Son ejemplos de aplicaciones Internet Explorer, Outlook, Word, Excel, Dreamweaver, etc.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 7: Definición del problema

El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que el modelo relacional esté basado en la teoría de las matemáticas es lo que lo hace tan seguro y robusto. Al mismo tiempo, estas ramas de las matemáticas proporcionan los elementos básicos necesarios para crear una base de datos relacional con una buena estructura, y proporcionan las líneas que se utilizan para formular buenas metodologías de diseño.
La teoría matemática proporciona la base para el modelo relacional y, por lo tanto, hace que el modelo sea predecible, fiable y seguro. La teoría describe los elementos básicos que se utilizan para crear una base de datos relacional y proporciona las líneas a seguir para construirla. El organizar estos elementos para conseguir el resultado deseado es lo que se denomina diseño.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 8: Normalización

Uno de los objetivos de una estructura de tabla normalizada es minimizar el número de “celdas vacías”. Grupos de información son almacenados en distintas tablas que luego pueden ser “juntadas” (relacionadas) basándose en los datos que tengan en común.
Es necesario que al realizar la estructura de una base de datos, esta sea flexible. La flexibilidad está en el hecho que se puedan agregar datos al sistema posteriormente sin tener que rescribir lo que ya se tiene. Por lo tanto, no tendremos que modificar la estructura de nuestras tablas actuales, simplemente agregar lo que hace falta.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 9: Clasificación de fallas

El sistema debe estar preparado para recuperarse no sólo de fallas puramente locales, como la aparición de una condición de desborde dentro de una transacción, sino también de fallas globales, como podría ser la interrupción del suministro eléctrico al CPU
Las fallas locales son las que afectan sólo a la transacción en donde ocurrió. Por el contrario las fallas globales, afectan a varias y casi siempre a todas las transacciones que se estaban efectuando en el momento de la falla, por lo cual tienen implicaciones importantes en el sistema. Estas fallas pueden ser:
Fallas del sistema
Afectan a todas las transacciones que se estaban ejecutando pero no afectan a la base de datos, se conocen también como caídas suaves (crash). El problema aquí es que se pierda el contenido de memoria principal, en particular, las áreas de almacenamiento temporal o buffers.

Video Conferencia
Materiales de Lectura y Estudio

Leccion 10: Recuperación por bitácora

Para recuperarse de las fallas de las transacciones, el sistema mantiene un log llamado journal o periódico que mantiene el curso de todas las transacciones que afectan los datos ítems de la base de datos. Al conjunto de log se le conoce como system log.
Esta información es mantenida en disco (memoria secundaria) de manera que sólo puede estar afectada, eventualmente, por fallas en medios de almacenamiento.
Periódicamente, los log son respaldados en cintas para protegerlos contra fallas por catástrofes.
Los log tienen una serie de entradas que se detallan a continuación. Las T se refieren a un identificador único de cada transacción.

Video Conferencia
Materiales de Lectura y Estudio

Entendemos que los adultos que trabajan no tienen tiempo de regresar a la escuela. Ahora es posible obtener un título desde la comodidad de su hogar y todavía tener tiempo para usted y su familia. La oficina de admisiones está para ayudarlo, para obtener información adicional o para saber si es candidato para incorporarse a nuestros programas, por favor contáctenos. Si ya está listo para inscribirse, por favor mande su solicitud en línea y adjunte su currículum vitae y cualquier duda o comentario que tenga (Aplicación en Línea) (Solicitar Informes).

Atlantic International University
800-993-0066 (Gratis en EUA)
808-924-9567 (Internacional)

Ask a Data Engineer: Warby Parker Edition 👓

0
Ask a Data Engineer: Warby Parker Edition 👓

wp-header

Codecademy’s very own Nick Duckwiler (left) and Ryan Tuck from Warby Parker (right) in our office. (📷: Mitch Boyer)

Last month, Codecademy and Warby Parker came together to work on a special Learn SQL from Scratch Capstone Project. It was during this time when I met Ryan Tuck, a Data Engineer at Warby, who played a major part in this partnership. So when he decided to drop by our office for the final QA round, I had to break out my notebook and ask some questions. Enjoy.


Hey Ryan, let’s start off with a question I’ve had for a while — what is a Data Engineer? (Is it similar to a Data Analyst or a Software Engineer?)

At Warby Parker, data engineers are responsible for creating and maintaining the plumbing required to support the data and reporting needs of the business. We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.

What languages/frameworks do you use at Warby?

On data engineering, we use Python as our general purpose programming language, as do most of the other teams in our Technology department. When it comes to databases, we use PostgreSQL for the majority of our SQL needs, and are beginning to use Amazon Athena and Google BigQuery for some of our larger datasets. We use Looker as our exclusive business intelligence entry point to all of this data.

What are some of the projects you worked on?

I’ve had the privilege of working with a lot of of smart people in every department at our company to help them solve their varied data needs, from reconciling financial data with the Accounting team to automating and modeling standardized performance metrics for our team of over 200 customer experience advisors.

As part of a team of five supporting the data needs of a rapidly growing company, I’ve tried where possible to focus on helping our analysts solve their own problems. This includes helping people learn Python and commit to our codebase, guiding the creation of data models in SQL, and encouraging people to submit pull requests to add features in Looker, our BI tool.

Seeing dozens of otherwise “non-technical” colleagues opening up PRs on a daily basis, and consequently being part of the democratization of tech that we value at Warby Parker, is probably the most rewarding “project” I’ve been a part of.

One project finished recently during our first annual “Hackweek” is called Pipes, which allows anyone at the company to easily move large amounts of data from wherever to wherever (Looker, Google Sheets, PostgreSQL, BigQuery, etc) on a regular cadence, or manually through a simple one-line chatbot interface. The adoption has been overwhelmingly positive and we’re looking to grow this sort of tooling out even more.

“We use software engineering practices to automate the work of data cleaning, normalizing, and model building so that data is always ready to be consumed by data analysts in every department.”

What got you into the data field?

I’ve always been drawn to analytical fields like math, and became pretty proficient in Excel during some internships in college. Once I had learned to program and learned more about data science and its applications in artificial intelligence, I knew that anything I could do to immerse myself in the world of data would be a step in the right direction.

Three and a half years ago, I landed a job as a junior software engineer at Warby Parker not fully knowing what I was in for, but am so glad I got the opportunity to help build tools to support an interesting and ever-changing data-driven culture here.

Where did you learn SQL and Python?

I had a background in C++, and was exposed to Python through an Intro to Data Science course. When Warby Parker hired me onto the Data team in 2015, I had never written a SQL query in my life, but picked it up quickly and within a few months started up internal SQL training classes, which I still teach on a monthly basis.

What does your tattoo say?


The ultimate cheatsheet.

This is Bayes’ Theorem, which is an equation that describes how to update probabilities given new evidence. Two summers ago I worked on building a tool to help predict weekly fantasy football performance. Some colleagues suggested a Bayesian approach would be appropriate, since there aren’t really enough data points in an NFL season to be able to use statistical approaches that require larger datasets, and I’d want to regularly update my predictions after each player’s latest performance.

I did a deep dive into understanding the (simple) math underlying Bayes’ Theorem and came out of that experience with a whole new worldview, understanding my entire knowledge of the world as a big and intricate probabilistic model that I was continuously updating with every experience I ever have. It was pretty transformative, and I figured that was worth a tattoo.

What is a concept in SQL/Python that’s essential to your work?

Donald Knuth said, “Premature optimization is the root of all evil.” I’ve generally found this to be true, and try to live by it in my work. For example, I’ll generally prefer to keep a data model simple by rebuilding it for all time on a daily basis using a single SQL query instead of making a more complicated model that requires iteratively adding to a table, keeping track of state, updated timestamps, when something last ran, etc.

A wise man once said, “Duplicating data makes things go fast,” but databases are already impressively fast to begin with, without implementing anything to improve performance. Ultimately, I almost always approach a problem thinking about optimizing for my time over machine time, for readability over performance, and for introducing as little cognitive overhead as is required by the problem at hand. Only once performance issues or readability issues present themselves will some code be worth a rewrite.

Last question! Since you wrote Warby Parker’s internal SQL training courses, I know there gotta be some inner Curriculum Developer in you. Can you teach a SQL concept in 2 minutes?

Sure! Have you ever written a query that yields some result set and you think, “I’d love to query the stuff I just produced like it was a table?” Enter the WITH clause.

Suppose I have a mega query that gives the transaction summaries:

select
    transactions.date as transaction_date,
    sum(items.price) as total_cost,
    count(*) as number_of_items
from
    transactions
inner join
    customers
    on
    customers.id = transactions.customer_id
inner join
    transaction_items
    on
    transactions.id = transaction_items.transaction_id
inner join
    items
    on
    items.id = transaction_items.item_id

Using WITH, I can create a temporary table within my query that I can SELECT from and treat it just like a regular old table.

I will put everything from the previous query in a parentheses and use WITH to give it the name transaction_summaries.

Then I’ll apply the date and customer filtering down below for a more readable query, to separate out all the JOIN logic from the actual WHERE filters that I want to apply on that data.

with transaction_summaries as (
  select
      transactions.date as transaction_date,
      sum(items.price) as total_cost,
      count(*) as number_of_items
  from
      transactions
  inner join
      customers
      on
      customers.id = transactions.customer_id
  inner join
      transaction_items
      on
      transactions.id = transaction_items.transaction_id
  inner join
      items
      on
      items.id = transaction_items.item_id
)

select 
        * 
from 
        transaction_summaries
where 
        first_name = 'beyonce'
        and 
        transaction_date > '2018–01–01'
order by 
        total_cost desc
limit 
        5

If you’re familiar with subqueries, this does a similar thing but makes the SQL far more readable, even if your query isn’t quite as performant as it would have been. This is essentially an implementation of the mantra “Don’t Repeat Yourself” that’s common in the world of programming.

Incredible. And love the SQL styling! 😍


Huge shout out to Ryan and the whole Warby Parker team for making this partnership happen. Special hat tips for behind-the-scenes support from:

  • Lon Binder, Chief Technology Officer, Warby Parker
  • Maddie Tierney, Executive Assistant, Warby Parker
  • Kayla Robbins, Executive Assistant, Warby Parker
  • Kaki Read, Senior Communications Manager, Warby Parker
  • Isabel Seely, Senior Brand Manager, Warby Parker

It’s been an absolute pleasure. And of course, the fam at Codecademy. You know who you are. Couldn’t do it without you.