প্রোডাক্টিভ ডেভলপার হবার সরল উপায়

How to be a productive developer

আসসালামুআলাইকুম, আশাকরি আল্লাহর অশেষ রহমতে সবাই ভালো আছেন। কিছুদিন পূর্বে আমি আমার প্রতিষ্ঠান JoulesLabs‘য়ে ডেভলপারদের প্রোডাক্টিভিটি বাড়ানোর উপরে একটি ছোট সেশন নেই “Developers Healthy and Productive Lifestyle” শিরোনামে। এরই একটি অনুচ্ছেদ হলো প্রোডাক্টিভ হবার টেকনিক্যাল স্কিলের উপরে, তাই ভাবলাম এটি শেয়ার করলে হয়তো অন্যদেরও সাহায্যে আসতে পারে। অবশ্য মানুষজনকে জ্ঞান কিংবা মটিভেশন দিতে আমি খুবই লজ্জাবোধ করি কারন জ্ঞান দেয়ার মতো জ্ঞান কিংবা যোগ্যতা কোনোটিই আমার নেই, তাই এটিকে জ্ঞান হিসেবে না নিয়ে আপনারা আমার অভিজ্ঞতা হিসেবে নিতে পারেন।

যেহেতু আমিও একজন ডেভলপার তাই আমি আমার নিজ অভিজ্ঞতা থেকে যে বিষয়গুলো উপলব্ধি করেছি এবং যেসকল বিষয়গুলো আমি ফলো করে থাকি সেগুলোই আপনাদের সাথে শেয়ার করবো। চলুন শুরু করি:

মুক্তমনা হোন

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

নতুন টুলস ও টেকনলজি সম্পর্কে ধারনা রাখুন

একজন সফটওয়্যার ইঞ্জিনিয়ারের সব থেকে বড় চ্যালেঞ্জই হয়তো এটি। আপনারা সবাই হয়তো জানেন প্রতিদিন কতো হাজার হাজার কিংবা লক্ষাধিক নতুন টুলস, লাইব্রেরী, প্যাকেজ, ফ্রেমওয়ার্ক কিংবা ল্যাংগুয়েজ রিলিজ হচ্ছে, সেগুলো সম্পর্কে বেসিক একটা নলেজ রাখা সত্যিই চ্যালেঞ্জিং। প্রতিদিন শুধু যে পরিমান JavaScript টুলস ও লাইব্রেরী রিলিজ হয় সেটা নিয়েই একটা পূর্নাঙ্গ বই পাবলিশ করা সম্ভব 🤪. আপনি হয়তো সবগুলো সম্পর্কে ধারনা রাখতে পারবেন না তবে চেষ্টা করা উচিৎ আপনার নিত্যদিনকার কাজের সাথে সম্পৃক্ত সকল বিষয়ের আপডেট রাখা। আপনার বয়স ও অভিজ্ঞতা যতো বৃদ্ধি পাবে, আপনার আপটুডেট থাকার প্রবনতা ততো হ্রাস পাবে(এর একটা কারন হতে পারে নতুনদের তুলনায় আপনার হয়তো অগ্রীম ধারনা করতে পারার স্বক্ষমতা কিংবা কমফোর্টজোনে চলে যাওয়া)। আর এই প্রবনতাই হতে পারে আপনার ইন্ডাস্ট্রি থেকে মুখ থুবড়ে পরার একটি কারন। আপনার প্রতিদিনকার টুলস ও টেকনলজি সম্পর্কে আপডেট থাকা আপনাকে অন্যদের থেকে একধাপ এগিয়ে রাখবে। আপনাকে সময়ের সাথে পরিবর্তন হতে শিখতে হবে, এতেকরে ব্রেইন সবসময় নতুন কিছু জানার জন্য সচল থাকবে এবং এটি আপনাকে যেকোন সমস্যার কার্যকরী সমাধান পেতেও সাহায্য করবে।

যা শিখবেন সেটা অন্যের সাথে শেয়ার করুন

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

একজন ভালো শ্রোতা হোন

একজন ভালো ডেভলপারের একজন ভালো শ্রোতা হওয়া প্রথম শর্ত। ডেভলপারদের প্রত্যকেটি কাজই নতুন, একটি কাজের হয়তো ৪০% থাকে রিপিটেটিভ, যেটা অন্য প্রজেক্টগুলোর সাথে ম্যাচ করে আর বাকি অংশগুলো হচ্ছে মোটামুটি ইউনিক। তাই আপনি একটি প্রোবলেম সম্পর্কে যতো ভালো বুঝবেন ততো ভালো সেটির সমাধান করতে পারবেন। ডেভলপারদের প্রতিদিনই নতুন নতুন বিষয়ে শিখতে হয়, আর দ্রুত কিছু জানতে বা বুঝতে ভালো লিসেনার হবার বিকল্প নেই। এছাড়াও আমাদের প্রায়সই টিমকে লিড দিতে হয়, একজন ভালো শ্রোতাই হতে পারে একজন ভালো লিডার। Richard Branson একটা উক্তি আছে

To be a good leader you have to be a great listener

Richard Branson

একটি বিষয়ে পূর্ন দক্ষতা অর্জন করুন

একটি প্রচলিত কথা আছে “Jack of all trades, master of none”. এই সমস্যাটি বর্তমান সময়ের অধিকাংশ নব্য ডেভলপারদের ক্ষেত্রে সত্যি। যতো বাজওয়ার্ড আছে সবগুলো তারা জানে, শুধু জানে না একটি ল্যাংগুয়েজ দিয়ে কমপ্লিট একটি প্রোজেক্ট তৈরী করতে। এরা Blockchain, Cryptocurrency, AI, Machine Learning, Robotics, GRPC, NoSQL, BigData, Distributed System, Microservice সব জানে , শুধু জানে না কোনো একটি ল্যাংগুয়েজ দিয়ে সাধারন একটি ডাটাবেস ব্যবহার করে মনোলিথ একটা এপ্লিকেশন Nginx দিয়ে DigitalOcean’য়ের VPS রান করাতে। হ্যা এটিই সমস্যা। আমরা যখন যা দেখি সেটিতেই এক্সপার্ট হতে চাই, ট্রেন্ডি সবই আমাদের ভালো লাগে। এই ভালো লাগাটার যেমন ভালো দিক আছে তার মন্দ দিকটা খুবই ভয়ানক। এরা সব বিষয়ে এক্সপার্ট হতে গিয়ে নির্দিস্ট কোনো বিষয়ে মাস্টার হতে পারে না, এদের কোনো বিষয়ে কনফিডেন্ট থাকে না। আমি মনে করি অন্যান্য বিষয়গুলোতে বেসিক একটা ধারনা রেখে নিজের পছন্দ মতো একটি বিষয়ে মাস্টার হওয়া উচিৎ।

নিজের IDE’তে মাস্টার হোন

আমি অনেককেই দেখেছি IDE’কে ব্যবহার করে সাধারন Text Editor (Notepad++ একটি সাধারন এডিটর) এর মতো করে, অর্থাৎ তারা এটিকে কোড লেখা, কোড হাইলাইট করা এবং কোড সেভ করার কাজে ব্যবহার করে। IDE এর ৫% সুবিধাও আমরা অজ্ঞতার কারনে ভোগ করতে পারিনা, অথচ IDE’তে মাস্টার হবার নানান কোর্স পর্যন্ত পাওয়া যায়। আপনি IDE’তে মাস্টার হলে দিনের অন্তত ৪০(চল্লিশ) শতাংশ সময় সেভ করত পারবেন আর আপনার প্রোডাক্টিভিটি বেড়ে যাবে কয়েকগুন,পাবেন মানুষিক প্রশান্তি। বর্তমান IDE গুলো অনেক স্মার্ট এবং এগুলো ডেভলপারদের সকল চাহিদা মাথায় রেখেই ডেভলপ করা, তাই আজই আপনার জন্য বেস্ট IDE নির্বাচন করুন এবং চেষ্টা করুন এটিতে মাস্টার হতে।

ব্যক্তিগতভাবে আমি IDE হিসেবে PHPStorm ব্যবহার করি, আর ইনস্ট্যান্ট কোড এডিট করার জন্য VS Code ব্যবহার করি।

CLI’তে প্রো হতে চেস্টা করুন

আমাদের অধিকাংশেরই CLI’তে তেমন একটা দক্ষতা নেই, কিন্তু একজন প্রোডাক্টিভ ও দক্ষ ডেভলপার হবার প্রধান একটি শর্ত হচ্ছে Command Line’য়ে দক্ষ হওয়া। মজার বিষয় হচ্ছে CLI কন্সেপ্টটি খুব পুরাতন হলেও এর চাহিদা ও জনপ্রিয়তা প্রতিদিনই বাড়ছে। একজন দক্ষ ডেভলপার তার একটি দিনও কল্পনা করতে পারবে না CLI ব্যবহার ছাড়া। একজন ডেভলপারকে প্রতিদিন নানান কাজে CLI ব্যবহার করতে হয়, যেমন: সার্ভার ম্যানেজমেন্ট, এপ্লিকেশন ডেপ্লয়মেন্ট, ডকার ম্যানেজ করা, এপ্লিকেশন বিল্ড করা, এপ্লিকেশন ডিবাগ করা ও রান করা, লং রানিং জব প্রোসেস করা ইত্যাদি নানান কাজে প্রতিদিনই আমাদের একটা বড় সময় CLI ব্যবহারের পিছনে দিতে হবে। আরেকটা ভালো বিষয় হচ্ছে আপনি GUI এর থেকে CLI ব্যবহার করে কাজ কম সময়ে দ্রুত করতে পারবেন, ফলে এখানেও আপনার ভালো একটি সময় সাশ্রয় হবে। তাই আমি বলবো একজন প্রোডাক্টিভ ডেভলপারের CLI’তে প্রো হবার কোনো বিকল্প নেই।

Keyboard Shortcut’য়ে মাস্টার হোন

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

দ্রুত টাইপ করুন

শুনতে হাস্যকর মনে হলেও এটা সত্যি যে দ্রুত টাইপ করতে পারাও প্রোডাক্টিভিটি বৃদ্ধির আরেকটি বড় নেয়ামক। আমি এমন অনেককেই দেখেছি যারা সফটওয়্যার ডেভলপার কিন্তু টাইপ করেন দুই হাতের দুই তর্জনী আঙুল দিয়ে(অর্থাৎ ক্যারেক্টার খুজে খুজে)। দ্রুত টাইপও আপনার কাজের অনেকটা সময় সেভ করবে সাথে আপনার কনফিডেন্টও বৃদ্ধি করবে। আর ভালো টাইপ জানাতে লসের কিছু নেই, আপনি প্রোগ্রামিং করে উপার্জন করতে না পারলেও নীলক্ষেতে টাইপ করে ভালো উপার্জন করতে পারবেন 😛

বিজনেস বোঝার চেস্টা করুন

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

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

ইউজারের মতো চিন্তা করুন

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

কোড সবার শেষে

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

এক্সিস্টিং সলুশন ব্যবহার করুন

আমাদের সব নিজেই বানিয়ে ফেলার একটা বাজে প্রবনতা রয়েছে। এটি শেখার জন্য হয়তো ভালো তবে কাজের ক্ষেত্রে অযথা সময় নষ্ট করা ব্যতিত কিছুই নয়। কোনো প্রোজেক্টে কাজ করার ক্ষেত্রে আমাদের নতুন নতুন নানান ফিচার নিয়ে কাজ করতে হয়, এর ভিতর এমন অনেক ফিচার রয়েছে যেগুলো অধিকাংশ প্রোজেক্টেই ব্যবহার হয় কিংবা এর পূর্বে অন্য কেউ সেটি ব্যবহার করেছে। তাই আমাদের সেক্ষেত্রে উচিৎ সেই ফিচারটি স্ক্র্যাচ থেকে শুরু না করে এক্সিস্টিং কোনো সলুশন খোজা যেখানে এর সমাধান আগেই কেউ করে রেখেছে। তবে এক্ষেত্রে আমি 60:40 রেশিও ফলো করি, অর্থাৎ উক্ত সলুশনের যদি অন্তত ৬০% কাজ আমার প্রয়োজনে না আসে তবে সেই সলুশন ব্যবহার করি না। আর সলুশনটি ওপেনসোর্স হলে তো আপনার নিজেরও সেখানে কন্ট্রিবিউট করা, ফিচার যুক্ত করার সুযোগ রয়েছে। তাছাড়াও ওপেনসোর্স প্রোজেক্টে হাজার হাজার ডেভলপার কন্ট্রিবিউট করে থাকে, প্রতিদিন জানা অজানা ইস্যু ফিক্স হচ্ছে, কিন্তু সেই ফিচারটি যদি আপনার নিজের তৈরী করতে হতো তাহলে হয়তো অনেক কিছুই সেখানে মিসিং থাকতো এবং একসময় এটিই আপনার ঘুম হারাম হবার কারন হতো।

Don’t Repeat Yourself

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

সঠিক কাজে সঠিক টুলস ব্যবহার করুন

অধিকাংশ সময়েই আমরা অন্যের লেখা কিংবা সোস্যাল ইনফ্লুয়েন্সার দ্বারা প্রভাবিত হয়ে ভুল টুলস ভুল কাজে ব্যবহার করে থাকি। বিশেষ করে আমরা নতুনরা প্রচুর পরিমানে বাজওয়ার্ড দ্বারা আক্রান্ত। ফলে প্রোগ্রামিং না শিখেই আমরা AI শিখতে শুরু করি। আর এর ফলে আমাদের ঝুরিতে অভিজ্ঞতা জমা না হয়ে কিছু বাজওয়ার্ড জমা হয়, যা দিয়ে চায়ের দোকানে আড্ডা জমানো যায় কিন্তু কাজের বেলায় কিছুই হয় না। আপনি যদি এই যুগে ওয়েডিং ফটোগ্রাফির জন্য VGA ক্যামেরা ব্যবহার করেন সেটা হবে একটি ভুল টুল নির্বাচন, কিংবা ফুড ডেলিভারির কাজে Ford GT car ব্যবহার করেন সেটাও ভুল টুল নির্বাচন হবে। আপনাকে জানতে হবে কখন SQL কিংবা NoSQL ব্যবহার করতে হবে, কখন আপনাকে BigData নিয়ে প্রস্তুতি গ্রহন করতে হবে, কখন আপনি আপনার সিস্টেমে Machine Learning ব্যবহার করবেন। সবকিছুর একটা সঠিক সময় রয়েছে। সঠিক জায়গায় সঠিক টুল নির্বাচন করাই হচ্ছে বুদ্ধিমানের কাজ।

বোরিং ও রিপিটেটিভ কাজগুলো অটোমেটেড করুন

আমাদের অনেক সময়েই প্রতিদিনকার কিছু বোরিং কাজ রিপিট করতে হয়, যেমন: Project Bootstrapping, Deployment, Debugging, Testing, Junk File Cleaning, App Build ইত্যাদি। আমরা যদি এধরনের রিপেটেড কাজ অটোমেট করে ফেলি তাহলে দেখবেন জীবন কতো সহজ হয়ে যায় এবং সময়ে কতটা বরকত পাওয়া যায়। আমাদের প্রত্যেকের উচিৎ এ জাতীয় কাজগুলো অটোমেট করে ফেলা। একবার কষ্ট কর অটোমেট করে নিলে পরবর্তী সময়গুলো আপনার চমৎকার যাবে ইনশা’আল্লাহ।

ওপেনসোর্স কন্ট্রিবিউট করুন

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

কমুউনিটিতে যুক্ত হোন

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


চেস্টা করেছি আমি আমার ক্ষুদ্র অভিজ্ঞতার আলোকে কিছু বিষয় আপনাদের সাথে শেয়ার করার, কিছু বিষয় হয়তো উপকারে আসতে পারে আবার কিছু জিনিস হয়তো অযথা মনে হতে পারে। কোনো বিষয় নিয়ে আপনার দ্বিমত থাকলে কিংবা লেখাটি ভালো লেগে থাকলে আমাকে জানালে খুশি হবো, ধন্যবাদ ❤️