টিসিএস অধ্যয়নরত কারও প্রোগ্রামিং শিখতে হবে তার ব্যবহারিক বিষয়গুলি এখানে কেউই বলেনি।
আপনি যদি কম্পিউটার সায়েন্স বিভাগে টিসিএসে পিএইচডি করার পরিকল্পনা করছেন, আপনার কিছু নন-থিওরি কোর্স করার দরকার পড়ার খুব ভাল সম্ভাবনা রয়েছে এবং সেগুলি অবশ্যই খুব প্রোগ্রামিং-নিবিড় হবে। আপনি যে প্রোগ্রামে রয়েছেন তার উপর নির্ভর করে আপনার যোগ্যতা পরীক্ষায় উত্তীর্ণ হওয়ার জন্য আপনার নন-থিওরি বিষয়গুলির জ্ঞানের প্রয়োজন হতে পারে।
আপনি যখন পিএইচডি শেষ করেন, টিসিএসের বেশিরভাগ কাজের সুযোগ একাডেমিয়ায়। আপনি যদি একাডেমিয়ায় কাজ করেন, আপনার কাছ থেকে শেখানো আশা করা যায় এবং আপনি একটি অন্তর্-স্তরের আন্ডারগ্র্যাড সিএস ক্লাস পড়ানোর আশা করেছিলেন যা তত্ত্বের চেয়ে বেশি প্রোগ্রামিং হবে। এমনকি যদি আপনি অ্যালগোরিদম বলতে যেমন আন্ডারগ্র্যাডগুলিকে তত্ত্বের ক্লাস শেখাচ্ছেন, আপনি আশা করতে পারেন যে আপনার শিক্ষার্থীরা তত্ত্বের চেয়ে প্রোগ্রামিং সম্পর্কে আরও বেশি জানতে পারবেন এবং আপনার শিক্ষার্থীরা কী জানেন তা না বুঝে আপনার বোঝার ফাঁকগুলি পূরণ করা আপনার পক্ষে কঠিন হবে । সিএস আন্ডারগ্র্যাডসের কথা চিন্তা করে আমি কাঁপছি যে কেউ প্রোগ্রামিং জানে না!
আপনি যদি এই ব্যবহারিক উদ্বেগগুলির বিষয়ে চিন্তা না করেন তবে প্রোগ্রামিং সম্পর্কে সত্যই কিছু না জেনে আপনি সম্ভবত গবেষণা করেই পেতে পারেন। অবশ্যই টিসিএস সম্প্রদায়ে আপনার প্রচুর সংস্থান রয়েছে তবে আপনি যে থিওরিটির সঠিক ক্ষেত্রের সাথে কাজ করছেন তার উপর নির্ভর করে মাইলেজটি আলাদা হবে instance উদাহরণস্বরূপ, আপনি যদি খাঁটি গণনা জটিলতা তত্ত্বটি করছেন তবে ক্লাসগুলির নিম্ন সীমানা প্রমাণ করছেন যে কারও নেই কখনও শুনেছেন, তাহলে সম্ভবত আপনার প্রোগ্রামিং কোনও উপকারে আসবে না। তবে আপনি যদি আরও কিছু অ্যালগরিদমিক করেন তবে আমি অনুভব করি যে ভাল পরিষ্কার পরিচ্ছন্ন কোড লিখতে সক্ষম হওয়া আপনার অন্তর্দৃষ্টি আরও জোরদার করবে যদি অন্য কিছু না হয়।
আমি সি (সি ++ নয়) শিখার প্রস্তাব দিই। কেঅ্যান্ডআর এর একটি অনুলিপি বাছাই করুন এবং এটিকে সামনের থেকে পিছনে পড়ুন। সিতে আধুনিক ভাষার অনেক অভিনব বৈশিষ্ট্য নেই, তবে এতে সহজ তবে মার্জিত সিনট্যাক্স এবং শব্দার্থবিজ্ঞান রয়েছে, যা আপনার সম্পূর্ণরূপে শিখতে সক্ষম হওয়া উচিত। যাইহোক, আপনি যখন ভাষাটি সম্পূর্ণরূপে বুঝতে পারেন, তখনও সিতে ভাল মার্জিত বাগ-মুক্ত কোড রচনায় দক্ষতা অর্জন করে তা সত্ত্বেও, আপনি যদি সিটিতে কোডিং করতে পারেন তবে আপনি যে কোনও প্রোগ্রামিং ভাষার মুখোমুখি হতে পারেন master তদুপরি, এই শৃঙ্খলা আপনাকে হার্ডওয়্যারটি কীভাবে চিন্তা করে তা ভাবতে সহায়তা করবে, যা অ্যালগোরিদম ডিজাইনের সময় উপকারী হবে।
পয়েন্টারগুলির মতো আইডিয়াগুলি যে কেউ অ্যালগরিদম ডিজাইন করেন তাদের কাছে খুব গুরুত্বপূর্ণ, তবে দুর্ভাগ্যক্রমে জাভা এবং পাইথনের মতো ভাষাগুলি আপনার কাছ থেকে তাকে অস্পষ্ট করে রাখে, এজন্য আমি গণিতের পটভূমির সাথে কারও কাছে প্রথম ভাষা হিসাবে তাদের প্রস্তাব দিই না। অ্যালগোরিদম ডিজাইনকারী এমন কোনও ব্যক্তির নয়, এমন লোকদের জন্য যাদের বিশাল সফ্টওয়্যার প্রকল্প বজায় রাখতে হয় তাদের জন্য ওওপি আরও গুরুত্বপূর্ণ।