Saturday, September 16, 2006

How to ask a question?

How to ask a question?

This article describes briefly the steps you must follow to ask a question to a mail group or forum. If you are sending a mail to our groups then we are simpler than these steps, you are using step #5 in before you send a question. Use these steps when you send a question to TAs and other mail groups or forums.

Before you send a question,

Do the following in the same order:

  1. Search archives and FAQs
  2. Use search engines.
  3. Read a manual or book or help for your tool.
  4. Find answer by try or experiment.
  5. Ask a friend.

Prepare your question:

  1. Show that you have done last steps and you failed, this proves that you are not lazy.
  2. Show your steps in trying to solve the question.
  3. Try to surround the problem, i.e. try to get the problem in the smallest block.
  4. Describe your environment, e.g. operating system, compiler, others.
  5. Identify yourself.
  6. Compilers and other tools are trusted or to some extend so; don’t assume a bug in them.

When you ask:

  1. Choose the most relevant community to ask.
  2. Use a meaningful, exciting subject that attracts people to read. Don’t simply use “I need help”, “I got error” as subject.
  3. Try to be clear, write a question in a careful way, free of spelling and grammatical mistakes.
  4. Give all information and only information needed. Don’t waste time by describing your design which will not affect the problem.
  5. Don’t let people ask you again about details.
  6. Don’t send you guess instead try your guess yourself if it doesn’t work wait for a reply and send then your guess.
  7. Send questions in easily accessible format. Use standard fonts. You know problems of character encoding.

After getting an answer:

  1. Tell the replier if his answer fixed your problem or not.
  2. Send a small delicate thanks reply for the person wasted his time for you.
  3. You may send a report of the problem and steps in solving it.
  4. Prevent others from following the same steps in solving that problem, I mean reduce their efforts.

Finally smart question attract repliers to answer. Also, new idea sounds well. If you got no reply then, don’t panic may be repliers have no answer. And remember Ask the right question to get the right answer.

Links:

http://support.microsoft.com/kb/q555375

http://www.catb.org/~esr/faqs/smart-questions.html

Thursday, August 17, 2006

Common programmers' personality

Before;

A computer programmer may have a character different from a normal person. Oh! I am sorry, he is a normal person but, I mean a person at other work.
Note: This article doesn't reflect my personal opinion but some statistics collected on software programmers especially engineers.

Common programmers’ character:


The following personality is common among programmers:
  1. Can concentrate 12-16 hours at a time.
  2. When interrupted responds violently.
  3. Use only his head and hands.
  4. Less adaptive and have small social activities. Even concerned with computer. e.g.: chat, mail groups, forums, etc.
  5. Quiet serious and shy.
  6. Practical and logical.
  7. Low motivation towards management responsibilities.
  8. Loyalty to the profession rather than the employer.
  9. Optimism regarding time estimates.
This personality traits was applied to programmers despite their particular work(system analysis, design testers ,etc..).

MBTI Results for Software Developers

A common mean of categorizing personality was developed by Katherine Briggs and Isabel Briggs Meyers and is called the Meyers-Briggs.
Table -1- Personality Type of MBTI test
















Extraversion
  1. Expressive, Process by talking
  2. Speak before they think
  3. Need contact

Introversion

  1. Can’t process while anyone is talking
  2. Think before they speak
  3. Need time alone
Sensing
  1. Observant
  2. Experiment
  3. Attention to detail

Intuition

  1. Imaginative
  2. Theory
  3. Bored by detail

Thinking
  1. Practical
  2. Objective
  3. Being right

Feeling

  1. Personal
  2. Sympathetic
  3. Values and feelings

Judging

  1. Scheduling
  2. Love to make plans and stick to them
  3. Hate to change them
Preceving
  1. Probing
  2. Can’t stand plans
  3. More flexible


Two large studies have found that the most common personality type for software developers is ISTJ (introversion, sensing, thinking, and judging)
  • Introverts are more interested in the inner world of ideas. Not oriented towards people.(54%)
  • The sensing person focuses on known facts, concrete data, and experience. Not concepts and theories.(57%)
  • The thinker makes decisions based on objective analysis and logic and never relies on his emotions.(81%)
  • The judging person prefers order and control, not possibilities and flexibility.(54%)

A try to analyze these results

May be reasons to this character is education. Programmers are highly educated and almost got pressured.

Software programming career

About 60% of software developers have a Bachelor's degree or more.

Programming job is highly rated in terms of salary, working conditions (air conditioned well lighted offices) job security (almost no risk).

A study at IBM found that the average programmer spends only about 30 percent of the time working alone. The rest is spent working with teammates, with customers, and on interactive activities.

Challenging projects extend programmer’s capabilities, test his limits and apply practices. A challenging project may take from 2 weeks to years. Challenging projects generally done lonely.

A programmer can sacrifice his life to programming challenge especially during 20s. This fact bec0mes harder to justify when he marries and gets children move into their 30s, 40s, and 50s.
As he grows older. He relies more on working smart than on working hard. Software developers will become increasingly interested in the practices that allow them to complete their projects as promised and still be home in time for dinner(only dinner). They become interested more in software engineering professionalism.
Table -2- Percent of Software Developers Education in U.S





















High school graduate or equivalent or less10
Some college, no degree21
Associate's degree10
Bachelor's degree45
Graduate degree14


































Table -3- Worldwide Software developers grow
1950100
196010,000
1970100,000
19802,000,000
19907,000,000
200010,000,000
201014,000,000
202021,000,000

Table -2- shows education of software developers’ ratios in U.S.
While Table -3- shows population of software developers from 1960 to 2020

After;

Do you think this article applies to you??

Links:

http://cs.anu.edu.au/~Ian.Barnes/research/slides.html

A research done by Ian Barnes from The Australian National University on personality type and software development


http://www.eng.monash.edu.au/uicee/worldtransactions/WorldTransAbstractsVo1No2/17_Capretz14.pdf

A comparison between the personalities of software engineers students and engineers in general. Above statistics were done on software engineers not students.

Monday, July 17, 2006

A computer scientist


An English mathematician ,mechanical engineer and computer scientist who designed the first true digital computer. He spent most of his life building his mechanical computer. He built his computer to overcome the problems of high human calculations and slow rate.


How can a mechanical computer be a digital one? You may think that wheels and gears can represent and manage digits.


This machine -Difference engine- has a fantastic architecture that is similar to modern computers. Data and program memories were separated. And operations were instruction based. It had a control unit and can make conditional jumps. It has time signals and separate I/O unit.


He also designed a printer with variable column and row length and programmable output formatting.


After that he designed a more complex machine -Analytical engine- that can be programed by punched cards. This machine was also intended to have several operations such as branching, and looping.


A young lady Ada Lovelance the daughter of the famed British poet Lord Byron was hired to write software for this computer. She was of few people who knew lot about the Analytical engine. Ada is regarded as the world's first programmer. The programming language Ada® in 1979 is named after her.


This scientist is Charles Babbage 1791 - 1871 who a crater on moon -Babbage crater- and Charles Babbage Institute in United State were named after him. The science fiction novel The Difference Engine refers to him. He was elected as the fellow of royal society at 1816.


References and farther reading:

http://en.wikipedia.org/wiki/Charles_Babbage
http://www-history.mcs.st-andrews.ac.uk/~history/Mathematicians/Babbage.html
http://ei.cs.vt.edu/~history/Babbage.html



Saturday, June 3, 2006

Making of BMW e46 3 Series

This video is of my favorite car.

It isn't about exciting features of this car nor racing or driving comfort ability.

It's about manufacturing of this car or simply making of BMW.

So, you can take a tour inside BMW factories starting with metal-sheets cutting and shaping till last performance testing.

My notice is how workers are cheerful doing their work. Will we enjoy our work?

Now I will leave you with the video. Hope you enjoy it.





If you have any difficulties in buffering this video just wait for few minutes.

I may send it to you. It’s about 22 minutes. Or you can have instructions on how to download it.