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:
Post a Comment