Design Patterns in Ruby

Building Better Programs with Patterns people develop solutions for common problems in all domains GOF popularized idea of prepackaged solutions and defined 23 patterns Separate things that change from things that don’t change is given ideally changes are local and don’t require updates everywhere Program to an interface not an implementation polymorphism decouples code is… Continue reading Design Patterns in Ruby


Think OS: A Brief Introduction to Operating Systems

Compilation Compiled and interpreted languages programs translated into machine code and executed by hardware interpreted code is read and executed by a software interpreter some languages can be both or hybrids (java/jvm) static types in static, you know what type each variable is in dynamic language, don’t know until program is running static language don’t… Continue reading Think OS: A Brief Introduction to Operating Systems

Apprenticeship Patterns

Introduction Apprenticeships is inward and focusing on learning to learn Journeyman focus on connections between practitioners and disseminate information Masters acquire, use and share superior skills Emptying the Cup First Language: use one someone who can help you knows. join community. White Belt: Set previous knowledge aside when approaching new situations. Try different programming paradigms… Continue reading Apprenticeship Patterns

Code Complete – Checklists

Requirements Specific Functional Requirements Are all the inputs to the system specified, including their source, accuracy, range of values, and frequency? Are all the outputs from the system specified, including their destination, accuracy, range of values, frequency, and format? Are all output formats specified for Web pages, reports, and so on? Are all the external hardware and… Continue reading Code Complete – Checklists

Code Complete

Welcome to Software Construction Software development or construction includes: Problem definition Requirements development Construction planning Software architecture or high-level design Detailed design Coding and debugging Unit testing Integration testing Integration System Testing Corrective Maintenance Construction focuses on coding and debugging, but also includes detailed design, unit testing, integration testing, and other activities Areas not included… Continue reading Code Complete

Code: The Hidden Language of Hardware and Software

Best Friends Friends can use flashlights to communicate (i.e. morse code) In book, code means system for transferring info among people and machines All facets of communication (audio, visual, etc) corresponds to some kind of code Codes and Combinations Easier to send than receive because harder to map dots and dashes than letters Could group… Continue reading Code: The Hidden Language of Hardware and Software

Python 3: Object Orientated Programming

Object-orientated Design design doesn’t only occur at the beginning, usually analysis, programming, design tend to overlap objects are models of things that can do things and have certain things done to them formally, an object is a collection of data and associated behaviors OO Analysis: looking at a problem, system or task and indentifying the… Continue reading Python 3: Object Orientated Programming

Database Design

Not a book, but found a series of videos on database design that I found pretty helpful. Link: Database Design What is a Database? stores data more complex than spreadsheets easily get what you want and secure What is a Relational Database? relation is connection between data entity: anything we store data about (e.g. person) attribute:… Continue reading Database Design