CubicleSoft(TM) Logo
All Products
VerifyMyPC v2.6Recently updated!
MyTaskFocus v1.1New product!
MyProBB v2.3Recently updated!
MyUpdate Toolkit v1.4Recently updated!
Safe C++ Design
Table of Contents
Sample Chapter
Buy Now
Forum
XLAuditor v1.1
Support
Forums

E-mail: support@CubicleSoft.com
Tech. Support toolsNew product!
Quick Links

Recent News
Sat, May 31, 2008
MyProBB 2.3

Sun, Mar 30, 2008
MyProBB 2.1

Tue, Feb 26, 2008
MyProBB 2.0

Sun, Feb 24, 2008
MyProBB 1.9

Sat, Feb 16, 2008
MyProBB 1.8

Sun, Feb 03, 2008
MyProBB 1.7

Sat, Jan 05, 2008
MyProBB 1.6

Wed, Aug 08, 2007
MyProBB 1.5

Fri, Jul 06, 2007
MyTaskFocus 1.1

Fri, Jul 06, 2007
VerifyMyPC 2.6

Fri, Jul 06, 2007
MyUpdate Toolkit 1.4

Mon, Jun 25, 2007
MyProBB 1.4

Tue, Jun 19, 2007
Logo Program

Tue, Jun 19, 2007
MyTaskFocus 1.0

Wed, Jun 13, 2007
MyUpdate Toolkit 1.3

CubicleSoft News RSS Feed RSS Feed [?]
Available news collections
Resources
Bad User Interface Design
In just three widgets
UI Hall of Shame
In everyday items
Killed 87 people
Current Security Problems
Other Essential C++ Books
The C++ Standard Library
Effective C++
More Effective C++
ANSI Standards
Official ANSI C Standard
Official ANSI C++ Standard
ANSI C Draft
ANSI C++ Draft
Stories
IBM's Black Team
Testers vs. Developers
Safe C++ Design Principles
Safe C++ Design Principles
By Thomas Hruska

Chapter 1 - In the Beginning

The moment you decided to learn how to program is the moment you stopped being a user of the computer.

Users are people who use software while being oblivious to how it was written or that line 73,225 is where bug XYZ was. They simply don't care.

Users are also people who will never master the digital domain of zeroes and ones. They are stuck with using the software someone else has written. This, among other personal reasons, inspired you to learn how to program.

You are no longer a software user. And by learning to program, you lost something in the process. You think in terms of lines of code, logic, mathematics, linked lists and other data structures. Users think in terms of clicking buttons, moving scrollbars, recognizing icons, starting applications, visiting webpages, and other things that have nothing seemingly to do with code. The two things are completely different worlds from a user perspective. From a programmer's perspective, they are two integrated worlds.



Newbies, Programmers, and Software Developers

Since you are not a user, you fall into one of three categories. There are the newbies, the programmers, and the software developers. There are very few software developers in the world. When a corporation gets their hands on a real software developer, they know it and do just about everything to keep that person around.

So, just what is the difference between a newbie, programmer, and a software developer?

A newbie is someone who is just learning to write code. The newbie is someone who "hacks" together simple applications either because someone tells them to or they think doing so is the path to a good career. By "hack", I mean they take a virtual axe to the book they are learning from and cut and paste a line of code from here and there not knowing what will actually happen. Newbies are the sort of people who ask questions on C/C++ groups about broken code or code that exhibits undefined behavior. Or they ask whether one line of code is faster than the other. Sometimes other newbies reply, which only encourages the first person to continue writing bad code.

A programmer is someone who understands the programming language being used, most of its nuances, and is open to criticism and new concepts but has developed a personal style of writing code that doesn't change readily. The programmer's personal style includes the layout of their code as well as the functional design. The style can result in easy-to-maintain or difficult-to-maintain code. The programmer, also, is unable to see the forest for the trees. That is, they understand given assignments or can create assignments for themselves and get from point A to point B in code, but the programmer creates and imposes point B on users of the code being written. Point B is usually some sort of user interface. If the user interface is programmer oriented instead of user oriented, it can cause the user to have unnecessary mental stress with trying to use the application.

In contrast, a software developer is someone who knows exactly how to write software for users. The software developer carefully and painstakingly crafts applications so that the software is intuitive and easy to use. The software developer focuses 50% to 75% of all effort on making sure the user understands the software. The software developer has users test the software and watches them use it without interfering (usability testing). The software developer also knows how to get the job done quickly and safely in such a way that application bugs are minimized and application portability is maximized.

...

to read the rest. The author is a reasonable person if you truly can't afford the book.
Latest Forum Posts
Read this before posting!
Thanks.
(VerifyMyPC)

Another suggestion....
[quote] Baldilock s wrote: It seems as though all of the posts from new users ...
(MyProBB)

A Suggestion
[quote] Baldilock s wrote: 1. There needs to be a "New Topic" button...
(MyProBB)

Just saying hello....
Hello!! :) Nice to be here.
(General Discussion)

Another suggestion....
It seems as though all of the posts from new users are "moderated&quo t;......
(MyProBB)

Forum RSS Feed RSS Feed [?]
Visit the Forums


(C) 2007 CubicleSoft, All Rights Reserved.