Head First is a series of introductory instructional books to many topics, published by O'Reilly Media. It stresses an unorthodox, visually intensive, reader-involving combination of puzzles, jokes, nonstandard design and layout, and an engaging, conversational style to immerse the reader in a given topic.
Originally, the series covered programming and software engineering, but is now expanding to other topics in science, mathematics and business, due to success. The series was created by Bert Bates and Kathy Sierra, and began with Head First Java in 2003.
The main idea of the series is to effectively stimulate the brain by: [1]
By using metacognition [2] the series' authors and editors try to employ varied methods to present information and accelerate the learning process.
The offerings in the Head First series are quickly expanding. The books are also delving into subjects that are not directly related to IT, such as Math (Head First Algebra, Head First Statistics), Science (Head First Physics) and project management (Head First PMP). The books are also gaining some popularity for classroom use [ citation needed ] because of their novel approach to their subject matters.
The official web site for the Head First series has forums for each book as well as code downloads and sample chapters. They include:
O'Reilly established Head First Labs, where books of the series are presented and the main idea behind the series is explained. The Labs also hosts blogs by some of their authors and hosts some applets that complement their books. [3]
The books in the series have received three nominations for Product Excellence Jolt Awards, winning in 2005 for Head First Design Patterns, and were recognized on Amazon.com's yearly top 10 list for computer books from 2003 to 2005.
The abstract factory software pattern provides a way to encapsulate a group of individual factories that have a common theme without specifying their concrete classes. In normal usage, the client software creates a concrete implementation of the abstract factory and then uses the generic interface of the factory to create the concrete objects that are part of the theme. The client does not know which concrete objects it receives from each of these internal factories, as it uses only the generic interfaces of their products. This pattern separates the details of implementation of a set of objects from their general usage and relies on object composition, as object creation is implemented in methods exposed in the factory interface.
Jakarta Server Pages is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP and ASP, but uses the Java programming language.
Randal L. Schwartz, also known as merlyn, is an American author, system administrator and programming consultant. He has written several books on the Perl programming language, and plays a promotional role within the Perl community. He is a co-host of FLOSS Weekly.
In software engineering, the adapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes work with others without modifying their source code.
The facade pattern is a software-design pattern commonly used in object-oriented programming. Analogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can:
In class-based programming, the factory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class of the object that will be created. This is done by creating objects by calling a factory method—either specified in an interface and implemented by child classes, or implemented in a base class and optionally overridden by derived classes—rather than by calling a constructor.
In computer programming, the strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.
In object-oriented programming, the template method is one of the behavioral design patterns identified by Gamma et al. in the book Design Patterns. The template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. These steps are themselves implemented by additional helper methods in the same class as the template method.
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
A method stub or simply stub in software development is a piece of code used to stand in for some other programming functionality. A stub may simulate the behavior of existing code or be a temporary substitute for yet-to-be-developed code. Stubs are therefore most useful in porting, distributed computing as well as general software development and testing.
In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or in added complexity to the design. Creational design patterns solve this problem by somehow controlling this object creation.
Intermediate Perl is a book about the Perl programming language by Randal L. Schwartz, brian d foy and Tom Phoenix, published in 2006 by O'Reilly Media. It was released as a retitled second edition of Learning Perl Objects, References & Modules (ISBN 0-596-00478-8) by Schwartz and Phoenix, published by O'Reilly Media in 2003 to favorable reviews. A second edition of Intermediate Perl was released in 2012.
brian d foy [sic] is the former publisher and editor of The Perl Review, a magazine devoted to Perl and co-author of several books on Perl including Learning Perl, Intermediate Perl and Mastering Perl. He is also the founder of Perl Mongers, the founder of the White Camel Awards, a frequent speaker at conferences including The Perl Conference and YAPC. He is the author of multiple Perl modules on CPAN and maintains the perlfaq portions of the core Perl documentation. He was a partner at Stonehenge Consulting Services from 1998 to 2009.
Kathy Sierra is an American programming instructor and game developer.
Michael James Fitzgerald was an American writer. He authored more than 20 books and is best known for his technical books.
In computer programming, a magic string is an input that a programmer believes will never come externally and which activates otherwise hidden functionality. A user of this program would likely provide input that gives an expected response in most situations. However, if the user does in fact innocently provide the pre-defined input, invoking the internal functionality, the program response is often quite unexpected to the user.
Composition over inheritance in object-oriented programming (OOP) is the principle that classes should achieve polymorphic behavior and code reuse by their composition rather than inheritance from a base or parent class. This is an often-stated principle of OOP, such as in the influential book Design Patterns (1994).
Eric Freeman is a computer scientist, author and constituent of David Gelernter on the Lifestreaming concept.
Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java, C/C++, and JavaScript. It also collects statistical data about the usage of software libraries around the globe.
Scott Berkun is an American author and speaker.