Skip to content

Commit

Permalink
Merge pull request #1 from extemporalgenome/master
Browse files Browse the repository at this point in the history
Various tweaks, formatting
  • Loading branch information
corylanou committed Oct 31, 2014
2 parents 0a22616 + d5b4429 commit b4d8f37
Showing 1 changed file with 73 additions and 53 deletions.
126 changes: 73 additions & 53 deletions gSchool-go-announcment.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,87 @@
# gSchool and Go

## What is Go

Go is a modern day "C" replacement. With features like garbage collection,
blazing fast compile and build cycles, and designed for multi-core computers,
Go has become the language of choice for many companies.

Go was created by an all-star team:
[Robert Griesemer](http://en.wikipedia.org/wiki/Robert_Griesemer),
[Rob Pike](http://en.wikipedia.org/wiki/Rob_Pike) and
## What is Go?

Go is a fast, concurrent, general purpose programming language designed to
excel in a wide range of roles, including those traditionally left to C, while
still facilitating the kind of rapid development styles associated with popular
dynamically-typed languages. With garbage collection, blazing fast compile
times, and a design that embraces modern multicore computing, Go has become the
language of choice for many companies.

Go was created by an all-star team:
[Robert Griesemer](http://en.wikipedia.org/wiki/Robert_Griesemer),
[Rob Pike](http://en.wikipedia.org/wiki/Rob_Pike) and
[Ken Thompson](http://en.wikipedia.org/wiki/Ken_Thompson).
Notable accomplishments of these individuals include creating Unix, UTF-8, Plan 9,
and the V8 Javascriptengine, and more.
Notable accomplishments and contributions of these individuals include Unix,
UTF-8, Plan 9, and the V8 JavaScript engine.

## Why Go
## Why Go?

Go was created to solve problems of scale. Not just machine scale, but human
scale as well. In today's software world, cycles matter. Every time a developer
Go was created to solve problems of scale; not only machine scale, but human
scale as well. In today's software world, cycles matter: every time a developer
has to wait for a test suite to run, or a build to finish, it costs money.

Taken directly from the [Go FAQ](https://golang.org/doc/faq):

###What is the purpose of the project?
### What is the purpose of the project?

No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:
No major systems language has emerged in over a decade, but over that time the
computing landscape has changed tremendously. There are several trends:

- Computers are enormously quicker but software development is not faster.
- Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.
- There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
- Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
- Dependency management is a big part of software development today but the
"header files" of languages in the C tradition are antithetical to clean
dependency analysis and fast compilation.
- There is a growing rebellion against cumbersome type systems like those of
Java and C++, pushing people towards dynamically typed languages such as
Python and JavaScript.
- Some fundamental concepts such as garbage collection and parallel computation
are not well supported by popular systems languages.
- The emergence of multicore computers has generated worry and confusion.

We believe it's worth trying again with a new language, a concurrent, garbage-collected language with fast compilation. Regarding the points above:

- It is possible to compile a large Go program in a few seconds on a single computer.
- Go provides a model for software construction that makes dependency analysis easy and avoids much of the overhead of C-style include files and libraries.
- Go's type system has no hierarchy, so no time is spent defining the relationships between types. Also, although Go has static types the language attempts to make types feel lighter weight than in typical OO languages.
- Go is fully garbage-collected and provides fundamental support for concurrent execution and communication.
- By its design, Go proposes an approach for the construction of system software on multicore machines.

## What are companies using Go for

Leading software companies such as Google, Apple, Facebook, Wal-mart labs, Comcast,
SendGrid, DropBox, Docker, and more are rapidly adopting Go.
The variety of problems being solved is diverse. There is a large focus on DevOps,
but also range from applications like command line interface, api and api wrappers, logging
and analytic services, and more.

[Rob Mee, SVP of R&D](http://pivotallabs.com/team/executives/) at [Pivotal Labs](http://pivotallabs.com/) recently stated:
"Galvanize’s gSchool is the only external immersive program that consistently produces the industry-ready engineers that can meet Pivotal’s standards.
We have made a big commitment to Go, and are excited to show our support for the gSchool Go Microservices program by declaring our intent to hire up to 10 qualifying engineers to join the Cloud Foundry engineering team."

## Am I ready to learn Go at gSchool

If you have at least 2 years of production software experience,
the answer is yes! With a 12 week compressed curriculum, its important
that you already have some base level of software knowledge.

## Why choose gSchool to learn Go

gSchool is more than just a classroom with expert instructors. We believe
that modern education should be taught in the same environment that a
student will work in when graduating. Placing classrooms inside of Galvanize
allows students to interact with companies outside of class that are working
with their technology. This close proximity builds a network that students
take with them into their careers.
We believe it's worth trying again with a new language, a concurrent,
garbage-collected language with fast compilation. Regarding the points above:

- It is possible to compile a large Go program in a few seconds on a single
computer.
- Go provides a model for software construction that makes dependency analysis
easy and avoids much of the overhead of C-style include files and libraries.
- Go's type system has no hierarchy, so no time is spent defining the
relationships between types. Also, although Go has static types the language
attempts to make types feel lighter weight than in typical OO languages.
- Go is fully garbage-collected and provides fundamental support for concurrent
execution and communication.
- By its design, Go proposes an approach for the construction of system
software on multicore machines.

## What are companies using Go for?

Leading software companies such as Google, Apple, Facebook, Wal-mart labs,
Comcast, SendGrid, DropBox, Docker, and more are rapidly adopting Go. The
variety of problems being solved is diverse. There is a large focus on DevOps,
but also range from applications like command line interface, api and api
wrappers, logging and analytic services, and more.

[Rob Mee, SVP of R&D](http://pivotallabs.com/team/executives/) at
[Pivotal Labs](http://pivotallabs.com/) recently stated: "Galvanize's gSchool
is the only external immersive program that consistently produces the
industry-ready engineers that can meet Pivotal's standards. We have made a big
commitment to Go, and are excited to show our support for the gSchool Go
Microservices program by declaring our intent to hire up to 10 qualifying
engineers to join the Cloud Foundry engineering team."

## Am I ready to learn Go at gSchool?

If you have at least 2 years of production software experience, the answer is
yes! With a 12 week compressed curriculum, it's important that you already
have some base level of software knowledge.

## Why choose gSchool to learn Go?

gSchool is more than just a classroom with expert instructors. We believe that
modern education should be taught in the same environment that a student will
work in after graduating. Placing classrooms inside of Galvanize allows
students to interact with companies outside of class that are working with
their technology. This close proximity builds a network that students take with
them into their careers.

0 comments on commit b4d8f37

Please sign in to comment.