কমিউনিটিতে ফিরে যান

খুব বেশি প্রোডাক্টিভ হবেন না!

এই কমিউনিটি স্টোরিতে ফ্রাঞ্জিসকা ও জোনাথন কথা বলেছেন টিম ডাইনামিকস নিয়ে, একটি ব্যবসায় ভিন্ন ভিন্ন মানুষ কীভাবে সহযোগিতার পথে এগিয়ে আসে তা নিয়ে, আর নিজেকে এমনভাবে তৈরি করার উপায় নিয়ে যাতে আপনি একজন প্রোগ্রামার হয়ে উঠতে শিখতে পারেন।

Youtube-এ দেখুন
দৈর্ঘ্য 50মিনিট

Jonathan: হ্যালো, Exercism পডকাস্টে আপনাকে স্বাগতম। আমার নাম Jonathan, আজ আপনাদের সঙ্গে কথা বলার সুযোগ পেয়ে আমি সত্যিই ভাগ্যবান। আমার সঙ্গে আছেন ফ্রাঞ্জিস্কা, যিনি আমাদের Go আর JavaScript ট্র্যাকের একজন মেইনটেইনার। Exercism-এ ফ্রাঞ্জিস্কাকে পেয়ে আমরা সত্যিই ভাগ্যবান, তিনি বেশ কয়েক বছর ধরে এখানে যুক্ত। তাই আপনি যদি কিছুদিন ধরে এই অঙ্গনে থাকেন, তাহলে ফ্রাঞ্জিস্কার সঙ্গে আপনার দেখা হয়ে থাকতে পারে। লার্নিং কোহোর্টে হোক বা Go আর JavaScript ট্র্যাকে। তাহলে ফ্রাঞ্জিস্কা, আজ আপনাকে আন্তরিক স্বাগতম। আমাদের সঙ্গে যোগ দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ। আমি সোজা প্রশ্নেই ঢুকে পড়ছি, আপনি কীভাবে এখানে পৌঁছালেন?

Franziska: হ্যাঁ। আচ্ছা। আমি ফ্রাঞ্জিস্কা। ইন্টারনেটে আমি June, কেউ কেউ আমাকে june dev নামেও চেনে। আমি এখন জার্মানির Frankfurt-এর কাছে থাকি, শহরের সীমানার ঠিক বাইরে একটা ছোট শহরতলিতে। সম্প্রতি আমি Atlassian-এ নতুন কাজ শুরু করেছি। Atlassian হলো সেই কোম্পানি, যার পিছনে Trello, Jira, Confluence-এর মতো অনেক জনপ্রিয় কিংবা সমান অপছন্দের টুল আছে। হ্যাঁ, আর আমি সেখানে যা করছি, তা হলো প্রোডাক্ট ম্যানেজারদের কাজে সাহায্য করার জন্য একটা নতুন টুল বানানো। কারণ Jira মূলত ডেভেলপারদের কেন্দ্র করে বানানো, প্রোডাক্ট ম্যানেজারদের যা দরকার, মানে কাজকে অগ্রাধিকার দেওয়া ইত্যাদির জন্য সেটা ভালো মানায় না। তাই আমরা বিশেষভাবে তাঁদের জন্য কিছু একটা বানাচ্ছি। ভাষা হিসেবে আমি Go পছন্দ করি। আমার খুব ভালো লাগে। আর ব্যাকএন্ডটা Go দিয়ে বানানো। তাই যখন চাকরির বিজ্ঞাপনটা দেখলাম, ভাবলাম, বাহ, ওরা এটা করছে, দারুণ তো। আমি আবেদন করলাম, চাকরিটাও পেলাম। এখন পর্যন্ত মাত্র ৩০ দিন হয়েছে, বলতে পারেন, তবে হ্যাঁ, অভিজ্ঞতাটা ভালোই। ছোটবেলায় আমি সবসময় টেক-এর জিনিস, প্রাকৃতিক বিজ্ঞান, সায়েন্স ফিকশন, Star Trek-এর বড় ভক্ত ছিলাম, এইসব। স্কুলে বুঝলাম গণিত আর পদার্থবিজ্ঞানে আমি ভালো। সেই সময়ে অনেকেই কম্পিউটার সায়েন্স পড়ত, আর তারা সবসময় বলত, অন্য সবাই যা পড়ছে তা পড়ো না, কারণ পরে ওই ধরনের মানুষের সংখ্যা খুব বেড়ে যাবে। আমি ভাবলাম, আচ্ছা, তাহলে হয়তো আমার কম্পিউটার সায়েন্স পড়া উচিত নয়, কারণ ওই ধরনের মানুষ তো অনেক হবে। যাই হোক, ভাবলাম, আচ্ছা, এর কাছাকাছি কিছু একটা করি। শেষে পদার্থবিজ্ঞানে ভর্তি হলাম, যা স্কুলে আমার খুব ভালো লাগত। আর কম্পিউটার সায়েন্স ছিল আমার একটু মাইনর সাবজেক্টের মতো। তাই কিছু কোর্স করেছি, তবে অন্যদের মতো অনেক নয়। তখন বুঝলাম, একটা সময় আসে যখন ভাবতে হয়, আচ্ছা, বাকি জীবনটা আমি কী করব, তাই না? আমি কীভাবে টাকা রোজগার করব সেটা এমন কিছু দিয়ে যা করতে আমার সত্যিই ভালো লাগে। আর বুঝলাম, পড়াশোনায় যা করেছি তার মধ্যে প্রোগ্রামিং অংশটাই আমার সবচেয়ে বেশি ভালো লাগে, আর সেটাই আমি ভালো পারি। আমি এটা আরও বেশি করতে চাই। আর এটা এমন একটা কাজ যা সংসারও চালায়। তাই ভাবলাম, আচ্ছা, ওই সময়ে ক্লাসিক কম্পিউটার সায়েন্স ডিগ্রি ছাড়া এই ক্ষেত্রে চাকরি কীভাবে পাব। আরেকটা ব্যাপার ছিল, তখন আমি চাইনি এমন কিছু হয়ে যেতে, মানে এই পুরনো ধরনের... C ডেভেলপার, Java ডেভেলপার, কোথাও ব্যাংকের ব্যাকএন্ড কোড। হ্যাঁ, তাই ভাবলাম, আচ্ছা, নতুন জিনিস, ইন্টারনেট, ওয়েব... এসব কীভাবে শিখব। আমি এর জন্য কিছু বানাতে চাই। তারপর এক বন্ধু বলল, ওয়েব ডেভেলপমেন্ট বুটক্যাম্প বলে একটা জিনিস আছে, যেখানে তিন মাসের জন্য কোথাও যেতে পারেন, ওরা আপনাকে নতুন চমৎকার সব জিনিস শেখাবে। হ্যাঁ। তাই ঠিক করলাম, আমি এটা করব। আর সেখান থেকে সম্ভবত চাকরি খোঁজার জন্য আমার একটা ভালো সূচনাবিন্দু থাকবে। কিন্তু তখন জার্মানিতে আসলে এরকম কিছু ছিলই না। হ্যাঁ। মানে হয় আপনি বছরের পর বছর বিশ্ববিদ্যালয়ে পড়তে পারেন, তাই না? নয়তো এমন কিছু জায়গা আছে যেখানে একটু কাজ আর একসঙ্গে পড়াশোনা করা যায়, কিন্তু সেগুলোও বছরের পর বছর পড়ার বড় বড় কর্মসূচি। আর বুটক্যাম্পের দিক থেকে দেখলে, ওরা শুধু... স্টার্টআপ অ্যাকসেলেরেটরের মতো জিনিস। মানে যেখানে আপনি অল্প কিছু কোড শিখবেন, কিন্তু তার সঙ্গে ম্যানেজমেন্ট, অর্থনীতি ইত্যাদিও। তাই সেটা আমার জন্য মানানসই ছিল না। হ্যাঁ, তাই একটু খোঁজাখুঁজি করলাম, তারপর দেখলাম লন্ডনে একটা ভালো বুটক্যাম্প আছে, যেখানে আমি যে বিষয়গুলো শিখতে চাই, সেগুলো আছে।

Jonathan: এটাই তো সব চালায়

Franziska: হ্যাঁ, ঠিক, ঠিক। মানে যেখানে নতুন চমৎকার সব কিছু ঘটছে। হ্যাঁ, আমি এই বুটক্যাম্পটা পেলাম, আর আমি চলে গেলাম। সত্যিই দারুণ, দারুণ একটা অভিজ্ঞতা ছিল। আর আমরা ব্যাকএন্ডে Node.js করেছি। তারপর আমি Frankfurt-এ ফিরে এসে আসলে Node ডেভেলপার হিসেবে একটা চাকরি পেলাম। কোম্পানিটা বেশ ভালো ছিল, টেকটাও সত্যিই দুর্দান্ত ছিল, আর আমি খুব দ্রুত সবকিছুতে ঢুকে পড়লাম, অনেক মজাও পেলাম। কিন্তু টিম নিয়ে আমি একটু কম ভাগ্যবান ছিলাম, তাই আশপাশে বড় বড় অহংকারী, ম্যাচো ধরনের টিম সদস্য ছিল। আর ব্যাপারটা এমন ছিল, মিটিং হলে যার গলা সবচেয়ে চড়া, তার কথাই জিতত। আর এটা, এটা সত্যিই ভালো একটা টিম নয়।

Jonathan: প্রোগ্রামিং করতে নামার পর টিমের এই পারিপার্শ্বিক দিকগুলোই যে সমস্যা বা চ্যালেঞ্জ হয়ে দাঁড়াবে, মানুষ সেটা কখনোই আশা করে না। এটা বেশ কমন একটা ব্যাপার বলেই মনে হচ্ছে। দুঃখিত।

Franziska: হ্যাঁ। হ্যাঁ। একেবারে। আর... শুরুতে আপনি টেক অংশটাকে বেশি গুরুত্ব দেন। ভাবেন, আহ, এই চাকরিতে ঠিক যে টেকটা আমি করতে চাই সেটাই আছে, তাহলে সব ঠিক থাকবে। কিন্তু আসলে টিমের ব্যাপারটা প্রায় আপনার ঠিক যে টেকটা করছেন তার চেয়েও বেশি গুরুত্বপূর্ণ। হ্যাঁ। তাই দুই বছর পর এক বন্ধু, যিনি এখানে Frankfurt-এর আরেকটা কোম্পানিতে CTO ছিলেন, বললেন, আমরাও আমাদের টেক স্ট্যাক বদলাতে চাই আর নতুন কিছু বানাতে চাই, কিন্তু আমরা Node.js করতে চাই না। আমরা Go চাই। যা-ই হোক কারণ, তিনি সেটাই ঠিক করলেন। আর তিনি বললেন, আপনি আমাদের সঙ্গে যোগ দিতে পারেন। কিন্তু আপনাকে Go শিখতে হবে। আর আমি বললাম, শুরুতে এটা শিখতে আমি যদি একটু সময় নিই আর আপনার আপত্তি না থাকে, তাহলে আমি রাজি। আমি ভাষাটা একটু দেখলাম, দারুণ লাগল। হ্যাঁ, আমি কোম্পানি বদলালাম। আর নতুন জায়গায় টিমটা সত্যিই দুর্দান্ত ছিল। ওখানে ব্যাপারটা সত্যিই এমন ছিল, CEO-র সঙ্গে আলোচনা করলেও আপনার যুক্তিটা যদি ভালো হয়, সেটা লক্ষ করা যেত। আর মানুষ তার প্রতিক্রিয়া জানাত। সত্যিই ভালো লাগত সেখানে কাজ করতে, আর মানুষগুলোও খুব মজার ছিল ইত্যাদি। তাই ওখানে পাঁচ বছর ছিলাম। অনেক Go সার্ভিস বানিয়েছি, আর প্রচুর লেখালেখিও করেছি, নানা ধরনের লেখার ধারণা, নতুন ডেভেলপারদের Go-তে অনবোর্ড করায় সাহায্য করেছি, আর ফ্রন্টএন্ডের কিছু কাজও করেছি ইত্যাদি। হ্যাঁ, কিন্তু পাঁচ বছর পর নতুন চ্যালেঞ্জও খোঁজেন মানুষ, আর তখন নতুন চাকরি খোঁজার পিছনে আরেকটা কারণ ছিল Covid পরিস্থিতি। খেয়াল করলাম, আমি তো যেভাবেই হোক বাড়ি থেকেই কাজ করছি, তাই না? আর অফিসে যেতাম সপ্তাহে একবারের মতো। তাই ভাবলাম, এখন তো অনেক ফুল-রিমোট চাকরি আছে। হয়তো বড় কোনো কোম্পানিতে সত্যিই দুর্দান্ত কিছু পাব। যেহেতু যেভাবেই হোক বাড়ি থেকেই কাজ করছি, তাহলে ওই বড়, আরও দুর্দান্ত কোম্পানির জন্যও কাজ করতে পারি, তাই না? হ্যাঁ, সেই সময়েই আমি কাজ করছিলাম, আর তখনই Atlassian-এ এই চাকরিটা পেলাম।

Jonathan: তাহলে আমার প্রশ্নটা ছিল, পুরো মহামারিটা কি আপনাকে ভাবতে সাহায্য করল, আহ, হয়তো Frankfurt বা Frankfurt-এর স্টার্টআপ জগতের বাইরেও কিছু আছে? কারণ আমি জিজ্ঞেস করতে যাচ্ছিলাম, Frankfurt-এর স্টার্টআপ জগৎটা কেমন, একটা জায়গা হিসেবে?

Franziska: হ্যাঁ, তাহলে Covid-এর প্রসঙ্গে প্রথমে বলি, Covid আমাকে যে বিষয়টার জন্য খুলে দিল, তা হলো সম্পূর্ণ রিমোটে কাজ করার এই ধারণা। কারণ আগে আমি সবসময় অফিসে যেতাম। সামনাসামনি মানুষ দেখতে ভালোবাসি, কীভাবে দিনটা সাজাই ইত্যাদি। কিন্তু দুই বছর মূলত পুরোপুরি দূর থেকে কাজ করার পর বুঝলাম, এটা ঠিকই আছে। আমি এটা সামলাতে পারি। আমার মেয়ে আছে, আমাকে তো যেভাবেই হোক বারবার বাইরে যেতে হয় ইত্যাদি। তাই এখন আমার দিনে যথেষ্ট কাঠামো আছে। তাই এটা হলো সেই জিনিস, যা মহামারি আমাকে দেখাল, আর তারপরই অন্য কোথাও খোঁজার ধারণাটা আমার মনে এল। Frankfurt-এর কথা বলতে গেলে, এখানে টেক আর স্টার্টআপের অনেক কিছুই ঘটছে, তবে অনেকটাই... আপনি হয়তো ভাবতে পারেন, এখানে ব্যাংকিং-কেন্দ্রিক ব্যাপারই বেশি, তাই অনেক ফিনটেক ইত্যাদি। আর সেটা আমার বিশেষ পছন্দের বিষয় নয়। আমি আগে ফিনটেক-এ কাজ করেছি, কিন্তু বিষয় হিসেবে এটা আমার বিশেষ প্রিয় নয়। হ্যাঁ, তাই এটা সবসময় একটু, না... আর এখানে খুব বেশি Go ডেভেলপারও নেই। হ্যাঁ, Frankfurt বা Frankfurt-এর জগতে আমাকে বিশেষভাবে ধরে রাখার মতো কিছু ছিল না। হ্যাঁ, তাই...

Jonathan: না, ঠিক আছে। আর এমন কোনো নির্দিষ্ট ভাষা আছে কি, যেটায় Frankfurt বেশি মনোযোগ দেয়? স্পষ্টতই ফিনটেক ইত্যাদির কথা বললে, তার পেছনে যে ভাষাগুলো কাজ করে সেগুলোই সম্ভবত বেশি প্রাধান্যপ্রাপ্ত? তাহলে Frankfurt-এ Go ডেভেলপার হিসেবে আপনি নিজেকে একটু বিরল প্রজাতি মনে করেন? নাকি সংখ্যাটা বাড়ছে? আপনার কাছে কেমন মনে হয়?

Franziska: হ্যাঁ, এখন সংখ্যা বাড়ছে কি না সেটা বলা মুশকিল, কারণ Covid-এর কারণে মিটআপ ইত্যাদিও তেমন একটা হতো না, তাই না? তাই সময়ের সঙ্গে মিটআপে মানুষ বেশি আসছে কি না, সেটা এখন বলা কঠিন। হ্যাঁ, আমার মনে হয়, উদাহরণ হিসেবে Java জগতে অনেক বেশি কিছু ঘটছে। হ্যাঁ, তাই ঠিক কী অবস্থা সেটা বলা একটু কঠিন, তবে উদাহরণ হিসেবে JavaScript-এর ক্ষেত্রে একটা কমিউনিটি জড়ো করা সাধারণত তেমন কঠিন নয়, কারণ প্রায় সবারই কোথাও না কোথাও কিছু ফ্রন্টএন্ডের কাজ থাকে, তাই না? তাই সাধারণত ফ্রন্টএন্ড জগতে ব্যাকএন্ডের চেয়ে বেশি কিছু ঘটত।

Jonathan: আর ধরুন, আপনি যখন কোডিং শুরু করলেন আর বুটক্যাম্পে গেলেন, তখন নিশ্চয়ই ফ্রন্টএন্ডের একটা দিক ছিল। একটু দেখেছেন, আর এখন আপনি বেশি ব্যাকএন্ডে মনোযোগী। মানে ব্যাকএন্ড বনাম ফ্রন্টএন্ড কেন বেশি পছন্দ? নাকি এটা আমার শুধু অনুমান?

Franziska: না, নিশ্চিতভাবেই, বুটক্যাম্পের সময়ই বুঝলাম যে আমি ব্যাকএন্ড অংশটাই বেশি পছন্দ করি, আর এর পিছনে কয়েকটা কারণ আছে। প্রথমত, আমি ডিজাইন-ধরনের মানুষ নই, তাই ফ্রন্টএন্ড করলে সাধারণত নিজেকেই কিছু সিদ্ধান্ত নিতে হয়। মাঝে মাঝে ভাবতে হয়, এটা কেমন দেখতে হবে? এখানে আমি কী করতে পারি? এটা আরও ভালো করতে কী করা যায়, কিছু CSS লিখি ইত্যাদি। আর এই সিদ্ধান্তগুলো নেওয়া আমার কাছে খুব কঠিন। বাস্তব জগতে কাজ করলে অবশ্যই ডিজাইনও পাওয়া যায়। কিন্তু হ্যাঁ, আমার জিনিসপত্রের প্রতি তেমন চোখ নেই। আর দেখলাম, যেসব ফ্রন্টএন্ড ডেভেলপারের ওই চোখ আছে আর যারা এটা পারে, তারা কাজ করতে গিয়ে অনেক বেশি কার্যকর। তাই এটা ছিল একটা জিনিস, যেখানে ভাবলাম, এটা আমার জন্য নয়। আর দ্বিতীয় কারণটা হলো, এখন ফ্রন্টএন্ড জগৎটা সত্যিই অত্যন্ত জটিল। সেখানে যেসব ফ্রেমওয়ার্ক আছে, যেগুলো সাধারণত বেশি ব্যবহৃত হয়, সেগুলোর বেশিরভাগই সত্যিই কঠিন। তাই একভাবে দেখলে এখনকার ব্যাকএন্ডও একটু সহজ। কঠিন এই অর্থে যে কল্পনা করা কঠিন, তাই না? ফ্রন্টএন্ডের মতো স্ক্রিনে তাকিয়ে এটাই আপনার শেষ ফল, এমনটা আপনি দেখতে পান না। কিন্তু এতে যে টেক জড়িত তার জটিলতার দিক থেকে, এখনকার ব্যাকএন্ড আমার কাছে ফ্রন্টএন্ড জগতে যা ঘটছে তার চেয়ে সহজ মনে হয়। তাই আমার জন্য, কর্মজীবনের কোনো এক সময়ে আমি অবশ্যই আবার ফ্রন্টএন্ডও করতে চাই। কিন্তু আমি অপেক্ষা করছি আরও ভালো কোনো ফ্রেমওয়ার্ক আসার জন্য। তারপর, যখন এই, যখন এখনকার এই সব গোলযোগ থেমে যাবে আর কিছু ভালো জিনিস আসবে, তখন আমি আবার ফিরে গিয়ে ফ্রন্টএন্ড ডেভেলপার হব।

Jonathan: আমি হয়তো অপেক্ষা করব আপনি সিদ্ধান্ত নেন কখন ওই ফ্রেমওয়ার্কটা আসবে, তারপর আপনার সঙ্গে যোগ দেব, কারণ JavaScript দিয়ে তৈরি ফ্রেমওয়ার্কগুলো দেখলে... আর আমি নতুন। শব্দের সব অর্থেই নতুন। এখন Go শিখতে চেষ্টা করছি, আর মজা পাচ্ছি। কিন্তু শুধু কনসেপ্ট আর যে মানসিক মডেলটা রাখতে হয়, সেটাই নিজে একটা নতুন জগৎ। আর তখন জানতে চাইছিলাম, আপনি যখন প্রথম প্রোগ্রামিং শুরু করলেন এবং JavaScript শিখলেন, তারপর Go শিখলেন, এই ফাঁকটা কীভাবে পূরণ করলেন? কারণ আপনি তো ব্যাপারটা এমনভাবে বলছেন যে JavaScript থেকে Go-তে যাওয়াটা আপনার জন্য বেশ সহজ একটা প্রক্রিয়া ছিল। কিন্তু সেটা কেমন ছিল? এই রূপান্তরের জন্য আপনি কী করেছিলেন?

Franziska: হ্যাঁ। ভালো প্রশ্ন। একটা গুরুত্বপূর্ণ বিষয় হলো, JavaScript আমার একমাত্র ভাষা ছিল না, তাই না? বিশ্ববিদ্যালয়ে আমি অনেক ভাষায় গভীরে যাইনি, তবে C শিখেছি। Java শিখেছি, C++ শিখেছি, ML আর এই ধরনের কিছু এজোটেরিক ভাষাও শিখেছি। তাই আমার কাছে JavaScript-ই ছিল পঞ্চম ভাষা বা তেমন কিছু, আর তারপর Go ছিল ষষ্ঠ। তাই আমার ক্ষেত্রে, উদাহরণ হিসেবে, Go-তে পয়েন্টার ইত্যাদির ব্যাপারগুলো থাকে, আর শুধু JavaScript থেকে এলে এটা সম্পূর্ণ নতুন কিছু হতো, আমাকে শিখতে হতো এগুলো আসলে কী। কিন্তু পেছনে এই অন্য ভাষাগুলো থাকায় আমি C আর C++ থেকেই এসব জানতাম। তাই হ্যাঁ, বিশ্ববিদ্যালয়ে আগে যা শিখেছিলাম, তার অনেকটাই কাজে লাগাতে পেরেছি, আর সেটাই ঢুকে পড়াটা সত্যিই সহজ করে দিয়েছে। আর Go-তে আরেকটা সুবিধা হলো, এটা বেশ মিনিমাল ভাষা। এতে খুব বেশি কিওয়ার্ড নেই, খুব বেশি গঠনও নেই যা আপনি বানাতে পারবেন। এটা বেশ দ্রুত শেষ করা যায়। আমি সাধারণত বলি, অফিসিয়াল ট্যুরে যান, ওয়েবসাইটে যান, বা যেভাবেই হোক। আর দুই-তিন সপ্তাহেই শেষ করতে পারবেন। আর এতে আপনার একটা দৃঢ় ধারণা তৈরি হবে। আর JavaScript-এর ক্ষেত্রে এটা অসম্ভব। বেসিক বিষয়ে একটা দৃঢ় ধারণা তৈরি করতেই অনেক বেশি সময় লাগবে, তারপর শেখার আরও কত কী আছে। তাই হ্যাঁ, আমার আগের ভাষাগুলোও এখানে অনেক সাহায্য করেছে, সহজে রূপান্তরটা করতে।

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

Franziska: হ্যাঁ, আমার আগ্রহের বিভিন্ন ডোমেইন বা বিষয় আছে। শুধু আমি এখন যা করছি তা নয়। যেমন কনজিউমার প্রোডাক্টের ক্ষেত্রে অনেক কিছু আমার ভালো লাগে। Hello Fresh-এর মতো কোম্পানি আছে, যারা অনেক দারুণ কাজ করে। টেক-সংক্রান্ত দারুণ কাজও। কিংবা শিক্ষার ক্ষেত্রে অনেক কিছু আছে, যেমন Exercism ইত্যাদি। আর আরেকটা ক্ষেত্র হলো ডেভেলপার টুলিং বা সাধারণভাবে টিমের জন্য টুলিং। হ্যাঁ, তাই একাধিক ক্ষেত্র আছে, আর এটা ছিল সেগুলোর একটা, যেখানে ভাবতে পারি, বাহ, মানুষকে এখানে সাহায্য করা খুব অর্থবহ। আর বিশেষ করে প্রোডাক্ট ম্যানেজমেন্ট নিয়ে একটা ঘটনা বলতে পারি, Jeremy-এর আর আমার আগের কোম্পানির CEO-র। আমি তাঁকে নতুন চাকরিটা আর আমি কী নিয়ে কাজ করব সেটা বললাম, আর তিনি Jeremy, Exercism-এর প্রতিষ্ঠাতার মতোই একই কথা বললেন। একেবারে একই কথা বললেন, আর সেটা ছিল, আপনি কি এই চাকরিটা বেছে নিয়েছেন কারণ আমার প্রোডাক্ট ম্যানেজমেন্ট দক্ষতা নিয়ে আপনি হতাশ ছিলেন? আর তাই এই পুরো ব্যাপারটা, আর এটাই বলে দেয় যে প্রোডাক্ট ম্যানেজমেন্ট আর সেটাকে আরও ভালো করা সবসময়ই আমার অনুরাগের বিষয় ছিল। কারণ ব্যাপারটা হলো, একজন ডেভেলপার হিসেবে আপনি পৃথিবীর সেরা কোড লিখতে পারেন। কিন্তু যদি আপনি ভুল জিনিস লেখেন, মানে ভুল জিনিস বানান, তাহলে সবই বৃথা, তাই না? তাই যদি আপনার প্রোডাক্ট ম্যানেজার ঠিক কী বানানো উচিত তা খুঁজে বের করতে ভালো কাজ না করেন, তাহলে হয়তো আপনি যা বানিয়েছেন তা কেউ কখনো ব্যবহারই করবে না, কারণ বাজারটা তাঁরা ভালোভাবে বিশ্লেষণ করেননি, তারপর অগ্রাধিকারও ঠিকভাবে দেননি ইত্যাদি। আর আমি আমার আগের চাকরিগুলোতে এটা দেখেছি। আমি অনেক জিনিস বানিয়েছি যা কখনো আলোর মুখ দেখেনি, কারণ ভালো কোনো অগ্রাধিকার নির্ধারণের প্রক্রিয়া ছিল না, তাই না? তাই আমার মনে হয়, সাধারণভাবে প্রোডাক্ট ম্যানেজমেন্টের এই ক্ষেত্রটা উন্নত করা সারা বিশ্বের ডেভেলপারদের জীবনও অনেক ভালো করে দেয়, কারণ তখন তারা সঠিক জিনিস বানাতে পারে, সত্যিই মূল্য তৈরি করতে পারে, আর এমন কিছু বানাবে না যা শেষে আবর্জনায় যাবে বা ব্যবহারকারীরা কখনো দেখবে না।

Jonathan: হ্যাঁ, না, এটা সত্যিই মজার, কারণ আপনি যেটা ধরতে চাইছেন সেটা মানসিকভাবে... আমি মনে করি, আমাদের মধ্যে প্রায়ই এই মনোভাব থাকে যে আপনি যদি টেকে ভালো হন, তাহলে আপনি সব পেছনে বসে করে যান। একজন মানুষ হিসেবে আপনি কখনো আলোর মুখ দেখেন না, কারণ আপনি টেকের কাজ করেন, আর এটাই আসলে স্টেরিওটাইপ, বলা যায়। কিন্তু গত কয়েক বছরে টেক আর ব্যবসার দিকের মধ্যে ক্রমে বেশি ওভারল্যাপ তৈরি হয়েছে বলে মনে হয়। আর আমার ক্ষেত্রে, আমি সবসময় Agile-কে একটা ধারণা হিসেবে ভাবতাম। আর আসলে Agile ধারণাটা আমার মনে হয় ব্যবসার একটা মানসিকতা, একটা ব্যবসায়িক দৃষ্টিভঙ্গি, যা একটা টেকনিক্যাল টিমের উপর চাপিয়ে দেওয়া হয়। আমার মনে, সত্যি বলতে, ব্যাপারটা সহায়ক মনে হয়, কিন্তু Agile পরিবেশ সত্যিই কাজ করতে দেখেছি বলে মনে হয় না। কিংবা সময়মতো ফল দিতে দেখিনি, যদি বোঝা যায়। আর হয়তো এর কারণ আমি আগে এটা খারাপভাবে পরিচালিত হতে দেখেছি, তবে মনে হয় ওভারল্যাপটা বেড়েছে, ডেভেলপাররা ব্যবসার দিকে আরও বেশি যুক্ত হতে চাইছেন, যা আমার কাছে সত্যিই মজার, আর আমার মনে হয় এটা আসলে ভালো একটা ব্যাপার, কারণ তাতে সার্বিকভাবে সিদ্ধান্তগুলো আরও ভালো হয়।

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

Jonathan: সেদিক থেকে এটা অনেক বেশি সমন্বিত একটা পদ্ধতি মনে হয়। আর তারপর সেটা আমাকে আরেকটা ভাবনায় নিয়ে যায়, অনেক সময়...

Franziska: ওহ, হয়তো এগিয়ে যাওয়ার আগে, আপনি তো Agile ট্রিগার-শব্দটা বললেন, তাই না? তাই এটা নিয়ে আমার কথা বলা চাই। জানি না এটা ইচ্ছাকৃতভাবে আমাকে ট্রিগার করার জন্যই ছিল কি না। হ্যাঁ। Agile নিয়ে আমি সবসময় মনে করি, আসল ধারণাগুলো, যেখান থেকে এই পুরো ব্যাপারটা এসেছে, প্রক্রিয়ার চেয়ে মানুষ বেশি গুরুত্বপূর্ণ, আর এই মৌলিক কথাগুলো, যা তারা অনেক আগে বলেছিল, এখনও অনেক অর্থবহ। এগুলোর চারপাশে অনেক জাদু আছে। কিন্তু তারপর সব কনসালট্যান্টের কাছে গেল, তারপর এই বিশাল বিশাল ফ্রেমওয়ার্ক বানাল, তারপর সেগুলো বিক্রি করল, তারপর Scrum মাস্টার ইত্যাদি এলো। আর আমার অভিজ্ঞতাও, আপনি যেমন বললেন, এর অনেকটাই তেমন সাহায্য করে না। যেমন যদি প্রোডাক্ট আর ডেভেলপাররা ভালোভাবে যোগাযোগ না করে, শুধু উপরে এই সব কাঠামো চাপিয়ে দিলে সেটাও ঠিকভাবে সমাধান হয় না। তাই হ্যাঁ, আমিও বড় ভক্ত নই, আর এই স্ট্যান্ডার্ড Scrum চর্চা, Agile চর্চা, কোথাও খুব ভালোভাবে কাজ করতে আমি দেখিনি।

Jonathan: এটা মজার, কারণ মনে হয়... LinkedIn-এ প্রোডাক্ট ওনার বা প্রোডাক্ট ম্যানেজারের চাকরি খুঁজলে সব জায়গায় Scrum, Agile। চারদিকে দেখলে অবাক হতে হয়। কিন্তু মজার ব্যাপার হলো, আমি যতগুলো সবচেয়ে সফল, কী বলব, সবচেয়ে দক্ষ ডেভেলপমেন্ট টিম দেখেছি সেগুলো ছিল Kanban-ভিত্তিক, যেখানে নির্দিষ্ট সময়ের মধ্যে কিছু উৎপাদন করতেই হবে এমন চাপ নেই, কিন্তু কাজের গুণমান ভালো হয়। আর ব্যাপারটা হলো, দায়িত্বটা আবার ব্যক্তির উপর ছেড়ে দেওয়া হয়, তিনি যেন নিজেই তার জন্য জবাবদিহি করেন। এটা দেখতে গিয়ে সত্যিই মজা লেগেছে, কারণ নতুন টিমগুলো Agile-এ আটকে যায়, কাজ হয় না, হতাশ হয়, তারপর শেষে Kanban-এ এসে পৌঁছায়, যেখানে আমরা ধীরে ধীরে ধারাবাহিকভাবে একটু একটু করে কাজ করি আর কাজ হয়ে যায়। তবে আমার মনে হয় এটাও মজার, যখন আপনার নিজেরই প্রোডাক্ট ব্যবসা হিসেবে থাকে, বনাম যখন আপনি অন্যের জন্য প্রোডাক্ট বানান। জানি না আপনার আগের চাকরিতে কী ছিল, সেটা কি ইন-হাউস প্রোডাক্ট ছিল। আমি জানি Atlassian-এ আপনি মূলত নিজেদের প্রোডাক্টই বানান।

Franziska: হ্যাঁ, আমি সবসময় নিজেদের প্রোডাক্টই বানিয়েছি। কোনো এজেন্সিতে কখনো কাজ করিনি।

Jonathan: হ্যাঁ। এজেন্সির ব্যাপারটা দুঃস্বপ্ন, কারণ সেখানেই সবাই ডেভেলপমেন্টের প্রতি ঘণ্টা খুঁজে দেখে, আর বলে, কিন্তু আমি বুঝি না। এই বোতামটা আমার কেন ৪০০ ডলার লাগল? অথচ আপনি তো এটাকে এখান থেকে ওখানে সরাতে চেয়েছিলেন, যা পুরো ব্যাকএন্ড আবার নতুন করে বানানোর কাজ। তাই আমি আপনাকে একটা প্রশ্ন করতে চাই, যা আমরা আমাদের নানা পডকাস্ট আর লাইভ স্ট্রিমে অনেককে করেছি। আর সেটা হলো এই ধারণা, যার জন্য আপনি শেষ পর্যন্ত লড়বেন, বা এমন কোনো মত যা আপনি প্রাণ দিয়ে রক্ষা করবেন। মানে এমন না যে আমরা বলছি এটাই আপনার ধারণ করতে হবে, বরং এরকম, আপনার এমন একটা মূল্যবোধ বা মত আছে কি যা আপনি একেবারে অপরিহার্য মনে করেন আর টেক জগতে চারদিকে দেখতে চান? প্রশ্নটা বেশ বিস্তৃত, তবে টেকে এমন কিছু আছে কি যা আপনি খুব দৃঢ়ভাবে রক্ষা করবেন?

Franziska: আমি ভেবেছিলাম আপনি এটা একটু হালকা-মেজাজের করবেন। আমি শুধু হালকা একটা অজনপ্রিয় মত নিয়ে যেতে চাই। এটা কি ঠিক আছে?

Jonathan: হ্যাঁ, অবশ্যই।

Franziska: আচ্ছা, আমার তেমন অনেক বড় বড় লড়াইয়ের পাহাড় নেই। তাই একটা ব্যাপার যা নিয়ে আমি দৃঢ়ভাবে অনুভব করি, তা হলো অনেকে বলে থাকেন আপনার ব্যক্তিগত ডেভেলপমেন্ট সেটআপ অপ্টিমাইজ করুন। আর আমার মনে হয় এটা বেশিরভাগ ক্ষেত্রেই অতিরিক্ত মূল্যায়িত। তাই লোকেরা বলবে, আহ, আপনাকে Vim শিখতে হবে, কারণ তাহলে আর কখনো মাউস ধরতে হবে না, এটা কত দারুণ ইত্যাদি। আর তারপর মানুষ, বিশেষ করে যখন তারা এই ইন্ডাস্ট্রিতে নতুন, বিশ্বাস করে ফেলে। তারপর এক বছর ধরে সেই সব জাদু শর্টকাট শেখে ইত্যাদি। তারপর, হ্যাঁ। কিন্তু শেষে, জানি না, এক বছরে হয়তো একদিনের কাজ বাঁচে বা তেমন কিছু। তাই ওই এক বছরের কষ্ট, ওই এক বছরের কষ্টটা কাজে লাগে না। আর এরকম অনেক জিনিস আছে, যেমন লোকেরা বলে, আপনার টার্মিনালের জন্য সব alias আপনার dot files-এ সেট করে রাখতে হবে, আর বলে সব শর্টকাট কার্ড জানতে হবে ইত্যাদি। আর আপনি এসব শিখতে অনেক সময় দেন, কিন্তু পরে বাঁচে মাত্র অল্প। আর আমার মনে হয় এখানে যা ঘটে তা হলো, মানুষ চাকরিতে টাইপ করার সময়টাকে অতিরঞ্জিত করে ভাবে, তাই না? আমরা আগেই বলেছি, কাজের অনেকটাই আবার যোগাযোগ। কাজের অনেকটাই আসলে ভাবনা। হ্যাঁ। আর আপনার দিনের মাত্র অল্প অংশেই সত্যিই কিছু টাইপ করেন, কোড টাইপ করেন বা কমান্ড টাইপ করেন ইত্যাদি। তাই অনেকে দিনের এই খুব ছোট একটা অংশ অপ্টিমাইজ করে চলেন। আর আমার মতে, হ্যাঁ, যদি এটা আপনার শখ হয়, তাহলে করুন। কিংবা আপনার কাছে এর সমান মূল্য থাকলে। আপনি যদি একজন SRE হন, মানে সাইট রিলায়েবিলিটি ইঞ্জিনিয়ার, সার্ভারে ঢুকে কাজ করেন ইত্যাদি, তাহলে Vim জানা অর্থবহ হতে পারে, তাই না? কারণ আপনি তো গ্রাফিক্যাল ইন্টারফেস খুলতে পারবেন না। কিন্তু যদি দরকার না হয়, তাহলে চিন্তা করবেন না। আপনার যেটা স্বাচ্ছন্দ্যকর মনে হয়, সেটাই ব্যবহার করুন। উদাহরণ হিসেবে, শর্টকাটের ক্ষেত্রে আমি সবসময় বলি, আচ্ছা, বেশিরভাগ গ্রাফিক্যাল ইন্টারফেস আপনার ক্লিক করার জিনিসটার পাশেই শর্টকাটটা দেখায়। তাই যদি আপনি দিনে পাঁচবার ওটা ক্লিক করেন, তাহলে আচ্ছা, মনে রাখা অর্থবহ হতে পারে। বা প্রতি পাঁচ মিনিটে। তাহলে মনে রাখা অর্থবহ হতে পারে, আপনি জানেন কী? আপনি যদি সবসময় ওটা ক্লিক করেন, তাহলে Ctrl+S শর্টকাটটা কাজে লাগবে। কিন্তু তা না হলে, আপনার গ্রাফিক্যাল ইন্টারফেসেই খুশি থাকুন, নিজের কাজ করুন, আর বরং সময়টা নিজের আসল প্রোগ্রামিং দক্ষতা বাড়াতে খরচ করুন। কিছু অনুশীলনী করুন, তেমন কিছু। একটা নতুন ভাষা শিখুন। যাই হোক। কিন্তু হ্যাঁ, এটা আমি সবসময় নতুন ডেভেলপারদের বলতে চেষ্টা করি, এই লোকদের কাছে ভয় পাবেন না, যারা বলেন আপনাকে এই প্রাচীন এডিটরগুলোর একটা ব্যবহার করতে হবে আর সেখানে আপনার প্রোডাক্টিভিটি অপ্টিমাইজ করতে হবে...

Jonathan: এটা মজার, কারণ প্রায়ই মানুষের অনুরাগ এর মধ্যে ঢুকে পড়ে, যা বোঝা যায়। কারণ ব্যাপারটা হলো, আহ, আমি খুব উত্তেজিত, কারণ আমি আমার জীবনকে অপ্টিমাইজ করে ফেলেছি। কিন্তু সত্যিই ভাবলে, এটা সবসময় সেরা নয়। আমার শেখার অভিজ্ঞতাও এমনই ছিল, মানুষ কত কী না সুপারিশ করে। আর তারপর আপনি যদি YouTube-এ গিয়ে দেখেন কীভাবে কোড শেখা যায়, কেউ শুরু করে আপনার GitHub কীভাবে সেট করবেন দিয়ে। কেউ শুরু করে টার্মিনাল কীভাবে বুঝবেন ইত্যাদি দিয়ে। আমি আবার লোকালি কাজ করার জন্য নামাতে হয়, আর অনলাইন এডিটরে, যাই হোক। এখন আমার মনে হয় এটা সত্যিই ভালো পরামর্শ। ব্যাপারটা বেশ সহজ রাখুন। তাহলে, যদি আপনি ভাবনায় বেশি সময় দিতে চান, আপনি কীভাবে, সমস্যাগুলো ভেবে নেওয়ার জন্য কী করেন? কর্মক্ষেত্রে কোনো পরিস্থিতি হলে, বা সাধারণভাবে, আপনার দিনে আপনি কী করেন? সময় আলাদা করে রাখেন? আপনার প্রক্রিয়াটা কেমন?

Franziska: একটা জিনিস দিয়ে আমি শুরু করতে পছন্দ করি, তা হলো আসলে সমাধান করার আগেই সমস্যাটা একটু আগে থেকে জেনে নেওয়া, তারপর সেটা এক সপ্তাহের মতো মাথার পেছনে রাখা। তারপর গোসলের সময় একটু ভাবি। ঘুমানোর আগে একটু ভাবি, আর কিছুক্ষণ মাথার মধ্যে ঘুরিয়ে ফিরিয়ে দেখি। আর সাধারণত এতে আমার কিছু প্রারম্ভিক সূত্র মাথায় আসে। আর তারপর সেখান থেকে, বিশেষ করে কর্মক্ষেত্রের ব্যাপার হলে, আমি সাধারণত কিছু পয়েন্ট লিখে রাখা শুরু করি, কারণ লিখে ফেললে সত্যিই মাথা পরিষ্কার করতে, পয়েন্ট খুঁজে বের করতে সাহায্য হয়। যেমন যেখানে আমাকে এখনও প্রোডাক্ট ম্যানেজারের সঙ্গে কথা বলতে হবে, কারণ গ্রাহকদের জন্য সেখানে ঠিক কী দরকার সেটা আমি জানি না। তাই আমি লিখে রাখি আমি কী কী জানি আর সেগুলো কীভাবে সমাধান করা যায়। আর আমি সাধারণত একটা বড় টেবিল বানিয়ে খোলা প্রশ্নগুলোও লিখে রাখি, যেগুলো টিমের অন্য কারও জন্য বা আমার নিজের জন্য, যেগুলো বের করতে হবে। তারপর এটা সত্যিই আমাকে জিনিসগুলো পরিষ্কার করতে সাহায্য করে। আর তারপর, খুব উচ্চপর্যায়ের কনসেপ্ট থেকে, আমি এটাকে আরও বাস্তব প্রোগ্রামিং কাজে ভাঙার চেষ্টা করি। যেমন API টা কেমন দেখতে হবে? এর জন্য কী কী ডেটা সংরক্ষণ করতে হবে? আর তারপর স্টোরি পয়েন্ট থেকে ডেটা পর্যন্ত আর ফিরে আসার পথে কী ঘটে, আর পথে কী কী লজিক ঘটতে হবে। এটা নির্ভর করে। হতে পারে, আগে ভাবনার প্রক্রিয়ায় আমি সমাধান করার মতো অনেক সমস্যাই খুঁজে পেয়েছি। আবার কখনো কখনো কোড লেখা শুরু করলে এমন নতুন সমস্যা পাই যা আগে ভাবিনি, তখন আবার পিছিয়ে গিয়ে সেটা নিয়ে ভাবতে হয়, তারপর আবার আসল কোডে ফিরে আসতে হয়। এটাও হতে পারে। কিন্তু সাধারণত প্রক্রিয়াটা হলো প্রথমে জিনিসটা একটু ভেবে নেওয়া। আর কিছু সমস্যা আগেই সমাধান করে ফেললে আমার অনেক সুবিধা হয়। তারপর হয় কোডটা সোজাসুজি হয়ে যায়, নয়তো আরও সমস্যা পাই আর ফিরে যাই, কিন্তু সেটাও ঠিক আছে।

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

Franziska: হ্যাঁ। আর হ্যাঁ। একটা কমন টিপ হলো, কমেন্টে লিখতে শুরু করুন আপনি এই জিনিসটা কী করতে চান। আচ্ছা, প্রথমে এটা করতে হবে, তারপর ফল হলো এটা, তারপর ওটা, তারপর ওই নির্দিষ্ট অংশটার জন্য কোডটুকু ভরে দিই। তাই এটাও সত্যিই অনেক সাহায্য করে।

Jonathan: এটা মজার, কারণ আপনি যা বলছেন, তা আমি এখন নিশ্চয়ই চেষ্টা করে দেখব, কারণ আমি বুঝতে পারছি। যখন আপনাকে প্রোগ্রাম করতে হয়, বিশেষ করে Go শেখার সময় বা যাই হোক। যেমন আমি একটা অনুশীলনী করতে চেষ্টা করছিলাম, কীবোর্ড থেকে একটা ইনপুট নেওয়া, সেটা সংরক্ষণ করা, তারপর ফেরত দেওয়া, মোটে এতবার অনুমান করেছেন বা তেমন কিছু। কিন্তু সমস্যাটাকে সত্যিই সূক্ষ্ম সূক্ষ্ম কাজে ভেঙে চিন্তা করার পুরো প্রক্রিয়াটা আমার কাছে খুব অপরিচিত ছিল। তাই এভাবে ধাপে ধাপে একটা সমস্যা নিয়ে ভাবতে শেখাটা সত্যিই মজার হয়েছে।

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

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

Franziska: ওহ হ্যাঁ, আমি এটা নিয়ে একটু ভেবেছি, আর হ্যাঁ, আমার মনে হয় একটা মূহূর্ত ছিল যখন সব খুলে গিয়েছিল। তবে শুরু থেকেই বলি, ব্যাপারটা হয়তো ঠিক তেমন নয়। তাই যখন আমি কিশোরী ছিলাম, আমার এমন একটা খেলনা ল্যাপটপ ছিল। ওতে কিছু গেম ছিল। আর একটা ফিচারও ছিল, যেখানে Basic-এ প্রোগ্রাম করা যেত। আমার দাদা এসে... তিনি আসলে পাঞ্চ কার্ড দিয়ে প্রোগ্রাম করা শুরু করেছিলেন। তাই তিনি সবসময় টেকে ছিলেন, আর বললেন, বাহ, দারুণ তো, এখানে প্রোগ্রাম করা যায়। তিনি আমাকে দেখাতে চাইলেন প্রোগ্রামিং একটা দারুণ জিনিস। আর তিনি শুরু করলেন সবার মতোই। তিনি print টাইপ করলেন, Hello World, আর ওটা Hello World ছাপল। আমি ভাবলাম, আমি তো নিজেই Hello World টাইপ করতে পারি। আপনি এসব করে কী দেখাচ্ছেন? তারপর বললেন, না, এটা তাই করে যা আপনি বলেন। তারপর তিনি লিখলেন এক যোগ দুই, তারপর ছাপল তিন। আমি বললাম, এটা তো আমার ক্যালকুলেটরও পারে। এখানে আপনি আমাকে কী দেখাতে চাইছেন? আমি বুঝতেই পারিনি। আর তারপর পরে স্কুলে কম্পিউটার সায়েন্সের একটা কোর্সের মতো ছিল। আর সেখানে আমরা Tub Pascal ব্যবহার করতাম, আর তাতে একটা প্লাগইনের মতো ছিল, যেখানে একটা ছোট কাছিম ছিল, আর সে স্ক্রিনে কিছু আঁকত। আর সেখানে আমাদের দারুণ কিছু অনুশীলনী দিয়েছিল, যেখানে কিছু ফর্মুলা লেখা হতো, আর সেটা স্ক্রিনে সত্যিই দারুণ, জটিল ফ্র্যাক্টাল এঁকে দিত। যা দেখতে পাতার মতো হতো ইত্যাদি, আর এটা পেতেন শুধু ছোট একটা ফর্মুলা লিখে, যা ওই কাছিমকে বলে দিত কী আঁকতে হবে। আর সেখানেই আমার কাছে ব্যাপারটা খুলে গেল, কারণ বুঝলাম, এত সাধারণ নির্দেশনাগুলো দিয়েই এমন জটিল একটা জিনিস তৈরি হয়, যা আমি নিজে কখনো করতে পারতাম না। মানে আমি তো এতগুলো আকৃতি এঁকতেই পারতাম না, তাই না? তাই এটাই আমার কাছে সেই জিনিস ছিল। আহ, হ্যাঁ। তাই এটা আমার যতটা পারতাম তার চেয়ে বেশি করতে পারে, তবে হ্যাঁ, আগে, আমার দাদা যে ব্যাখ্যা দিয়েছিলেন আর ওটাতে যা দেখিয়েছিলেন, হ্যাঁ, সেটা কাজ করেনি। কিন্তু হ্যাঁ, এই গ্রাফিক্যাল জিনিসটা দেখতে পাওয়া, আর দেখতে পাওয়া যে কম্পিউটারকে এই জটিল কাজটা করাতে কত সামান্য নির্দেশনা লাগে, সেখানেই আমার কাছে খুলে গিয়েছিল।

Jonathan: আচ্ছা, দারুণ, কারণ আমারও কয়েকদিন আগে মেথড নিয়ে এমন হয়েছিল। ভাবছিলাম, মেথড আবার কী? আর এতক্ষণ আমার মাথায় ঢুকছিল না। রসায়নের ক্ষেত্রেও আমার একই অবস্থা ছিল। দুই বছর ধরে সেটা পড়তে হয়েছিল, তারপর এক রাতেই পর্যায় সারণি পুরোপুরি বোধগম্য হয়ে গেল। তখন আমার বয়স ছিল ষোল। আর মনে আছে, ভাবলাম, আহ, এটা তো সবচেয়ে সহজ ব্যাপার। বিশ্বাসই হচ্ছে না যে দুই বছর ধরে এটা বুঝতে পারিনি। তারপর পরীক্ষা একেবারে সহজ হয়ে গেল। কারণ সব উত্তরই তো পর্যায় সারণিতে আছে। শুধু একটু হিসাব করতে হয়, আর আমার মাথায় সবকিছু মিলে গেল। আর সেই মুহূর্তটা কখন আসে, তা নিয়ে অন্যদের সঙ্গে কথা বলাটাও মজার হয়েছে। Rebecca, যাকে আপনি জানতে পারেন, Exercism-এ Unison ট্র্যাকের... আমি তাকে জিজ্ঞেস করেছিলাম, কারণ তিনি তো ইংরেজি সাহিত্যে ডিগ্রি করেছিলেন। আমি বললাম, ইংরেজি সাহিত্য থেকে প্রোগ্রামিংয়ে কীভাবে এলেন? আর নিজের মাথায় ধারণাটা গুছিয়ে নিতে আপনি কী পদ্ধতি ব্যবহার করতেন? তিনি বলেছিলেন, যা প্রোগ্রাম লিখতেন, সেটাকে একটা গল্প হিসেবে কল্পনা করতেন, নায়কসহ একটা আখ্যান, আর ফাংশনগুলো ছিল চরিত্র ইত্যাদি। আর আমি ভাবলাম, আহ, বাহ, সত্যিই মজার। এভাবে কখনো ভাবতেই পারতাম না। না, এটা সত্যিই...

Franziska: হ্যাঁ। কিন্তু এটা তো আবার কমেন্টে লেখার ব্যাপারটার সঙ্গেই মিলে যায়, তাই না? আপনি কোড লেখার আগেই লেখেন। সেটাও ঠিক এভাবে, প্রথমে গল্পটা বলেন, তারপর তার জন্য আসল কোডটা লেখেন।

Jonathan: আপনি এটা বললেন, খুব ভালো, কারণ আমি বুঝতে পারছি, আসলে আমি তো আমার কমেন্টেই একটা গল্প লিখছি। এটা আমি নিশ্চয়ই কাজে লাগাব। না...

Franziska: আর এই বিষয়ে আরেকটা কথা, তাঁরা কিছু গবেষণা করেছেন, কারা প্রোগ্রামিংয়ে ভালো, ইত্যাদি নিয়ে, আর দেখেছেন যে আসলে আপনার ভাষাগত দক্ষতা, মানে কত শব্দ জানেন, ইত্যাদির বড় ভূমিকা থাকে। যেমন প্রোগ্রামিংয়ে নাম দেওয়াটা সবসময় কঠিন বলা হয়। তাই আপনি যদি ভালো শব্দ খুঁজে বের করতে পারেন, যা আপনার যা নিয়ে কাজ করছেন সেটা বর্ণনা করে, তাহলে আপনার কোড অনেক ভালো হয়। তাই আসলে এটা শুধু গণিত আর বিশ্লেষণী বিষয় নয়। এটা অনেকটাই শব্দ নিয়ে ভালো হওয়ার ব্যাপারও, যা হয়তো প্রথমে ভাবতেই পারেন না।

Jonathan: না, শেষ বিচারে এটা তো ভাষা, আমার মনে এটা মজার একটা ভাবনা। আপনার ক্ষেত্রে আপনি স্বাভাবিকভাবেই জার্মান, কিন্তু সেটাই আপনার ভাষা। Atlassian-এ এখন আপনি ইংরেজিতে ডেভেলপ করেন? আগে কি ইংরেজিতেই করতেন? মানে কীভাবে, কারণ... আমি হয়তো বলব, দুর্ভাগ্যবশত সবকিছুই ইংরেজিতে। আর আপনি দারুণ ইংরেজি বলেন, কিন্তু আপনি কি স্কুলে ইংরেজি শিখেছিলেন, তারপর প্রোগ্রামিং কি পুরোটাই জার্মানিতে ছিল, নাকি এই পুরো অভিজ্ঞতা থেকে আপনি এসব কীভাবে শিখলেন?

Franziska: হ্যাঁ, সবচেয়ে বড় কথা, আমি ভাগ্যবান ছিলাম যে বেশিরভাগ প্রোগ্রামিং জিনিসই ইংরেজিতে ছিল, আর সব কমেন্টও ইংরেজিতে ইত্যাদি। সবসময় সেরা ইংরেজি নয়, তবে ঠিক আছে। হ্যাঁ, আমার ইংরেজি শেখার ক্ষেত্রে, স্কুলে আমি কখনোই ইংরেজিতে ভালো ছিলাম না। কিন্তু বিশ্ববিদ্যালয়ে ভাগ্যক্রমে এক বছর, UK-তে বিনিময় শিক্ষার্থী হিসেবে থাকার সুযোগ পেয়েছিলাম। তখন সত্যিই ভাষার মধ্যে ডুবে ছিলাম। তারপর আমার ইংরেজি অনেক ভালো হয়ে গেল। তারপর ব্যাপারটা সহজ হয়ে গেল, কিন্তু তার আগে সত্যিই খারাপ ছিল। আর হ্যাঁ, সেই বছর, ভাষাটা সত্যিই শেখাটা পরে জার্মানির বাইরের সহকর্মীদের সঙ্গে যোগাযোগ করতেও সাহায্য করেছে ইত্যাদি। আর তারপর... এটা নিশ্চিতভাবেই একটা কারণ। আর যদি ইংরেজি আপনার মাতৃভাষা না হয়, তাহলে আবার জিনিসের সঠিক নাম নিয়ে লড়াই করা আপনার জন্য কঠিন হয়ে যায়, তাই না? আর নাম দেওয়া, আপনি তো কোডের প্রতি লাইনে এটা করেন, তাই না? আপনি সবসময় কিছু একটা কোনো কিছুতে অ্যাসাইন করেন, আর কোডটা পরিষ্কার রাখতে সেই জিনিসটার যতটা ভালো নাম দিতে পারেন দিতে হয়।

Jonathan: না, যাঁদের মাতৃভাষা ইংরেজি নয়, তাঁদের জন্য এটা তেমন সহজ মনে হয় না। আমার মনে হয় এটাও বদলাতে শুরু করবে। কয়েকদিন আগে একটা লেখা দেখলাম, এখন ভারত বিশ্বের দ্রুততম বর্ধনশীল টেক জায়গা। আর ইংরেজি, তাঁরা ইংরেজিতে থাকবেন নাকি নিজেদের স্থানীয় ভাষায়, আর ভারতে তো অনেক ভাষা আছে, সেটা জানি। এসব ভাবতে গেলে সত্যিই মজা লাগে। তাই আমরা প্রায় এক ঘণ্টার কাছাকাছি চলে এসেছি। সত্যিই দারুণ লেগেছে। ফ্রাঞ্জিস্কা, আপনার জন্য আমার আরেকটা প্রশ্ন আছে। আর এখানেই আপনি একটা সুপারিশ করতে পারবেন। Exercism কমিউনিটির জন্য। আপনার একটাই সুপারিশ কী হবে? এটা খাবারের কিছু হতে পারে, বা একটু হাঁটতে যাওয়া, বা আপনি কমিউনিটির জন্য যা-ই সুপারিশ করতে চান। Exercism কমিউনিটির জন্য এই সপ্তাহে আপনার সুপারিশ কী হবে?

Franziska: হ্যাঁ, আমি আবার সেই প্রোডাক্টিভিটির বিষয়ে ফিরে যাব, যা অজনপ্রিয় মতের প্রসঙ্গে বলেছিলাম। তাই আমার সুপারিশ হবে, একটু বিরতি নিন, যে Netflix সিরিজটা সবসময় দেখতে চেয়েছিলেন সেটা binge করে দেখুন, বা যা-ই হোক। সাধারণত মানুষ সারা দিন ধরে প্রোডাক্টিভ থাকার দিকেই খুব মনোযোগী থাকে। আর এটা আপনার মস্তিষ্কের জন্য ভালো নয়। এতটা অপ্টিমাইজ করা আপনার মস্তিষ্কের জন্য ভালো নয়, মস্তিষ্কের কাজে ভালো হওয়া, সৃজনশীল হওয়া ইত্যাদির জন্য ভালো নয়। আপনার মস্তিষ্কের বিরতি দরকার, কারণ ওই বিরতিগুলোতেই মস্তিষ্ক তার কাজগুলো করে। আর হ্যাঁ, তারপর সোফায় বসে একটু কোনো শো দেখতে থাকা বা যা-ই হোক, সেটাই ভালো। এটা করা ভালো, কারণ এতে আপনার মস্তিষ্ককে পেছনে নিজের কাজ করার জন্য একটু সময় দেওয়া হয়। আর আমার মনে হয় বিরতি নেওয়া, সময় বের করা, এটাকে কম গুরুত্ব দেওয়া হয়। তাই এটাই আমার সুপারিশ। বিরতি নেওয়া আর একটু আরাম করার জন্য নিজেকে দোষী মনে করবেন না।

Jonathan: দারুণ। না, আমার খুব ভালো লেগেছে। তাহলে সবাই, আপনি যখন এটা শুনছেন, এই সপ্তাহের জন্য ফ্রাঞ্জিস্কার এই সুপারিশ, এই পরামর্শ। তাহলে ফ্রাঞ্জিস্কা, আপনার সময়ের জন্য, Exercism-এ আপনি যা কিছু দিয়েছেন, আপনার সব ভাবনা আর কমিউনিটির সঙ্গে আপনার সম্পৃক্ততার জন্য আপনাকে অনেক ধন্যবাদ। আমি জানি আপনি Exercism-এর সঙ্গে ব্যাপকভাবে যুক্ত থেকেছেন, এটাকে উন্নত করেছেন, সাহায্য করেছেন, আর আমরা সত্যিই কৃতজ্ঞ। তাই আমি শুধু ধন্যবাদ জানাতে চাই, আর আজ সকালে আপনার সময় দেওয়ার জন্য ধন্যবাদ। জাতীয় ছুটির দিন, যখন আপনি বাইরে গিয়ে উদযাপন করতে পারতেন বা মজার কিছু করতে পারতেন। আর আপনি এখানে আপনার সময় দিয়েছেন, তাই সত্যিই কৃতজ্ঞ। রেকর্ডিং বন্ধ করার পরেও আপনি কলেই ছিলেন, আমি শুধু অনেক ধন্যবাদ জানাতে চাইলাম, আর হ্যাঁ, দিনের বাকি অংশটা সত্যিই দারুণ কাটুক। দারুণ।

Franziska: আমাকে আমন্ত্রণ জানানোর জন্য ধন্যবাদ।

আমাদের কমিউনিটির আরও গল্প

আমাদের কমিউনিটির সদস্যদের কথা শুনুন, শিখুন এবং অনুপ্রাণিত হোন।