The content is this page is extracted from the goodreads RSS feed for my "Professional Development" bookshelf.

Building iPhone Apps with HTML, CSS, and JavaScript

Jonathan Stark

Building iPhone Apps with HTML, CSS, and JavaScript, Jonathan Stark

My thoughts...



JavaScript: The Good Parts: The Good Parts

Douglas Crockford

The author observes that every programming language has positive and negative aspects, but JavaScript has more than its share of the latter. However, there are also some extraordinarily things about [more...]

JavaScript: The Good Parts: The Good Parts, Douglas Crockford

My thoughts...


The author observes that every programming language has positive and negative aspects, but JavaScript has more than its share of the latter. However, there are also some extraordinarily things about the language. As the author puts it, "In JavaScript, there is a beautiful, elegant, highly expressive language that is buried under a steaming pile of good intentions and blunders" (p. 2).

An interesting concept discussed in this book is memoization. This is a technique used to store results already calculated so that the same results don't need to be calculated again. As an example, the section demonstrates an approach to calculating the numbers in the Fibonacci sequence.


The Mythical Man-Month

Frederick P. Brooks Jr.

The author received in 1999 the ACM's A. M. Turing Award, which, according to the back cover is "the most prestigious award in the computing field." He is cited for "landmark [more...]

The Mythical Man-Month, Frederick P. Brooks Jr.

My thoughts...


The author received in 1999 the ACM's A. M. Turing Award, which, according to the back cover is "the most prestigious award in the computing field." He is cited for "landmark contributions to computer architecture, operating systems, and software engineering."

Chapter 1: The Tar Pit. In this chapter, I learned the distinction between a "program," a "programming product," a "programming system," and a "programming systems product."

The chapter describe the joys and the woes of programming, and I can relate to both.

One particularly salient point I gleaned from this chapter is that, because of the constant advance of technology, a product's design is immediately obsolete. That is, by the time an idea is implemented, the cutting edge has been extended. As the chapter puts it, "As soon as one freezes a design, it becomes obsolete in terms of its concepts." Yet, as it goes on to observe, "The obsolescence of an implementation must be measured against other existing implementations, not against unrealized concepts" (p. 9).

Chapter 2: The Mythical Man-Month. Here, the author explains that most programming projects have gone awry because of unrealistic scheduling. He offers several reasons, including the incorrigible optimism of programmers in believing that "all will go well," or "each task will take only as long as it 'ought' to take" (p. 14). He also highlights the fallacy of thinking that adding more programmers to a team will decrease the amount of time needed to complete a project: "Adding more men then lengthens, not shortens, the schedule" (p. 19).

Chapter 3: The Surgical Team. In this chapter, the author suggests a composition for a programming team. This team would be composed of one chief programmer and an assistant who is able to do everything the programmer does. In addition, the team includes an administrator, an editor, secretaries, a clerk, toolsmith, tester, and "language lawyer."


Pro JavaScript Design Patterns

Dustin Diaz

Bridge Pattern.

A principle of object-oriented design is loose coupling of objects (Harmes & Diaz, p. 107). This is where the bridge pattern becomes particularly useful. [more...]

Pro JavaScript Design Patterns, Dustin Diaz

My thoughts...


Bridge Pattern.

A principle of object-oriented design is loose coupling of objects (Harmes & Diaz, p. 107). This is where the bridge pattern becomes particularly useful. According to the Gang of Four, the bridge pattern "should decouple an abstraction from its implementation so that the two can vary independently." (Harmes & Diaz, p. 109).

Pro JavaScript Techniques (Pro)

John Resig

Useful concepts include namespacing, which mitigates the evil of global variables (cf., JavaScript: The Good Parts, Appendix A); and the distinction of public, private, and privileged methods within [more...]

Pro JavaScript Techniques (Pro), John Resig

My thoughts...


Useful concepts include namespacing, which mitigates the evil of global variables (cf., JavaScript: The Good Parts, Appendix A); and the distinction of public, private, and privileged methods within a JavaScript class.