CA$0 – CA$5

How to write amazing and testable code

Actions and Detail Panel

CA$0 – CA$5

Event Information

Share this event

Date and Time

Location

Location

Online Event

Refund Policy

Refund Policy

Contact the organizer to request a refund.

Eventbrite's fee is nonrefundable.

Event description
Join us to learn the secrets to becoming a great programmer.

About this Event

Talk 1: Can Great Programmers Be Taught?

Speaker: John Ousterhout, Professor of Computer Science, Stanford University

Talk 2: Recognizing Code that Resists Unit Testing

Speaker: Jon Reid, iOS Technical Agile Coach

*

Talk 1: Can Great Programmers Be Taught?

Speaker: John Ousterhout, Professor of Computer Science, Stanford University

Abstract: People have been programming computers for more than 80 years, but there is little agreement on how to design software or even what a good design looks like. As a community, we talk a lot about tools and processes, but hardly at all about design.

In this talk, I will describe my recent work to identify and communicate a set of software design principles, including a new software design course at Stanford that is taught more like an English writing seminar than a traditional programming class, and a book on software design, which is based on the concepts from the class.

I will also present a few of the design principles, such as "classes should be deep" and "define errors out of existence."

Bio: John Ousterhout is the Bosack Lerner Professor of Computer Science at Stanford University. His current research focuses on new software stack layers to allow data center applications to take advantage of communication and storage technologies with microsecond-scale latencies.

Ousterhout's prior positions include 14 years in the industry, where he founded two companies (Scriptics and Electric Cloud), preceded by 14 years as Professor of Computer Science at U.C. Berkeley.

He is the author of the book "A Philosophy of Software Design."

He is also the creator of the Tcl scripting language and is well known for his work in distributed operating systems and storage systems.

Ousterhout received a BS degree in Physics from Yale University and a Ph.D. in Computer Science from Carnegie Mellon University.

He is a member of the National Academy of Engineering and has received numerous awards, including the ACM Software System Award, the ACM Grace Murray Hopper Award, the National Science Foundation Presidential Young Investigator Award, and the U.C. Berkeley Distinguished Teaching Award.

Links:

University Homepage

Philosophy of Software Design Book

*

Talk 2: Recognizing Code that Resists Unit Testing

Speaker: Jon Reid, iOS Technical Agile Coach

Abstract: Developers writing for Apple platforms often struggle with unit testing. "Here is my code. I don't see how to write a unit test for it." When this happens, the code is trying to raise a red flag about its design. There's something about it that resists testing.

In this talk, you'll learn what kinds of dependencies make testing difficult and what to do about them. We'll do this by considering what kinds of dependencies are problem-free and meet the FIRE rules of testability. This will help you recognize difficult dependencies.

Then we'll briefly summarize how to isolate these such dependencies. You'll know how to change your existing code to make it testable. Your improved design sense will help you avoid writing untestable code in the first place.

Bio: Jon Reid is the author of iOS Unit Testing by Example: XCTest Tips and Techniques Using Swift. Jon is a leading expert in unit testing and test-driven development (TDD) for iOS. He has been practicing TDD on Apple platforms for 19 years. His consultancy Quality Coding offers training for iOS teams in technical agile practices. These include unit testing, TDD, and refactoring.

Links:

Jon's book "iOS Unit Testing by Example"

Jon's website

Share with friends

Date and Time

Location

Online Event

Refund Policy

Contact the organizer to request a refund.

Eventbrite's fee is nonrefundable.

Save This Event

Event Saved