কম্পিউটার বিজ্ঞানের জন্য সি শিখানো কি প্রয়োজনীয়? [বন্ধ]


15

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

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

আমার প্রশ্ন হ'ল সি কম্পিউটার বিজ্ঞানের জন্য একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসাবে প্রয়োজনীয় বা আমরা কেবল আমাদের সিএস-এর সমস্ত সংস্থান সি তে লিখিত আছে? কেউ সি না শিখলে কম্পিউটার বিজ্ঞান শিখতে পারে?


4
এটি সম্পর্কে জোয়েল স্পলস্কির মতামত এখানে দেওয়া হয়েছে: joelonsoftware.com/articles/CollegeAdvice.html এটি আলোচনাযোগ্য , তবে আমার মনে হয় তাঁর বক্তব্য রয়েছে।
ডক ব্রাউন

2
পিউরিস্টরা যুক্তি দেখিয়েছিলেন যে কম্পিউটার বিজ্ঞান কম্পিউটার সম্পর্কে নয়, যা প্রোগ্রামিং ভাষাগুলি অপ্রয়োজনীয় করে।
blrfl

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

অবাস্তবতা? এটি বিশ্ববিদ্যালয় থেকে স্বতঃ-সংশোধনের চূড়ান্ত হওয়ার কথা ছিল নাকি এটি কালো যাদুবিদ্যার কিছু স্কুল? আমি অদেখা বিশ্ববিদ্যালয়টি জানি, যদিও: [
হরিণ হান্টার

উত্তর:


31

আমি এখানে প্রবাহের বিরুদ্ধে যাচ্ছি এবং হ্যাঁ বলছি, আপনাকে সি শিখতে হবে আমি অন্যান্য উত্তরগুলির সাথে সত্যই একমত, তবে আপনি খুব দৃ you় বক্তব্য দিয়েছেন যে

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

(জোর আমার)

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

তদুপরি, সি ভাষার পক্ষে তেমন বড় নয়। আপনি যদি কম্পিউটার বিজ্ঞানের সমস্ত বিষয়গুলি সত্যই জানতে চান তবে আপনার উচিত এবং 'মেহ' বলতে হবে, 'আরও একটি ভাষা কী?'


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

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

12

একটি দীর্ঘ সময়ের জন্য, কম্পিউটার বিজ্ঞানের উচ্চতর পেশার পরিবর্তে একটি বিজ্ঞান হিসাবে উচ্চতর সময়, একটি ভাষার জন্য কয়েকটি সীমিত পছন্দ ছিল যা সমস্ত বিভিন্ন বিশ্ববিদ্যালয় ব্যবহার করেছিল এমন সমস্ত সিস্টেমে চালিত হয়েছিল।

এখন পর্যন্ত, বিশ্ববিদ্যালয়গুলিতে ইউনিক্স সিস্টেম ব্যবহার করার প্রবণতা ছিল। সুবিধামত, এই সি এক জনের নামে প্রোগ্রাম পুনরায় হয়েছিল কোন মেশিনে সি শেখার দিয়ে শুরু করতে পারে, এবং শেষ পর্যন্ত সি এ বাড়িতে UNIX সোর্স কোড ঢোকা, ছাত্র যেমন Borland টার্বো সি Windows এ, বা একটি সি কম্পাইলার ব্যবহার করতে পারে MPW একটি উপর ম্যাক - এটি সর্বত্র কাজ করেছে।

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

কিছু পুরানো বিদ্যালয় ফোর্টরান শিখেছে, তবে আবার উচ্চতর স্তরের সিএস ক্লাস (ফোর্ট্রান এআই তত্ত্ব? করণীয় তবে বেদনাদায়ক) শেখাতে সক্ষম এমন একটি শক্তিশালী ভাষা ছিল না।

এবং তাই, একটি দীর্ঘ সময়ের জন্য সি পছন্দ ছিল।

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


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


রেকর্ডের জন্য, এআই প্রশিক্ষণ traditionতিহ্যগতভাবে 70 এর এবং 80 এর দশক, এলআইএসপি এর মাধ্যমে সি এর ডিমের সহচরের সাথে করা হয়েছিল, তবে উত্তরটি মাথায় রয়েছে।
jwrush

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

12

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

যদিও কম্পিউটার বিজ্ঞান ধারণাগুলি সম্পর্কে, যা কোনও নির্দিষ্ট প্রোগ্রামিং ভাষা নির্বিশেষে শিখতে পারে, এমন কিছু ক্ষেত্র রয়েছে যা সি শিখার মাধ্যমে বা সেই ক্ষেত্রটি সি ব্যবহার করে শেখার মাধ্যমে আরও ভালভাবে বোঝা যেতে পারে which

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

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

  • অপ্রত্যক্ষ্যতার। আপনি পয়েন্টার নিয়ে কাজ না করে সি করতে পারবেন না। পয়েন্টারগুলি আপনাকে দ্বি-স্তরের উপর চিন্তা করতে বাধ্য করে এবং এটি আপনার বিমূর্ততা দক্ষতা প্রসারিত করে।

সি জ্ঞানের কিছু প্রযুক্তিগত সুবিধাও রয়েছে:

  • আন্তঃ ভাষা আন্তঃব্যবহার্যতা। আপনি আপনার পাইথন প্রকল্পে একটি দুর্দান্ত রুবি মডিউল সংহত করতে চান (এখানে দুটি স্বেচ্ছাচারী ভাষার বিকল্প করুন)। সম্ভাবনা হ'ল এটি করার একমাত্র উপায় হ'ল সি মাধ্যমে, কারণ উভয় ভাষারই সিতে একটি বিদেশী ইন্টারফেস রয়েছে because

  • রচনা সম্পাদনা সমালোচনা সফ্টওয়্যার। এটি করতে নিম্ন স্তরের যাওয়া বাদ দেওয়া যায় না।


আমি বলছি না যে প্রতিটি প্রোগ্রাম সি তে লেখা উচিত তবে সি আপনাকে জ্ঞানের জন্য সহায়তা করতে পারে যা আপনি যে ভাষায় প্রোগ্রাম করেন না কেন তা কার্যকর।


পয়েন্টার পাটিগণিত অপারেটিং সিস্টেমগুলি বোঝার জন্য গুরুত্বপূর্ণ কারণ যেহেতু বাড়ে। যেমন কেন গাদা এবং স্ট্যাকগুলি বিভিন্ন হয় কেন ভার্চুয়াল মেমরি ভাল বা খারাপভাবে কার্য সম্পাদন, কেন কিছু লুপ, দ্রুত অন্যদের তুলনায় কাজ করে ইত্যাদি
মাইকেল Shopsin

6

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

টিএল; ডিআর : আমার মতে, সি সহজ, ভাল সি পঠনযোগ্য এবং বেটিং বিটগুলির মধ্যে একটি নির্দিষ্ট আনন্দ পাওয়া যায়।

সি সহজ

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

সরল সুন্দর

সি আরকেন নয়

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

bool kthread_freezable_should_stop(bool *was_frozen)
{
    bool frozen = false;

    might_sleep();

    if (unlikely(freezing(current)))
        frozen = __refrigerator(true);

    if (was_frozen)
        *was_frozen = frozen;

    return kthread_should_stop();
}

ফাংশনটির মাঝামাঝি সময়ে "কারেন্ট জমে যাওয়ার সম্ভাব্য ইভেন্টে ফ্রিজটি জিজ্ঞাসা করুন আসলে কী হিমশীতল ঘটেছে"। ডাঃ সিউস আরও ভাল লিখতে পারতেন না।

পঠনযোগ্য সুন্দর

সি স্বচ্ছ

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

for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
        ++char_ptr)

if (*char_ptr == '\0')
    return char_ptr - str;

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

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


3

কম্পিউটিংয়ের বিজ্ঞান নিয়ে আলোচনার জন্য আপনি যে প্রোগ্রামিং ল্যাঙ্গুয়েজটি ব্যবহার করেন তা কম্পিউটিংয়ের মাধ্যম এবং বিজ্ঞান শেখার কাজে অনেকাংশেই অপ্রাসঙ্গিক।

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

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

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

সুতরাং, না, সি কম্পিউটার বিজ্ঞানের বোঝার জন্য প্রয়োজনীয় নয়। গুরুত্বপূর্ণ বিষয় হ'ল আলগোরিদিমগুলির মূল ধারণাগুলি এবং তাদের প্রয়োগ সম্পর্কে আপনার বোঝা।


2

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

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


1

কেউ সি না শিখলে কম্পিউটার বিজ্ঞান শিখতে পারে?

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


7
আপনি কি নিশ্চিত যে আপনার ডিগ্রি সিএসের " সমস্ত দিক" কভার করেছে ?
এসকে-যুক্তি

আমি সমস্ত প্রয়োজনীয় দিক বলতে চাই। কোনও ডিগ্রি কোনও ডিগ্রি প্রোগ্রামের সমস্ত দিককে কভার করে না। প্লাস "সমস্ত" বিষয়গত হয়।
ফিলিএনজে

1
আপনি কীভাবে "প্রয়োজনীয়" সংজ্ঞায়িত করবেন? সব সব অর্থ, সব সম্ভব সি এস আবেদন আচ্ছাদন -। এটি "সাবজেক্টিভ" নয়, এটি যথেষ্ট পরিমাণে।
এসকে-লজিক

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

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

0

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

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


-1

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

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

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

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