- Lecture Slides (zipped pdf)
- Advanced JS Part I (Yahoo Video)
- Advanced JS Part II
- Advanced JS Part III
The official specification for the language is published by ECMA. The specification is of extremely poor quality. It is difficult to read and very difficult to understand. This has been a contributor to the Bad Book problem because authors have been unable to use the standard document to improve their own understanding of the language. ECMA and the TC39 committee should be deeply embarrassed.
- Lecture Slides
Nicholas Zakas is an engineer on the team that brings you My Yahoo!, one of the most popular personalized portals on the web. In this talk, Zakas focuses on some fundamental concepts in the world of frontend engineering with an eye toward making code more maintainable.
An Inconvenient API: The Theory of the DOM [Document Object Model] (by Douglas Crockford)
Welcome to FireBug 1.0 (by John Hewitt)
Joe Hewitt is a Mozilla developer who has written software dear to the heart of all web developers, including the original Mozilla DOM Inspector. Joe's newest Mozilla tool is Firebug, an integral logging and debugging extension for Firefox that sets a new standard for its category. Joe provided a power-user tour while announcing Firebug 1.0's release on January 25, 2007, at Yahoo!.
- Video Lecture on FireFox's Extension - FireBug (Yahoo Video)
New Features in the Next C++ Standard
- Video Lecture on the Next C++ Standard (Google Video)
The upcoming C++ standard will have many new features, several major and many minor. The major features are concurrency, template concepts, move semantics, generalized constant expressions, automatic variable typing, and garbage collection. We will present an overview of the major features and breeze through a list of other features, commenting on their likeliness to make the standard.
Advanced Python (Or Understanding Python)
- Advanced Python Video Lecture (Google Video)
The Python language, while object-oriented, is fundamentally different from both C++ and Java. The dynamic and introspective nature of Python allow for language mechanics unlike that of static languages. This talk aims to enlighten programmers new to Python about these fundamentals, the language mechanics that flow from them and how to effectively put those to use. Among the topics covered are duck-typing, interfaces, descriptors, decorators, metaclasses, reference-counting and the cyclic-garbage collector, the divide between C/C++ data and Python objects and the CPython implementation in general.
This talk is part of the Advanced Topics in Programming Languages series. The goal of this series is to encourage all of the people at Google who know and love programming languages to share their knowledge.
Python Design Patterns (by Alex Martelli)
Design Patterns must be studied in the context on the language in which they'll get implemented (the Gang of Four made that point very strongly in their book, though almost everybody else seems not to have noticed :-). This talk explores several categories of classic "elementary" DPs in a Python context -- Creational, Masquerading, Adaptation, and Template.
Learning Java Programming - Video Tutorial
- Java Video Tutorial 1: Installing the Java Development Kit (YouTube video)
This tutorial is the first of a collection of basic java video tutorials that will get you started. In this tutorial you will learn how to install the JDK on a Windows XP machine.
- Java Video Tutorial 2: Hello World
This video tutorial guides you through the basics of writing, compiling and running a simple program with some extra hints and tips along the way.
- Java Video Tutorial 3.1: Variables and Arithmetic
Tutorial 3.1 will describe how to declare and assign variables in java as well as discussing the various data types.
- Java Video Tutorial 3.2: Variables and Arithmetic
Tutorial 3.2 shows you how to perform simple arithmatic and display variables through an example program.
- Java Video Tutorial 4: If Statements
This tutorial discusses: If statements, If else statements, Conditional operators.
- Java Video Tutorial 5: Object Oriented Programming
This tutorial discusses the basic concepts of object oriented programming (OOP). This includes object behaviour and attributes aswell as constructors.
- Java Video Tutorial 6: Loops
This tutorial will show you how to create while loops, do...while loops and for loops!
- Java Video Tutorial 7: Switch Statement
In this tutorial you learn about switch statements.
- Java Video Tutorial 8: Arrays
This tutorial shows you how to use arrays.
Delphi Training Series: Programming 101 (by 3DBuzz)
Ever wanted to become a programmer? The Delphi Training Series: Programming 101 is a sequence of training videos designed to teach the complete beginner how to become a programmer using Delphi.
- Dephi Programming Episode 1 (YouTube video)
In this episode, the viewer is shown where they can download the free Integrated Development Environment (IDE) known as Turbo Delphi, as well as how to get it installed and registered. Once launched the video will walk the viewer through the creation of their first simple program.
- Dephi Programming Episode 2
- Dephi Programming Episode 3
Episode 3 explores simple game design!
- Dephi Programming Episode 4
In this episode, the viewer is introduced to the concept of variables.
This video is the first in a mini-series aimed at the creation of your own MP3 player.
- Dephi Programming Episode 5
In this episode, the viewer is exposed to the world of Procedures and Functions.
This video continues the series with focus on writing your own mp3 player.
- Dephi Programming Episode 6
In this episode, the viewer is presented with lecture covering DLLs, handles, the BASS library, and all steps required to write the foundation of a simple MP3 player.
- Dephi Programming Episode 7
- Dephi Programming Episode 8
In the eighth installment of the Delphi Training Series, we take a short break away from the MP3 player we were writing to introduce you to a new aspect of programming: The IF statement.
- Dephi Programming Episode 9
The ninth episode of the Delphi Training Series is another theory-driven exploration, stepping away from the MP3 player to take a look at looping and how it works inside of Object Pascal.
Vim: 7 Habits For Effective Text Editing (by Bram Moolenaar)
- Vi Imporoved Video Lecture (Google Video)
A large percentage of time behind the computer screen is spent on editing text. Investing a little time in learning more efficient ways to use a text editor pays itself back fairly quickly. This presentation will give an overview of the large number of ways of using Vim in a smart way to edit programs, structured text and documentation. Examples will be used to make clear how learning a limited number of habits will avoid wasting time and lower the number of mistakes. Bram Moolenaar is mostly known for being the benevolent dictator of the text editor Vim. His roots are in electrical engineering and for a long time he worked on inventing image processing algorithms and software for big photo copying machines. At some point his work on Open-Source software became more important, making the development of Vim his full time job. He also did the A-A-P project in between Vim version 6.0 and 7.0. Now he works for Google in Zurich, still improving Vim on the side.
Bonus Lecture this Month:
An Introduction to SQLite (by Richard Hipp)
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. SQLite implements a large subset of SQL-92 and stores a complete database in a single disk file. The library footprint is less than 250 KB making is suitable for use in embedded devices and applications where memory space is scarce.
This talk provides a quick overview of SQLite, its history, its strengths and weaknesses, and describes situations where it is much more useful than a traditional client/server database. The talk concludes with a discussion of the lessons learned from the development of SQLite and how those lessons can be applied to other projects.