background preloader

Software Engineering Proverbs

Software Engineering Proverbs
collected by Tom Van Vleck Drawn by Angus Macdonald A clever person solves a problem. A wise person avoids it. -- Einstein André Bensoussan once explained to me the difference between a programmer and a designer: "If you make a general statement, a programmer says, 'Yes, but...' while a designer says, 'Yes, and...'" No matter what the problem is, it's always a people problem. Jerry Weinberg Wexelblat's Scheduling Algorithm: Choose two: Good Fast Cheap Craziness is doing the same thing and expecting a different result. Tom DeMarco, rephrasing Einstein, who said Insanity: doing the same thing over and over again and expecting different results. "There's no time to stop for gas, we're already late" -- Karin Donker Deming's 14 points Create constancy of purpose. We know about as much about software quality problems as they knew about the Black Plague in the 1600s. -- Tom Van Vleck The Troops Know The schedule doesn't have enough time for maintenance in it. To go faster, slow down. -- Scott Cherf -- W.

Customer Reviews: Twilight (Twilight, Book 1) Free Science and Engineering books Algorithms and Data Structures: The Basic Toolbox Algorithms are at the heart of every nontrivial computer application, and algorithmics is a modern and active area of computer science. Every computer scientist and every professional programmer should know about the basic algorithmic toolbox: structures that allow efficient organization and retrieval of data, frequently used algorithms, and basic techniques for modeling, understanding and solving algorithmic problems. Operating Systems: Three Easy Pieces Operating Systems: Three Easy Pieces covers the fundamentals of operating systems, including virtualization of the CPU and memory, threads and concurrency, and file and storage systems. Quantum Mechanical Tunneling in Chemical Physics Quantum mechanical tunneling plays important roles in a wide range of natural sciences, from nuclear and solid-state physics to proton transfer and chemical reactions in chemistry and biology.

Extreme Programming Rules Planning User stories are written. Release planning creates the release schedule. Make frequent small releases. The project is divided into iterations. Iteration planning starts each iteration. Managing Give the team a dedicated open work space. Set a sustainable pace. A stand up meeting starts each day. The Project Velocity is measured. Move people around. Fix XP when it breaks. Designing Simplicity. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. No functionality is added early. Refactor whenever and wherever possible.

The Creepy Origins of the Best Horror Movie Bad Guys — CosBlog! A Comprehensive Guide to Online Theater and Performing Arts Resources A Comprehensive Guide to Online Theater and Performing Arts Resources The theater and the performing arts have a rich, noble history, and to this day there are millions who keep the traditions alive. Everyone has to start somewhere and if … Continue reading View full article → Shades of Grey: The Brilliance of Understated Costuming by Camiele White on October 18, 2011 The hazy fog of autumn reminds me that there are some things that you must see beyond to truly understand their beauty. View full article → Cosplayer Interview with Stephanie Gutowski Stephanie Gutowski is a beautiful geek extraordinaire, making her way around the convention circuit dressed as characters from Star Wars, Resident Evil, and more. View full article → The Top 27 Comic Blogs You Should Be Reading View full article → Cosplayer Interview with Taylor Bennett View full article →

HyperPhysics Concepts About HyperPhysics Rationale for Development HyperPhysics is an exploration environment for concepts in physics which employs concept maps and other linking strategies to facilitate smooth navigation. For the most part, it is laid out in small segments or "cards", true to its original development in HyperCard. Part of the intent for this exploration environment is to provide many opportunities for numerical exploration in the form of active formuli and standard problems implemented in Javascript. New content for HyperPhysics will be posted as it is developed. A resource that was initiated as a resource for local high school physics teachers whom I had taught has expanded into an intensively used website worldwide. CD or DVD versions have been sent to 82 countries to date, and translations into German, Italian, Chinese, and Español have been licensed and are underway. Please respect the Copyright HyperPhysics (©C.R. Availability on DVD or CD HyperPhysics

- StumbleUpon This article has been translated into Serbo-Croatian here: Thanks to Jovana Milutinovich for creating this translation. In the CS department where I currently teach I recently got involved in a debate on which programming language should be used to teach beginners. Java and C are the most commonly used languages in the department, and for many subjects this is appropriate, but not (I believe) for absolute beginners. I believe Python is a much better choice for beginners, and to firm up my own position I performed the very brief, very unscientific test described below. The Test I wanted to look at what was involved in writing very simple programs in a (small) variety of languages. "Hello World" seemed a bit too trivial, so I decided on the relatively simple task of reading two numbers from the user, adding them together and printing out the result. Time to write: 15 seconds. Things to explain: Line numbers Variables INPUT PRINT RUN Java

Vintage Vinyl:Steal This Book Library of Congress number 72-157115 (stolen from Library of Congress) copyright ©1971 PIRATE EDITIONS Restaurants Food Programs Supermarkets Wholesale Markets Food Conspiracies Cheap Chow Free Clothing Sandals Free Furniture Hitch-Hiking Freighting Cars Buses Airlines In City Travel Communes Urban Living Rural Living List of Communes List of Free Universities Birth Control Clinics Abortions Diseases Treated Free Press Conference Wall Painting Use of the Flag Radio Free Telephones Pay Phones Movies and Concerts Records and Books Welfare Unemployment Panhandling Rip-Offs The International Yippie Currency Exchange Buying, Selling and Giving It Away Growing Your Own Laundry Pets Posters Security Postage Maps Ministry Attrocities Veteran's Benefits Watch Vacations Drinks Burials Astrodome Pictures Diploma Toilets Starting a Printing Workshop Underground Newspapers High School Papers G.I. News Services The Underground Press Switchboards Guerrilla Radio Guerrilla Television Dress Helmets Gas Masks Walkie-Talkies Other Equipment Weapons for Street Fighting

How to Think Like a Computer Scientist & How to Think Like a Computer Scientist: Learning with Python - StumbleUpon Version date: October 2012 by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers (based on 2nd edition by Jeffrey Elkner, Allen B. Corresponding author: p.wentworth@ru.ac.za Source repository is at For offline use, download a zip file of the html or a pdf version (the pdf is updated less often) from Search PageCopyright NoticeForewordPrefacePreface-3 This Rhodes Local Edition (RLE) of the bookContributor ListChapter 1 The way of the programChapter 2 Variables, expressions, and statementsChapter 3 Hello, little turtles!

Signs that youre a bad programmer - Software Engineering Tips Why was this written? Most of these faults were discovered the hard way by the author himself, either because he committed them himself or saw them in the work of others. This paper is not meant for grading programmers, it was intended to be read by programmers who trust their ability to judge when something is a sign of bad practice, and when it's a consequence of special circumstances. This paper was written to force its author to think, and published because he thinks you lot would probably get a kick out of it, too. 1. Reasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is. Symptoms Remedies To get over this deficiency a programmer can practice by using the IDE's own debugger as an aide, if it has the ability to step through the code one line at a time. 2. Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. 3. 4. 5. 6. 1. 2. 3. 4. 5. Symptoms

Related: