• Welcome to Daffodil International University.
 

News:

Daffodil International University Forum contains information about Open Text material, which is only intended for the significant learning purposes of the university students, faculty, other members, and the knowledge seekers of the entire world and is hoped that the offerings will aide in the distribution of reliable information and data relating to the many areas of knowledge.

Main Menu

গুগলের জন্য প্রিপারেশন

Started by firoz_hasan, January 02, 2020, 08:34:40 PM

Previous topic - Next topic

firoz_hasan

আসলে গুগলের জন্যে প্রিপারেশন নেওয়া কারো লক্ষ্য হওয়া উচিৎ না, উচিৎ একজন ভালো প্রোগ্রামার বা সফটওয়ার ইঞ্জিনিয়ার হওয়ার। যদি কারো প্রোগ্রামিং ভালোই না লাগে তাহলে শুধুমাত্র যশ খ্যাতি বা টাকার কথা চিন্তা করে প্রোগ্রামিং করা উচিত না। একজন ভালো প্রোগ্রামার হতে পারলে শুধু গুগল না বরং দেশী বিদেশী বিভিন্ন জায়গায় ভালো করার সুযোগ আছে।
তাহলে আসা যাক কিভাবে নিজেকে একজন ভালো প্রোগ্রামার হিসেবে গড়ে তোলা যায়। এটা আসলে কয়েক সপ্তাহ বা মাসেই হয়ে যাবে না, তার জন্যে অনেক পরিশ্রম ও সময় দিতে হবে।
একজন ভালো প্রোগ্রামার হাওয়ার জন্যে যে বিষয়গুলো আমার কাছে গুরুত্বপূর্ণ মনে হয় সেগুলো হল:
১. যেকোনো একটা অবজেক্ট ওরিয়েন্টেড লাঙ্গুয়েজ ভালো করে শিখতে হবে। যেমন C++, Java, Python ইত্যাদি। (একটা ভালো করে শিখলে বাকিগুলো পরে দরকার পড়লে সহজেই শিখে ফেলা যাবে)
২. ডাটা স্ট্রাকচার ভালো করে বুঝতে হবে অর্থাৎ কোন জায়গায় কোন ধরনের ডাটা স্ট্রাকচার ব্যবহার করতে হবে সেসব বিষয়ে ধারণা থাকতে হবে এবং খুব কমন ডাটা স্ট্রাকচার গুলো যেমন লিস্ট বা হ্যাশম্যাপ কিভাবে ইমপ্লিমেন্ট করা যায় তা জানতে হবে।
৩. অ্যালগরিদম এর উপর ভালো জ্ঞান থাকতে হবে। বিভিন্ন কমন অ্যালগরিদম গুলো জানতে বুঝতে ও অ্যাপ্লাই করতে শিখতে হবে।
৪. টাইম ও স্পেস কমপ্লেক্সিটি কি এবং কি কারণে এগুলো গুরুত্বপূর্ণ সেটা বুঝতে হবে এবং যেকোনো একটা প্রোগ্রাম এর টাইম ও স্পেস কমপ্লেক্সিটি বের করতে জানতে হবে।
৫. কনকারেন্ট প্রোগ্রামিং, থ্রেড, মিউটেক্স, সেমাফোর, রেস কন্ডিশন বুঝতে হবে।
৬. অপারেটিং সিস্টেম এর বিভিন্ন কনসেপ্ট যেমন স্কেজুলিং, ফাইল সিস্টেম সম্পর্কে ধারণা থাকতে হবে।
৭. লাস্ট বাট নট দা লিস্ট: problem solving ability (এটি যেকোনো সফটওয়্যার ইঞ্জিনিয়ার এর core গুণাবলির একটি)
এখন আসা যাক কি করলে এসব ভালো ভাবে শিখতে পারা যাবে:
১. কম্পিটিটিভ প্রোগ্রামিং।
বিভিন্ন কনটেস্ট যেমন ACM icpc, Google Codejam এ অংশগ্রহণ করলে একই সাথে অনেক কিছু শেখা যাবে আবার সেগুলো অনুশীলন ও করা হয়ে যাবে।
২. ভালো প্রোগ্রামারদের কোড দেখে শিখতে হবে।
যেমন আমি Google Codejam এর প্রথম দিকে থাকা contestant দের সলিউশন গুলো ডাউনলোড করে বোঝার চেষ্টা করতাম যে তারা কেন কোন ডাটা স্ট্রাকচার ব্যবহার করেছে।
৩. ভালো বই পড়তে হবে।
ইদানিং বাংলাতেও প্রোগ্রামিং এর উপর অনেক ভালো বই বের হচ্ছে। যেমন Tamim Shahriar Subeen ভাই এর বা Jhankar Mahbub ভাই এর বই গুলো দিয়ে শুরু করা যেতে পারে। আবার ইংরেজি বুঝতে সমস্যা না হলে Head First সিরিজ এর বই গুলো পড়ে দেখা যেতে পারে। এছাড়াও অ্যালগরিদম এর বিভিন্ন ভালো বই পড়তে হবে। আর যেকোনো ইন্টারভিউ এর জন্যে Cracking the coding interview বইটা সবার অবশ্যই একবার পড়ে দেখা উচিৎ।
৪. YouTube.
আজকাল প্রায় সবকিছুই ইউটিউব থেকে শিখতে পারা যায়। যেমন আমার প্রোগ্রামিং শেখার শুরু TheNewBoston এর ইউটিউব এর ভিডিও গুলো দেখে। আর Harvard CS50, MIT Introduction to Algorithm এর ভিডিও গুলো তো এককথায় অসাধারণ।
৫. প্রাকটিস।
এটার কোন বিকল্প নেই। Leetcode, HackerRank, UVA তে বিভিন্ন প্রবলেম গুলো সলভ করতে হবে। এতে অনেক নতুন কিছু শিখতেও পারা যাবে।

Anhar Sharif

Md Anhar Sharif Mollah

Assistant Professor of Finance

Department of Business Administration

            &

Assistant Proctor

Daffodil International University

Cell: +8801758883609

anwar.swe

Nd. Anwar Hossen
Senior Lecturer
Mentor, IEEE DIU Student Branch
Department of Software Engineering, FSIT
Daffodil International University