কোডিং কম্পিউটার বিজ্ঞানে ভাল হওয়ার জন্য কী গুরুত্বপূর্ণ? এটিকে ভাল করে জানার জন্য কোনও একটিকে অ্যালগরিদম বাস্তবায়ন করা উচিত?
আমি একজন সিসি অধ্যাপকের অভিব্যক্তি মনে পড়ে যে " আমি কখনই কোড করি না"
কোডিং কম্পিউটার বিজ্ঞানে ভাল হওয়ার জন্য কী গুরুত্বপূর্ণ? এটিকে ভাল করে জানার জন্য কোনও একটিকে অ্যালগরিদম বাস্তবায়ন করা উচিত?
আমি একজন সিসি অধ্যাপকের অভিব্যক্তি মনে পড়ে যে " আমি কখনই কোড করি না"
উত্তর:
আপনি কোড না করা পর্যন্ত আপনি সত্যই অ্যালগরিদমকে ভালভাবে জানতে পারবেন না ।
কোডিং আপনার অধ্যাপকের পক্ষে গুরুত্বপূর্ণ নয়, তবে আপনার মনে রাখতে হবে যে তিনি ডিও জিনিসগুলিতে অর্থ প্রদান করেন না। তাকে বলার জন্য মূল্য দেওয়া হয় (এবং জিনিসগুলি লিখুন।)
আমি প্রাক্তন গণিতের অধ্যাপক, তাই আমি এই গতিশীলটি ভালভাবে বুঝতে পারি।
আপনি যদি তাঁর পথ অনুসরণ করতে এবং কোনও তাত্ত্বিক কম্পিউটার বিজ্ঞানী হতে চান তবে হ্যাঁ, কোডিংয়ের গুরুত্ব কম। তবে যদি আপনি তা করেন তবে নম্রতা বজায় রাখতে ভুলবেন না, জেনে রেখে যে আপনার বেতনগুলি জিনিসগুলি করতে বেছে নিয়েছে তাদের দ্বারা অর্জিত সংস্থান দ্বারা অর্থ প্রদান করা হয়।
টেলিস্কোপ সম্পর্কে জ্যোতির্বিজ্ঞানের চেয়ে কম্পিউটার সায়েন্স কম্পিউটার সম্পর্কে আর কিছু নয়
- এডজার ডিজকস্ট্রা
আমি একমত হয়।
যদি আপনি বিমূর্ত, ফাউন্ডেশনাল কম্পিউটার সায়েন্স ধারণাগুলিতে বিশেষজ্ঞ বিশেষত খাঁটি কম্পিউটার সায়েন্স একাডেমিক হওয়ার কথা বলছেন, তবে অগত্যা নয়।
উপমা বাঁকানোর জন্য: এটি নাসার প্রতিটি রকেট বিজ্ঞানীকে "ভাল রকেট বিজ্ঞানী" হওয়ার জন্য মহাকাশে উড়তে হবে কিনা তা জিজ্ঞাসার মতোই কিছুটা। অবশ্যই না. মহাকাশচারী হয়ে ওঠা মহাকাশ উড়ানের শিল্পের একটি অংশ এবং খুব একটা অংশ, তবে এর অর্থ এই নয় যে স্থল বিজ্ঞানীরা তাদের নিজস্ব উপায়ে ঠিক তেমন গুরুত্বপূর্ণ নন।
এটি বলেছিল, সম্ভবত তিনি সত্যিকারের প্রোগ্রামিং ভাষায় না লিখলে তিনি তৈরি করা অ্যালগরিদমটি প্রয়োগ করা সম্ভবত একটি ভাল ধারণা। এই অর্থে, আপনি অ্যালগোরিদম ডিজাইনের গণিতের একটি শাখা হিসাবে ভাবতে পারেন।
প্রকৃত কম্পিউটার বিজ্ঞানী হওয়ার জন্য কোডিং অতি গুরুত্বপূর্ণ নয়। কোডে চিন্তা করা ভাবনাগুলিকে বাধা দিতে পারে কারণ তারা দরকারী বিমূর্ত ধারণাটি বিকাশ করতে চায়। জটিল অ্যালগরিদমগুলি বিশ্লেষণ করতে বা প্রোগ্রামিং ভাষা, উন্নত অনুসন্ধান এবং বাছাইকরণ অ্যালগরিদমগুলি, সসীম অটোমেটা তত্ত্ব, বিতরণকৃত কম্পিউটিং তত্ত্ব, আর-ট্রি, ফল্ট-টলারেন্স প্রোটোকল, নির্ভরযোগ্য যোগাযোগ প্রোটোকল, ডিজিটাল ইত্যাদির মতো ধারণাগুলি বিকাশের জন্য বেশিরভাগ দুর্দান্ত কোডারগুলির বৌদ্ধিক চপ নেই or সিগন্যাল প্রসেসিং অ্যালগরিদম, ক্রিপ্টোগ্রাফিক তত্ত্ব, পারফরম্যান্স বিশ্লেষণ এবং অপ্টিমাইজেশন, দক্ষ ক্যাচিং, ম্যাপ-হ্রাস, নির্ভরযোগ্য সুরক্ষা প্রোটোকল ইত্যাদি। চমৎকার কোডার এবং কম্পিউটার ইঞ্জিনিয়াররা সাধারণত এই তত্ত্বগুলি সিস্টেমে ব্যবহার করতে পারেন যা তারা তৈরির চেষ্টা করছেন এবং এটি বেশ কার্যকরভাবে করতে পারেন, তবে এটি আসলে কম্পিউটার সিস্টেম ইঞ্জিনিয়ার বা কম্পিউটার প্রোগ্রামার এর ক্ষেত্র the
কোডিং কম্পিউটার প্রোগ্রামার হওয়ার জন্য গুরুত্বপূর্ণভাবে গুরুত্বপূর্ণ। কম্পিউটার বিজ্ঞানীদের দ্বারা উত্পাদিত দরকারী বিমূর্ত ধারণাগুলি কীভাবে কোডিং-এ কোড করা যায় তা বোঝাও দরকারী।
কম্পিউটার বিজ্ঞানের একটি বড় সমস্যা হ'ল তাদের প্রায়শই গণিত সমস্যার সমাধান খুঁজে পেতে হয় যা আজকের প্রোগ্রামিং সমস্যাগুলি সমাধানে খুব কম উপযোগিতা রয়েছে। এমনকি যদি তারা কোনও সমাধান কোড করে দেয় তবে সত্যই কেউ এটিকে ব্যবহার করতে সক্ষম হবে না। ডিজিটাল সিগন্যাল প্রক্রিয়াকরণ তত্ত্ব সম্পর্কে চিন্তা করুন। এটি ফুরিয়ার, হিলবার্ট এবং শ্যাননের মতো লোকেরা আবিষ্কার করেছিলেন, তবে প্রায় 20 বছর আগে কম্পিউটারাইজড ডিএসপি সমস্যার জন্য প্রয়োগটি ব্যাপকভাবে সম্ভব ছিল না।
কম্পিউটার শিক্ষায় সবচেয়ে বড় সমস্যা হ'ল কম্পিউটার বিজ্ঞানীদের দ্বারা শেখানো বেশিরভাগ মানুষ কম্পিউটার বিজ্ঞানী হয়ে উঠবেন না। কিন্তু অনেক কম্পিউটার বিজ্ঞানী এটি পান না। কোডিং তাদের কাছে গুরুত্বপূর্ণ নাও হতে পারে তবে আপনি যদি তাদের ক্লাসে থাকেন তবে এটি অবশ্যই আপনার কাছে গুরুত্বপূর্ণ হয়ে উঠবে।
কম্পিউটার শিক্ষায় আরেকটি বড় সমস্যা হ'ল অনেক সত্য কম্পিউটার বিজ্ঞানী বিজ্ঞানের সফটওয়্যার বিকাশের ক্ষেত্রে দরকারী অভিজ্ঞতা অর্জনের শিল্প অভিজ্ঞতা না রাখেন। তারা মূলত এমন কিছু শেখানোর চেষ্টা করছে যা তারা সত্যই জানে না। যার ফলে তাদের বিশ্বাসযোগ্যতা হারাতে পারে। শিল্প সেটিংয়ে গুরুত্বপূর্ণ বিষয়গুলি প্রায়শই এই কম্পিউটার বিজ্ঞানীদের কিছুতে নিবন্ধভুক্ত হয় না।
দীর্ঘ এবং সংক্ষিপ্ত, কোডিং বেশিরভাগ লোকদের জন্য "কম্পিউটার বিজ্ঞানী" হয়ে ওঠার জন্য গুরুত্বপূর্ণ কারণ এই লোকগুলির বেশিরভাগই কম্পিউটার প্রোগ্রামার এবং কম্পিউটার সিস্টেম ইঞ্জিনিয়ার হয়ে উঠবেন।
অধ্যাপক যে সাবফিল্ডে আছেন তার উপর নির্ভর করে।
সংখ্যার বিশ্লেষণে দক্ষ যে কেউ সম্ভবত ফোরট্রান হুইস। যে কোনও এআই অধ্যাপক লিস্প বা প্রোলগ বা এর মতো কিছুতে কোড দেবেন।
আরও কিছু গাণিতিক ক্ষেত্রে সত্যই কোড করার দরকার নেই। আমি এখনও একটি স্পর্শ সন্দেহজনক হতে হবে।
হিঁকের মতো আরও গা mathe় গণিতের মতো লোকের মতো শব্দ ... কম্পিউটার বিজ্ঞানের পিছনে গণিত এবং তত্ত্বের মধ্যে। এই ধরণের অধ্যাপকরা লবণের দানা দিয়ে কী বলবেন তা নিন।
আমাকে বলতে হবে "যুক্তি গুরুত্বপূর্ণ"
আপনি কেবল তত্ত্বটি বোঝার সাথে সাথেই পালিয়ে যেতে পারেন তবে আমি সবসময়ই দেখেছি যে আমি অ্যালগরিদমগুলি বুঝতে পেরেছি এবং এ জাতীয় 1000x তাদের কোড করার পরে আরও ভাল বুঝলাম (বুদ্বুদ সাজানো বনাম কুইকোর্ট) উদাহরণস্বরূপ, বিগ-ওকে জানা খুব ভাল তবে বাস্তবে এটি বড় ডেটার সাথে দেখে -সেটগুলি আপনাকে কম্পিউটেশনাল জটিলতা পরিমাপের জন্য একটি সত্যিকারের বিশ্ব প্রশংসা দেয়)।
একটি আকর্ষণীয় জিনিস আমি পেয়েছি যে আপনি কম্পিউটার বিজ্ঞানের তাত্ত্বিক অ্যাস্পেটগুলি যত বেশি অধ্যয়ন করবেন তত সহজে কোডিং হয়ে যায় becomes এক পর্যায়ে আপনি কোনও নির্দিষ্ট ভাষায় জিনিসগুলি চিন্তাভাবনা বন্ধ করে দেন তবে কম্পিউটার সেন্সির বিস্তৃত ধারণা হিসাবে ঠিক সেগুলি দেখতে পান।
এটি জিজ্ঞাসার মতো যে সমস্ত ইংরেজী অধ্যাপকরা আমার মনে সিনেমা, টিভি সিরিজ, উপন্যাস, নাটক এবং কবিতা লেখার পক্ষে সক্ষম হন কিনা। একইভাবে, কোনও গণিতের অধ্যাপককে কল্পনা করুন যা কখনও সমান বিদেশী ধারণার জন্য সংখ্যা ব্যবহার করে না। এটি বলতে গেলে কিছু প্রাথমিক উপাদান রয়েছে যা কোডিংকে বেসিক কম্পিউটার বিজ্ঞান শেখাতে সক্ষম হওয়ার ক্ষেত্রে কিছুটা গুরুত্ব দেয়। সুতরাং অধ্যাপকের শেখানো কোর্সের মতো বেসিক ভাষার বাক্য গঠন এবং কীভাবে সূক্ষ্মভাবে প্রোগ্রাম লিখতে হবে তা জানা উচিত। যদি অধ্যাপক সংকলক ডিজাইনের বিষয়ে পড়ান এবং এর আগে কোনও সংকলক আগে কখনও না লিখে থাকেন তবে এটি একটি বড় সমস্যা হবে। কোনও শেফ এমন একটি কেক রান্না করছেন যা আগে কখনও কেক রান্না করেনি বা খায়নি te আয়ে কারম্বা।
যদিও আমি এটি জানতে অ্যালগরিদম বাস্তবায়নের কিছু সুবিধা দেখতে পাচ্ছি, তবে আমি সন্দেহ করি এটি একটি প্রয়োজনীয়তা। সর্বোপরি, কেউ ভাবতে পারেন যে বাস্তবায়নের খরগোশের গর্তটি কতটা নীচে থেকে যায় তা বোঝার মধ্যেই কীভাবে একটি অ্যালগরিদম বাস্তবায়িত হয়? উদাহরণস্বরূপ, কারও কি কোনও অ্যালগরিদম গ্রহণ করতে হবে এবং প্রক্রিয়াজাতীয়, অবজেক্ট-ওরিয়েন্টেড, এবং কার্যকরী প্রোগ্রামিংয়ের মতো বিভিন্ন দৃষ্টান্তের মধ্যে বাস্তবায়ন করতে হবে? তাদের কী কী জানতে হবে যে কীভাবে সংকলকরা সমস্ত কোড অনুবাদ করে এবং বিটগুলি ইলেক্ট্রন-বাই-ইলেক্ট্রন স্তরে এটি সম্পর্কে পরিবর্তে পেডেন্টিক হতে সরান।
"আমি কখনই কোড করি না", যদিও অতীতের পাশাপাশি বর্তমান কালকে একটি উপায়ে বোঝায় imp "কোডিং" এমন একটি নিচু জিনিস হিসাবে ধারণাও থাকতে পারে যা অধ্যাপকের নীচে থাকা বিবৃতিটি দেখার অন্য উপায় যা এটির পরিবর্তে নেতিবাচক স্বর বহন করতে পারে যা কিছু চেনাশোনাগুলিতে ভাল না যেতে পারে।
পেশাদার সফটওয়্যার বিকাশকারী হয়েও মেকানিকাল ইঞ্জিনিয়ারিংয়ের ডিগ্রি পেয়েছি।
আপনি খুব কম অভিজ্ঞতার বিল্ডিং এবং মেশিনিং অংশগুলির সাথে একজন ভাল মেকানিকাল ডিজাইনার হতে পারেন, সেই কাজটি মেশিনবাদীদের কাছে রেখে। তবে কীভাবে মেশিনের যন্ত্রাংশ তৈরি করবেন এবং কীভাবে জেনে রাখবেন তা আপনাকে উল্লেখযোগ্যভাবে আরও ভাল ইঞ্জিনিয়ার করে তুলবে, কারণ আপনি যা নকশা করছেন তা বানোয়াট এবং জমায়েতের সাথে জড়িত সমস্যাগুলির পূর্বাভাস দিতে পারেন।
একই সফ্টওয়্যার জন্য যায়। একজন "কোডার" একজন মেশিনিস্ট বা টেকনিশিয়ান, অন্যদিকে একজন সফটওয়্যার ইঞ্জিনিয়ার ভাল, ইঞ্জিনিয়ার। অনেক জায়গাতেই একজন ব্যক্তি উভয় কাজ করেন। এটি অসম্ভব নয় এবং কিছু বিমূর্ত বিষয়গুলির জন্য, "কেবলমাত্র ইঞ্জিনিয়ারিং" পজিশনে কাজ করতে পারে।
তবে বিপুল সংখ্যাগরিষ্ঠদের পক্ষে কোড অস্বীকার করে একেবারে কোনও লাভ নেই।
আপনি যদি ভাবনা অবলম্বন না করে এবং থামার সমস্যার অবসান না করেন, কম্পিউটার সায়েন্সের প্রতিটি ক্ষেত্রে কোডিংয়ের জন্য সর্বদা ব্যবহার রয়েছে।
একমাত্র সিএস ক্লাস আমি নিই নি কোন তত্ক্ষণাত প্রোগ্রামিং। আমি কল্পনা করতে পারি যে সেখানে প্রচুর পদার্থবিদ আছেন যারা বলে যে "আমি কখনও পরীক্ষা করি না" তবে তারা সম্ভবত এমনও যারা বলে, "আমি কখনও কিছুই আবিষ্কার করি না"। তারা যদি যত্ন করে তবে আমি অবাক হব।
কম্পিউটার সায়েন্সের ছাত্র হিসাবে আমি মনে করি যে প্রথমে সফ্টওয়্যার বিকাশের সাথে জড়িত ধারণাগুলি বোঝা ভাল। আপনি যখন সফ্টওয়্যারটির পেছনের ধারণাটি জানতে পেরেছেন এবং এটি কোনও কম্পিউটারের সাথে কীভাবে ইন্টারঅ্যাক্ট করে, তারপরে নির্দিষ্ট কোডিং এবং নির্দিষ্ট প্রয়োগের সমস্যাগুলি মোকাবেলা করার সময় শুরু হয়।
এটি ঠিক "সফ্টওয়্যার ব্যতিক্রম" এর মতো, প্রথমে আপনি কেবল তাদের সাথেই কাজ করেন কারণ আপনি এমন কিছু করেছিলেন যা করার অনুমতি নেই। তারপরে আপনি এগুলি শিখলে আপনার কোডটি দিয়ে একই কাজটি শুরু করুন যাতে এটি আরও ভার্জোজ হয়।
ভাল আমি মনে করি যে লোকেরা যারা তাদের প্রোগ্রামারগুলিতে ব্যতিক্রমগুলি একটি সাধারণ কর্মপ্রবাহ হিসাবে তাদের অ্যাপ্লিকেশনগুলিতে একটি সাধারণ ওয়ার্কফ্লো হিসাবে ব্যবহার করেন তাদের মত ধারণাগুলি সম্পর্কে যত্নবান হন না। তারা কীভাবে জানে তবে সত্যিই কেন পাবে না।
আপনার অধ্যাপকের জন্য আমি আরও একটি প্রতিমা পেয়েছি:
যারা পারে, করতে পারে, যারা পারে না, তারা পড়ায় teach
imo, কথা সস্তা। যে কেউ 'তত্ত্ব' সম্পর্কে অবিচ্ছিন্নভাবে ঝাঁকুনি দিতে পারে এবং এটিকে 'কম্পিউটার বিজ্ঞান' বলতে পারেন। তবে এটি বাস্তব অনুশীলনে না আসা পর্যন্ত তত্ত্বটি খুব কার্যকর নয় কারণ এটিকে বৈধ করার কোনও উপায় নেই। আমি যদি আরও কিছু গুরুত্ব সহকারে কিছু সম্পর্কে প্রফেসরের মতামত গ্রহণ করতাম তবে যদি আমি জানতাম যে তিনি আসলে 'থিওরি' পুনর্গঠন করছেন যা তার দৃষ্টিভঙ্গির ব্যাক আপ করার পক্ষে কোনও সমর্থনকারী প্রমাণ থাকতে পারে না তার চেয়ে যদি তিনি আসলে কোডের একটি নির্দিষ্ট সমস্যার সমাধান করেছেন ।