Daffodil International University

Faculty of Science and Information Technology => Evening Program (FSIT) => Topic started by: firoz_hasan on January 02, 2020, 08:34:40 PM

Title: গুগলের জন্য প্রিপারেশন
Post by: firoz_hasan on January 02, 2020, 08:34:40 PM
আসলে গুগলের জন্যে প্রিপারেশন নেওয়া কারো লক্ষ্য হওয়া উচিৎ না, উচিৎ একজন ভালো প্রোগ্রামার বা সফটওয়ার ইঞ্জিনিয়ার হওয়ার। যদি কারো প্রোগ্রামিং ভালোই না লাগে তাহলে শুধুমাত্র যশ খ্যাতি বা টাকার কথা চিন্তা করে প্রোগ্রামিং করা উচিত না। একজন ভালো প্রোগ্রামার হতে পারলে শুধু গুগল না বরং দেশী বিদেশী বিভিন্ন জায়গায় ভালো করার সুযোগ আছে।
তাহলে আসা যাক কিভাবে নিজেকে একজন ভালো প্রোগ্রামার হিসেবে গড়ে তোলা যায়। এটা আসলে কয়েক সপ্তাহ বা মাসেই হয়ে যাবে না, তার জন্যে অনেক পরিশ্রম ও সময় দিতে হবে।
একজন ভালো প্রোগ্রামার হাওয়ার জন্যে যে বিষয়গুলো আমার কাছে গুরুত্বপূর্ণ মনে হয় সেগুলো হল:
১. যেকোনো একটা অবজেক্ট ওরিয়েন্টেড লাঙ্গুয়েজ ভালো করে শিখতে হবে। যেমন 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 তে বিভিন্ন প্রবলেম গুলো সলভ করতে হবে। এতে অনেক নতুন কিছু শিখতেও পারা যাবে।
Title: Re: গুগলের জন্য প্রিপারেশন
Post by: Anhar Sharif on February 24, 2020, 11:06:27 AM
thanks for sharing
Title: Re: গুগলের জন্য প্রিপারেশন
Post by: anwar.swe on March 11, 2020, 11:14:19 AM
Thank you for sharing this information.