অভিজ্ঞ পরামর্শদাতার মতো কিছুই আপনার বৃদ্ধিকে ত্বরান্বিত করবে না। যাইহোক, একটি খুঁজে পাওয়া চ্যালেঞ্জিং হতে পারে, এবং তাদের প্রাপ্যতা প্রায়ই সীমিত।
অন্যদিকে, ChatGPT- এর মতো AI এজেন্ট 24/7 উপলব্ধ এবং বেশ জ্ঞানী বলে মনে হয়। এই ধরনের একটি এজেন্ট একটি বাস্তব, মানব পরামর্শদাতার জন্য একটি যুক্তিসঙ্গত বিকল্প হিসাবে কাজ করতে পারে?
আমি যে বিষয়ে বিশেষভাবে আগ্রহী তা হল আরও "মেটা" পরামর্শ - ছোট টিপস এবং কৌশলগুলি, শুধুমাত্র বিস্তৃত অভিজ্ঞতার মাধ্যমে অর্জিত, যা আপনাকে বিকাশকারী হিসাবে বেড়ে উঠতে এবং পরিপক্ক হতে সাহায্য করবে - শুধুমাত্র কোড তৈরি করা বা ব্যাখ্যা করা নয়।
20 বছরের বেশি অভিজ্ঞতাসম্পন্ন ব্যক্তি হিসেবে, যিনি বেশ কয়েকজন জুনিয়র ডেভেলপারকে পরামর্শ দিয়েছেন, আমি কৌতূহলী, একজন শিক্ষানবিশের জন্য ChatGPT-এর পরামর্শ কতটা ভালো, ব্যাপক এবং কার্যকর হবে।
এর একটি দ্রুত টেস্ট ড্রাইভের জন্য এটি গ্রহণ করা যাক!
আপনি যদি ChatGPT-এর পরামর্শের গুণমান সম্পর্কে কৌতূহলী হন কিন্তু পুরো আলোচনা এবং আমার বিস্তারিত ধাপে ধাপে ভাষ্যটি দেখতে না চান, তাহলে নির্দ্বিধায় সরাসরি শেষ বিভাগে যান।
💬 আমার প্রম্পট।
🤖 ChatGPT উত্তর।
🤔 আমার চিন্তা/মন্তব্য।
💬 10 বছরের বেশি অভিজ্ঞতা সহ একজন অভিজ্ঞ, পেশাদার সফ্টওয়্যার বিকাশকারী হিসাবে কাজ করুন। কল্পনা করুন যে আপনি একজন ছোট, জুনিয়র সহকর্মীকে পরামর্শ দিচ্ছেন, যার অভিজ্ঞতা 2-3 বছরের বেশি নেই। আমি আপনাকে প্রোগ্রামিং এবং সফটওয়্যার ডেভেলপমেন্ট ক্যারিয়ার সম্পর্কিত বিভিন্ন প্রশ্ন জিজ্ঞাসা করব। আমি এই ছোট দেব হিসাবে তাদের জিজ্ঞাসা করা হবে. সেগুলিকে এমনভাবে উত্তর দিন যা আমার জন্য আরও ভাল বিকাশকারী হতে এবং পেশাদারভাবে বেড়ে উঠতে সবচেয়ে সহায়ক হবে৷
🤖 অবশ্যই, আমি আপনাকে সাহায্য করতে এখানে আছি! প্রোগ্রামিং বা আপনার সফ্টওয়্যার ডেভেলপমেন্ট ক্যারিয়ার সম্পর্কে আপনার যেকোনো প্রশ্ন নির্দ্বিধায় জিজ্ঞাসা করুন এবং আমি আমার অভিজ্ঞতার ভিত্তিতে আপনাকে গাইড করার জন্য যথাসাধ্য চেষ্টা করব।
🤔 এখন পর্যন্ত, অনেক ভালো। চল শুরু করি!
💬 অনুগ্রহ করে 10টি লাইফহ্যাক শেয়ার করুন যা দ্রুত এবং সহজে কার্যকর করা যায় এবং অবিলম্বে আমাকে একজন ভালো ডেভেলপার হতে সাহায্য করবে।
🤖 অবশ্যই! এখানে 10টি লাইফহ্যাক রয়েছে যা আপনি বিকাশকারী হিসাবে আপনার দক্ষতা উন্নত করতে দ্রুত প্রয়োগ করতে পারেন:
কীবোর্ড শর্টকাট ব্যবহার করুন : দ্রুত কোড নেভিগেট করতে এবং ম্যানিপুলেট করতে IDE বা সম্পাদক-নির্দিষ্ট কীবোর্ড শর্টকাট শিখুন এবং ব্যবহার করুন। এটি আপনার সময় বাঁচাবে এবং আপনার উত্পাদনশীলতা বৃদ্ধি করবে।
পোমোডোরো টেকনিক অনুসরণ করুন : আপনার কাজকে ছোট, পরিচালনাযোগ্য বিরতিতে (সাধারণত 25 মিনিট) এবং তারপরে একটি ছোট বিরতি দিন। এই কৌশলটি আপনাকে মনোনিবেশ করতে এবং একটি সামঞ্জস্যপূর্ণ কাজের ছন্দ বজায় রাখতে সহায়তা করতে পারে।
মাস্টার সংস্করণ নিয়ন্ত্রণ : গিট বা অন্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থার সাথে আরামদায়ক হন। এটি আপনাকে আপনার কোডের পরিবর্তনগুলি ট্র্যাক করতে, অন্যদের সাথে সহযোগিতা করতে এবং প্রয়োজনে পূর্ববর্তী সংস্করণগুলিতে ফিরে যেতে সহায়তা করবে৷
পুনরাবৃত্তিমূলক কাজগুলি স্বয়ংক্রিয় করুন : কোড ফর্ম্যাটিং, ফাইলের নাম পরিবর্তন বা প্রকল্পের ভারাগুলির মতো জাগতিক কাজগুলি স্বয়ংক্রিয় করতে স্ক্রিপ্ট বা সরঞ্জামগুলি ব্যবহার করুন৷ এতে আপনার সময় বাঁচবে এবং মানুষের ভুলের সম্ভাবনা কমবে।
পরিষ্কার কোড পড়ুন এবং লিখুন : একটি পরিষ্কার কোডিং শৈলী গ্রহণ করুন যা পড়তে এবং বোঝা সহজ। নামকরণের রীতি, ইন্ডেন্টেশন এবং কোড কাঠামোর জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করুন। এটি আপনার কোডকে আরও রক্ষণাবেক্ষণযোগ্য করে তুলবে এবং ডিবাগিংয়ে ব্যয় করা সময় কমিয়ে দেবে।
আপনার কোড মন্তব্য করুন : আপনার কোডের উদ্দেশ্য এবং কার্যকারিতা ব্যাখ্যা করতে অর্থপূর্ণ মন্তব্য লিখুন। এটি অন্যদের জন্য আপনার কোড বোঝা সহজ করে তুলবে এবং পরে কোডটি পুনরায় দেখার সময় আপনার চিন্তার প্রক্রিয়াটি স্মরণ করতে পারবে।
কোড পর্যালোচনা করুন : আপনার সহকর্মী বা পরামর্শদাতাদের নিয়মিত আপনার কোড পর্যালোচনা করতে বলুন। এটি আপনাকে উন্নতির জন্য ক্ষেত্রগুলি সনাক্ত করতে এবং তাদের দক্ষতা থেকে শিখতে সহায়তা করবে।
কৌতূহলী থাকুন : ক্রমাগত নতুন ভাষা, কাঠামো এবং সরঞ্জামগুলি অন্বেষণ করুন৷ এটি আপনাকে সর্বশেষ শিল্প প্রবণতাগুলির সাথে আপ-টু-ডেট থাকতে এবং আপনার দক্ষতাকে প্রসারিত করতে সহায়তা করবে।
সমস্যাগুলিকে ছোট ছোট টুকরো টুকরো করে ফেলুন : যখন কোনও জটিল সমস্যার মুখোমুখি হন, তখন এটিকে আরও ছোট, আরও পরিচালনাযোগ্য কাজগুলিতে ভাগ করুন। এটি আপনাকে ফোকাস বজায় রাখতে এবং অভিভূত হওয়া থেকে বিরত রাখতে সহায়তা করবে।
নিজের যত্ন নিন : আপনার শারীরিক ও মানসিক সুস্থতাকে অগ্রাধিকার দিন। নিয়মিত ব্যায়াম করুন, পর্যাপ্ত ঘুম পান এবং প্রয়োজনে বিরতি নিন। একটি সুস্থ মন এবং শরীর আপনাকে আপনার কাজে আরও বেশি উত্পাদনশীল এবং মনোযোগী হতে সাহায্য করবে।
মনে রাখবেন, একজন ভাল বিকাশকারী হওয়া একটি চলমান প্রক্রিয়া এবং এটি সময় এবং উত্সর্গ নেয়। কিন্তু এই লাইফহ্যাকগুলি বাস্তবায়ন করে, আপনি আপনার বৃদ্ধিকে ত্বরান্বিত করতে এবং ক্রমাগত আপনার দক্ষতা উন্নত করতে পারেন।
🤔 তালিকাটি বেশিরভাগই শক্ত বলে মনে হচ্ছে, যদিও কিছুটা এলোমেলো এবং বিশেষ করে যুগান্তকারী নয়। যাইহোক, আমি প্রাথমিক পরামর্শের জন্য ChatGPT কে জিজ্ঞাসা করেছি, তাই অপেক্ষাকৃত সুস্পষ্ট উত্তরগুলি বোধগম্য।
এর মধ্যে কিছু টিপস এত দ্রুত এবং বাস্তবায়ন করা সহজ বলে মনে হয় না (যা আমার প্রম্পটের অংশ ছিল)। আরও কয়েকজন কিছুটা অস্পষ্ট এবং আরও ব্যাখ্যার প্রয়োজন - কিন্তু যেহেতু ChatGPTকে পুনরাবৃত্তিমূলকভাবে ব্যবহার করার জন্য ডিজাইন করা হয়েছে, ফলো-আপ প্রশ্নগুলির সাথে আরও গভীরে খনন করা হয়েছে, আমি অনুমান করি এটি ঠিক আছে। কয়েকটি পয়েন্ট আছে যা আমি সম্পূর্ণরূপে একমত নই, তবে আমি সেগুলিকে ভুল হওয়ার পরিবর্তে মতামতের বিষয় হিসাবে বেশি দেখি। সামগ্রিকভাবে, খারাপ না!
আসুন প্রতিটি পরামর্শের মধ্যে একটু গভীরভাবে ডুব দেওয়া যাক:
কীবোর্ড শর্টকাট ব্যবহার করুন : কঠিন পরামর্শ। দ্রুত এবং কার্যকর করা সহজ, এবং এটি নিঃসন্দেহে আপনার উত্পাদনশীলতাকে বাড়িয়ে তুলবে। একটি জিনিস যা আমাকে অবাক করে তা হল কেন শুধুমাত্র সাধারণ কীবোর্ড শর্টকাট? কোড ইন্টেলিজেন্স, স্নিপেট, অটোফরম্যাটার, কোড জেনারেটর এবং AI সহকারী যেমন GitHub Copilot (বা ChatGPT নিজেই, duh) এর মতো আরও উন্নত বৈশিষ্ট্যগুলি ব্যবহার করা একইভাবে ব্যবহার করা শুরু করা এবং আরও বড় বুস্ট প্রদান করা সমান সহজ হবে।
পোমোডোরো টেকনিক অনুসরণ করুন : ভালো পরামর্শ। আপনি অবশ্যই এটি চেষ্টা করা উচিত. আপনি যদি আগে কখনও পোমোডোরোর কথা না শুনে থাকেন, তাহলে আপনাকে এটি গুগল করতে হতে পারে বা ChatGPT-কে একটি ফলো-আপ প্রশ্ন জিজ্ঞাসা করতে হতে পারে, তবে এটি অন্যথায় বেশ সহজবোধ্য এবং স্ব-ব্যাখ্যামূলক।
মাস্টার সংস্করণ নিয়ন্ত্রণ : ভাল উপদেশ, কিন্তু স্পষ্টভাবে একটি লাইফহ্যাক নয়। এমনকি "মাস্টার" শব্দটি স্পষ্টভাবে দেখায় যে এটি একটি দ্রুত এবং সহজ সমাধান নয়। আমি আরও যুক্তি দিই যে সংস্করণ নিয়ন্ত্রণ আপনার উত্পাদনশীলতা উন্নত করার জন্য "হ্যাক" এর পরিবর্তে আপনার প্রোগ্রামিং ভাষা, প্রধান কাঠামো বা ডাটাবেসের মতো আপনার প্রাথমিক প্রযুক্তি স্ট্যাকের একটি অবিচ্ছেদ্য অংশ। কিন্তু অন্যথায়, পরামর্শ সঠিক।
পুনরাবৃত্তিমূলক কাজগুলি স্বয়ংক্রিয় করুন : কঠিন পরামর্শ, কিন্তু আবার, এটি আরও অন্বেষণ প্রয়োজন। অবিলম্বে বাস্তবায়ন করার জন্য এটি অত্যন্ত উচ্চ-স্তরের।
ক্লিন কোড পড়ুন এবং লিখুন : প্রচুর পরিচ্ছন্ন কোড পড়া (বা সাধারণভাবে কোড) একটি চমত্কার উপদেশ - এবং প্রয়োগ করা সহজ। শুধুমাত্র কঠিন অংশ হল কিভাবে জানতে হবে, একজন শিক্ষানবিস হিসাবে, কোন কোডটি পরিষ্কার এবং কোথায় এটি খুঁজে পাওয়া যায়। এটা আবার গভীর অনুসন্ধান প্রয়োজন. পরিষ্কার কোড লেখা, যাইহোক, একটি সম্পূর্ণ ভিন্ন বিষয়। এটি আপনার নৈপুণ্যের আজীবন দক্ষতার অংশ, এবং সম্পূর্ণ বইগুলি এই বিষয়ে লেখা হয়েছে। আপনার অবশ্যই এটি অধ্যয়ন করা উচিত, তবে সংস্করণ নিয়ন্ত্রণের দক্ষতার মতো এটি লাইফহ্যাক থেকে অনেক দূরে।
আপনার কোড মন্তব্য করুন : এটি প্রথম টিপ যা আমি বিতর্কিত বলে মনে করি (যদিও, আমি আগেই বলেছি, এটি স্পষ্টতই ভুল নয় বরং ব্যক্তিগত পছন্দের কারণে)। মন্তব্য সম্পর্কে দুটি অবস্থান রয়েছে: ভারী মন্তব্য করা বনাম কোডকে এত স্ব-ব্যাখ্যামূলক করা যে আপনার মন্তব্যের প্রয়োজন নেই (যদি না আপনি আপনার কোডের পিছনে ব্যবসায়িক উদ্দেশ্য ব্যাখ্যা করতে চান)। আমি দৃঢ়ভাবে দ্বিতীয় শিবিরে আছি, তাই ChatGPT-এর খুব প্রামাণিক "মন্তব্য লিখুন" আমার সাথে অনুরণিত হয় না। অন্যদিকে, এটি অর্থপূর্ণ মন্তব্য লিখতে এবং আপনার কোডের উদ্দেশ্য ব্যাখ্যা করতে বলে, যার সাথে আমি খুব একমত। কিন্তু এটি আপনার কোডের কার্যকারিতা ব্যাখ্যা করার জন্যও বলে, যা আমি একটি খারাপ অনুশীলন এবং সময়ের অপচয় বলে মনে করি। সুতরাং, আমি এই এক মিশ্র অনুভূতি আছে.
কোড পর্যালোচনাগুলি সন্ধান করুন : এই পরামর্শটি যতটা কঠিন এবং সহজে প্রযোজ্য ততটা পেতে পারে৷ আপনার যথাসম্ভব কোড পর্যালোচনা করা উচিত, বিশেষ করে একজন শিক্ষানবিস হিসাবে।
কৌতূহলী থাকুন : এটি দ্বিতীয় উপদেশ যা আমি কিছুটা তর্কযোগ্য মনে করি। নতুন ভাষা, কাঠামো এবং সরঞ্জামগুলি অন্বেষণ করা সামগ্রিকভাবে ভাল উপদেশ (যদিও আমি "নিরন্তর" সম্পর্কে তর্ক করব - এটি বাজওয়ার্ড-চালিত বিকাশের মতো গন্ধযুক্ত), তবে এটি কেবল এক বা দুই বছরের জন্য শিক্ষানবিশদের জন্য সেরা কৌশল নাও হতে পারে অভিজ্ঞতা একজন জুনিয়র হিসাবে, আপনার সেরা অনুশীলন এবং নীতিগুলির একটি দৃঢ় ভিত্তি তৈরি করা এবং সেগুলি গভীরভাবে শেখার উপর আরও বেশি ফোকাস করা উচিত, যখন আপনি কিছু সময়ের জন্য একটি একক স্ট্যাক আয়ত্ত করার উপর ফোকাস করেন তখন এটি সহজ হয়। কিন্তু, সত্যি বলতে, আমি এখানে নিটপিক করছি, এবং আমি এই উপদেশটিকে ভুল বলব না।
সমস্যাগুলিকে ছোট ছোট টুকরো টুকরো করে ফেলুন : কঠিন পরামর্শ, কিন্তু আবার, এটি খুব উচ্চ-স্তরের। কার্যকরভাবে সমস্যাগুলি ভেঙে ফেলা তুচ্ছ নয়। বাস্তবে বাস্তবে এটি বাস্তবায়ন করতে, আরও কিছু ড্রিল-ডাউন প্রয়োজন হবে।
নিজের যত্ন নিন : খুব ভাল এবং প্রযোজ্য পরামর্শ। এটা সত্যিই চমৎকার যে চ্যাটজিপিটি এই ধরনের পরামর্শ অন্তর্ভুক্ত করেছে, যা সরাসরি হার্ড টেক দক্ষতার সাথে সম্পর্কিত নয়।
ঠিক আছে, আমরা সমস্ত টিপস দিয়ে গিয়েছিলাম। খারাপ না, খারাপ না এ সব। যাইহোক, তাদের সব অবিলম্বে প্রযোজ্য নয়. আসুন আমরা মূলের কতটা কাছাকাছি যেতে পারি তা দেখতে কয়েকটিতে ড্রিল করে দেখি
💬 আসুন "কীবোর্ড শর্টকাট ব্যবহার করুন" টিপটি আরও গভীরে খনন করা যাক৷ আপনি কি একটু বিস্তারিত বলতে পারেন যদি আমি সব সম্ভাব্য শর্টকাট শিখতে পারি, বা যদি শর্টকাটের কোনো বিশেষ বিভাগ থাকে যার উপর আমার ফোকাস করা উচিত?
🤖 অবশ্যই! যখন এটি কীবোর্ড শর্টকাটগুলির ক্ষেত্রে আসে, তখন মূল বিষয় হল সেইগুলি শেখার উপর ফোকাস করা যা আপনার উত্পাদনশীলতা এবং দক্ষতার উপর সবচেয়ে উল্লেখযোগ্য প্রভাব ফেলবে৷ আপনাকে উপলব্ধ প্রতিটি শর্টকাট শিখতে হবে না, বরং সেইগুলিকে অগ্রাধিকার দিন যা আপনার সবচেয়ে বেশি সময় সাশ্রয় করবে এবং আপনার কর্মপ্রবাহকে স্ট্রিমলাইন করতে সহায়তা করবে।
এখানে ফোকাস করার জন্য কীবোর্ড শর্টকাটের কয়েকটি বিভাগ রয়েছে:
নেভিগেশন শর্টকাট : এই শর্টকাটগুলি আপনাকে আপনার কোডের মাধ্যমে দ্রুত নেভিগেট করতে, ফাইল বা ট্যাবের মধ্যে লাফ দিতে এবং একটি কীওয়ার্ডের নির্দিষ্ট চিহ্ন বা উদাহরণ খুঁজে পেতে সহায়তা করে। উদাহরণগুলির মধ্যে রয়েছে "সংজ্ঞায় যান," "রেখায় যান," এবং "সমস্ত রেফারেন্স খুঁজুন।"
শর্টকাট সম্পাদনা : এই শর্টকাটগুলি আপনাকে পাঠ্য কাটা, অনুলিপি, পেস্ট এবং বিন্যাস করার মাধ্যমে কোড ম্যানিপুলেট করতে সহায়তা করে। উদাহরণগুলির মধ্যে রয়েছে "ডুপ্লিকেট লাইন," "লাইন উপরে/নীচে সরান," এবং "টগল মন্তব্য।"
রিফ্যাক্টরিং শর্টকাট : রিফ্যাক্টরিং পরিষ্কার এবং দক্ষ কোড বজায় রাখার একটি অপরিহার্য অংশ। শর্টকাট যা আপনাকে দ্রুত রিফ্যাক্টর কোডে সাহায্য করে আপনার অনেক সময় বাঁচাতে পারে। উদাহরণগুলির মধ্যে রয়েছে "প্রতীকের পুনঃনামকরণ", "নিষ্কাশন পদ্ধতি," এবং "স্বাক্ষর পরিবর্তন করুন।"
ডিবাগিং শর্টকাট : ডিবাগিং উন্নয়ন প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ। শর্টকাটগুলি যা আপনাকে ব্রেকপয়েন্টগুলি পরিচালনা করতে, কোডের মাধ্যমে ধাপে ধাপে এবং ভেরিয়েবলগুলি পরিদর্শন করতে সহায়তা করে আপনার ডিবাগিং সেশনগুলিকে স্ট্রিমলাইন করতে পারে৷ উদাহরণগুলির মধ্যে রয়েছে "টগল ব্রেকপয়েন্ট," "স্টেপ ওভার," এবং "স্টেপ ইনটু।"
IDE-নির্দিষ্ট শর্টকাট : আপনার IDE বা কোড এডিটরের অনন্য বৈশিষ্ট্য বা টুল থাকতে পারে যা শর্টকাটের মাধ্যমে অ্যাক্সেস করা যেতে পারে। আপনার নির্বাচিত উন্নয়ন পরিবেশের সর্বাধিক ব্যবহার করতে এই শর্টকাটগুলির সাথে নিজেকে পরিচিত করুন৷
মনে রাখবেন যে এই শর্টকাটগুলির জন্য প্রকৃত কী সমন্বয়গুলি আপনার ব্যবহার করা IDE বা কোড সম্পাদকের উপর নির্ভর করে পরিবর্তিত হতে পারে। আপনার পছন্দ অনুসারে এই শর্টকাটগুলি আবিষ্কার এবং কাস্টমাইজ করতে আপনার সম্পাদকের ডকুমেন্টেশন বা সেটিংস দেখুন।
শর্টকাট শেখার সময়, একবারে কয়েকটিতে ফোকাস করে শুরু করুন। আপনি যখন তাদের সাথে আরও স্বাচ্ছন্দ্য বোধ করেন, ধীরে ধীরে আপনার দৈনন্দিন কর্মপ্রবাহে আরও শর্টকাট অন্তর্ভুক্ত করুন। সময়ের সাথে সাথে, এই শর্টকাটগুলি ব্যবহার করা দ্বিতীয় প্রকৃতির হয়ে উঠবে এবং আপনি আপনার উত্পাদনশীলতা এবং দক্ষতার একটি উল্লেখযোগ্য উন্নতি লক্ষ্য করবেন।
🤔 এটা একটা দারুণ শ্রেণীকরণ! আমি অভিভূত. আমি প্রতিটি বিভাগের জন্য কংক্রিট উদাহরণ পছন্দ করি। পরামর্শের এই স্তরটি ইতিমধ্যেই কার্যকর - আপনি সহজেই আপনার IDE এর ডকুমেন্টেশনে "নেভিগেশন শর্টকাট" বা "সংজ্ঞায় যান" সন্ধান করতে পারেন। তদুপরি, বিভাগগুলি ভালভাবে নির্বাচিত। তারাই সত্যিকার অর্থে আপনার উৎপাদনশীলতাকে একটি উল্লেখযোগ্য বৃদ্ধি দেবে।
আমি এখনও একটি জিনিস অনুপস্থিত আছে: আরও উল্লেখযোগ্য উত্পাদনশীলতা বুস্টার, যেমন স্বয়ংক্রিয়-সম্পূর্ণতা বা কোড স্নিপেট। আমি তাদের সম্পর্কে স্পষ্টভাবে জিজ্ঞাসা করতে চাই না, কারণ আমি তাদের অস্তিত্ব সম্পর্কে না জানার ভান করছি৷ যাইহোক, আসুন নিয়মগুলিকে একটু বাঁকানো যাক:
💬 আপনি বলেছিলেন যে "কোড দ্রুত নেভিগেট করতে এবং ম্যানিপুলেট করার জন্য আমার শর্টকাটগুলি শিখতে হবে", যে "চাবি হল সেইগুলি শেখার দিকে মনোনিবেশ করা যা আপনার উত্পাদনশীলতা এবং দক্ষতার উপর সবচেয়ে উল্লেখযোগ্য প্রভাব ফেলবে", এবং "যেগুলিকে অগ্রাধিকার দিতে হবে আপনার সর্বাধিক সময় বাঁচান এবং আপনার কর্মপ্রবাহকে স্ট্রীমলাইন করতে সহায়তা করুন।" কীবোর্ড শর্টকাট ব্যতীত অন্য কোন টুল বা IDE বৈশিষ্ট্য আছে যা আমাকে এই লক্ষ্য অর্জনে সাহায্য করতে পারে?
🤖 একদম! কীবোর্ড শর্টকাট ছাড়াও, আরও অনেক টুলস এবং IDE বৈশিষ্ট্য রয়েছে যা আপনার উৎপাদনশীলতা এবং দক্ষতা বাড়াতে সাহায্য করতে পারে। এখানে তাদের কিছু:
কোড স্নিপেট এবং টেমপ্লেট : অনেক IDE এবং সম্পাদক কোড স্নিপেট বা টেমপ্লেট সমর্থন করে যা সাধারণভাবে ব্যবহৃত কোড স্ট্রাকচার বা বয়লারপ্লেট কোড মাত্র কয়েকটি কীস্ট্রোকের সাহায্যে তৈরি করতে পারে। এগুলো আপনার সময় বাঁচাতে পারে এবং আপনার কোডে ধারাবাহিকতা বজায় রাখতে সাহায্য করতে পারে।
অটো-কমপ্লিশন এবং ইন্টেলিসেন্স : আধুনিক আইডিই এবং কোড এডিটররা প্রায়ই বুদ্ধিমান কোড কমপ্লিশন প্রদান করে, যা বর্তমান প্রেক্ষাপটের উপর ভিত্তি করে ভেরিয়েবল, পদ্ধতি বা কীওয়ার্ডের জন্য সমাপ্তির পরামর্শ দেয়। এটি আপনার কোডিং প্রক্রিয়াকে ত্বরান্বিত করতে পারে এবং টাইপো বা সিনট্যাক্স ত্রুটির সম্ভাবনা কমাতে পারে।
ইন্টিগ্রেটেড ডিবাগিং : আপনার IDE-তে সংহত ডিবাগিং টুলগুলি আপনাকে ব্রেকপয়েন্ট সেট করতে, আপনার কোডের মাধ্যমে ধাপে ধাপে ধাপে ধাপে এবং আপনার বিকাশের পরিবেশ না রেখে ভেরিয়েবলগুলি পরিদর্শন করতে দেয়। এই নিরবচ্ছিন্ন ডিবাগিং অভিজ্ঞতা আপনাকে আরও দক্ষতার সাথে সমস্যাগুলি খুঁজে পেতে এবং সমাধান করতে সহায়তা করতে পারে।
ভার্সন কন্ট্রোল ইন্টিগ্রেশন : অনেক আইডিই গিটের মত ভার্সন কন্ট্রোল সিস্টেমের জন্য বিল্ট-ইন সাপোর্ট অফার করে। এই ইন্টিগ্রেশন সাধারণ সংস্করণ নিয়ন্ত্রণের কাজগুলিকে সহজ করতে পারে, যেমন পরিবর্তনগুলি করা, শাখা তৈরি করা এবং আপনার IDE-এর মধ্যে দ্বন্দ্ব সমাধান করা।
কোড বিশ্লেষণ এবং লিন্টিং : রিয়েল-টাইম কোড বিশ্লেষণ এবং লিন্টিং টুল আপনাকে আপনার কোড লেখার সময় সম্ভাব্য সমস্যা যেমন সিনট্যাক্স ত্রুটি, অব্যবহৃত ভেরিয়েবল বা কোড শৈলী লঙ্ঘন সনাক্ত করতে সাহায্য করতে পারে। এটি ডিবাগিংয়ে আপনার সময় বাঁচাতে পারে এবং আপনার কোড সর্বোত্তম অনুশীলনগুলি মেনে চলে তা নিশ্চিত করতে পারে।
রিফ্যাক্টরিং টুলস : কিছু আইডিইতে বিল্ট-ইন টুল রয়েছে যা আপনার কোডকে স্বয়ংক্রিয়ভাবে রিফ্যাক্টর করতে পারে, যেমন এক্সট্র্যাক্ট পদ্ধতি, ভেরিয়েবলের নাম পরিবর্তন করা বা পদ্ধতির স্বাক্ষর পরিবর্তন করা। এই সরঞ্জামগুলি আপনাকে ম্যানুয়াল প্রচেষ্টা ছাড়াই পরিষ্কার এবং দক্ষ কোড বজায় রাখতে সহায়তা করতে পারে।
টাস্ক এবং প্রজেক্ট ম্যানেজমেন্ট : অনেক IDE এবং এডিটরদের এমন বৈশিষ্ট্য রয়েছে যা আপনাকে কাজগুলি পরিচালনা করতে, করণীয় তালিকা তৈরি করতে এবং আপনার প্রকল্পগুলির মধ্যে অগ্রগতি ট্র্যাক করতে দেয়। এটি আপনাকে সংগঠিত থাকতে এবং আপনার কাজকে আরও কার্যকরভাবে অগ্রাধিকার দিতে সহায়তা করতে পারে।
কাস্টমাইজেশন : বেশিরভাগ IDE এবং সম্পাদকরা থিম, প্লাগইন এবং কনফিগারেশন বিকল্পগুলি সহ উচ্চ স্তরের কাস্টমাইজেশন অফার করে। আপনার বিকাশের পরিবেশকে আপনার পছন্দ অনুসারে সাজানো আপনাকে আরও আরামদায়ক এবং দক্ষতার সাথে কাজ করতে সহায়তা করতে পারে।
ইন্টিগ্রেটেড টার্মিনাল : আপনার IDE-এর মধ্যে একটি ইন্টিগ্রেটেড টার্মিনাল থাকলে আপনি কমান্ড চালাতে, আপনার প্রোজেক্ট তৈরি করতে বা উইন্ডোজের মধ্যে স্যুইচ না করে সংস্করণ নিয়ন্ত্রণের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দিয়ে আপনার সময় বাঁচাতে পারেন।
এই টুল এবং বৈশিষ্ট্যগুলি আপনার কোডিং অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে, আপনাকে আরও দক্ষ এবং উত্পাদনশীল করে তুলবে। আপনার IDE বা কোড সম্পাদকের ক্ষমতাগুলি অন্বেষণ করার জন্য সময় নিন এবং নতুন টুল বা প্লাগইনগুলি চেষ্টা করতে দ্বিধা করবেন না যা আপনার কর্মপ্রবাহকে উন্নত করতে পারে৷
🤔 এখন আমরা কথা বলছি! তালিকাটি সম্পূর্ণরূপে সম্পূর্ণ নয় (উদাহরণস্বরূপ, এটি কোড অটো-ফরম্যাটারগুলি মিস করে, এবং এটি আশ্চর্যজনকভাবে এখনও এআই সহকারীকে মিস করে - ChatGPT কি তার নিজস্ব ক্ষমতা সম্পর্কে সচেতন নয়? নাকি এটি খুব নম্র?) তবে এটি যথেষ্ট কঠিন এবং বিস্তৃত একজন শিক্ষানবিস ডেভের জন্য সত্যিকার অর্থে উপযোগী হতে হবে। এছাড়াও, এখন আপনি আধুনিক বিকাশকারী সরঞ্জামগুলির সমৃদ্ধি সম্পর্কে সচেতন, আপনি ধীরে ধীরে আরও গভীর খনন করতে পারেন৷
💬 আপনি আমাকে যে টিপস দিয়েছেন তার মধ্যে একটি হল "মাস্টার সংস্করণ নিয়ন্ত্রণ"। কিন্তু এটি কি সত্যিই একটি দ্রুত এবং সহজ লাইফহ্যাক? সংস্করণ নিয়ন্ত্রণ সম্পূর্ণরূপে আয়ত্ত করার জন্য এটি একটি দীর্ঘ প্রক্রিয়ার মতো মনে হচ্ছে। কোন সংস্করণ নিয়ন্ত্রণ-সম্পর্কিত দ্রুত টিপস আছে, যা এখনই প্রয়োগ করা যেতে পারে?
🤖 আপনি সঠিক যে সংস্করণ নিয়ন্ত্রণে দক্ষতা অর্জন করা একটি দীর্ঘ প্রক্রিয়া হতে পারে, তবে কিছু দ্রুত টিপস এবং সেরা অনুশীলন রয়েছে যা আপনি এখনই প্রয়োগ করতে পারেন গিট-এর মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থার আরও কার্যকর ব্যবহার করতে। এখানে কয়েকটি আছে:
ঘন ঘন এবং ছোট ইউনিটে কমিট করুন : ছোট, ফোকাসড কমিট তৈরি করুন যাতে একটি একক, যৌক্তিক পরিবর্তন থাকে। এটি প্রকল্পের ইতিহাস বোঝা, সমস্যাগুলি সনাক্ত করা এবং প্রয়োজনে পরিবর্তনগুলি ফিরিয়ে আনা সহজ করে তোলে।
বর্ণনামূলক প্রতিশ্রুতি বার্তা লিখুন : আপনি যখন পরিবর্তনগুলি করেন, তখন স্পষ্ট এবং সংক্ষিপ্ত কমিট বার্তাগুলি লিখুন যা পরিবর্তন এবং তাদের উদ্দেশ্য বর্ণনা করে। এটি আপনাকে এবং আপনার দলকে প্রকল্পের ইতিহাস বুঝতে সাহায্য করে এবং পরবর্তীতে নির্দিষ্ট পরিবর্তনগুলি খুঁজে পাওয়া সহজ করে তোলে৷
শাখা ব্যবহার করুন : নতুন বৈশিষ্ট্য, বাগ সংশোধন, বা পরীক্ষা-নিরীক্ষার জন্য শাখা তৈরি করুন। এটি আপনার প্রধান শাখাকে স্থিতিশীল রাখে এবং আপনাকে প্রধান কোডবেসকে প্রভাবিত না করেই সমান্তরালে একাধিক কাজ করতে দেয়।
নিয়মিতভাবে একত্রীকরণ করুন : প্রধান শাখা থেকে পরিবর্তনগুলিকে নিয়মিতভাবে আপনার বৈশিষ্ট্য শাখাগুলিতে একত্রিত করুন এবং সেগুলিকে আপ-টু-ডেট রাখতে এবং আপনার পরিবর্তনগুলিকে একীভূত করার সময় হলে একত্রীকরণের বিরোধ কমিয়ে আনুন৷
পুশ করার আগে টানুন : রিমোট রিপোজিটরিতে আপনার পরিবর্তনগুলি পুশ করার আগে, আপনার স্থানীয় রিপোজিটরি আপ-টু-ডেট আছে তা নিশ্চিত করতে সর্বদা রিমোট থেকে সর্বশেষ পরিবর্তনগুলি টানুন। এটি দ্বন্দ্ব প্রতিরোধ করতে এবং একটি মসৃণ সহযোগিতার অভিজ্ঞতা নিশ্চিত করতে সহায়তা করতে পারে।
.gitignore আলিঙ্গন করুন : যে ফাইলগুলিকে ট্র্যাক করার প্রয়োজন নেই, যেমন অস্থায়ী ফাইল, আর্টিফ্যাক্ট তৈরি করা বা IDE-নির্দিষ্ট ফাইলগুলিকে বাদ দিতে একটি .gitignore ফাইল ব্যবহার করুন৷ এটি আপনার সংগ্রহস্থলকে পরিষ্কার রাখে এবং অপরিহার্য কোডে ফোকাস করে।
এই দ্রুত টিপস আপনাকে ভার্সন কন্ট্রোল সিস্টেমের আরও কার্যকর ব্যবহার করতে এবং আপনার ওয়ার্কফ্লোকে স্ট্রীমলাইন করতে সাহায্য করতে পারে। যদিও তারা আপনাকে রাতারাতি সংস্করণ নিয়ন্ত্রণের মাস্টার নাও করতে পারে, তবে আপনি আপনার দক্ষতা শিখতে এবং পরিমার্জন করতে থাকলে তারা আপনার জন্য একটি শক্ত ভিত্তি হিসাবে কাজ করতে পারে।
🤔 বেশ চটকদার। যদিও এই টিপসগুলি আপনাকে সম্পূর্ণ সংস্করণ নিয়ন্ত্রণের দক্ষতার দিকে নিয়ে যাবে না, তারা এখন আরও কার্যকরী - এবং সামগ্রিকভাবে, তারা বেশ শালীন, এটি নতুনদের জন্য পরামর্শ বিবেচনা করে।
কিছু পয়েন্ট একটু অস্পষ্ট থেকে যায়, উদাহরণস্বরূপ, "শাখা ব্যবহার করুন"। সংস্করণ নিয়ন্ত্রণ শাখা কৌশল একটি বিস্তৃত, জটিল বিষয়, এবং এই নির্দিষ্ট পয়েন্টটি আরও অন্বেষণ ছাড়া খুব কার্যকর নয়। যাইহোক, এটি একটি একক বহিঃপ্রকাশ এবং অন্তত আরও গভীর গবেষণার জন্য একটি স্পষ্ট সূচনা পয়েন্ট প্রদান করে।
সামগ্রিকভাবে, খারাপ না!
💬 আপনি আমাকে "পরিষ্কার কোড পড়ুন" একটি টিপ দিয়েছেন। কিন্তু আমি কিভাবে জানব, একজন শিক্ষানবিশ হিসাবে, কোন কোডটি পরিষ্কার? এটা কিভাবে চিনবেন? এবং কোথায় পড়তে যেমন কোড খুঁজে পেতে?
🤖 একজন শিক্ষানবিশ হিসাবে, প্রথম নজরে পরিষ্কার কোড চিনতে অসুবিধা হতে পারে। যাইহোক, ভাল-লিখিত কোডের অনুশীলন এবং এক্সপোজারের সাথে, আপনি পরিষ্কার কোড কী গঠন করে তা বোঝার বিকাশ শুরু করবেন। এখানে কিছু সাধারণ নির্দেশিকা এবং পরিষ্কার কোডের বৈশিষ্ট্য রয়েছে:
পঠনযোগ্যতা : পরিষ্কার কোড পড়া এবং বোঝা সহজ। এটির একটি পরিষ্কার কাঠামো, অর্থপূর্ণ পরিবর্তনশীল এবং ফাংশনের নাম এবং সঠিক ইন্ডেন্টেশন রয়েছে। এটি সামঞ্জস্যপূর্ণ নামকরণের নিয়মাবলী এবং শৈলী নির্দেশিকা অনুসরণ করে।
মডুলারিটি : ক্লিন কোড ছোট, ফোকাসড ফাংশন বা পদ্ধতিতে সংগঠিত হয় যা একটি একক কাজ সম্পাদন করে। প্রতিটি মডিউলের একটি একক দায়িত্ব থাকা উচিত এবং কোডটি যৌক্তিক উপাদানগুলিতে বিভক্ত হওয়া উচিত।
রক্ষণাবেক্ষণযোগ্যতা : পরিচ্ছন্ন কোড পরিবর্তন করা, প্রসারিত করা এবং রিফ্যাক্টর করা সহজ। এটি সদৃশ কোড (DRY নীতি) এড়িয়ে চলে এবং পরিবর্তন করা হলে বাগ প্রবর্তনের সম্ভাবনা কমানোর জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করে৷
ডকুমেন্টেশন এবং মন্তব্য : ক্লিন কোড মন্তব্যের সাথে ভালভাবে নথিভুক্ত করা হয়েছে যা কোডের উদ্দেশ্য এবং কার্যকারিতা ব্যাখ্যা করে। মন্তব্যগুলি সংক্ষিপ্ত হওয়া উচিত এবং শুধুমাত্র এমন তথ্য প্রদান করা উচিত যা কোডটি পড়ার সাথে সাথেই স্পষ্ট নয়।
দক্ষতা : ক্লিন কোড কার্যক্ষমতা এবং সম্পদ ব্যবহারের ক্ষেত্রে দক্ষ। এটি অপ্রয়োজনীয় জটিলতা এড়ায়, এবং ব্যবহৃত অ্যালগরিদম এবং ডেটা স্ট্রাকচারগুলি হাতের সমস্যার জন্য উপযুক্ত।
পড়তে এবং শিখতে পরিষ্কার কোড খুঁজে পেতে, নিম্নলিখিত উত্সগুলি বিবেচনা করুন:
জনপ্রিয় ওপেন সোর্স প্রোজেক্ট : গিটহাবের মতো প্ল্যাটফর্মে অনেক জনপ্রিয় ওপেন সোর্স প্রোজেক্টের উচ্চ-মানের কোড রয়েছে যা একাধিক অবদানকারীর দ্বারা পর্যালোচনা এবং পরিমার্জিত হয়েছে। ক্লিন কোডের উদাহরণ খুঁজতে আপনি যে ভাষা বা কাঠামোর সাথে কাজ করছেন তাতে প্রকল্পগুলি অন্বেষণ করুন।
কোডিং সেরা অনুশীলন : আপনি যে প্রোগ্রামিং ভাষার সাথে কাজ করছেন তার জন্য কোডিং সেরা অনুশীলনের নিবন্ধ, বই বা কোর্সগুলি দেখুন। এই সংস্থানগুলি প্রায়শই পরিষ্কার কোডের উদাহরণ এবং কীভাবে এটি লিখতে হয় তার নির্দেশিকা প্রদান করে।
কোড রিভিউ : আপনার দলের মধ্যে কোড রিভিউতে অংশগ্রহণ করুন বা অভিজ্ঞ ডেভেলপার বা পরামর্শদাতাদের কাছ থেকে মতামত নিন। তাদের প্রতিক্রিয়া এবং পরামর্শগুলি পর্যবেক্ষণ করা আপনাকে পরিষ্কার কোড চিনতে এবং আপনার নিজস্ব কোডিং শৈলী উন্নত করতে শিখতে সাহায্য করতে পারে।
কোডিং চ্যালেঞ্জ : LeetCode, HackerRank, বা Codewars এর মতো ওয়েবসাইটগুলি অন্যান্য ব্যবহারকারীদের দ্বারা জমা দেওয়া সমাধানগুলির সাথে কোডিং চ্যালেঞ্জগুলি অফার করে৷ এই সমাধানগুলি পর্যালোচনা করা আপনাকে সমস্যা সমাধানের বিভিন্ন পন্থা শিখতে সাহায্য করতে পারে এবং কোডের উদাহরণগুলি পরিষ্কার করতে আপনাকে প্রকাশ করতে পারে।
মনে রাখবেন, পরিষ্কার কোড সনাক্ত করা এবং লেখা একটি দক্ষতা যা সময়ের সাথে সাথে বিকাশ লাভ করে। আপনি যত বেশি কোড পড়বেন এবং লিখবেন, আপনি পরিষ্কার কোড শনাক্ত করতে এবং আপনার নিজের কাজের সেরা অনুশীলনগুলি গ্রহণে আরও দক্ষ হয়ে উঠবেন।
🤔 এবারে ফল মেহের সেরা।
উত্তরের প্রথম অংশটি মূলত বলে যে আপনি পরিষ্কার কোডকে চিনতে পারেন যে এটি পরিষ্কার কোড হওয়ার খুব উচ্চ-স্তরের এবং অস্পষ্ট নীতিগুলি মেনে চলে (যার মধ্যে কিছু, মন্তব্য এবং দক্ষতার মতো, এমনকি বিতর্কিত - উদাহরণস্বরূপ, করে কোডটি সত্যিই পরিষ্কার এবং পঠনযোগ্য হতে দক্ষ হতে হবে?)
দ্বিতীয় অংশটিও হিট-অর-মিস। কোড রিভিউতে অংশগ্রহণ করা একটি ভালো উপদেশ (যদিও এটি আরও জোর দেওয়া যেতে পারে যে আপনার শুধুমাত্র আপনার কোড পর্যালোচনা করা উচিত নয় বরং আরও সিনিয়র ডেভেলপারদের কোড থেকে শেখার জন্য আপনি নিজে যতটা রিভিউ করতে পারেন)। কোডিং সেরা অনুশীলনের উপর বই এবং নিবন্ধ পড়া ভাল উপদেশ কিন্তু বরং স্পষ্ট, খুব বেশি মূল্য যোগ করে না। ওপেন সোর্স প্রজেক্ট এবং কোডিং চ্যালেঞ্জ ওয়েবসাইটগুলি থেকে শেখা সম্ভাব্য চমত্কার উপদেশ, কিন্তু এই উত্সগুলিতে প্রায়শই খারাপ কোডও থাকে এবং এটি এখনও কোনও শিক্ষানবিস কীভাবে চিনতে পারে কোনটি তা নিয়ে সমস্যা সমাধান করে না।
আসুন একটু গভীরভাবে খনন করার চেষ্টা করি:
💬 আপনি বলেছিলেন যে পড়তে এবং শিখতে পরিষ্কার কোড খুঁজে পেতে আমি জনপ্রিয় ওপেন-সোর্স প্রকল্পগুলি দেখতে পারি, কারণ তাদের অনেকেরই উচ্চ-মানের কোড রয়েছে৷ কিন্তু ওপেন সোর্স প্রজেক্টের অনেকেরই কম মানের কোড আছে। আমি কিভাবে চিনতে পারি কোন ওপেন-সোর্স প্রকল্পটি উচ্চ-মানের এবং কোনটি নয়?
🤖 আপনি ঠিক বলেছেন যে সমস্ত ওপেন-সোর্স প্রকল্পে উচ্চ-মানের কোড থাকে না। উচ্চ-মানের ওপেন-সোর্স প্রকল্পগুলি সনাক্ত করতে, আপনি নিম্নলিখিত বিষয়গুলি বিবেচনা করতে পারেন:
জনপ্রিয়তা : GitHub-এর মতো প্ল্যাটফর্মে প্রচুর সংখ্যক তারকা, কাঁটা বা পর্যবেক্ষক সহ প্রকল্পগুলি সাধারণত ইঙ্গিত করে যে প্রকল্পটি সম্প্রদায়ের দ্বারা সমাদৃত। যদিও জনপ্রিয়তা কোড মানের গ্যারান্টি নয়, এটি একটি সহায়ক সূচক হতে পারে।
সক্রিয় রক্ষণাবেক্ষণকারী এবং অবদানকারী : উচ্চ-মানের প্রকল্পগুলিতে সক্রিয় রক্ষণাবেক্ষণকারী এবং অবদানকারীদের একটি বিভিন্ন গ্রুপ থাকে। নিয়মিত কমিট, আপডেট এবং বাগ ফিক্সের ইতিহাস সহ প্রকল্পগুলি খুঁজুন। একটি সুস্থ সংখ্যক অবদানকারী এবং একটি সক্রিয় সম্প্রদায় একটি লক্ষণ হতে পারে যে কোডবেস ক্রমাগত উন্নত এবং পরিমার্জিত হচ্ছে।
পরিষ্কার ডকুমেন্টেশন : ভাল-নথিভুক্ত প্রকল্পগুলি প্রায়শই একটি ভাল রক্ষণাবেক্ষণ করা এবং উচ্চ-মানের কোডবেসের লক্ষণ। ব্যাপক README ফাইল, API ডকুমেন্টেশন, এবং ব্যবহার নির্দেশিকা সহ প্রকল্পগুলি সন্ধান করুন৷
কোড পর্যালোচনা এবং আলোচনা : প্রকল্পের পুল অনুরোধ এবং সমস্যা আলোচনা পরীক্ষা করুন. একটি স্বাস্থ্যকর প্রকল্পের পুঙ্খানুপুঙ্খ কোড পর্যালোচনা, গঠনমূলক প্রতিক্রিয়া, এবং উন্নতি এবং বাগ সংশোধনের বিষয়ে সক্রিয় আলোচনা থাকবে।
কোডিং মান মেনে চলা : উচ্চ-মানের প্রকল্পগুলি সাধারণত কোডিং মান এবং তারা যে প্রোগ্রামিং ভাষা বা কাঠামো ব্যবহার করে তার জন্য সর্বোত্তম অনুশীলন অনুসরণ করে। সামঞ্জস্যপূর্ণ বিন্যাস, নামকরণ প্রথা এবং কোড সংগঠনের জন্য দেখুন।
স্বয়ংক্রিয় পরীক্ষা : স্বয়ংক্রিয় পরীক্ষার একটি শক্তিশালী স্যুট সহ প্রকল্পগুলি নির্দেশ করে যে রক্ষণাবেক্ষণকারীরা কোডের গুণমান সম্পর্কে যত্নশীল এবং সফ্টওয়্যারটি প্রত্যাশা অনুযায়ী কাজ করে তা নিশ্চিত করে। একটি উচ্চ পরীক্ষার কভারেজ এবং একটি অবিচ্ছিন্ন ইন্টিগ্রেশন (CI) পাইপলাইন সহ প্রকল্পগুলি সন্ধান করুন যা প্রতিটি প্রতিশ্রুতি বা পুল অনুরোধে পরীক্ষা চালায়।
নির্ভরশীলতা এবং লাইসেন্সিং : উচ্চ-মানের প্রকল্পগুলিতে তাদের সংশ্লিষ্ট লাইসেন্স সহ নির্ভরশীলতার একটি স্পষ্ট তালিকা থাকা উচিত। এটি দেখায় যে রক্ষণাবেক্ষণকারীরা প্রকল্পের আইনী এবং অপারেশনাল দিকগুলিতে মনোযোগ দেয়।
উচ্চ-মানের ওপেন-সোর্স প্রকল্পগুলির জন্য আপনার অনুসন্ধান শুরু করতে, আপনি গিটহাবের অসাধারণ তালিকার মতো কিউরেটেড তালিকা বা সংগ্রহগুলি অন্বেষণ করতে পারেন, যা বিভিন্ন ডোমেনে জনপ্রিয় এবং সুপরিচিত প্রকল্পগুলিকে একত্রিত করে৷ এছাড়াও আপনি শিল্পে সুপরিচিত স্বনামধন্য সংস্থা বা বিকাশকারীদের দ্বারা রক্ষণাবেক্ষণ করা প্রকল্পগুলিও দেখতে পারেন।
মনে রাখবেন যে এমনকি উচ্চ-মানের প্রকল্পগুলিতে এমন ক্ষেত্র থাকতে পারে যা উন্নত করা যেতে পারে। আপনি আরও অভিজ্ঞতা অর্জন করার সাথে সাথে আপনি পরিষ্কার কোড সম্পর্কে আরও ভাল বোঝার বিকাশ ঘটাবেন এবং বিভিন্ন ওপেন-সোর্স প্রকল্পের গুণমান মূল্যায়ন করতে আরও ভালভাবে সজ্জিত হবেন।
🤔 এই উত্তর আবার শালীন। যদিও প্রোজেক্টের জনপ্রিয়তা বা ভাল ডকুমেন্টেশনের মত বিষয়গুলি অগত্যা পরিষ্কার কোডের গ্যারান্টি দেয় না, সেগুলির সবগুলিই একটি শালীন প্রক্সি - সম্ভবত আপনি যতটা পেতে পারেন ততটা ভাল, যেহেতু কখনও কঠিন গ্যারান্টি নেই। এবং কিউরেটেড তালিকাগুলি দেখার পরামর্শ, যদিও সেগুলি অগত্যা গুণমানের পরিবর্তে জনপ্রিয়তার সূচক বেশি, একটি যুক্তিসঙ্গত সূচনা পয়েন্ট প্রদান করে৷ এটি সম্পূর্ণ নয়, যেমন GitHub অনুসন্ধান, উদাহরণস্বরূপ, জনপ্রিয় এবং সক্রিয় ওপেন-সোর্স প্রকল্পগুলি খুঁজে পাওয়ার একটি দুর্দান্ত উপায়। কিন্তু বিবেচনা করে যে পরিষ্কার কোড স্বীকৃতি একটি খুব বিষয়গত এবং কঠিন বিষয়, এই উত্তরটি বেশ ঠিক আছে। আমরা আরও গভীর খনন করার চেষ্টা করতে পারি - কিন্তু আমার এই পোস্টের দৈর্ঘ্য নিয়ন্ত্রণে রাখা দরকার...
💬 আপনি আমাকে যে লাইফহ্যাক দিয়েছেন তার মধ্যে একটি হল আমার কোডের উদ্দেশ্য এবং কার্যকারিতা ব্যাখ্যা করার জন্য অর্থপূর্ণ মন্তব্য লেখা। আপনি এই বিস্তারিত করতে পারেন? কোন মন্তব্য আপনি অর্থবহ বলে মনে করেন? আমার সব কোডের জন্য সবসময় মন্তব্য লিখতে হবে? কখন এবং কিভাবে মন্তব্য লিখতে হয় সে সম্পর্কে কোন ভাল হিউরিস্টিক আছে কি?
🤖 অর্থপূর্ণ মন্তব্য লেখা পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য কোড লেখার একটি গুরুত্বপূর্ণ দিক। অর্থপূর্ণ মন্তব্যগুলিকে অতিরিক্ত অন্তর্দৃষ্টি এবং প্রসঙ্গ প্রদান করা উচিত যা কোডটি পড়ার সাথে সাথেই স্পষ্ট নয়। কখন এবং কীভাবে মন্তব্য লিখতে হবে সে সম্পর্কে এখানে কিছু নির্দেশিকা রয়েছে:
জটিল বা অ-স্পষ্ট কোড ব্যাখ্যা করুন : যদি কোডের একটি অংশ জটিল হয় বা প্রকল্পের সাথে অপরিচিত কারো জন্য বোঝা কঠিন হতে পারে, একটি মন্তব্য বাস্তবায়নের পিছনে যুক্তি ব্যাখ্যা করতে বা অ্যালগরিদমের একটি উচ্চ-স্তরের ওভারভিউ প্রদান করতে সাহায্য করতে পারে।
নথি অনুমান এবং সীমাবদ্ধতা : যদি আপনার কোড নির্দিষ্ট অনুমানের উপর নির্ভর করে বা সীমাবদ্ধতা থাকে, তাহলে মন্তব্যে সেগুলি নথিভুক্ত করা গুরুত্বপূর্ণ৷ এটি ভবিষ্যতের সমস্যা বা ভুল বোঝাবুঝি প্রতিরোধ করতে সাহায্য করে যখন অন্য কেউ (বা এমনকি আপনি) পরে কোডটি সংশোধন করে।
ফাংশন এবং ক্লাসের উদ্দেশ্য স্পষ্ট করুন : ফাংশন এবং ক্লাসের নাম বর্ণনামূলক হওয়া উচিত, একটি সংক্ষিপ্ত মন্তব্য একটি ফাংশন বা ক্লাসের উদ্দেশ্য এবং প্রত্যাশিত আচরণের অতিরিক্ত প্রসঙ্গ প্রদান করতে পারে।
ওয়ার্কঅ্যারাউন্ড বা হ্যাকস ব্যাখ্যা করুন : যদি আপনাকে একটি নির্দিষ্ট সমস্যা বা সীমাবদ্ধতা মোকাবেলার জন্য একটি ওয়ার্কআরাউন্ড বা হ্যাক করতে হয়, তাহলে একটি মন্তব্যে যুক্তি এবং সম্ভাব্য পার্শ্ব প্রতিক্রিয়া নথিভুক্ত করুন। এটি ভবিষ্যতের রক্ষণাবেক্ষণকারীদের কাজের উদ্দেশ্য বুঝতে এবং সম্ভাব্য উন্নতিগুলি বিবেচনা করতে সহায়তা করে।
রেফারেন্স এক্সটার্নাল রিসোর্স : যদি আপনার কোড একটি নির্দিষ্ট রিসোর্সের উপর ভিত্তি করে হয়, যেমন একটি রিসার্চ পেপার, অ্যালগরিদম, বা থার্ড-পার্টি লাইব্রেরি, সেই রিসোর্সের রেফারেন্স সহ একটি মন্তব্য অন্তর্ভুক্ত করুন। এটি প্রকল্পে কাজ করা অন্যদের জন্য প্রসঙ্গ এবং পটভূমি তথ্য প্রদান করতে সাহায্য করে।
এখানে কার্যকর মন্তব্য লিখতে কিছু টিপস আছে:
সংক্ষিপ্ত হোন : মন্তব্য সংক্ষিপ্ত এবং বিন্দু হতে হবে। দীর্ঘ অনুচ্ছেদ লেখা বা কোড থেকে ইতিমধ্যে পরিষ্কার তথ্য পুনরাবৃত্তি এড়িয়ে চলুন.
মন্তব্যগুলি আপ-টু-ডেট রাখুন : আপনার কোডের বিকাশের সাথে সাথে আপনার মন্তব্যগুলি প্রাসঙ্গিক থাকে তা নিশ্চিত করুন। আপনি কোড পরিবর্তন করার সময় মন্তব্য আপডেট করুন, যাতে তারা সঠিকভাবে কোডের বর্তমান অবস্থা প্রতিফলিত করে।
স্পষ্ট উল্লেখ করা এড়িয়ে চলুন : কোডটি কী করে তা কেবল পুনরুদ্ধার করে এমন মন্তব্য লেখা থেকে বিরত থাকুন। প্রসঙ্গ, যুক্তি বা ব্যাখ্যা প্রদানের উপর ফোকাস করুন যা কোড থেকে অবিলম্বে স্পষ্ট নয়।
কোডের প্রতিটি লাইন বা ব্লকের জন্য আপনাকে মন্তব্য লিখতে হবে না। পরিবর্তে, মন্তব্য করার উপর ফোকাস করুন যেখানে এটি মান যোগ করে এবং কোড বোঝার উন্নতি করতে সহায়তা করে। মনে রাখবেন যে ভাল-লিখিত কোড বেশিরভাগই স্ব-ব্যাখ্যামূলক হওয়া উচিত, তাই প্রয়োজনে পরিপূরক করার জন্য মন্তব্য ব্যবহার করে স্পষ্ট এবং অভিব্যক্তিপূর্ণ কোড লেখাকে অগ্রাধিকার দিন।
🤔 এটি সত্যিই একটি ভাল উত্তর। যদিও প্রাথমিক টিপটি ছিল অস্পষ্ট এবং ব্যাখ্যার জন্য বাম জায়গা যা সম্ভাব্যভাবে অতিরিক্ত মন্তব্যের দিকে নিয়ে যেতে পারে, এই বিস্তৃতিটি এটিকে ভালভাবে স্পষ্ট করে এবং এটি 100% পয়েন্টে। ঠিক এভাবেই আমি মন্তব্য লেখার পরামর্শ দেব।
এখানে এবং সেখানে কয়েকটি ছোট ভুল ছিল, কিন্তু সামগ্রিকভাবে ফলাফল আশ্চর্যজনকভাবে ভাল।
কিছু উত্তর খুব সুস্পষ্ট ছিল, কিছু মতামতের বিষয় ছিল, কিন্তু তাদের কোনটিই স্পষ্টভাবে ভুল ছিল না এবং তাদের মধ্যে অনেকগুলি সত্যিই ভাল এবং কর্মযোগ্য ছিল। আমি উপদেশের প্রশস্ততা এবং বৈচিত্র্য পছন্দ করেছি - এতে আপনার স্বাস্থ্যের যত্ন নেওয়ার বিষয়ে একটি বিন্দুও অন্তর্ভুক্ত ছিল!
প্রাথমিক উত্তরগুলি অগভীর - ফলো-আপ প্রশ্নের মাধ্যমে অন্তত কয়েকটি স্তরের গভীরে না গিয়ে তারা খুব বেশি মূল্য আনে না। তবে আপনি যদি এই প্রবাহে অভ্যস্ত হন তবে এটি বেশ মসৃণভাবে যায়। আপনি আগাম তথ্যের লোড নিয়ে অভিভূত হবেন না বরং আপনি ধীরে ধীরে অন্বেষণ করতে পারেন, শুধুমাত্র আপনার আগ্রহের বা বুঝতে পারেন না এমন বিষয়গুলির গভীরে ডুব দিতে পারেন৷ আমি এমনকি বলতে চাই যে এটি একটি বাস্তব, মানব পরামর্শদাতার সাথে কাজ করার মতো, উদাহরণস্বরূপ, একটি বই পড়া বা একটি কোর্স দেখা।
একজন সত্যিকারের মানব মেন্টরের তুলনায় ChatGPT এর সাথে কাজ করার সময় আপনার উপর একটু বেশি বোঝা রয়েছে। একজন মানুষ আপনার কণ্ঠস্বর, মুখের অভিব্যক্তি এবং শারীরিক ভাষা থেকে আরও বেশি ইঙ্গিত নিতে পারে এবং আপনার আচরণের প্রতিক্রিয়ায় আরও সক্রিয়ভাবে আলোচনা চালাতে পারে। ChatGPT-এর সাথে কাজ করার সময়, তবে, এটি শুধুমাত্র আপনার সরাসরি প্রশ্নগুলি বেছে নিতে পারে - তাই অভিজ্ঞতার গুণমান শুধুমাত্র আপনার পরামর্শদাতার অভিজ্ঞতা বা মানসিক বুদ্ধিমত্তার উপর নয়, স্পষ্ট প্রশ্ন তৈরি করার আপনার ক্ষমতার উপর নির্ভর করে। বলা হচ্ছে, সঠিক প্রশ্নগুলি কীভাবে জিজ্ঞাসা করতে হয় তা শেখা খুব কঠিন নয়, এবং আপনি যদি তা করেন তবে আপনি এখনও আপনার মিথস্ক্রিয়া থেকে প্রচুর মূল্য পেতে পারেন।
একজন শিক্ষানবিশের জন্য, জটিল অংশটি অগভীর থেকে গভীর উত্তরে যাওয়ার জন্য ঠিক কী সম্পর্কে জিজ্ঞাসা করতে হবে তা খুঁজে বের করতে পারে। আপনার যদি প্রদত্ত অঞ্চলে গভীর দক্ষতা না থাকে তবে এটি প্রায়শই স্পষ্ট থেকে অনেক দূরে। যাইহোক, আরও সাধারণ "ড্রিল-ডাউন" প্রশ্ন জিজ্ঞাসা করতে শেখার মাধ্যমে এটি প্রশমিত করা যেতে পারে, যেমন "আপনি কেন এই উত্তরটি বেছে নিয়েছেন?", "আপনি কি আরও বিস্তারিত বলতে পারেন?", "এই উত্তরটি কি সত্যিই সেরা?", " এটিই কি একমাত্র ভাল উত্তর?", "ভাল এবং অসুবিধাগুলি কী?", "বিকল্পগুলি কী হবে?", "আরো কি অনুরূপ কৌশল রয়েছে?", ইত্যাদি। এই ধরনের প্রশ্ন জিজ্ঞাসা করতে ভাল হওয়া আপনার প্রতিদিনের কাজের ক্ষেত্রেও আপনাকে উপকৃত করবে: প্রয়োজনীয়তাগুলি পরিষ্কার করার সময়, আপনার সতীর্থদের সাথে চিন্তাভাবনা করার সময়, বা এমনকি একজন সত্যিকারের মানব পরামর্শদাতার সাথে কাজ করার সময় - তাই এটি নিজেই একটি সার্থক প্রশিক্ষণ।
সংক্ষেপে বলতে গেলে, এই ধরনের সীমিত পরীক্ষা থেকে আমি যা পর্যবেক্ষণ করতে পারি, আমি অবশ্যই এটি সুপারিশ করব ।
এটি একজন সত্যিকারের মানব পরামর্শদাতার জন্য একটি সম্পূর্ণ বিকল্প নয়, তবে আপনার যদি একটিতে অ্যাক্সেস না থাকে তবে আপনার অবশ্যই ChatGPT চেষ্টা করা উচিত। এবং এমনকি যদি আপনার একজন পরামর্শদাতা থাকে, তবুও এটি উভয়েরই উপকার করতে পারে, কারণ ChatGPT অনেক বেশি সহজলভ্য। আপনি ChatGPT দিয়ে শুরু করতে পারেন (এবং এটি আরও ঘন ঘন ব্যবহার করতে পারেন) এবং তারপরে আপনার আসল পরামর্শদাতাকে এর উত্তরগুলি মূল্যায়ন করতে, সেগুলিকে প্রসারিত করতে বা আরও সহজতর ক্ষেত্রে ChatGPT-এর সাথে লেগে থাকার সময় আরও জটিল ক্ষেত্রগুলিতে গভীরভাবে অনুসন্ধান করতে বলুন৷
একটি প্রদত্ত অঞ্চলে কী শিখতে হবে তার একটি উচ্চ-স্তরের ওভারভিউ দিয়ে শুরু করা, জমির সামগ্রিক স্তর বোঝার জন্য - এবং তারপরে নির্বাচিত বিষয়গুলির গভীরে খনন করতে ChatGPT ব্যবহার করা উপকারী হতে পারে। অনেক ভালো সম্পদ আছে যা এই ধরনের একটি ওভারভিউ প্রদান করে, যেমন roadmap.sh বা আমি যে গাইডটি লিখছি ।