অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং শেখার আগে আমাদের অবশ্যই প্রক্রিয়াজাতীয় প্রোগ্রামিং শিখতে হবে [বন্ধ]


10

আমি এখন একটি আইটি বিশ্ববিদ্যালয়ে চতুর্থ বর্ষে আছি এবং আমি যখন এই বিষয়ে আমার অধ্যাপকের সাথে কথা বলি তখন তিনি আমার মতামত প্রত্যাখ্যান করেন এবং আমাকে খুব ভারী সমালোচনা করেন (আমার বিশ্ববিদ্যালয়ে, আমাদের সি (এএনএসআই) শেখানো হচ্ছিল (কার্যবিধিতে) প্রোগ্রামিং ক্লাস - বিশ্ববিদ্যালয়ে প্রথম বর্ষে) সি ++ এর আগে (২ য় বর্ষে ওওপি ক্লাসে) এবং অন্যান্য ...

তবে 13 বছর বয়সে আমার ভাইকে শেখানো হয়েছিল, আমার দ্বারা জাভা প্রথমে এবং অন্য কিছুই নয়। এখন, তিনি প্রায় সমস্ত কিছু করতে পারেন যা একজন সাধারণ ২ য় বর্ষের শিক্ষার্থী জাভা দিয়ে করতে পারে।

আপনাদের পক্ষে, আমি জানতে চাই যে আপনি কেন আমাদের মনে হয় প্রথমে পদ্ধতিগত প্রোগ্রামিং শেখানো উচিত।


8
কারণ এসেমব্লারের কাছে বস্তু নেই।

9
এটি এমন যে কেন আমাদের কোনও ক্যালকুলেটর ব্যবহার করতে শেখার আগে সঠিকভাবে গণনা করতে শেখানো উচিত।

22
কারণ অবজেক্ট ওরিয়েন্টেড ডিজাইন ত্রুটিযুক্ত। প্রোগ্রামগুলি এমন আচরণগুলির একটি সংগ্রহ যা ডেটাতে কাজ করে on অবজেক্টগুলি প্রায়শই অহেতুক জটিলতার পরিচয় দেয়। "প্রোগ্রামগুলি কীভাবে ডিজাইন করবেন: প্রোগ্রামিং এবং কম্পিউটিংয়ের একটি ভূমিকা" পড়ুন।

8
অন্য কারও হিসাবে বলা হয়েছে, " ওওপি দিয়ে নতুন প্রোগ্রামারগুলিকে বিভ্রান্ত করবেন না": prog21. دادgum.com/93.html - মূলত যা সমস্ত ওওপি নতুন প্রোগ্রামারদের মৌলিক বিষয়গুলি শেখানোর পথে পাচ্ছে। আপনি তাদের একই সময়ে দুটি কঠিন ধারণাটি শিখিয়ে চলেছেন।
জন রিপলে

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

উত্তর:


23

দ্রুত সংক্ষিপ্তসার:

  1. কারণ বাস্তব বিশ্বে, অচিরেই বা পরে, আপনাকে প্রসেসালাল কোড সহ কাজ করতে হবে।

  2. কারণ কার্যনির্বাহী ভাষাগুলি কেবলমাত্র বিকল্প হিসাবে পরিবর্তে অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজে একটি এক্সটেনশন বা একটি পরিচিতির মতো কাজ করতে পারে।

  3. উত্তরটির পরিপূরক ২। কারণ ওসিওপি প্রসিড্যুয়াল প্রোগ্রামিংয়ের চেয়ে জটিল, সুতরাং প্রথমে প্রসিডুয়াল প্রোগ্রামিং শেখা ভাল।

  4. কারণ বাস্তব বিশ্বে প্রোগ্রামাররা সমস্যা সমাধানের বিভিন্ন উপায়ের সাথে কাজ করে এবং একত্রিত করে একে একে "মাল্টিপারডিজিম প্রোগ্রামিং", কেবল একটি একক দৃষ্টান্ত নয়।

  5. বেশিরভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি বহু স্তরের, কোনও স্তরে এমনকি তাদের ডিজাইনার বা সাধারণ বিকাশকারীরা যদি বিপরীতে বলেন তবে।

  6. [নতুন] কারণ মডিউলার প্রোগ্রামিং যিনি সাধারণত প্রক্রিয়াজাত প্রোগ্রামিংয়ের সাথে মিশ্রিত হন এবং বিভ্রান্ত হন, তাকে ওওপি-তে প্রয়োগ করা যেতে পারে সুতরাং প্রশ্নটি "অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং শেখার আগে আমাদের কেন মডুলার প্রোগ্রামিং শিখতে হবে" হিসাবে পড়তে পারে "

বর্ধিত বোরিং বিবরণ:

পয়েন্ট 1 খুব স্পষ্ট, আরও ব্যাখ্যা নয়।

পয়েন্ট 2, ক্লাস, উত্তরাধিকার, পলিমॉर्फিজম, ইন্টারফেসস, ইত্যাদি ...

পয়েন্ট 3, আমি প্রজেক্টিয়াল পাস্কাল কোডটি শেখার আগে আমি ওজেক্ট ওরিয়েন্টেড পাস্কাল শিখতে পেরেছিলাম, সেখানে পৌঁছে আমি বলেছিলাম: "দেখুন, ক্লাসগুলি ছোট ছোট পদ্ধতিগত প্রোগ্রামগুলির মতো ... ... এবং আপনি তাদের একে অপরের সাথে কথা বলতে পারেন, দুর্দান্ত !!! "।

আমি সরল সি থেকে সি প্লাস প্লাসে যাওয়া লোকদের কাছ থেকেও একই কথা শুনেছি।

পয়েন্ট 4, বেশিরভাগ সময় প্রোগ্রামাররা বেশ কয়েকটি প্রোগ্রামিং কৌশল বা দৃষ্টান্ত বা কোনও সমস্যা সমাধানের উপায়গুলি একত্রিত করে। কার্যকরী, কার্যপ্রণালী, ওওপি, যৌক্তিক।

এমনকি জাভা "খাঁটি ওও" এটি যেমনটি বলে তেমন সরল অবজেক্ট প্রোগ্রামিং নয়।

"স্ট্রাকচার্ড প্রোগ্রামিং" এর পরিবর্তে "প্রসেসিয়াল প্রোগ্রামিং" বলার ক্ষেত্রে +1 পয়েন্ট। বা মডুলার প্রোগ্রামিং। এগুলি গুরুত্বপূর্ণ।

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

আজ আমি বেশ কয়েকটি "খাঁটি" ওও প্রোগ্রামগুলি পড়েছি যা দেখতে "অবজেক্ট ওরিয়েন্টেড স্প্যাগেটি কোড" এর মতো দেখায়, যার অর্থ প্রোগ্রামারটি ওওপি ব্যবহার করেছিল তবে এর কোডটি কোনও গণ্ডগোলের মতো দেখাচ্ছে।

অনেক সময়, আমি একটি ওও কোড পড়তে এবং বলতে পারি যে প্রোগ্রামার ওওপি-র আগে স্ট্রাকচার্ড প্রোগ্রামিং শিখেছে, কারণ কোডটি পরিষ্কার এবং ব্যবস্থাযুক্ত।

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


18

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

এফডাব্লুআইডাব্লু, শেষ পর্যন্ত এটি পরিবর্তন হতে বাধ্য। যখন আমি স্কুল শুরু করি তখন আমরা পাস্কাল এবং পিএল / 1 এ শিখেছি। উন্নত ভাষা ক্লাস না হওয়া পর্যন্ত আমরা সিতে উঠিনি (এটি আমার তারিখের)। আমি স্নাতক স্কুল পর্যন্ত জাভা বাছাই করিনি - এটি এখনও আবিষ্কার হয়নি!


+1 - সেখানে অভিপ্রায়ের এক ধরণের প্যারাডক্স ... "আরও বিমূর্ত এবং বুঝতে আরও কঠিন" :)

10
@ স্পেসেমোসেস - সত্য নয়, বিমূর্ত কিছু তত বেশি আলোচনা করা সহজ, তবে আলোচিত বিষয়গুলির বাস্তবতা উপলব্ধি করা আরও শক্ত।

রাজি, আমি এখন আপনার বক্তব্য দেখতে।
ses011

12

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


3
তবে ফাংশন + রাষ্ট্র = অবজেক্টস
ড্যান ডি

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

1
"সেই সম্প্রদায়ের নকশার নিদর্শনগুলি পাওয়া যায়" - "জাভা সম্প্রদায়" তে ব্যক্তিগত সমস্যার মতো মনে হয় যদি এটি আপনার অবস্থান হয়।
ses011

1
@ ড্যান ডি: অবজেক্ট ওরিয়েন্টেশন কোনও বস্তুতে ফাংশন এবং রাষ্ট্রের সংমিশ্রণের চেয়ে অনেক বেশি ...
মারজান ভেনেমা

4
@ স্পেসেমোসেস: আমার এমন কোনও উন্নয়ন সম্প্রদায়ের সমস্যা আছে যা কেআইএসএস নীতিটি গ্রহণ করে না। কোনও সমস্যার সর্বোত্তম সমাধান হ'ল প্রায়শই সহজ সমাধান।
বিট-ট্যুইডলার

11

আপনি না।

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

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

এর কোনও একক উত্তর নেই কারণ:

  • সি (বা এমনকি সমাবেশ) এর মতো পদ্ধতিগত কিছু দিয়ে শুরু করা ভাল পছন্দ হতে পারে, কারণ কম্পিউটারগুলি কীভাবে কাজ করে তা আপনি শিখেন

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

  • স্কিমের মতো ক্রিয়ামূলক প্রোগ্রামিং দিয়ে শুরু করা ভাল পছন্দ হতে পারে কারণ এটি আপনাকে আরও বিমূর্তভাবে চিন্তা করতে শেখায় (ভেরিয়েবলের পরিবর্তে ফাংশনের ক্ষেত্রে), যা শেষ পর্যন্ত আপনাকে আরও উন্নত প্রোগ্রামার করে তোলে

যদি আপনার শিক্ষক এটিকে ভালভাবে না শেখায়, তবে আপনি কী দিয়ে শুরু করেছিলেন তা আসলে কোনও ব্যাপার নয়; তারা প্রায় অনেক একই হবে।


4
+1 চাপুন এবং আমি বিশ্বাস করতে পারি না যে এটির জন্য আমাকে এতগুলি দুর্বল উত্তর দিয়ে স্ক্রোল করতে হয়েছিল!
জে কে।

আমি আসলে কিছু সময়ের জন্য গণিতের ক্রিয়াকলাপগুলি ছাঁটাইতে সমস্যায় পড়েছিলাম কারণ আমি প্রথমে কিছু কোডিং শিখেছি এবং এমন একটি ফাংশনের ধারণাটি 'কাজগুলি' না করে '' তবে 'আমাকে বিস্মিত করে। : 3
স্টারওয়েভার

6

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


3
+1 অবিকল। প্রতিটি ওওপি পদ্ধতি একটি সংক্ষিপ্ত পদ্ধতিগত প্রোগ্রাম। তুমি কেমন ছোট টুকরা (ধরনের, আক্ষরিক মূল্যবোধ, ভেরিয়েবল, অপারেটর, একত্রিত করতে জানা না থাকলে =অ্যাসাইনমেন্ট if, forবড় টুকরা (পদ্ধতি) মধ্যে, ইত্যাদি), গলি বুঝতে আপনি কি কখনো আশা করতে পারেন। বেশিরভাগ দক্ষতার মতো, খুব স্মার্ট, অনুপ্রাণিত হওয়া এবং / অথবা এক-এক-এক নির্দেশে অ্যাক্সেস থাকা আপনাকে একসাথে একাধিক, সম্পর্কিত বিষয় শিখতে দেয়।
ডেভিড হারকনেস

3

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

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

ওওপি, সি ++ / আপত্তি-সি এর মাধ্যমে একটি কোড সংগঠনের প্যাটার্ন পরিচয় করিয়ে দেয়, যা শিখার জন্য আরও একটি জিনিস। এটি ধারণাগুলি শিখতে আরও কিছুটা কঠিন করে তুলতে পারে।

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

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

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


3

ওওপি অবজেক্টের সাহস প্রক্রিয়াজাতীয় প্রোগ্রামিং দ্বারা তৈরি।

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

আপনি যেভাবেই প্রারম্ভিক ক্লাসে ওওপি শিখছেন না, এটি কেবল বাক্য গঠন হবে - সরাসরি ওওপিতে ঝাঁপিয়ে পড়া বিষয়গুলি ইতিমধ্যে যতটা আঁকড়ে ধরবে (প্রথমে) আরও জটিল করে তুলবে।

ওওপি ক্লাস গঠনের জন্য কিছু ঘোষণামূলক বাক্য গঠন সম্পর্কে নয়, এটি ডেটা স্ট্রাকচার, ডিজাইনের ধরণ, পলিমারফিজম, উত্তরাধিকার এবং রচনা সম্পর্কিত।

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

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

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

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


2

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

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

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


2

আরও কয়েকজন ইতিমধ্যে এই থিমটির উত্তর দিয়েছিলেন, তবে আমি মনে করি এটিকে আরও স্পষ্ট করে বলা ভাল।

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

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


0

এটি সম্পর্কে অত্যধিক ভোঁতা হতে, আমি মনে করি এটির গতি মূলত পুরানো সময়ের প্রত্যাশী পুরানো প্রোগ্রামারদের থেকেই আসে।

অন্য কিছু বলার অপেক্ষা রাখে না আগে, আমি একেবারে না পুরোনো প্রোগ্রামারদের জন্য কোন বিবাদের ধরে রাখুন, তাদের অনেকেই অনেক সহজভাবে হয় amazingly দক্ষ করছে। দুর্ভাগ্যক্রমে কখনও কখনও যারা না হন, যারা ধুয়ে গিয়েছেন এবং সত্যই কখনই প্রোগ্রামিংয়ে শুরু করতে পারেননি..আমরা যখন 'প্রকৃত বিশ্বে' হ্যাক করতে না পারেন তখনই অধ্যাপকগণ sors ( সমস্ত অধ্যাপকই নয় ... তবে ... অনেক)

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


2
আমার একজন শিক্ষক'৯৯ থেকে সি ব্যবহার করছেন, তবে এটি সি'৯৯ আশা করা কোনও মাইক্রোচিপের জন্য ছিল। তারপরে সেখানে অন্য শিক্ষক 'সি ++' ব্যবহার করছেন তবে এসটিএল বা টেম্পলেটগুলি ছাড়াই। তাদের ফাংশন পয়েন্টারগুলির সাথে স্ট্রাক্টও হতে পারে।
এপি-ইনগো

1
ন্যায়সঙ্গতভাবে বলতে গেলে, সাধারণভাবে এসটিএল এবং টেমপ্লেটগুলি প্রবর্তনীয় সি ++ বিষয় নয়। যে কোনও 101-স্তরের প্রোগ্রামিং কোর্সের মূল লক্ষ্যটি কোনও প্রদত্ত সিনট্যাক্সের সীমাবদ্ধতার মধ্যে কীভাবে সু-কাঠামোগত অনুক্রমিক, শর্তসাপেক্ষ এবং পুনরাবৃত্ত যুক্তি তৈরি করতে হয় তা শেখানো। অন্যান্য সমস্ত ভাষার বৈশিষ্ট্যগুলি কেবল সিনট্যাকটিক চিনি যা কোনও ব্যক্তিকে মৌলিক নিয়ন্ত্রণ কাঠামোকে গোষ্ঠীভূত করার পাশাপাশি ডেটাগুলিতে বেঁধে রাখার অনুমতি দেয়।
বিট-টুইডলার

দুটি ডাউনভোটস আউট করুন দেখেছি যে একজন আসছেন = পি আমার কাছে অদ্ভুত, যদিও মতামতটি মূলত একজন প্রবীণ প্রোগ্রামারের কাছ থেকে এসেছিল যিনি আমাকে খারাপ শিক্ষণ থেকে পুনরুদ্ধারে সহায়তা করেছিলেন। @ এপ: আমাদের সিএস ডিপ্ট্টের প্রধান ২০০৪ সালে এক্সডে আমাদের সিওবিএল শেখানোর চেষ্টা করছিলেন (তাঁর 'শিক্ষণ' রীতি নিয়ে আমার সবচেয়ে কম উদ্বেগ, আমি কিছুটা আপত্তি করি না যেহেতু আমি কিছু পয়েন্ট অফ সেলস এ কাজ করতে পারি) মেশিনগুলি লল তবে গিজ ... সিরিয়াসলি?)
গ্যারেট

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

1
@ বিট-টুইডলার: হ্যাঁ, তবে এটি কোনও প্রবর্তনমূলক কোর্স ছিল না। এটি ডেটাবেস ডিজাইনে চতুর্থ বর্ষের উন্নত কোর্স ছিল এবং আমাদের সি ++ ব্যবহার করার কথা ছিল। পূর্ববর্তী কোর্সগুলির সাথে উচ্চতর স্তরের সি ++ অভিজ্ঞতা অর্জন করার পরে এটি কেবল ভুল অনুভব করেছে।
এপেই-ইনাগো

0

আমার জন্য দুটি কারণ: একটি ওও প্রোগ্রামিং পদ্ধতিগত প্রোগ্রামিংয়ের সমস্যাগুলি সমাধান করতে এসেছিল। সুতরাং কিছু পদ্ধতিগত কোডিং লিখে ওওতে একই জিনিসগুলি লিখে পার্থক্যটি বোঝা সহজ করে তোলে।

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


1
"ওও প্রোগ্রামিং পদ্ধতিগত প্রোগ্রামিংয়ের সমস্যাগুলি সমাধান করতে এসেছিল।" এটি লক্ষ্য ছিল, তবে ওও যতগুলি সমস্যা সমাধান করেছে ততই সমস্যা তৈরি করেছে।
বিট-টুইডলার

@ বিট-টুইডলার: খুব বড় গল্প। শিক্ষাগত দিকগুলিতে (বা এটিকে সংকুচিত করে) ফোকাস করা, এটি একটি কেস তৈরি করে: আমাদের যা ছিল তা কীভাবে আমরা এটি আরও ভাল করে
তুলেছি

0

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


1
-1 বিভ্রান্তিকর - যখন আমি একটি থ্রেড দেখতে পেলাম (গুগল অনুসন্ধানের মাধ্যমে) যে দাবি করেছে যে সিএমইউ তাদের প্রথম বছরের সিএস পাঠ্যক্রম থেকে ওওপি ফেলে দিয়েছে এবং এটি কার্যকরী প্রোগ্রামিংয়ের সাথে প্রতিস্থাপন করেছে, সরকারী সিএমইউ পাঠ্যক্রমটি এলিস প্রোগ্রামিং ভাষার সাথে শুরু হয়, যা বস্তু- ওরিয়েন্টেড [দেখুন enr-apps.as.cmu.edu/assets/SOC/CS_SPRING.htm]
স্টিভেন এ। লো

1
@ ডেভিডক 01: (1) উত্তরে সত্যই ভুল দাবী। (২) "এলিস একটি নিখরচায় উপলব্ধ শিক্ষণ সরঞ্জাম যা আলেস.আর.আর.সি.
স্টিভেন এ লো লো

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

1
@ ডেভিডক 01: দুর্দান্ত লিঙ্ক, আপনাকে ধন্যবাদ। ওই নিবন্ধে কমিটির কাগজ থেকে উদ্ধৃত হয়েছে "যদিও শিল্প সফটওয়্যার বিকাশে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (এর অবিচ্ছিন্ন ফর্মগুলিতে) একটি প্রভাবশালী থিম হিসাবে রয়ে গেছে, তবে জাভা-র মতো বস্তু-ভিত্তিক ভাষার ব্যবহার যথেষ্ট জটিলতার পরিচয় দেয় এবং বিভ্রান্ত করে প্রারম্ভিক স্তরে মূল লক্ষ্যগুলি থেকে। প্রাথমিক পর্যায়ে প্রাথমিক বিষয়গুলিতে আরও মনোনিবেশ কেন্দ্রীকরণের জন্য পাঠ্যক্রমের পরে ওও ডিজাইন এবং বাস্তবায়ন পদ্ধতিটির পূর্ণ কভারেজ দেওয়া ভাল বলে মনে হয়। " [জোর আমার] ...
স্টিভেন এ। লো 2

1
@ ডেভিডক 01: আমি অসম্মতিতে রাজি হয়ে খুশি আপনি চাইলে আমাকে প্যাডেন্টিক বলুন, তবে আমার কাছে পরিচিতি স্তরের জোর পরিবর্তন করার এবং "তাদের সম্পূর্ণ ওওপি পাঠ্যক্রমটি ছুঁড়ে ফেলার" মধ্যে একটি উল্লেখযোগ্য পার্থক্য রয়েছে। আমি প্রাথমিকভাবে ক্লাসের পরিধি হ্রাস করার কথা বলি "দ্রুত পরিবর্তন" ;-)
স্টিভেন এ লো।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.