Notice the usage of small letters(a and z) in the title. It implies that this piece of writing does not cover all the aspects(‘A’ to ‘Z’) of programming but is a subset of what I know about programming- the technical and the logical aspects.
I’d like to share with you, few do’s and don’t that I had faced in my journey so far. They aren’t present in the chronological order .So, fasten your seat belts and be prepared for the take off…
a:Always have a positive approach to anything that comes in your way. No matter how difficult and unreachable the given problem appears to be, do not get hassled.
b: Be strong in your Basics. Though it may take a chunk of your time, yet never leave those minute important details regarding the language, the software, or basically anything.
Books are your best friend. And never go for the “dummies” series ‘coz it hardly covers anything but don’t start off with the advanced technical book straightaway.
c: Creativity in your programs and approach will be an added advantage but not at the risk of its efficiency.
Add comments to your program as and when required. The benefits that you reap are inexpressible.(I am not referring to my senior’s well-documented programs!).
Contructs: All the programming languages have a similar set of control structures and logical constructs, the difference being in the syntax .
d: Be aware of the deadlines.
Refer to API Documentation as and when necessary.
e: Try experimenting with all the possibilities .You never know that you have struck a gold-mine.
f: Priority should be given to *functionality * than to the looks. Once you are done with the functional module, make-up and cosmetic surgery can always do some help later on.
g: Try Grasping everything said by or written about Tech-Personalities(Bill Gates/Scott McNealy.) or atleast register it, as it may be of sense and use in near future.
h: Extensively use the help feature. In fact, it contains more specific information than a book.
i: Identify the Inputs .Go to any extreme and see to it that your program handles all kind of inputs(even erroneous) .
j: Do not use too many jump statements in your program as they worsen its comprehensibility. Avoid computer * jargons* as far as possible and unless and until asked for it in day to day life.
k: Share your knowledge with others and value their suggestions(aka MS trusted circle).
l:LOGIC is the “KEY” factor. Your mind is the master of all trades(w.r.t program).
m:Maintain the(hard/soft) copies of the programs.(Emergencies may creep in at any time….)
n:Never say no to any opportunity that comes your way to do something new(even though you don’t know the head or tail of it) because learning is a process and that opportunity acts like an initiator.
o: Capture the output of the program most of the times(printouts). It helps in a clearer understanding once you come back after a long break.(example after world cup.).
p: Pictorial representation of a problem helps in the better understanding.
Devote much time to Pointers. They are ever green and won’t stop haunting you.
If you are not comfortable with * pointers*, then select a language which doesn’t have them . Example: java
q:Sharpen your ability to query what is being asked for. The more you ask, the more you understand, the more you get and the more you can give.
r: For any graphics related program, check the results in different resolutions and you will be surprised to see the output.
Try to deduce a real life analogy as and when required.
s: Think extensively on the selection of the languages, sorting algorithms, logic and the operating system.(It pays to spend time thinking before than spending hours on debugging and modifying later…….).
t: Identify the target and see to it that you hit the bulls eye. Target in the sense the end-user(customer/lecturer/your younger brother or so).
u: Once the program is finalized, check the memory utilization thoroughly using the tools meant for that purpose(like JProbe and Purify).
v: Make your program versatile for example, initially u’d want to work with fixed input, then later accept it from the console. To avoid re-typing, make use of variables, assign them the fixed input and then later
w: Do not wait for others(lecturer/friend) to come and help you out. Refer to books or to internet, if possible(eg: MouthShut.com) for the guidance.
Work on your weaknesses(for me its pointers) rather than running away from them.
x: Give in your x-tra effort * that increases your chances of becoming an *x-pert.
y: Say “YES” to all kinds of ideas and implement them.(this point is similar to e’s). Never ever get discouraged by the reactions that you get after expressing your ideas.
z:If you can’t send an .exe file to a particular company’s account due to its restrictions then save it in a folder and zip it and send…(personal experience).
Software industry is ever-growing and expanding(big bang theory is not only applicable to universe but also to computer industry). You can’t afford to stop at any point of time in such field. One has to keep his eyes wide-open and updated. But, the catch is to make one specific subject(Java/C/networking/web etc) as your ultimate strength and later on find similarities between it and other languages, operating systems and so on.
Hoping that you had an informative and a safe journey(didn’t cause you any yawns or so.)…Applications are invited for the post of co-pilots who can add more to this….
Landing .