Wednesday, April 6, 2016

Ethics (CHAPTER 13)

 Definition
Professional accountant: A member of the ICAEW.

Professional accountants have a responsibility to act in the public interest as well as considering their
client or employer. The Codes require professional accountants to comply with the following five
fundamental principles:





1.2
Integrity
Objectivity
Professional competence and due care
Confidentiality
Professional behaviour

Integrity
Definition
Integrity: Professional accountants shall be straightforward and honest in all professional and business
relationships.
A professional accountant shall not knowingly be associated with any information where he believes that
the information:
 Contains a materially false or misleading statement
 Contains statements or information furnished recklessly
 Omits or obscures information required to be included where such omission or obscurity would be
misleading.
When a professional accountant becomes aware that he has been associated with such information, he
shall take steps to be disassociated from that information.

Objectivity
Definition
Objectivity: Professional accountants shall not allow bias, conflict of interest or the undue influence of
others to override professional or business judgements.
Relationships that bias or unduly influence the professional judgement of the professional accountant
shall be avoided.
Conflicts of interest are considered in more detail later in this chapter.
1.4
Professional competence and due care
Definition
Professional competence and due care: Professional accountants have a continuing duty to:
 Maintain professional knowledge and skill at the level required to ensure that clients or employers
receive competent professional service based on current developments in practice, legislation and
techniques; and
 Act diligently in accordance with applicable technical and professional standards when providing
professional services.
Competent professional service requires the exercise of sound judgement in applying professional
knowledge and skill. Competence entails:
 Attainment of professional competence; and
 Maintenance of professional competence, requiring a continuing awareness and understanding of
relevant issues.
The professional accountant shall take steps to ensure that those working for him have appropriate
training and supervision.
Any limitations relating to the service being provided must be made clear to avoid misinterpretation.
1.5
Confidentiality
Definition
Confidentiality: Professional accountants shall:

 Respect the confidentiality of information acquired as a result of professional and business
relationships;
 Refrain from disclosing such information without proper and specific authority unless there is a
legal or professional right or duty to disclose; and
 Refrain from using such information for their personal advantage or the advantage of third parties.



A professional accountant shall maintain confidentiality even in a social environment. The professional
accountant shall be alert to the possibility of inadvertent disclosure, particularly in circumstances
involving long association with a business associate or a close or immediate family member.
A professional accountant shall consider the need to maintain confidentiality of information within the
firm. All reasonable steps shall be taken to ensure that staff under the professional accountant's control
and persons from whom advice and assistance is obtained respect the professional accountant's duty of
confidentiality.
A professional accountant shall also maintain confidentiality of information disclosed by a prospective
client or employer.
The need to comply with the principle of confidentiality continues even after the end of relationships
between a professional accountant and a client or employer. When a professional accountant changes
employment or acquires a new client, the professional accountant is entitled to use prior experience.
The professional accountant shall not, however, use or disclose any confidential information either
acquired or received as a result of a professional or business relationship.
Confidentiality is considered later in this chapter.
1.6
Professional behaviour
Definition
Professional behaviour: Professional accountants shall comply with relevant laws and regulations and
avoid any action that discredits the profession.
This includes actions which a reasonable and informed third party, having knowledge of all relevant
information, would conclude negatively affects the good reputation of the profession.
Professional accountants shall conduct themselves with courtesy and consideration towards all with
whom they come into contact and shall not:

 Make exaggerated claims for the services they are able to offer, the qualifications they possess, or
experience they have gained
 Make disparaging references or unsubstantiated comparisons to the work of others

Tuesday, April 5, 2016

Tips for New Programmers - নতুন প্র‌োগ্রামারদের জন্য আবশ্যক টিপস

সফটওয়্যার ইন্ডাস্ট্রিতে আসার আগে

তোমরা যারা কম্পিউটার সায়েন্স বা কাছাকাছি কোনো বিষয়ে পড়ছ এবং শীঘ্রই বিশ্ববিদ্যালয়ের গণ্ডি অতিক্রম করে যাবে, তাদের বেশিরভাগই কাজ খুঁজে নেবে সফটওয়্যার ইন্ডাস্ট্রিতে। কম্পিউটার বিজ্ঞানের মৌলিক ধারণার ওপর শক্ত ভিত্তি ও প্রোগ্রামিংয়ে যথেষ্ট দক্ষতা থাকা সত্ত্বেও তোমাদের অনেকের মধ্যেই অনেক দুশ্চিন্তা কাজ করে, আর কী কী শিখতে হবে, কিভাবে শিখব, কতটুকু শিখব এরকম অনেক প্রশ্ন উঁকি দেয় মনে। আজকে আমি পাঁচটি জিনিসের কথা বলব, যেগুলো আমি প্রত্যাশা করি একজন নতুন কম্পিউটার সায়েন্স গ্রাজুয়েট আগে থেকেই জেনে আসবে। যদিও আমি নিজে যখন পাশ করি, তখন এসব জানতাম না, তবে সেটা অনেক অনেক বছর আগের কথা। বর্তমান সময়ে এগুলো না জানলেই নয়।




১) ভার্শন কন্ট্রোল সিস্টেমের ব্যবহার: 
                                                   তোমরা নিশ্চয়ই গিট বা গিটহাবের নাম শুনেছ, না শুনে থাকলে git ও github লিখে গুগলে খোঁজা শুরু কর। খুব সহজ কথায় বললে, গিট হচ্ছে এমন একটি সফটওয়্যার যার মাধ্যমে ভার্শন নিয়ন্ত্রনের কাজটি বেশ সহজে করা যায় এবং সেকারণে অনেকে মিলে একসাথে একটি প্রজেক্ট কাজ করতে সমস্যা হয় না। আর গিটহাব হচ্ছে ওয়েবভিত্তিক একটি সার্ভিস যেখান থেকে বিনামূল্যে গিট ব্যবহার করা যায়। তো গিটহাবে গিয়ে একটু সময় কাটালেই তোমরা এর ব্যবহার শিখে নিতে পার। এছাড়া এই ওয়েবসাইটে গিয়ে তোমরা গিটের ব্যবহার সহজে শিখতে পারবে : https://try.github.io/। আর বাংলা ভাষায়ও বেশ ভালো ভিডিও টিউটোরিয়াল তৈরি করা আছে এখানে : http://git.certainly.rocks/


২) ডকুমেন্টেশন: 
                        ডকুমেন্টেশন দুই পর্যায়ে করতে হয়, একটি হচ্ছে কোডের ভেতরে, আরেকটি হচ্ছে কোডের বাইরে। প্রতিটি ফাংশন ও ক্লাসের সাথে খুব অল্প কথায় সেটি কী কাজ করছে, এটি লিখে দেওয়ার অভ্যাস থাকা ভালো। আর কোডের বাইরে সিস্টেমের ডকুমেন্টেশন, এপিআই ডকুমেন্টেশন এগুলোও লিখতে জানতে হবে। ডকুমেন্টেশন শেখার জন্য সবচেয়ে ভালো উপায় হচ্ছে বিভিন্ন ওপেন সোর্স প্রজেক্টের ডকুমেন্টেশন দেখা। গিটহাবে এরকম প্রচুর প্রজেক্ট হোস্ট করা আছে।

৩) ইউনিট টেস্ট: 
                        ইউনিট টেস্ট হচ্ছে প্রোগ্রামের ভেতরে প্রতিটি ফাংশনের জন্য পৃথক টেস্ট কোড। এর মাধ্যমে প্রতিটি ফাংশন টেস্ট করা হয়। সফটওয়্যার ডেভেলাপমেন্ট সহজ করতে এবং বাগ নিয়ন্ত্রণে রাখতে এটি একটি পরীক্ষিত ও কার্যকর উপায়। আর এই ইউনিট টেস্ট করাটা কিন্তু প্রোগ্রামারদেরই কাজ। বর্তমানে প্রোগ্রামিং ভাষার বইগুলোতে সেই ভাষায় কিভাবে ইউনিট টেস্ট করতে হয় সেটির ওপর আলাদা অধ্যায় থাকে, পড়ে নিতে পার।

৪) ওয়েবের ধারণা: 
                          তুমি সফটওয়্যারের যে বিভাগে বা যে ধরণের সফটওয়্যার নিয়েই কাজ কর না কেন, বর্তমানে তোমার ওয়েবের শক্ত ধারণা থাকার কোনো বিকল্প নেই। ওয়েব কীভাবে কাজ করে সেটা তোমার জানতে হবে। বিভিন্ন অংশের কাজের ওপর স্বচ্ছ ধারণা থাকতে হবে। ওয়েবের ধারণা অর্জনের জন্য দ্বিমিক কম্পিউটিংয়ের ওয়েব কনসেপ্টস কোর্সটিই সেরা, এবং এটি বিনামূল্যে করা যাবে এই ঠিকানা থেকে: https://dimikcs.appspot.com/WEB100/। আর হ্যাঁ, কোর্সটি সম্পূর্ণ বাংলায়।

৫) এপিআই ব্যবহার: 
                               বিভিন্ন এপিআই ব্যবহার করতে জানতে হবে, সেটা তুমি মোবাইল ডেভেলাপার হতে চাও কিংবা ওয়েব ডেভেলাপার। ফেসবুক, টুইটার, গুগল ইত্যাদি কোম্পানীগুলো অনেক এপিআই তৈরি করে রেখেছে যেগুলো তুমি তোমার অ্যাপ্লিকেশন (ডেস্কটপ, ওয়েব কিংবা মোবাইল)-এ ব্যবহার করে অনেক চমৎকার সব জিনিস তৈরি করতে পার। বিভিন্ন এপিআই-এর ডকুমেন্টেশন খুব ভালোভাবে লেখা থাকে। তাই সেগুলো পড়ে নিজের কোডে সেটা ব্যবহার করতে পারতে হবে, এর জন্য তোমাকে অফিসে যদি তিন দিন প্রশিক্ষণ দেওয়া লাগে তাহলে কিন্তু মুশকিল।
নতুন দিনের প্রোগ্রামারদের জন্য শুভকামনা।


Courtesy: Shiplu Hridoy