Sunday, 10 February 2008

programming video education lectures



Programming Video Education Lectures

Recently there's been a surge of programming video lectures on the

net. Like all the big companies Yahoo and Google getting their

internal lectures out. So I am writing about some of them. Have fun!

And btw, I have launched a new science site which currently has just

cool science/technology/education video clips but later will also have

much, much more free education stuff. The site is here: Free Science

Lectures and Education

The JavaScript Programming Language (by Douglas Crockford)

Yahoo! JavaScript Architect Douglas Crockford provides a comprehensive

introduction to the JavaScript Programming Language in this four-part

video:

* JavaScript Video Lecture Part I (Yahoo Video)

JavaScript, aka Mocha, aka LiveScript, aka JScript, aka

ECMAScript, is one of the world's most popular programming

languages. Virtually every personal computer in the world has at

least one JavaScript interpreter installed on it and in active

use. JavaScript's popularity is due entirely to its role as the

scripting language of the WWW. Despite its popularity, few know

that JavaScript is a very nice dynamic object-oriented

general-purpose programming language. How can this be a secret?

Why is this language so misunderstood?

* JavaScript Video Lecture Part II

JavaScript's C-like syntax, including curly braces and the clunky

for statement, makes it appear to be an ordinary procedural

language. This is misleading because JavaScript has more in common

with functional languages like Lisp or Scheme than with C or Java.

It has arrays instead of lists and objects instead of property

lists. Functions are first class. It has closures. You get lambdas

without having to balance all those parens.

* JavaScript Video Lecture Part III

Nearly all of the books about JavaScript are quite awful. They

contain errors, poor examples, and promote bad practices.

Important features of the language are often explained poorly, or

left out entirely. I have reviewed dozens of JavaScript books, and

I can only recommend one: JavaScript: The Definitive Guide (5th

Edition) by David Flanagan.

* JavaScript Video Lecture Part IV

Most of the people writing in JavaScript are not programmers. They

lack the training and discipline to write good programs.

JavaScript has so much expressive power that they are able to do

useful things in it, anyway. This has given JavaScript a

reputation of being strictly for the amateurs, that it is not

suitable for professional programming. This is simply not the

case.

* Lecture Slides (zipped pdf)

Advanced JavaScript (by Douglas Crockford)

Yahoo! JavaScript Architect Douglas Crockford lectures on the nuances

of the JavaScript programming language in this three-part video:

* Advanced JS Part I (Yahoo Video)

Douglas Crockford teaches "Advanced JavaScript." This course is

broken into three clips; this is the first of those three clips.

Note that when Douglas begins the talk referring to the "third

installment", he's referring to "Advanced JavaScript" being the

third class in a series; this is indeed the first of the three

clips comprising the "Advanced JavaScript" class.

* Advanced JS Part II

No programming language is perfect. JavaScript has its share of

design errors, such as the overloading of + to mean both addition

and concatenation with type coercion, and the error-prone with

statement should be avoided. The reserved word policies are much

too strict. Semicolon insertion was a huge mistake, as was the

notation for literal regular expressions. These mistakes have led

to programming errors, and called the design of the language as a

whole into question.

* 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

Advanced JavaScript with Libraries (by John Resig)

John Resig of Mozilla Corp., author of the popular JQuery JavaScript

library, describes the role of libraries in the world of frontend

engineering, the problems they solve, and the things we can learn from

how developers use and think about libraries in their projects.

* Part I of the Lecture (Yahoo Video)

* Part II of the Lecture

Maintainable JavaScript (by Nicholas Zakas)

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.

* Maintainable JavaScript Video Lecture (Yahoo Video)

An Inconvenient API: The Theory of the DOM [Document Object Model] (by

Douglas Crockford)

Yahoo! JavaScript Architect Douglas Crockford discusses the nexus

between JavaScript and the browser, exploring the history of the BOM

and DOM APIs and their impact on frontend engineering today. This

presentation is archived in three parts:

* Lecture Part I (Yahoo Video)

* Lecture Part II

* Lecture Part III

* Video Lecture Slides

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 Part I

* Design Patterns Part II (Google Video)

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 Video Lecture

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.

Related Posts

* Free Computer Science Video Lecture Courses

(Courses include web application development, lisp/scheme

programming, data structures, algorithms, machine structures,

programming languages, principles of software engineering, object

oriented programming in java, systems, computer system

engineering, computer architecture, operating systems, database

management systems, performance analysis, cryptography, artificial

intelligence)

* Programming, Networking and Other Interesting Lectures

(Lectures include artificial intelligence, python programming,

lisp programming, debugging, bgp networking, large scale systems,

google history and google search)

* More Mathematics and Theoretical Computer Science Video Lectures

(Includes algebra, elementary statistics, applied probability,

finite mathematics, trigonometry with calculus, mathematical

computation, pre-calculus, analytic geometry, first year calculus,

business calculus, mathematical writing (by Knuth), computer

science problem seminar (by Knuth), dynamic systems and chaos,

computer musings (by Knuth) and other Donald E. Knuth lectures)

Labels: api, delphi, design patterns, dom, firebug, firefox, java,

javascript, programming, python, sqlite, vim, yahoo


No comments: