প্রতিটি কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের কোন প্রোগ্রামিং ভাষা শেখানো উচিত?


13

প্রোগ্রামিং ল্যাঙ্গুয়েজের কোন ভাষা (বা ক্লাস (যেমন উপমা হিসাবে), পাশাপাশি সেই শ্রেণীর একটি প্রস্তাবিত ভাষা) প্রতিটি কম্পিউটার বিজ্ঞানের শিক্ষার্থীকে আপনার অনুসারে কলেজে পড়ানো উচিত? আপনার উত্তর প্রেরণা; কেন ভাষা? এর থেকে কী ব্যবহার হবে? এটি কোন ধারণাগুলি শেখায় (এক্স ভাষার চেয়ে ভাল)?

দ্রষ্টব্য / স্পষ্টকরণ : এই প্রশ্নটি কম্পিউটার বিজ্ঞানের বিষয়ে, সফটওয়্যার ইঞ্জিনিয়ারিংয়ের উপর ভারী ফোকাস সহ, বিশুদ্ধ কম্পিউটার বিজ্ঞান নয়। এটি এখনও কম্পিউটার বিজ্ঞানের শিক্ষা এবং সফটওয়্যার ইঞ্জিনিয়ারিং শিক্ষার নয় যা ফোকাস।


13
পিএসুইডো-কোড সিএসের জন্য পর্যাপ্ত হওয়া উচিত।
Jé ক্যু

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

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

2
তাদের সব । যদি সময় সীমাবদ্ধ থাকে তবে বর্ণমালার বর্ণগুলিতে শুরু করুন। এ +, বি, সি, সি #, ডি, ই, এফ #, জে, কে, কিউ, আর, টি ... আসলে এটি কোনও খারাপ তালিকা নয়।
জেসি মিলিকান

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

উত্তর:


21

আমি একটি তালিকা দিতে যাচ্ছি:

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

শিক্ষার্থীরা উন্মুক্ত করা উচিত সব এগুলোর পারাদিগ্ম্স অন্ততপক্ষে। শুধু দু-একটি নয়।

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


আমি সত্যিই চাই যে আমার স্কুলটি এক্সএমএল এবং এসকিউএল সম্পর্কে আরও বিশদে চলে গিয়েছিল, আমাদের একটি ক্লাস ছিল যা উভয়ের মধ্যে চলে গেছে এবং এটি ছিল ভয়াবহ।

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

4
আহ, এছাড়াও কিছু কঠোরভাবে কার্যকরী, যেমন হ্যাসেল এবং এরলং খুব শিক্ষামূলক
জাভিয়ের

1
এসকিউএল তালিকা করার জন্য +1। কমপক্ষে আপনি রিলেশনাল বীজগণিত সম্পর্কে ভাবছেন।
Jé ক্যু

1
আমি পরিচালনাহীন ওও, সি ++ এবং জাভা থেকে আলাদা করে রাখতাম । যদিও আমি ইউএনআই থেকে কখনই সি ++ ব্যবহার করি নি ম্যালোক, গাদা এবং স্ট্যাক সম্পর্কে না জেনেও আপনি কখনই বুঝতে পারবেন না ওও।
চিহ্নমনেল

45

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


2
+1 আমার প্রোগ্রামিং ভাষার ক্লাসটি খুব সহজেই আমার নেওয়া সবচেয়ে মূল্যবান শ্রেণি ছিল।
শুভকোডমোনকি

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

1
কিছুটা সম্পর্কিত: youtube.com/watch?v=Ps8jOj7diA0 স্ট্যানফোর্ডের ইউটিউবে তাদের সম্পূর্ণ প্রোগ্রামিং প্যারাডিজम्स ২০০ le বক্তৃতা রয়েছে।
ইনাইমথি

4
তালিকায় ঘোষণাপত্র যুক্ত করুন (প্রোলগ)। এছাড়াও কিছু ভাষা স্পষ্টতই সমান্তরাল (ওকাম) am সমান্তরালতা কীভাবে কাজ করে তা শিক্ষার্থীদের শেখানো ভাল (কেউ এটিকে সঠিক করে না)।
মার্টিন ইয়র্ক

1
@ মার্টিন ইয়র্ক: প্রোলোগ হ'ল লজিক প্রোগ্রামিং ল্যাঙ্গুয়েজ, যা এক ধরণের ঘোষণামূলক ভাষা। (আমি কার্যকরী প্রোগ্রামিং ভাষাও ঘোষণামূলক, সাধারণভাবে বলতে হয় এই উল্লেখ।)
mipadi

33

আমি মনে করি একটি সুষম সিএস শিক্ষার্থীকে 4 টি প্রোগ্রামিং ভাষার প্রতিটি ধরণের একটি ভাষা শেখানো উচিত:

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

অবজেক্ট-ওরিয়েন্টেড - আপনার বাছাই করুন। সি # / জাভা / পাইথন / রুবি / ইয়াদদা ইয়াদদা ইয়াদদা da এই ধরণের শেখানো দরকার কেবল কারণ আধুনিক ব্যবসায় এটি চায়।

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

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


6
আপনি সেই তালিকায় প্রোটোটাইপিকাল যুক্ত করতে চাইতে পারেন - উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট।
stusmith

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

1
প্রোলোগের জন্য +1। আমি এর ব্যবহারিক ব্যবহার দেখেছি এবং আমি নিয়মিত আলগোরিদিম প্রোটোটাইপ করতে ব্যবহার করি।
ফ্রেড ফু

@larmans - আমি এটির ব্যবহার সম্পর্কে শুনতে আগ্রহী। আমি বেশ কয়েক বছরে এটি স্পর্শ করতে পারি নি তাই এর ভাল ব্যবহারিক প্রয়োগগুলিতে আমি অস্পষ্ট। হাইটপেপারস বা অনুরূপ নিবন্ধগুলির কি আপনার কোনও লিঙ্ক আছে?
জোয়েল ইথারটন

বেশ কয়েকটি বড় ইউরোপীয় সংস্থার (যেমন ফরাসী রেলওয়ে সংস্থা এসএনসিএফ, যদি আমি সঠিকভাবে প্রত্যাহার করি; আমি চেষ্টা করব এবং একটি রেফারেন্স খুঁজে পাব ) এর মাধ্যমে ইলেক্ট্রিয়ালভাবে ব্যবহৃত ওপেন সোর্স প্রোলোগ উপভাষাটি ECLiPSe ( eclipseclp.org ) দেখুন ।
ফ্রেড ফু

6

প্রতিটি স্নাতক সিএস মেজরদের জানা উচিত # 1 টি ভাষা হ'ল একটি দুর্দান্ত কাজ অবতরণের জন্য তাদের সম্ভাবনা সর্বাধিক করে তোলে। এটি সময়ের সাথে সাথে পরিবর্তন করতে চলেছে, এটি দুর্দান্ত কাজের পৃথক সংজ্ঞা অনুসারে পরিবর্তিত হতে চলেছে, এবং এটি ভৌগলিক অঞ্চলে পৃথক হতে চলেছে।

এই মুহুর্তের জন্য, আমি বলব যে ইংরেজী হল প্রতিটি সিএস মেজরকে জানা উচিত # 1 ভাষা (এটি অবশ্যই অঞ্চল অনুসারে পরিবর্তিত হয়))


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

2
ইংরেজির জন্য +1। কম্পিউটার ভাষা বাস্তবায়নের বিশদ।
ওয়াট বার্নেট

+1 টি। যদি কেউ ইংরেজি ভাল (গুলি) শিখতে পারেন তবে তিনি ম্যানুয়ালগুলি ভালভাবে শিখতে পারেন। আমি ইংরেজি ভাল জানতাম। আমার কোনও ভাষা শেখার সমস্যা হয়নি।
শিপলু মোকাদ্দিম

4

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

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

অন্য বাণিজ্য হিসাবে - আমি মনে করি সিএস প্রোগ্রামগুলির বাজারের বিশিষ্ট ভাষাতে শিক্ষার্থীদের প্রশিক্ষণ দেওয়া দরকার। যে কোনও সময়ে, আমি মনে করি যে বেশিরভাগ কাজের ক্ষেত্রে ২-৩ টি ভাষার গুরুতর গুরুত্ব রয়েছে। আমি মনে করি যে একটি স্কুল শিক্ষার্থীদের কমপক্ষে একটিতে উপলব্ধ প্রশিক্ষণের গভীরতার সাথে সেই ভাষার মধ্যে 3 টির মধ্যে 2 শেখার সুযোগ সরবরাহ করার জন্য শিক্ষার্থীদের কাছে .ণী।


4

কোনও সিএস শিক্ষার্থীর জন্য, সিএস ধারণাগুলির সাথে আলোচিত হওয়া প্রোগ্রামিংয়ের ভাষাগুলি সন্ধান করুন closely আমি পরামর্শ দেব:

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

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


3

yacc

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


2

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


1
আমি উভয়ের সাথে একমত হওয়ার পরেও আপনি কিছু যুক্তি উপস্থাপন করতে চাইতে পারেন (আমি আরও উল্লেখ করব যে এগুলি আপনার একমাত্র ভাষা হিসাবে জানা বিশেষত কার্যকর হবে না)।
ইনাইমথি

2

আমি মনে করি ভাষা যতটা গুরুত্বপূর্ণ মানুষ বিশ্বাস করে তেমন গুরুত্বপূর্ণ নয়।

হ্যাঁ, আপনাকে কীভাবে প্রোগ্রাম ইত্যাদি করতে হবে তা জানতে হবে, তবে অনেক দুর্দান্ত প্রোগ্রামাররা তাদের বাস্তব-বিশ্বের অভিজ্ঞতাগুলি আঁকানো স্ব-প্রশিক্ষিত হয় যা বিকাশকালে তাদের সহায়তা করে।

শিক্ষার্থীরা কীভাবে রিয়েল-ওয়ার্ল্ডে প্রোগ্রামিং করতে পারে এবং কেবল বইয়ের পদ্ধতিগুলি নয় সে সম্পর্কে কিছু পাঠ দিয়েছিল, এটি তাদের আরও "বৃত্তাকার" করে তুলবে এবং আমার বিকল্পে আরও ভাল বিকাশকারী / স্নাতকদের তৈরি করবে।

আমি বিশ্ববিদ্যালয় ছেড়ে কাজ শুরু করার পরে প্রোগ্রামিং এবং সফটওয়্যার বিকাশ সম্পর্কে আরও শিখেছি!


2

আসলে কি এটা কোন ব্যাপার ?

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

আপনি যে ভাষাগুলি জানেন তা সেগুলি নয় যা আপনাকে একটি ভাল বা খারাপ প্রোগ্রামার করে তোলে, আপনি কীভাবে এটি ব্যবহার করতে পারেন। এর জন্য প্রোগ্রামারগুলির মূলত দুটি বিভাগ রয়েছে:

  1. যেগুলি মূলত একটি ভাষা শিখতে মনোনিবেশ করে। সর্বাধিক গুরুত্বপূর্ণ ভাষা এবং এটি কীভাবে ব্যবহার করা যায় তা। চূড়ান্ত সময়ে তারা কোডের প্রতিটি সামান্য স্পেককে সর্বোত্তম করে তোলে এবং প্রায়শই অস্পষ্ট বৈশিষ্ট্যগুলি কেবল কারণ তারা ব্যবহার করতে পারে সেগুলি ব্যবহার করবে।

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

আমার মতে আপনার দুজনেরই দরকার। # 1 স্বল্প মেয়াদী দক্ষতা সরবরাহ করবে এবং যখন বুদ্ধিমানের সাথে নির্বাচিত হবে তখন এইচআর গেটগুলির মাধ্যমে আপনাকে সহজ করবে কিন্তু # 2 আপনার সমস্ত কেরিয়ার আপনার সাথে থাকবে এবং আপনাকে একজন প্রোগ্রামার হিসাবে সংজ্ঞায়িত করবে।

# 2 গাইডেন্স সরবরাহ করবে এবং আপনার চিন্তার ট্রেনটিকে সমস্যার সমাধানের সমাধানের দিকে নিয়ে যাবে তবে 1 ছাড়াই এটি একটি ধারণা থেকে যায়, চিরতরে ভ্যাপারওয়ার স্বর্গের অঙ্গগুলিতে ভাসমান (অথবা আপনি যেদিকে থেকে তাকান তার উপর নির্ভর করে)।

# 1 আপনাকে আসল ওয়ার্কিং সিস্টেমে ধারণাগুলি বাস্তবায়নের মাধ্যম দেয় তবে 2 ছাড়াই আপনার সিস্টেমগুলি ক্যান্সারহীন আকারহীন দানবদের দিকে ঝুঁকবে।


হ্যাঁ, এটা গুরুত্বপূর্ণ। আপনি যে ভাষাটি শিখেন প্রথম ভাষাটি আপনার মস্তিষ্ককে ভবিষ্যতের ভাষার দিকে কীভাবে দেখবে সে সম্পর্কে moldালাই করে।

1

আমি বিশ্বাস করি আপনি নিজের প্রশ্নের উত্তর আংশিকভাবে দিয়েছেন answered

প্রকৃত গুরুত্ব হ'ল শিক্ষার্থীদের বেশ কয়েকটি দৃষ্টান্তের সংস্পর্শে আসার সুযোগ দেওয়া, প্রকৃত ভাষাগুলি কোনও বিষয় নয়।

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

এত নিবিড়ভাবে:

ওওপি:। নেট বা জাভা

অন্যান্য পদ্ধতির বিষয়ে শিক্ষার্থীদের সচেতন করার জন্য কমপক্ষে 1 টি অতিরিক্ত প্রোগ্রামিং দৃষ্টান্ত

কার্যকরী: লিস্প?


ক্রিয়ামূলক, না, দয়া করে, এলআইএসপি নয়। বরং: হাসেল
মারিওটোমো

1

সমাবেশ ভাষা এবং মাইক্রোকোড। কোনও সিএস শিক্ষার্থীর বুলিয়ান স্টেট মেশিন এবং সর্বশেষতম উচ্চ-স্তরের ক্রিয়ামূলক / ওওপি / ইত্যাদির মধ্যে বিমূর্ততার সমস্ত ভিত্তি স্তরগুলি বোঝা উচিত। প্রোগ্রামিং ভাষার দৃষ্টান্ত।

বেসিক বা লোগো বা স্কুয়াক (ইত্যাদি), যদি তারা কখনও ছোট বাচ্চাদের কিছু কম্পিউটার সাক্ষরতা শেখাতে পারে তা বুঝতে সক্ষম হতে চায়।

ফোর্টরান, কোবল এবং লিস্প, যদি তারা প্রোগ্রামিং ভাষার ইতিহাস বুঝতে চান এবং আধুনিক পদ্ধতিগুলি ঠিক করে তবে আসল সমস্যাগুলি কী।


এবং সি, সুতরাং আপনি যে সমস্ত ওপেন সোর্স কোড অধ্যয়ন করতে পারবেন তার 90% বোঝে।
ডানফোল্ড

1

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


1

স্ট্যাক-ওরিয়েন্টেড / কনটেস্টেটিভ ভাষাগুলি ভুলবেন না! তারা প্রকৃত মন-বাঁক হতে পারে। তারা ছোট, সহজে বোঝার আদিম ব্যবহার করে জটিলতা তৈরির উপর জোর দেয়। আপনি এগুলিকে পয়েন্টফ্রি (বা স্বতন্ত্র) কোড লিখতে ব্যবহার করতে পারেন যা এতটাই পরিস্কার মনে হয়।

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


0

কার্যকরী কিছু, হাস্কেল বা লিস্প আমার প্রথম পছন্দ হবে তবে সম্ভবত এরলং। কার্যকরী ভাষা সত্যিই আপনাকে কীভাবে খুব শক্তিশালী উপায়ে বিমূর্ততা তৈরি করতে শেখায়।


তবে শিক্ষার্থীদের কি এক দৃষ্টান্তের মধ্যে সীমাবদ্ধ থাকতে হবে? স্কালার মতো কার্যকরী ওওপি ভাষাগুলি সম্পর্কে কী?
Anto

1
অবশ্যই না, আমি ধরে নিচ্ছিলাম যে অন্যান্য লোকেরা তাদের জন্য পাইপ আনবে!
জ্যাচারি কে

0

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

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


0

সুডোকোড.

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

সরল ভাষায় লিখুন, তবে কোডটির মতো কাঠামো করুন এবং ফর্ম্যাট করুন। তারপরে যে কোনও ভাষা তাদের পছন্দ মতো ভাষায় এটি প্রয়োগ করতে পারে।

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

"সিউডোকোডে কেবল অ্যালগরিদম লিখুন"

"ওটা কী?"

সিউডোকোডের সুবিধা হ'ল নন-প্রোগ্রামিং স্টেকহোল্ডাররা এটি বুঝতে পারে। আমি আপনাকে প্রস্তাব দিচ্ছি না যে আপনি বিএ এবং ব্যবহারকারীরা আপনার কোডটি প্রমাণ করছেন, তবে কোনও নন-প্রোগ্রামার যখন প্রয়োজনীয় অ্যালগরিদমের বোঝাপড়া করে তখন এটি সাহায্য করতে পারে। Psuedocode ব্যাখ্যা করার প্রয়োজনীয়তা for (int i = 0; i < j; i++)এবং মূলত বয়লারপ্লেট জার্গন কী তা সরিয়ে দেয় ।


অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজই যথেষ্ট শক্তিশালী যে আসল কোড এবং সিউডো-কোডের মধ্যে সামান্য পার্থক্য রয়েছে। প্রকৃত প্রোগ্রামিং ভাষার কোন সিনট্যাক্স উপাদানগুলির সাথে আপনি আপত্তি করছেন?
কেভিন cline

ক্লাইন @kevin - আমি সিনট্যাক্স উপাদানের সঙ্গে আরামদায়ক যে আমি জানি নই - এটা বেশী যে আমি যে আমি জানি না এর পারে আপত্তি। অবশ্যই আমি সেগুলি বোঝাতে সক্ষম হয়েছি, তবে মূল কথাটি হ'ল সিউডোকোডের সেই সমস্যাগুলি থাকা উচিত নয় (সত্যিকার অর্থে সিউডোকোডের মতো দেখায় এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ আমি এখনও দেখতে পাচ্ছি না)
ર્ક ব্রডহર્স্ট

0

সি

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

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


0

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

শিক্ষার্থীরা প্রোগ্রামিংয়ের একটি খুব ব্যবহারিক ভূমিকা পায়।


-1

বস্তুর সাথে কিছু। তারা এটি ভালভাবে শিখেছে তা নিশ্চিত করুন।

আমি যে কোনও সময় সি # এর জন্য একটি দুর্দান্ত জাভা প্রোগ্রামার ভাড়া নেব, তবে সত্যিকারের কোডটি কখনও লেখেনি এমন কাউকে নিয়োগ দেওয়ার বিষয়ে আমার অনেক সন্দেহ হবে

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