"নিখুঁত প্রোগ্রামার সিন্ড্রোম" ভাঙ্গার উপায় [বন্ধ]


16

আমি সম্ভবত একমাত্র এমন নই যা এইভাবে অনুভব করে। তবে আমার কাছে আমি "পারফেক্ট প্রোগ্রামার সিন্ড্রোম" বলতে চাইছি যা অনেকে বলতে পারে পারফেকশনিস্ট হিসাবে একই তবে এই ক্ষেত্রে এটি প্রোগ্রামিংয়ের ডোমেনে। তবে এই জাতীয় সিনড্রোমের জন্য প্রোগ্রামিংয়ের ডোমেনটি কিছুটা সমস্যাযুক্ত।

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

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


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

আমি সেখানে একমত নই .. আমি বিশ্বাস করি যে ব্যাকগ্রাউন্ড যাই হোক না কেন কিছুটা ভিন্ন ভিন্ন ডিগ্রীতে এইভাবে অনুভব করতে পারে।
রুশিনো

2
যদিও প্রত্যেকে একই লক্ষণগুলি অনুভব করতে পারে, কারণটি আসলে অনেকগুলি পরিবর্তিত হয় এবং এইভাবে "নিরাময়" হয়।
back2dos

কোনও নিখুঁত প্রোগ্রামার নেই। আপনি তার দক্ষতা উন্নত করতে গতি এবং ইচ্ছা আছে যে অভিজ্ঞ এবং বিস্তারিত কেন্দ্রিক একটি পেতে পারেন। - আপনি তাদের "
Go getters

"আমাকে অবশ্যই নিয়মগুলি মেনে চলতে হবে" ... এবং আপনার সমস্যা আছে। "সেরা অনুশীলনগুলি" নিয়মের নিয়ম নয়, তারা সম্মিলিত অভিজ্ঞতার ভিত্তিতে পরামর্শ। আপনি যদি তাদের অবিচ্ছেদ্য নিয়ম হিসাবে বিবেচনা করে থাকেন তবে আমি আপনার স্ট্রেসের মূল দেখতে পাচ্ছি।
গ্র্যান্ডমাস্টারবি

উত্তর:


21

অগ্রাধিকার দিন । আগেরটা আগে. কি গুরুত্বপূর্ণ তা মনোযোগ দিন।

আপনার অগ্রাধিকার পৃথক হতে পারে, তবে সাধারণভাবে আপনার এগুলি যত্ন নেওয়া উচিত:

  • সঠিক কোড
  • রক্ষণাবেক্ষণযোগ্য কোড
  • পরিষ্কার কোড
  • সহজ, মার্জিত কোড
  • দক্ষ কোড

সেই ক্রমেও হতে পারে। তবে প্রথম বিষয়টি সবচেয়ে গুরুত্বপূর্ণ is এটি ছাড়া কোড অকেজো। এমন প্রোগ্রামের সাথে আপনি কী করবেন যা সঠিকভাবে কাজ করে না?

এটি কার্যকর করুন, আপনার যে সমস্যাগুলি সমাধান করতে হবে তা সমাধানের জন্য বাকি সমস্ত কিছুই অপ্রাসঙ্গিকের কাছে। অবশ্যই আমিও এতে ভুগছি। আমি যা শিখি তা হ'ল কেবল কোন কাজগুলিতে সমাধানগুলিতে মনোনিবেশ করা । যথেষ্ট. এটি কাজের 99%।

আপনি ভাল কোড মত কিছু সম্পর্কে ভাবতে চাইতে পারেন । এটা কি? লোকেরা কী ধরনের এটি লিখেন? কিভাবে ভাল কোড লিখবেন ? এটা খুবই সাধারণ. কোড লিখুন যা কাজ করে । ওয়ার্কিং কোড ভাল কোড। আর সব কিছু পরে আসে।

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

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

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


9
সেরা অপ্টিমাইজেশন হ'ল এটি যা আপনার প্রোগ্রামকে কর্মহীন অবস্থায় থেকে কার্যক্ষম অবস্থায় নিয়ে আসে।
ডেডালনিক্স

1
@deadalnix নিখুঁত পরামর্শ! এটি এত সহজ, এত স্পষ্ট, তবুও সমস্ত কোডেই সত্য।
zxcdw

7
+1 টি। আমি উপরের রক্ষণাবেক্ষণ সঠিক রাখার বিবেচনা করব । রক্ষণাবেক্ষণযোগ্য কোডের সমস্ত মানের পরে এটি সঠিক করা যুক্তিসঙ্গত প্রচেষ্টার বিষয়;)
back2dos

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

2
@ এইচএলজিইএম প্রকৃতপক্ষে নির্দিষ্ট ক্ষেত্রগুলিতে অগ্রাধিকারগুলি সম্পূর্ণ বিপরীত হতে পারে। উদাহরণস্বরূপ আমি মাঝে মাঝে লিখি এবং বিপরীত প্রকৌশলী সমাবেশ কোড যা চরম আকার এবং গতির সীমাবদ্ধতা (ডেমোসেসিন পণ্য) এর অধীনে লেখা হয়েছিল written এই জাতীয় পরিস্থিতিতে, এমনকি প্রোগ্রামের সঠিকতা নিয়েও প্রশ্ন উঠতে পারে - কোডের অনেকগুলি ত্রুটিযুক্ত কাজ খুব ভালভাবে কাজ করতে দেখা গেছে (উদাহরণস্বরূপ, ভুল কোডের উপর ভিত্তি করে সুন্দর ভিজ্যুয়াল এবং অডিও শিল্পকর্মগুলি)।
zxcdw

6

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

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


+1 আমি অংশটি পছন্দ করি .. অন্যথায় প্রমাণিত না হলে "আপনার প্রথম প্রয়াস" যথেষ্ট ভাল "।"
রুশিনো

দ্বিতীয় এবং upvated। অবশ্যই সোনার পরামর্শ!
zxcdw

4

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

শেষ পর্যন্ত, অন্য যে কোনও কিছুর চেয়ে গুরুত্বপূর্ণ যা সফ্টওয়্যারটি কাজ করে এবং ব্যবহার করা যায়। এবং আপনি এটি শেষ না করলে এটি ঘটবে না।

আমি আর্টের সাথে কোডিংয়ের তুলনা পছন্দ করি না তবে এই ক্ষেত্রে এটি কাজ করে: শিল্পীরা ( বিশেষত লেখকরা ) প্রায়শই একটি টুকরোয় কাজ চালিয়ে যেতে চান কারণ এমন কিছু আছে যা নিখুঁত নয়। তবে পরিপূর্ণতার কী মূল্য রয়েছে যখন এটি প্রকাশকে অনির্দিষ্টকালের জন্য বিলম্ব করে এবং এভাবে কাউকে কাজের প্রশংসা করতে বাধা দেয় ?


2

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

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


1

অন্যদিকে এটি করুন।

"এর চেয়ে ভাল আর কী করা যায়?" "কী আমাকে উপুড় করে?" কিছুই না হওয়া পর্যন্ত।


4
"যখন কোনও কিছুই যুক্ত করা যায় না তখন কোনও বই শেষ হয় না, তবে যখন এ থেকে কিছুই সরিয়ে ফেলা যায় না।" - কোড সম্পূর্ণ
জোনাথন

এটি আসলে সেন্ট-এক্সুপুরির একটি প্যারাফ্রেজ, মজার বিষয় কীভাবে তিনি কম বিশ্বাসযোগ্যতা ধরে রাখতে পারেন তবে কোড কমপ্লিট এখানে।
scrwtp

1

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


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

1

এটি কাজ করুন, এটি পরিষ্কার করুন, একে সলিড করুন, পরিবেশন করুন।

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

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

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


0

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

গ্রহণের পদ্ধতিটি হল আপনার পেশাগত জীবনে "এটি সম্পন্ন করা"। বিতরণ এবং এগিয়ে যান। ব্যক্তিগত প্রকল্পগুলির জন্য আপনার নিখুঁততা সংরক্ষণ করুন।


আমি বুঝতে পারি তবে আমি বিশ্বাস করি এই "কালো বা সাদা "টিকে আমরা বিবেচনা করতে পারি না।
রুশিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.