Skip to content

পোস্ট

কারুকাজে দক্ষতা অর্জন: একজন সিনিয়র সফটওয়্যার ইঞ্জিনিয়ারের অপরিহার্য দক্ষতা

৩১ অক্টোবর, ২০১২ • 4 মিনিট পড়া

কারুকাজে দক্ষতা অর্জন: একজন সিনিয়র সফটওয়্যার ইঞ্জিনিয়ারের অপরিহার্য দক্ষতা

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

দক্ষতা কী? একটি সাধারণভাবে গৃহীত ধারণা রয়েছে যে, যেকোনো একটি দক্ষতায় দক্ষতা অর্জনের জন্য মানুষের শরীর এবং মনের একটি দক্ষতা আয়ত্ত এবং অভ্যন্তরীণ করার জন্য ১০,০০০ ঘন্টা পুনরাবৃত্তি প্রয়োজন। এটি ম্যালকম গ্ল্যাডওয়েলের বই Outliers এ বিস্তারিতভাবে লেখা হয়েছে।

ম্যালকম গ্ল্যাডওয়েলের আউটলায়ার্সের কিছু উদাহরণ হল:

মোজার্ট ২১ বছর বয়সে তার প্রথম কনসার্টো। যা প্রথমে কম বয়সী মনে হয়, কিন্তু তিনি ১১ বছর বয়স থেকে সঙ্গীত লিখছিলেন।

দ্য বিটলস প্রাথমিকভাবে প্রত্যাখ্যাত হয়েছিল। তাদের বলা হয়েছিল যে তাদের সরিষা নেই এবং একটি ভিন্ন কাজের লাইন বিবেচনা করা উচিত। তারা জার্মানিতে ৩ বছর কাটিয়েছে বিভিন্ন স্থানে প্রায় ১২০০ বার খেলে, প্রতিবার ৫ থেকে ৮ ঘন্টা দৈর্ঘ্যের। তারা আজকের দিনে আমরা যে বিটলসকে জানি এবং ভালোবাসি সেই বিটলস হিসেবে পুনরায় আবির্ভূত হয়েছিল।

এবং সবশেষে, বিল গেটস ২০ বছর বয়সে হার্ভার্ড ছেড়ে মাইক্রোসফট প্রতিষ্ঠা করেন। কারো কাছে এটি বোকামি মনে হতে পারে, কিন্তু বিবেচনা করুন যে ২০ বছর বয়সে তিনি তার তরুণ জীবনের প্রায় অর্ধেক সময় প্রোগ্রামিং করে কাটিয়েছিলেন। ১৯৭৫ সালে, বিশ্বে হয়তো মাত্র ৫০ জনের তার মতো অভিজ্ঞতা ছিল। তার অভিজ্ঞতা তাকে মাইক্রোসফটের ভবিষ্যৎ দেখার দূরদর্শিতা দিয়েছিল।

পিটার নরভিগও তার প্রবন্ধ “Teach Yourself Programming in Ten Years” এ ১০,০০০ ঘন্টার নিয়ম নিয়ে আলোচনা করেছেন।

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

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

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

সফটওয়্যার ইঞ্জিনিয়ারদের দিকে তাকালে আমি দক্ষতার ৪টি স্তর দেখি: আলোকিত, সিনিয়র, মিড-লেভেল এবং জুনিয়র।

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

সিনিয়র (৭ থেকে ১০+ বছর, লেভেল ৩) হলেন তিনি যিনি গত ১০,০০০ ঘন্টা একটি নির্দিষ্ট ধরনে প্রোগ্রামিং করে কাটিয়েছেন। ডিজাইন প্যাটার্নের একটি শক্তিশালী বোঝাপড়া রয়েছে, তারা যথাযথ সময়ে অ্যাসিনক্রোনাস প্রোগ্রামিং, কিউইং, ক্যাশিং, লগিং, নিরাপত্তা এবং পারসিস্টেন্স ব্যবহার করেন।

এটা খুবই সম্ভব যে একজন সিনিয়র কখনো আলোকিতে পৌঁছাবেন না। আলোকিতরা প্রায়শই বক্তৃতা এবং লেখালেখিতে পাওয়া যায়। তারা সক্রিয়ভাবে তাদের শৃঙ্খলাকে প্রভাবিত করার চেষ্টা করছেন।

মিড-লেভেল (৪ থেকে ৬ বছর, লেভেল ২) হলেন তিনি যিনি দৈনন্দিন প্রোগ্রামিং বোঝেন। তারা স্বাধীনভাবে কাজ করেন এবং শক্তিশালী সমাধান তৈরি করেন। তবে, তারা এখনও বড় বা জটিল সিস্টেম তৈরি বা রক্ষণাবেক্ষণের অভিজ্ঞতা পাননি। সাধারণভাবে মিড-লেভেল ডেভেলপাররা কম্পোনেন্ট লেভেল ডেভেলপমেন্টে দুর্দান্ত।

জুনিয়র (১ থেকে ৩ বছর, লেভেল ১) হলেন তিনি যিনি প্রোগ্রামিংয়ের মূল বিষয়গুলি বোঝেন। তাদের হয় সফটওয়্যার ইঞ্জিনিয়ারিং বা কম্পিউটার সায়েন্সে ডিগ্রি রয়েছে অথবা তারা স্ব-শিক্ষিত। তাদের কোড ক্রমাগত পর্যালোচনা করা হয়। অ্যালগরিদম, রক্ষণাবেক্ষণযোগ্যতা এবং কাঠামোর বিষয়ে নির্দেশনা দেওয়া হয়।

লেখক: চাক কনওয়ে সফটওয়্যার ইঞ্জিনিয়ারিং এবং জেনারেটিভ এআই-তে বিশেষজ্ঞ। তার সাথে সোশ্যাল মিডিয়ায় যোগাযোগ করুন: X (@chuckconway) অথবা তাকে YouTube-এ দেখুন।

↑ উপরে ফিরে যান

আপনি এগুলোও পছন্দ করতে পারেন