পিএইচডিতে আসার আগে যেগুলো শেখা উচিৎ
- ৯০-১০ এর ৫০-৫০ নিয়ম
- সময় ম্যানেজ করা
- নোট রাখা বা করা
- লিটারেচার আর সাইটেশন ম্যানেজ করা
- পেপার পড়তে শেখা
- প্রোগ্রামিং এর ব্যাসিক
- লিনাক্স আর স্ক্রিপ্টিং
- LaTeX
- Markdown
পিএইচডিতে আসার আগে হয়তো আপনি ব্যাচেলরস বা মাস্টার্স শেষ করেছেন। কিন্তু হয়তো যা যা শেখা দরকার ছিলো তা কোন না কোন কারণে শেখা হয়নি। কিন্তু সেগুলো আগে থেকেই শিখলে আপনার সময় বাঁচবে অনেকখানি। সেসব নিয়েই এই লেখাটা। কয়েকটা টপিক আছে যেগুলো শেখা না শেখা আপনার ফিল্ডের উপরে নির্ভর করবে। যেমন আমি এক যায়গায় ল্যাতেকের কথা বলেছি, কিন্তু অনেক ফিল্ডেই ল্যাটেক ব্যবহার করা হয় না। কাজেই কোনটা লাগবে আর লাগবে না সেটা আপনার নিজের ঠিক করে নিতে হবে।
৯০-১০ এর ৫০-৫০ নিয়ম
আমাদের উইলিয়াম মেরির এক প্রফেসর আছে, গাং ঝৌ (Gang Zhou); অসাধারণ শিক্ষক আর গবেষক। উনার ক্লাসে উনি একটা জিনিষ শিখিয়েছিলেন আমাদের - সেটা হলো যেকোন কাজ করলে ৯০% কাজ যেকোন মানুষ করতে পারে। কাজটা ভালো নাকি সেটা নির্ধারণ হয় বাকি ১০% দিয়ে। আর ৫০-৫০ এর নিয়মটা হলো, ঐ ৯০% করতে ৫০% সময় আর পরিশ্রম লাগে, বাকি ১০% করতে বাকি ৫০% সময় আর পরিশ্রম লাগে। এই করাটা যেকোন কিছুতেই প্রযোজ্য, সেটা রিপোর্ট লেখা, পেপার পড়া, বা ল্যাতেক শেখা। এই নিয়মটা শিখে আসলে ভালো হয় বাইরে পড়াশুনার আগে। আমরা কেন জানি একটু হড়বড় করতে পছন্দ করি, তার উপর পরীক্ষায় এমন প্রশ্ন পেয়ে অভ্যস্থ যে চোথা মুখস্থ করে বা পরীক্ষার আগের রাতে পড়াশুনা করেই আমরা অনেক ভালো করে ফেলি (?)। ঐরকম করে মনে হয় আমেরিকায় (বা অন্য যেকোন ভালো যায়গায়) পার পাওয়া একটু বেশিই কঠিন।
সময় ম্যানেজ করা
আমেরিকায় আমি দেখেছি কোন একটা কারণে সবাই শুরুতেই একটা শক খায় কাজের সময় মিলাতে না পেরে। আমেরিকায় ওয়ার্ক লাইফ ব্যালেন্স বাংলাদেশের মতো না। সময় অনেক বেশি হয়তো পাবেন কারণ এখানে আসার পরে আপনার কাজ হবে শুধুমাত্র পড়াশুনা বা গবেষণা করা আর করানো নিয়ে। সাথে আবার রান্নাবান্না, ঘর পরিষ্কার করা ইত্যাদি কাজ আছে। অনেকে দেখা যায় নাওয়া খাওয়া ঘুম বাদ দিয়ে কাজ করে, আবার কেউ কেউ ভাবে পরীক্ষার আগের দিন পড়াশুনা করেই গ্রেড উঠিয়ে ফেলবে।
এগুলো ভুল। আমার এক আমেরিকান বন্ধু আমাকে বলেছিলো, সে শিখেছে - “Sleep more than you work, work more than you play, and don’t play”. - যদিও খেলাধুলা তারা একদমই খেলে না এমন না।
পৃথিবীর তাবৎ মেধাবীরা ফেসবুক, টুইটার, টিকটক বানিয়েছে এমন ভাবে যেন আপনার মনোযোগ কেড়ে নিতে পারে। সেই মনোযোগ দিতে চান না? বা নিজের সময় নিজে নিয়ন্ত্রন করতে পারেন না? রিসোর্স গুলো দেখুন।
সময় ম্যানেজ করার রিকমেন্ডেড রিসোর্স
- কিছু অ্যাপ আছে যেগুলো আপনার হয়ে নির্দিষ্ট সময়ের জন্য ফেসবুক এবং এই জাতীয় ওয়েবসাইটগুলো ব্লক করে দিবে। যেমন আমি Cold Turkey ব্যবহার করতাম, এখন করি Self Control।
- rescuetime স্বয়ংক্রিয় ভাবে আপনি কোন প্রোগ্রাম চালান, কতক্ষন কী করেন সেগুলো নজরদারি করবে, সপ্তাহ শেষে আপনাকে জানাবে আপনি কত সময় কাজের কাজ করেছেন আর কত সময় অকাজ।
- আপনি যদি ক্রোম (বা এধরণের) ব্রাউজার ব্যবহার করেন, তাহলে StayFocused ক্রোম এক্সটেনশনটা ব্যবহার করতে পারেন। সুবিধা হচ্ছে এটায় আপনি সপ্তাহের দিন আর সময় দিয়ে ব্লকার সেট করে দিতে পারবেন। আমার খুবই পছন্দের এক্সটেনশন এটা।
- উইলিয়াম মেরিতে ওয়ার্কশপ হয় প্রায়ই এসব বিষয়ে, এরকম একটা ওয়ার্কশপ থেকে এরকম অনেক টুলের একটা ওয়েবসাইট পেয়েছি: http://mindtools.com/
নোট রাখা বা করা
গবেষণায় নিয়মিত নোট লেখা লাগে, সেটা হোক গবেষণা সংক্রান্ত, বা অন্য কারো থেকে শেখা, অন্যান্য বিষয়ে। ভ্যাজাল হচ্ছে আমরা নোট করা বলতে বুঝি বইয়ে হাইলাইটার ঢালা। কিন্তু একটা কথা আছে:
It matters less what you read than how you take notes.
– from https://reallifemag.com/rank-and-file/ by Robert Minto
তা এই নোট করাটা এক এক জন এক এক ভাবে করে। আপনি কীভাবে করবেন আপনার উপর। আমি ব্যক্তিগতভাবে Zettelkasten (শব্দটা জার্মান, মানে Slip Box Method) দিয়ে করার চেষ্টা করি। এ বিষয়ে অনেক কিছুই পাবেন অনলাইনে, আমার পছন্দের বই হচ্ছে How to Take Smart Notes হচ্ছে এটা। কেনাটা রিকমেন্ডেড, কিন্তু কিনতে না পারলে অনলাইনেও কপি পাবেন। তবে তাও বলবো সময় করে কিনে ফেলতে।
লিটারেচার আর সাইটেশন ম্যানেজ করা
দেখা যাবে একসময় আপনার শ বা হাজার খানেক গবেষণাপত্র পড়া হয়ে গেছে। এগুলো নাম দিয়ে মনে রাখা বা সাইট করা অনেক ঝামেলার যদি ম্যানুয়ালি করতে চান। কিন্তু এগুলো ম্যানেজ করার জন্য আলাদা সফটওয়্যার আছে। সবচেয়ে জনপ্রিয়, ফ্রি দুটো অপশন হচ্ছে Mendeley আর Zotero. আমার মতে Zotero ব্যবহার করতে শেখা Mendeley এর চেয়ে একটু কঠিন। কিন্তু Zotero তুলনাবিহীন, কারণ Mendeley সার্ভিস টাইপের, আপনার একাউন্টে কোন সমস্যা হলে একাউন্ট, নোট সব যাবে। Zotero টা ওপেন সোর্স, এড-অন আছে, কাজেই আপনি চাইলে সব আলাদা করে রাখতে পারবেন এবং দুর্দান্ত সব ফিচারওয়ালা। সব মিলিয়ে আমি Zotero ব্যবহার করি।
Zotero শেখার জন্য
বাংলায় ইংরেজিতে অনেক টিউটোরিয়াল পাবেন অনলাইনে। Zotero অনেক বেশি ফ্লেক্সিবল, এজন্য নানাজন নানাভাবে ব্যবহার করে। আমি কীভাবে ব্যবহার করি তা দেখতে পড়তে পারেন এটা।
পেপার পড়তে শেখা
মোটামুটি সব ফিল্ডেই পেপার পড়া লাগেই! কিন্তু এখানে একটা মজা আছে: এক একটা কনফারেন্স পেপার হয় ১০-১২ পেজের, কিন্তু সেটার পিছনে কাজ থাকে কমসে কম এক বছর। তো সেই এক বছরের কাজ ১০-১২ পেজের পেপার পড়ে বুঝা খুব কঠিন। চুপি চুপি বলে রাখি, সেই একটা পেপার পুরোপুরি বুঝা কিন্তু লাগেও না, মোটামুটি একটা ধারণা পেলেই হয়। কিন্তু সেই মোটামুটি টা কতখানি? হালকার উপরে ঝাপসা? নাকি আরো কিছু?
এসব প্রশ্ন থাকে, আর এটার উত্তর আসলে পড়তে পড়তে, পেপারের উপর নির্ভর করে দেয়া যায়। সব পেপার তো এক না! কিন্তু তাও পড়া লাগবে, তাও বুঝা লাগবে। তারও আগে বুঝা লাগবে পেপারটা পড়া দরকার নাকি। সব মিলিয়ে পেপার পড়ার জন্য কিছু টেকনিক আছে, যেগুলো শেখা লাগেই। ভার্সিটিতেও শেখায়, কিন্তু আপনি এখন আমার ব্লগ পড়ে জানলেন। তাই আগেই শিখে এগিয়ে থাকলে তো আপনারই সুবিধা। পেপার পড়ার জন্য আমার ধারণা সবচেয়ে জনপ্রিয় টেকনিক হচ্ছে AIC বা Abstract, Introduction, Conclusion. এটা নিয়ে খুব ভালো একটা লেখা আছে ক্যামব্রিজের এক প্রফেসরের, পড়তে পারেন এখানে।
লিনাক্স আর স্ক্রিপ্টিং
রিমোট সার্ভার এ কাজ করতে, কোড কম্পাইল করে চালাতে কোড চালানোর সময় প্যারামিটার পাঠানো, সেটার আউটপুট ফরওয়ার্ড করা, ফিল্টার করা, একসাথে ৫০০ ফাইল ডিলিট করা বা ফাইলে লেখা ইত্যাদি ইত্যাদি কাজের জন্য শেল স্ক্রিপ্টিং এর জুড়ি নেই।
স্ক্রিপ্টিং শিখতে চাইলে
- https://linuxconfig.org/bash-scripting-tutorial - আমি এখান থেকে শিখেছিলাম
- https://missing.csail.mit.edu/2020/course-shell
- https://missing.csail.mit.edu/2020/shell-tools
নতুনদের জন্য লিনাক্স অপারেটিং সিস্টেম উবুন্টু সবচেয়ে জনপ্রিয়, এছাড়াও লিনাক্স মিন্ট, মানজারো লিনাক্সও বেশ ভালো আমার মতে।
প্রোগ্রামিং এর ব্যাসিক
পাইথনকে সকল কাজের কাজি বলা যায়; সহজও। আমার মতে যে কারো পাইথনের ব্যাসিক শিখে ফেলা উচিত। কত রকম কাজ যে পাইথনে করা যায় সহজে তার ইয়ত্তা নেই। আপনার ফিল্ডে না লাগলেও আমার মতে এটা ব্যবহার করা শিখলে আপনি হয়তো আপনার ফিল্ডে এটা ব্যবহার করার একটা ক্ষেত্রও বানিয়ে ফেলতে পারবেন আগে থেকেই তৈরি না থাকলে। পাইথন শেখার জন্য আমার সবচেয়ে পছন্দের বই হচ্ছে Automate the Boring Stuff with Python। এই লিংকে সব চাপ্টার লেখক ফ্রিতে দিয়ে দিয়েছেন, পড়তে পারেন অনলাইনে।
কম্পিউটার সায়েন্সে যারা পিএইচডি করতে আসে, তাদের কয়েকজনের সাথে আমি আলাপ করেছিলাম এই লেখা শুরু করার আগে। আশ্চর্যের বিষয় এই যে তারাও বলেছে তাদের মনে হয়েছে আরেকটু ভালো প্রোগ্রামিং শিখে আসলে, ব্যাসিক শিখে আসলে ভালো হতো মনে হয়েছে। এই আরেকটু ভালো কী আসলে? প্রোগ্রামিং কনটেস্ট? তা না। কোন স্ট্রাকচার কখন কাজে লাগে, সেটআপ কীভাবে করা যায়, প্রোগ্রামিং ল্যাঙ্গুয়েজ কীভাবে কাজ করে, সেটা কম্পাইল কীভাবে হয়, কম্পাইল হবার পরে চালায়ই বা কীভাবে, ডিবাগিং - এগুলো সবই ব্যাসিক। আর কোন একটা ল্যাঙ্গুয়েজে এগুলো ভালো মতো শিখলে অন্য ল্যাঙ্গুয়েজে, বা আইডিইতে শেখা একটু অন্যরকম হলেও সহজ হয়ে যায় অনেকখানি। আপনি যে ল্যাবে জয়েন করবেন বা করতে চান তাদের নতুন প্রোজেক্ট গুলো দেখুন, তারা কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে, কোন ফ্রেমওয়ার্কে আগ্রহী। সেগুলো আগে ভাগেই ঘাঁটাঘাঁটি শুরু করুন। কিছুটা ধারণা আগে থেকে আসবেই।
একটা লিস্ট দিচ্ছি প্রোগ্রামিং আর স্ক্রিপ্টিং মিলিয়ে। যদি সবগুলো শব্দ পরিচিত হয় এবং সবগুলো নিয়ে কাজ করতে পারেন স্বাচ্ছন্দ্যের সাথে, তাহলে ধরতে পারেন ব্যাসিক মন্দ না।
- command line argument
- runtime argument
- compilation in terminal
- classpath
- environment variable
- environment PATH
- step into
- conditional breakpoint
- build/run profile/configuration
এইগুলো ক্লাসের প্রোগ্রামিং শেখায় আসতেও পারে, নাও আসতে পারে। সাধারণত এগুলো হাতে ধরে শেখানোর কিছু নেই, প্রোগ্রামিং শিখতে শিখতেই ধারণা হয়ে যায় একটা। যদি না হয়ে থাকে তাহলে এগুলো নিয়ে ঘাঁটুন, জানুন, প্রোগ্রাম লেখার পরে সেটা দিয়ে কীভাবে কাজ করানো যায়, ডিবাগ কীভাবে করা যায় - এগুলো নিয়ে একটা ধারণা হয়ে যাবে। 😄
LaTeX
পেপার লিখতে LaTeX (উচ্চারণ ল্যাতেক) এর জুড়ি নেই। বড়সড় সম্ভাবনা আছে LaTeX দিয়েই আপনার এসাইনমেন্ট, রিপোর্ট সব জমা দেয়া লাগবে। আর পেপার সাবমিশন নেয়ও বেশিরভাগ কনফারেন্স আর জার্নালে ল্যাতেক দিয়েই। কাজেই সময় থাকতে শিখে নিন, বহুৎ সময় যাবে নাহলে আসার পরে শিখতে গিয়ে। বিশেষ করে শিখবেন ইকুয়েশন লেখা, টেবল বানানো আর ছবি ঢুকানো।
ল্যাতেক শিখতে চাইলে
- https://www.overleaf.com - অনলাইন ল্যাতেক এডিটর। শুরুতে শেখার জন্য খুবই ভালো। তবে সময়ের সাথে সাথে অফলাইন এডিটরে সুইচ করা ভালো। সাবমিশনের আগেরদিন আপনার ইন্টারনেট চলে গেলে, বা ওভারলিফ এর ওয়েবসাইট ডাউন হয়ে গেলে বিপদে পড়বেন নাহলে। এরকম হয়েছেও আগে।
- https://en.wikibooks.org/wiki/LaTeX - ল্যাতেক শেখার জন্য যা যা লাগে মোটামুটি সব এখানে পাবেন।
- LaTeX Workshop for VSCode - আমি Visual Studio Code এ ল্যাতেক এর প্লাগইন ইন্সটল করে নিয়েছি, ওটা দিয়েই লিখি।
Markdown
মার্কডাউন আমার ব্যক্তিগত মতে পৃথিবীর সবচেয়ে ভালো জিনিষগুলোর একটা। এক কথায় মার্কডাউন লেখার স্টাইলিং করার একটা ফরম্যাট। গিটহাবে যে রিডমি ফাইল দেখেন, সেটাও মার্কডাউনে লেখা হয়, আবার কনফারেন্সের রিভিউ বা রিভিউর প্রতিউত্তরগুলো যে লেখা হয় সেগুলোও মার্কডাউনেই। এমনকি আমি যে এই লেখাটা লিখেছি, সেটাও মার্কডাউনে। খালি একটা কনভার্টার দিয়ে সেটা ওয়েবসাইটে কনভার্ট করে ফেলেছি ওয়েবসাইটে রাখার আগে।
মার্কডাউন শিখতে চাইলে
- মার্কডাউনের নানা রকম ফ্লেভার আছে, মানে কয়েকটা টাইপ আছে যেগুলোর কোনটা কোনটা কিছু কম বেশি ফিচার দেয়। তবে মূল ফিচারগুলো সব মার্কডাউনে একই। গিটহাব ফ্লেভারের মার্কডাউনটা হয়তোবা সবচেয়ে জনপ্রিয়, কাজেই ওটা দিয়ে শুরু করতে পারেন। এখানে ওদের টিউটোরিয়াল পাবেন।
- আমি ব্যবহার করি মার্কডাউনে লেখার জন্য: Visual Studio Code এর মার্কডাউন প্লাগইন
লগইন ছাড়াই কমেন্ট করতে নাম এ ক্লিক করুন, দেখবেন তার নিচেই আছে অতিথি হিসাবে কমেন্ট করার অপশন।