নবীন প্রোগ্রামারদের সাহায্য করার জন্য উপযুক্ত শব্দভাণ্ডার


9

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

উদাহরণস্বরূপ: কেউ হয়ত কোনও ফাংশন লিখতে পারে তবে বুঝতে পারে না কেন এটি কার্যকর করা হয় না, বুঝতে পেরে তারা এটিকে কল করতে ভুলে গিয়েছিল। আমি যদি এর মতো বাক্যাংশ ব্যবহার করি "(make a) call (to) the function/it"এবং "pass it the.."আমি ফাঁকা চেহারা পাই।

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

ভোকাবুলারির এমন কি আরও কিছু টুকরা রয়েছে যা নবজাতক প্রোগ্রামারদের সাহায্য করার জন্য আরও ভাল (এর জন্য আরও ভাল)? নাকি এটি কোনও যোগাযোগের বিষয় নয়?


5
স্প্রেডশিট ব্যবহারকারীরা কীভাবে কোনও ফাংশন কল করতে জানেন। অনেকে নিজের লেখা লিখতে পারেন। এখানে মূলত কিছু ভুল আছে।
জেফো

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

7
কিসের অপেক্ষা? আপনি যে প্রোগ্রামারগুলির সাথে কাজ করছেন তারা জানেন না যে 'ফাংশন কল করা' এবং যুক্তিগুলি পাস করার অর্থ কী? এগুলি যতটা বেসিক আপনি তাদের ছবি আঁকানো এবং বিড়াল এবং কুকুরের সাথে রূপক ব্যবহার না করে যেতে পারেন। এটি একটি যোগাযোগের সমস্যা ছাড়িয়ে গেছে এবং দুর্ভাগ্যক্রমে জ্ঞানের অভাবের সাথে এটি একটি সমস্যা হতে পারে। আমি আপনার প্রশ্নটি আবার পড়েছি এবং মনে হচ্ছে তারা মূলত একটি সূচনা স্তরের কোর্স নিয়েছে এবং এটিই?
wkl

3
@ অ্যান্ডিবার্স: এই জাতীয় ছাত্ররা দ্বিতীয় বর্ষে কীভাবে পেল? আশা করি তারা পরীক্ষায় উত্তীর্ণ হবে না এবং সফ্টওয়্যার বিকাশের বাইরে কোনও চাকরি বেছে নেবে।
ডক ব্রাউন

3
সম্ভবত মোজা পুতুলগুলি সহায়তা করবে
ম্যাটড্যাভি

উত্তর:


15

তাদের যথাযথ পদগুলি অবশেষে শিখতে হবে, যত তাড়াতাড়ি তত ভাল।

এগুলি সঠিকভাবে ব্যবহার করুন এবং যখনই কোনও ফাঁকা তাকাবেন them কেবল সঠিক সংকেত প্রেরণের চেষ্টা করুন, তারা যে কিছুই বুঝতে পারে না সে সম্পর্কে জিজ্ঞাসা করা ঠিক - কেবলমাত্র বোকা প্রশ্নগুলিই আপনি জিজ্ঞাসা করেন না।


2
আমি প্রায় ঠিক একই প্রতিক্রিয়া পোস্ট করতে চলেছিলাম তখন আপনার বোঝা। :) +1
টম স্কোয়ারেস

ব্যাখ্যাগুলি তাদের স্তরে নেবেন না, তাদের স্তরটি উপরে আনুন।
বেন্ট করুন

2

সাধারণভাবে

যখন কোনও ব্যক্তি আপনাকে বোঝে না, আপনার দুটি বিকল্প আছে:

  1. ব্যক্তি যা জানে বা না জানে তার অনুসারে শব্দভান্ডারটি মানিয়ে নিন,

  2. যে ব্যক্তিকে সে বোঝে না সেগুলি তাকে ব্যাখ্যা করুন।

প্রথম কেসটি ভালভাবে কাজ করে যখন ব্যক্তি ইতিমধ্যে প্রযুক্তিগত শব্দভাণ্ডারটি বেশ ভালভাবে জানেন তবে যথেষ্ট নয়, বা আপনার ডোমেনে নেই।

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

আপনার সুনির্দিষ্ট ক্ষেত্রে, আপনি খুব সহজেই প্রথমটিকে চয়ন করতে পারেন: "ফাংশনে কল করুন" কোনও সহজ উপায়ে সংস্কার করা যায় না। একটি কল একটি কল। আপনি এই আরও সহজ করতে পারবেন না।

এর অর্থ হ'ল আপনাকে দ্বিতীয় উপায়টি বেছে নিতে হবে: প্রতিটি প্রযুক্তিগত শব্দটি সেই ব্যক্তিকে ব্যাখ্যা করুন।

  1. হয় কোনও অভিধান বা উইকিপিডিয়ায় ব্যক্তিকে নির্দেশ করুন , যা মৌলিক ধারণা এবং পরিভাষার জন্য খুব ভাল কাজ করে।

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

  2. অথবা নিজের কথায় ব্যাখ্যা করুন

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

আপনার বিশেষ ক্ষেত্রে

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

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


1

ফাংশনগুলির পরিবর্তে সাবরুটাইনগুলি দিয়ে শুরু করুন । তাদের বলুন যে একটি প্রোগ্রাম হ'ল নির্দেশাবলীর একটি তালিকা, কম্পিউটারকে কীভাবে কিছু করতে হয় তা জানানোর একটি রেসিপি । এবং এটি যে একের পর এক নির্দেশ কার্যকর করা হচ্ছে (সমান্তরালভাবে কিছু পদক্ষেপ করার সম্ভাবনা সহ তবে পরে সে সম্পর্কে আরও কিছু)।

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

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

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

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

অন্যদিকে আর্গুমেন্টগুলি হ'ল আসল তথ্য (মান) যা আমরা এই পরামিতিগুলির জন্য সরবরাহ করি।

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

ফাংশন এবং সাবরুটাইনগুলির মধ্যে পার্থক্য হিসাবে ( পদ্ধতিগুলিও বলা হয় ) সাধারণ পার্থক্যটি হ'ল একটি ফাংশন একটি নির্দিষ্ট মান গণনা করার জন্য বলা হয় যা এটি কার্যকর করার ফলস্বরূপ ফিরে আসে, যখন পদ্ধতিগুলি কেবল মজাদার জন্য কার্যকর করা হয়;) একে তাদের "পার্শ্ব প্রতিক্রিয়া" - কেবলমাত্র তালিকা থেকে সম্পাদিত ক্রিয়াকলাপের জন্য।

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

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

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

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