background preloader

Signs that you're a bad programmer - Software Engineering Tips

Signs that you're 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

30 Best Room Pictures of the Week - June 02st to June 08th, 2012 1. I really love this pool 2. Kohler Waterfall Shower 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 1900 Inn on Montford in Asheville, North Carolina 23. 24. 25. 26. 27. 28. 29. 30. 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 5 types of programmers & Steven Benner's Blog - StumbleUpon In my code journeys and programming adventures I’ve encountered many strange foes, and even stranger allies. I’ve identified at least five different kinds of code warriors, some make for wonderful comrades in arms, while others seem to foil my every plan. However they all have their place in the pantheon of software development. Without a healthy mix of these different programming styles you’ll probably find your projects either take too long to complete, are not stable enough or are too perfect for humans to look upon. The duct tape programmer The code may not be pretty, but damnit, it works! This guy is the foundation of your company. The OCD perfectionist programmer You want to do what to my code? This guy doesn’t care about your deadlines or budgets, those are insignificant when compared to the art form that is programming. The anti-programming programmer I’m a programmer, damnit. His world has one simple truth; writing code is bad. The half-assed programmer What do you want?

Dead Sea Scrolls: The Boston exhibit lets visitors see one of the greatest treasures of the modern era A Bedouin goat herder was merely chasing after a stray when he stumbled into a cave and discovered one of the greatest treasure-finds of the modern era. The ancient manuscripts inscribed in Hebrew dialects that he discovered rolled inside clay pots became known as the Dead Sea Scrolls, currently the oldest existing biblical manuscripts since they date from between 150 B.C. and 70 C.E. Now one of the largest public displays of the Dead Sea Scrolls ever is the centerpiece of an exhibit at Boston’s Museum of Science titled “Dead Sea Scrolls: Life in Ancient Times.” “We are thrilled to bring this world treasure to Boston for the first time,” said Paul Fontaine, Museum of Science vice president of education. The Dead Sea Scrolls contain biblical text found in the Hebrew Bible, or Old Testament, in addition to other books not included in the canon such as the Book of Enoch, the Book of Jubilees, and the Testament of Levi. The majority of the scrolls are nonreligious, Dr. And they found one.

Scripting Languages I: Node.js, PHP, Python, Ruby (Sheet One) a side-by-side reference sheet sheet one: version | grammar and execution | variables and expressions | arithmetic and logic | strings | regexes | dates and time | arrays | dictionaries | functions | execution control | exceptions | threads sheet two: streams | asynchronous events | files | file formats | directories | processes and environment | option parsing | libraries and namespaces | objects | inheritance and polymorphism | reflection | net and web | gui | databases | unit tests | logging | debugging sheet two: streams | asynchronous events | files | directories | processes and environment | option parsing | libraries and namespaces | objects | inheritance and polymorphism | reflection | net and web | gui | databases | unit tests | logging | debugging version used The versions used for testing code in the reference sheet. show version How to get the version. php: The function phpversion() will return the version number as a string. python: import platform platform.python_version() ruby: <? pad

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!

Ancestral Lines Evolutionary biologists use a cladogram, the treelike diagram of evolutionary branches or clades, to organize species into lines of evolutionary descent across time. Biologists use three types of evidence to deduce evolutionary connections: genetics, morphology, and geologic dating. (Behavior, normally a key part of evolutionary studies, can only be inferred in extinct species — for example, by examining the ecology in which the species flourished and the species adaptations for eating and locomotion.) Analyses of primate fossils and the genetic relatedness of living primates converge to the conclusion that humans and chimpanzees branched from a common ancestor about 7 million years ago. The rest of the puzzle must be deduced from morphology (physical form, as reconstructed from the bones) and geologic dating. The cladogram for human evolution shown above currently lacks key pieces of evidence. These are some of the most interesting but currently unanswered questions about human descent:

Invent Your Own Computer Games with Python - Chapters Chapter 1 Read online: Chapter 1 - Installing Python Videos: Chapter 2 Read online: Chapter 2 - The Interactive Shell Chapter 3 Read online: Chapter 3 - Strings Download source: hello.py Copy source to clipboard: Use the online diff tool to find typos in your code: hello.py Chapter 4 Read online: Chapter 4 - Guess the Number Download source: guess.py Use the online diff tool to find typos in your code: guess.py Chapter 5 Read online: Chapter 5 - Jokes Download source: jokes.py Use the online diff tool to find typos in your code: jokes.py Chapter 6 Read online: Chapter 6 - Dragon Realm Download source: dragon.py Use the online diff tool to find typos in your code: dragon.py Chapter 7 Read online: Chapter 7 - Using the Debugger Chapter 8 Read online: Chapter 8 - Flow Charts Chapter 9 Read online: Chapter 9 - Hangman Download source: hangman.py Use the online diff tool to find typos in your code: hangman.py Chapter 10 Read online: Chapter 10 - Tic Tac Toe Download source: tictactoe.py Chapter 11 Download source: bagels.py

Software Engineering Proverbs - StumbleUpon 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.

Related: