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

Signs that you're a good programmer - Software Engineering Tips The most frequently viewed page on this site is Signs you're a bad programmer, which has also now been published on dead trees by Hacker Monthly, and I think that behoves me to write its antithesis. "Bad programmer" is also considered inflammatory by some who think I'm speaking down to them. Not so; it was personal catharsis from an author who exhibited many of those problems himself. And what I think made the article popular was the "remedies"--I didn't want someone to get depressed when they recognized themselves, I wanted to be constructive. Therefore if you think you're missing any of the qualities below, don't be offended. I didn't pick these up for a while, either, and many of them came from watching other programmers or reading their code. 1. The compiler and runtime can often answer a question faster than a human can. Symptoms How to acquire this trait Are you excessively cautious? Note: A programmer who "suggests wacky and unrealistic solutions" is not always a bad programmer. 2.

The Basics of C Programming" The previous discussion becomes a little clearer if you understand how memory addresses work in a computer's hardware. If you have not read it already, now would be a good time to read How Bits and Bytes Work to fully understand bits, bytes and words. All computers have memory, also known as RAM (random access memory). float f; This statement says, "Declare a location named f that can hold one floating point value." While you think of the variable f, the computer thinks of a specific address in memory (for example, 248,440). f = 3.14; The compiler might translate that into, "Load the value 3.14 into memory location 248,440." There are, by the way, several interesting side effects to the way your computer treats memory. int i, s[4], t[4], u=0; for (i=0; i<=4; i++) { s[i] = i; t[i] =i; } printf("s:t\n"); for (i=0; i<=4; i++) printf("%d:%d\n", s[i], t[i]); printf("u = %d\n", u); The output that you see from the program will probably look like this: s:t 1:5 2:2 3:3 4:4 5:5 u = 5 s[1000000] = 5;

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.

My Top 100 Programming, Computer and Science Books: Part One I was recently interviewed by Fog Creek and one of the questions was about my favorite programming, coding and development books. I got very excited by this question as I'm a huge book nerd. And by a huge book nerd I mean I'm crazy about science, computer and programming books. Every few months I spend a day or two researching the latest literature and buying the most interesting titles. I could probably go on forever about my favorite books. I've so many. I was so excited about this question that I decided to start a new article series here on catonmat about my top 100 programming, software development, science, physics, mathematics and computer books. Here's my bookshelf just to prove my nerdiness: My super nerdy bookshelf. In the first post in the series I'll re-share the same five books that I recommended in my Fog Creek interview. Enough talking. #1 The New Turing Omnibus The New Turing Omnibus. A must read for anyone interested in computers. Author: Alexander K. Author: Allen B.

Don't Call Yourself A Programmer, And Other Career Advice If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity. It would be Realities Of Your Industry 101, because we don’t teach them and this results in lots of unnecessary pain and suffering. This post aspires to be README.txt for your career as a young engineer. 90% of programming jobs are in creating Line of Business software: Economics 101: the price for anything (including you) is a function of the supply of it and demand for it. There are companies which create software which actually gets used by customers, which describes almost everything that you probably think of when you think of software. Engineers are hired to create business value, not to program things: Businesses do things for irrational and political reasons all the time (see below), but in the main they converge on doing things which increase revenue or reduce costs. Do Java programmers make more money than .NET programmers? “Read ad. Wrong question.

MR01001101 :: cryptography steganography resources and challenges 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

Related: