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
Category: Coding
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
The Design of Everyday Things
The Psychopathology of Everyday Things Intro Two of the most important characteristics of good design: discoverability and understanding Discoverability: Is it possible to figure out what actions are possible and how to perform them? Understanding: What does it all mean? How is it supposed to be used? Simple things should not require manuals The Complexity… Continue reading The Design of Everyday Things
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
Eloquent JavaScript
Values, Types, and Operators inside computer there is only data computers have volatile and non-volatile storage so much data so we separate into chunks called values types: numbers, strings, boolean, objects, functions, undefined Javascript uses 64 bit to represent numbers Logical operators: && (and), || (or), ! (not) true ? 1 : 2 (ternary) null… Continue reading Eloquent JavaScript
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