Uploaded avatar of iHiD

Ryan Potts-এর সাথে একটি সাক্ষাৎকার

@iHiD
7 বছরের বেশি আগে

Ryan Potts-এর সাথে একটি সাক্ষাৎকার, যেখানে তিনি এবং Jeremy Walker Delphi নিয়ে, Exercism-এ কন্ট্রিবিউটর হিসেবে কাজ করে তিনি যা শিখেছেন তা নিয়ে, এবং এখনও "অফলাইন" থেকে যাওয়া ইন্ডাস্ট্রিতে প্রোগ্রামিং করার অভিজ্ঞতা নিয়ে আলোচনা করেছেন।

হাই Ryan। আমার সাথে কথা বলার জন্য সময় দেওয়ার জন্য ধন্যবাদ। আপনি Exercism-এ Delphi ট্র্যাকের মেইনটেইনার। Delphi-তে আপনার যাত্রা কীভাবে শুরু হলো?

আমি আমার বাবার প্রতিষ্ঠিত একটি কোম্পানিতে কাজ করি, যেটি আশির দশক থেকেই সফটওয়্যার তৈরি করছে, শুরুতে Microsoft Pascal দিয়ে, পরে Borland-এর Turbo Pascal ব্যবহার করে। ১৯৯৬ সালে আমি কোম্পানিতে কাজ শুরু করি; তখন Windows-এ চলবে, DOS-এ নয়, এমন সফটওয়্যার তৈরির অনুরোধ আসছিল। সুবিধাজনকভাবে Borland কিছুদিন আগেই Delphi 1 প্রকাশ করেছিল। আমাদের জন্য এটা ছিল একেবারে উপযুক্ত, কারণ বছরের পর বছর ধরে তৈরি হওয়া বেশিরভাগ ইউনিট তখনও ব্যবহার করা যেত। Windows সমর্থন করতে VB বা VC-তে সবকিছু নতুন করে শুরু করার দরকার আর পড়েনি।

আর এখনও কি প্রতিদিন Delphi ব্যবহার করেন?

হ্যাঁ, আমি যেখানে কাজ করি সেখানে অটোমোটিভ ইন্ডাস্ট্রিতে R&D টেস্টিং এবং ছোট ব্যাচে টেস্টিংয়ের জন্য মেশিন তৈরি হয়; যেমন টায়ার, কার সিট, এয়ারব্যাগ ইনফ্লেটর টেস্ট করা, পাশাপাশি ক্র্যাশ টেস্টিং। এখানে তৈরি প্রতিটি সিস্টেম বিশ্বের বেশ কয়েকটি গাড়ি নির্মাতা প্রতিষ্ঠান এবং তাদের সাপ্লায়াররা ব্যবহার করে।

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

আমার কাজে ওয়েব প্রোগ্রামিংয়ের কোনো প্রয়োজনই নেই। আমি যা করি সব Delphi-তে, Windows-এ। মাঝেমধ্যে C++-এ ছোট একটি "কাস্টম কমান্ড" তৈরি করতে হয়, সেটি এরপর আমি ডেটা অ্যাকুইজিশন প্রসেসর বোর্ডে আপলোড করি; এটি কম্পিউটারের একটি PCI স্লটে থাকা একটি প্যারালাল কম্পিউটার, যার নিজস্ব CPU, মেমরি আর OS আছে।

এমন একজন মানুষের সাথে কথা বলা সত্যিই দারুণ, যিনি একেবারেই ওয়েব প্রোগ্রামিং করেন না। আজকের দিনে এটা বেশ অস্বাভাবিক মনে হয়, তবে আমার সন্দেহ হয় এটা আসলে কম্পিউটার ইন্ডাস্ট্রির আসল চিত্র নয়, বরং আমি প্রতিদিন যে সিগন্যাল/নয়েজ অনুপাতের কথা শুনি সেটিই।

হ্যাঁ, Exercism-এর সাথে যুক্ত থাকার কারণে কম্পিউটার ইন্ডাস্ট্রিতে "অন্য অর্ধেকেরা" কীভাবে থাকে, সেটা আমি একটু দেখার সুযোগ পেয়েছি। Test Driven Development (TDD), GitHub ব্যবহার করা, আর একটি ওপেন সোর্স প্রজেক্টে কাজ করা নিয়ে আমি অনেক কিছু শিখেছি। আমি যা শিখেছি তার অনেকটাই আমার চাকরির কাজের মান উন্নত করেছে।

এটা শুনে সত্যিই খুব ভালো লাগল। Exercism-এর মধ্যে আমি সবচেয়ে বেশি যা ভালোবাসি তার একটি হলো এই "অন্য অর্ধেকেরা কীভাবে থাকে" অনুভূতিটা, অর্থাৎ নিজের সব অজানা দিক চিনতে পারা আর নিজের অজান্তেই যে জিনিসগুলো আছে সেগুলো সম্পর্কে জানতে পারা। আমার মনে হয় ট্র্যাক মেইনটেইনার হিসেবে কাজ করা এই শেখাটাকে আরও বাড়িয়ে দিয়েছে?

সেটাই হয়েছে। আগের চেয়ে আমি এখন বেশি টেস্ট লিখি। সবসময় যে কঠোর অর্থে TDD, তা নয়; মাঝেমধ্যে টেস্ট আগে নয়, পরে আসে। তবে এটা আমার কোড সাজানোর ধরনকে প্রভাবিত করেছে, টেস্টিং সহজ করতে অপ্রয়োজনীয় ডিপেন্ডেন্সি সরিয়ে দিয়েছি।

problem-specifications রিপোজিটরিতে ইস্যু আর PR রিভিউ করতেই আমি অনেক সময় ব্যয় করি; এখানেই আমরা ভাষা-নিরপেক্ষভাবে Exercism-এর অনুশীলনীগুলো সংজ্ঞায়িত করি। আলোচনাগুলো থেকে আমি অনেক কিছু শিখেছি। মাঝেমধ্যে কোনো প্রস্তাবিত পরিবর্তন উপরে থেকে সহজ মনে হয়, কিন্তু এর পরে যে আলোচনা হয়, তা নানা সমস্যা সামনে আনে। আমি বেশি ধৈর্য অর্জন করেছি। এটা আমাকে কাজের সময় প্রযুক্তিগত সমস্যাগুলোর অন্য সম্ভাব্য দিক খুঁজতে শেখাচ্ছে।

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

Exercism ছাড়াও আপনি একজন Delphi MVP, যেটা তো দারুণ ব্যাপার! এটা কীভাবে হলো? আপনি যে Delphi কমিউনিটির অংশ, সেটি কি বেশ শক্তিশালী?

Delphi ট্র্যাক সেটআপ করার প্রাথমিক পর্যায়ে আমি Embarcadero-র জনাব Jim McKeeth-এর সাথে যোগাযোগ করি, Delphi-র জন্য একটি ওপেন সোর্স লাইসেন্স পাওয়া যায় কি না দেখতে। এতে আমরা Delphi দিয়ে নতুন অনুশীলনী তৈরি করতে পারতাম এবং মানুষ পুল রিকোয়েস্টের মাধ্যমে অবদান রাখতে পারত। আমাদের এই আলাপের সময়েই Jim আমাকে Embarcadero MVP Program-এ যোগ দিতে আমন্ত্রণ জানান।

Delphi Praxis একটি অনলাইন কমিউনিটি, যার সাথে আমি পরিচিত। Google+-এ অনেক ভিড় থাকে, কিন্তু এটা এখন শেষের পথে, তাই আমাদের অন্যত্র যেতে হয়।

আপনি কি Delphi-তে এমন কোনো ওপেন সোর্স অ্যাপ বানিয়েছেন যা অন্যরা দেখতে পারে?

বানিয়েছি! Exercism-এর Windows CLI ইনস্টলার ওপেন সোর্স এবং সম্পূর্ণভাবে Delphi-তে লেখা। এটি স্বয়ংক্রিয়ভাবে নির্ধারণ করে শিক্ষার্থীর প্রয়োজনীয় Exercism CLI-র সঠিক সংস্করণ (৩২/৬৪ বিট), এরপর CLI ডাউনলোড করে, এক্সট্র্যাক্ট করে সঠিক জায়গায় রেখে দেয়। ইনস্টলারটি ১৫,০০০ বার ডাউনলোড হয়েছে, যা নিয়ে আমি বেশ গর্বিত!

এটা তো দারুণ কৃতিত্ব! যেহেতু আপনি ইন্টারনেট প্রোগ্রামিং খুব একটা করেন না (যদি আদৌ করেন), Delphi-তে ইনস্টলারটি বানানোর সময় আপনাকে কোন কোন চ্যালেঞ্জ মোকাবিলা করতে হয়েছে?

ইনস্টলারটি শুরুতে C#-এ লেখা হয়েছিল। সেটি পুরনো হয়ে গিয়েছিল, তাই আমি ভাবলাম এটাকে আরও ভালো করা যায় কি না। এর আগে আমি এমন কিছু কখনও করার চেষ্টা করিনি, তবে জানতাম Delphi-র কাছে কাজটি শেষ করার মতো টুল আছে। আমি মূল C# কোডটি পড়া শুরু করি, যাতে বুঝতে পারি পর্দার আড়ালে কোন কোন ধাপ কোন ক্রমে ঘটছে, তারপর Delphi-তে একই কাজগুলো করার চেষ্টা করি। Embarcadero-র ডকুমেন্টেশন সাইটে আমি কিছু নমুনা কোড পাই, যা একটি REST ক্লায়েন্ট বানানোর জন্য উপলব্ধ কম্পোনেন্টগুলো কীভাবে সঠিকভাবে জোড়া দিতে হয় তা বুঝতে সাহায্য করে। এছাড়া Delphi-র সাথে দেওয়া একটি সুবিধাজনক ইউটিলিটি REST Debugger-ও খুঁজে পাই। এটি দিয়ে আমি ইনস্টলারটি সফল করতে প্রয়োজনীয় নানা HTTP কল ইনপুট করতে পারতাম, অর্থাৎ পরীক্ষা করতে পারতাম। এগুলো কাজ করা শুরু করলে ডিবাগার প্রয়োজনীয় কম্পোনেন্টগুলোর কপি তৈরি করে দিত, যাতে আমি সেগুলো কোডে পেস্ট করতে পারি।

Exercism-এ আরও গভীরভাবে যুক্ত হতে চান এমন কেউ, হয়তো যিনি মেইনটেইনার হতে চান, তাঁকে আপনি আপনার যাত্রার কথা বলবেন?

আমি Akron Code Club নামের একটি স্থানীয় মিটআপ গ্রুপের সদস্য। মাসে প্রায় একবার আমরা মিলি এবং সাধারণত জোড়া বেঁধে গ্রুপে প্রস্তাব করা কোনো কোড কাটা নিয়ে কাজ করি। ২০১৬ সালের আগস্টের মিটআপে আমরা Exercism-এর দেওয়া অনুশীলনীগুলো নিয়ে কাজ শুরু করি। Exercism আর আরও কয়েকটি শিক্ষামূলক সাইট ব্যবহার করতে করতে আমার মনে হলো, এই অনলাইন প্রোগ্রামিং সাইটগুলোর আরও কিছু যদি Delphi বা Pascal বিকল্প হিসেবে দিত, তাহলে ভালো হতো। Exercism সাইট আর Exercism-এর GitHub রিপোজিটরিগুলো ঘেঁটে দেখে আমি বুঝতে পারি, Exercism সবসময়ই নতুন ভাষার ট্র্যাক যোগ করতে আগ্রহী। Katrina-র সাথে কীভাবে যোগাযোগ করা সবচেয়ে ভালো হবে তা আমি ঠিক বুঝতে পারিনি। মনে হয় আমি Gitter ব্যবহার করে ২০১৬ সালের আগস্টে তাঁর সাথে যোগাযোগ করেছিলাম), Delphi যোগ করার প্রস্তাব দিয়ে। প্রায় দুই মাস পরে একটি ক্ষমাপ্রার্থী উত্তর পাই, তখনই বুঝলাম তিনি Gitter ব্যবহার করেন না। যাই হোক, তিনি জানতে চাইলেন আমি এখনও Delphi Pascal ট্র্যাক যোগ করার কাজে আগ্রহী কি না, আর আগ্রহী হলে তিনি কাজটা শুরু করে দেবেন।

দারুণ। আমার সাথে কথা বলার জন্য এবং Exercism-এ আপনার সব কাজের জন্য ধন্যবাদ!

আমারই আনন্দ! এটা দারুণ মজার ছিল। অংশ নিতে এবং Exercism-এর জন্য যা পারি করতে আমার ভালো লাগে। করতে করতেই শেখা!

30 জানুয়ারি 2019 · কাজে লেগেছে?