Crystal Course




What's in this preview?

We want you to get the feel for typical Groxio content and the reasons we provide each type of content. Each Groxio module comes in four scheduled releases consisting of the central PDF, videos, and resource links. Later releases have projects as well. You can see part of the first release here.

Fast like C, slick like Ruby



Buy Course Today!



Preview PDF!

Version: Nov 1, 2019

Programmer Passport Crystal







Why a book?

The scientific teaching method we follow is the Dreyfus learning model. Books provide the metaphors experts need to build context, step-by-step instructions for beginners, and the exercises that intermediates need to learn.

Itinerary


Exploring Crystal

Types and Classes

Write a Program

Build a Service

Why an itinerary?

The itinerary is a virtual guide. This optional list describes the highlights of each release to maximize your learning time.

Description

Crystal is a language built to be a much smoother C++. Created by Ary Borenszweig, Juan Wajnerman, Brian Cardiff, the object oriented language has Ruby-like syntax. It’s less dynamic than Ruby but has several advances as well, including much better performance.


With full support for macros, you can extend Crystal in many interesting ways. Because it has strong and static typing, you won’t experience as many runtime errors. Since the types are mostly inferred, the type sysem does not come with much overhead. Crystal is open-source software released under the Apache License version 2.0.

History

Crystal was created to solve a problem. Manas.Tech member, Ary Borenszweig, wished there was a language like Ruby, only faster and more type safe. Crystal was born in June 2011 when Ary took the challenge to prove if it was possible to have a compiled Ruby-like language. Work on the language began in June 2011, with the purpose of creating a language with the elegance and productivity of Ruby and the speed, efficiency, and type safety of a compiled language.


The Crystal compiler was first written in Ruby, but later rewritten in Crystal, thus becoming self-hosting, as of November 2013.


Crystal soon became an official Manas.Tech project with most of the initial work being done by Ary Borenszweig, Juan Wajnerman and Brian Cardiff. The first commit was in 2012. The first official version was released in June 2014. In July 2016, Crystal joined the TIOBE index.


You can read more at the manas.tech blog

Videos

Public & Private




Why videos?

Groxio language modules have two kinds of videos. Our overview videos set the history and context of a language, or wrap up the work we've done, and are free to support language ecosystems. Our coding instruction videos, mostly starting with the second release, are paid content, and each one offers a live coding project.

Every learning level benefits from pair programming. Our videos are professional, but do not scrub away every tiny mistake. That way, you can see how experienced programmers deal with errors and changes in code organization.

Introducing Crystal

This video sets the scene and walks through the essence of Crystal. Nicolás Tada, founder of Manas.Tech, tells the story of Crystal's creation from the inside. Bruce walks you through what makes Crystal interesting. Maggie's wizardry shows the highlights of why Crystal is rising so far, so fast.

Video

Conway's Game of Life

This video shows how to shape programs in Crystal by introducing the Crystal playground. We'll build a game called Conway's Game of Life, a game that builds graphs and changes them from generation to generation.
Coming release

Video

Moving Life to a Project

This video shows how to take a playground experiment in Crystal to a full Crystal project with teests. We continue to build Conway's Game of Life, experimenting with tests and tools.
Coming release

Video

Wrapping Up Crystal

This video wraps up the Crystal programming language. It shows a few final thoughts based on the work we've done together and offers some ideas for further exploration.
Coming release

The Crystal Vote

In Programmer Passport, the community chooses the itinerary together. This video announced the voting candidates of Crystal, Smalltalk, Kotlin and Python. Bruce walks through these alternatives, bringing out the highlights of each.

Crystal Wins

The announcement of the winner of the first Programmer Passport language.

Community Resources

Cool quick trips for Crystal




Why resource links?

Each new chapter has a set of links, separated into three categories. The categories reflect different competency levels and resources that match that stage of learning, for each Groxio release.

Learn It

These resources will get you on the path to learning with background information, tooling and exercises.

Do It

You decide how deep to go. These resources are exercises and projects to cement your learning.

Grok It

These resources will help you put your new knowledge into context so you'll be better at your everyday job.

Projects

Longer Excursions (chapters 3 and 4)






Why projects?

The Dreyfus model is originally instruction for pilots. A typical pilot course is based on reading material to understand context, and then flying a plane. Our videos and PDFs are important, but in the end, programmers need to program in order to learn. Our projects offer different levels of assistance, from "give me the answer" to "make this test pass".