1K Blog Marathon: Day 18
Lately, our company opened hiring positions for Programmers. And luckily, my supervisor wanted me to join him in the screening process. (Yes he trusts me!)
We split all the applicants each, and we give examination first. We uses the traditional Flowchart questions to test their logic. He gave ATM Denomination as problem, I gave Highest to lowest sorting. We asked them to plot a Flowchart about the problem.
And all of the applicants.
I mean literally, all of them.
Didn’t create a Flowchart correctly.
They have the code in their mind. They know to write it in front of the keyboard, but they didn’t know how to draw flowchart! Even the basic symbols, they forgot the functions.
My right brain asked: “Is it really necessary to include Flowchart as a hiring examination for Programmers?”
My left brain replied: “Yes, they should know the basic and not just the most advanced knowledge in programming. Logic first, before code.”
Why is it so hard for them to pass it? Did they really forgot the symbols? Or is it so easy to not practice at all.
I remember back in college, I had a hard time with my Instructor. Why? Because of Flowchart! We have to memorize each and every symbol. We have to recite all of its functions, word per word. I guess, our hardships bear fruits.
Flowchart is a vital aspect of programming. It is a visual representation of the program. Unlike pseudo code, flowchart is made to be understood with one single glance (although most of the time, flowcharts can be complex to look at). In my own humble opinion, one should know how to create flowchart first before jumping off in programming – know your logic first.

So for the folks out there who are not familiar with flowchart, or is not paying attention when their prof teach this, or just simply forgot Flowcharts, I present to you…
Flowchart Symbols and its Functions
Terminal

This oval is the most crucial of all – you should not start and end a flowchart without it. At the beginning, you should indicate it as “Start”, and when the flow is ending, label it with “End”. A flowchart should have an end, otherwise, you’re on a black hole.
Flowline

This line may appear with or without an arrow head depending on the direction. As per my memory, if the direction is down or right, you don’t need an arrow head. But if you’re going upward (as in looping back) or left (as one of the 2 output of a decision), you SHOULD use arrow head.
Process

Along with Terminal and Flow line, these 3 symbols should suffice in making a flowchart. Process, as the name implies, holds processes, mainly using assignments or calculations. You should not declare variables here, because…
Input/output

…this should be the symbol you will use when you are declaring variables. Process is used for initializing variables. Also, you can use “Print” keyword inside input/output symbol.
Decision

This diamond symbol will always ask you – left or right? True or False? Continue or End? It will evaluate as either Yes or No, or True or False depending on what you like.
On-Page Connector

If you want your flowchart to be neater, you can use a circle as an on-page connector. You can go back to the top or anywhere in the page without using a long flow line, thus making your flowchart clean. Just don’t forget to label it with letters properly, so as not to confuse the reader.
Off-Page Connector

You should be very careful using this inverted Pentagon, or the “house in Australia”. Keep in mind that IF:
1. your chart expands to more than one page;
2. you need to link or go to other page as a next step of the chart; and
3. you’re a great flowchart smith.
…This is the connector you will need.
Predefined Process

If you want to use other process which is already declared, created or defined in another part of the flowchart, this is your man! I mean, your symbol. It is just like a Process symbol, a landscaped rectangle, but with 2 additional thin portrait rectangle on each side.
Annotation / Comment

I rarely use this. Why? Because if you really want your flowchart to be readable, you will:
1. Use less symbol if possible to avoid crowd;
2. Use appropriate labels for clarification and easy understanding;
3. The flow should explain itself, no use for comments.
4. KISS – Keep It Super Simple.
But if you still feel the urge to use comment, you can add a line pointing to the part of the chart where you will add comment, then write I inside an open rectangle.
So that’s it! It’s just the basic symbols of flowchart that makes our life hell in college but heaven in real life applications. Hope you have fun scribbling in your papers!
I just want to thank my Instructor in this subject, you did a great job pounding my brain with these symbols, and now I reaping the benefits! You rock!
Again, remember: work on your logic first, and then jump in the code!
“And that’s one blog, stay hungry!”
Show me your flowcharts and conceal your tables, and I shall continue to be mystified.
Fred Brooks
Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.