একটি স্থানীয় কলেজ পূর্ববর্তী প্রোগ্রামিংয়ের অভিজ্ঞতা ছাড়াই প্রথম বর্ষের কলেজ ছাত্রদের (16 বছর বয়সী) সি ++ পড়ছে।
প্রথম প্রোগ্রামিং ভাষা হিসাবে, সি ++ উপযুক্ত?
একটি স্থানীয় কলেজ পূর্ববর্তী প্রোগ্রামিংয়ের অভিজ্ঞতা ছাড়াই প্রথম বর্ষের কলেজ ছাত্রদের (16 বছর বয়সী) সি ++ পড়ছে।
প্রথম প্রোগ্রামিং ভাষা হিসাবে, সি ++ উপযুক্ত?
উত্তর:
জোর দিয়ে না ।
শিক্ষার্থীদের জন্য আপনার মনে যে লক্ষ্য রয়েছে, সেগুলির জন্য অন্য ভাষা বা ভাষার ক্রম দ্রুত এবং ভাল হবে। উদাহরণ।
"শিক্ষার্থীদের নিম্ন-স্তরের ধারণাগুলি বুঝতে হবে।"
"নিম্ন-স্তরের" কোডিংটিতে বস্তুগুলি পাওয়া new
, এগুলিকে ফিরে খাওয়ানো delete
এবং মাঝে মাঝে পয়েন্টার দেওয়া কোথাও কোথাও এটি হওয়া উচিত নয়। ফাংশন, ক্লাস এবং টেম্পলেটগুলি নিম্ন-স্তরের নয়। RAII, ব্যবহার করা 12 উপায়ে const
, std::ostream::operator<<
, protected
এবং new
নিম্ন স্তরের ধারণা নয়। এই জিনিসগুলির নিম্ন-স্তরের প্রভাব রয়েছে এবং আপনি সেগুলি মাসের জন্য বা কোনও ভবিষ্যতের শ্রেণি না হওয়া পর্যন্ত এবং এর পরিবর্তে সি ++ শব্দার্থবিজ্ঞানের পর্বতগুলি পড়াচ্ছেন।
আমি এমপিএস বা এমএমআইএক্সের মতো একটি ভাল পরিবেশ এবং শিক্ষণ সামগ্রীর সাথে এসেম্বলারের পরামর্শ দিই। আপনি যদি তাড়াহুড়ো করেন তবে কমপক্ষে এসেম্বলারের আউটপুটটি দেখার জন্য সিটিকে চার্চ সহ শিখান। এটি আপনাকে নিম্ন স্তরের সমস্ত সি ++ বোঝার সুযোগ দেবে এবং তারপরে কিছুটা দ্রুত।
"শিক্ষার্থীদের অবজেক্ট-ওরিয়েন্টেশন বুঝতে হবে।"
সি ++ তে নির্মিত অবজেক্ট-ওরিয়েন্টেশনটি ওও ধারণাগুলি, বা অন্য কোনও উচ্চ-স্তরের ধারণাটি শেখানোর জন্য অতিরিক্তভাবে জটিল। সম্ভাব্য কারণগুলির জন্য সুন্দর, দীর্ঘ তালিকার জন্য সি ++ এফএকিউ দেখুন । হয় আপনি যে সমস্ত জিনিস আঘাত করতে হবে, যা নতুন প্রোগ্রামারদের সাথে খুব, খুব দীর্ঘ সময় নিতে হবে; অন্যথায় আপনাকে এটিকে প্রচুর এড়িয়ে যেতে হবে, নতুন প্রোগ্রামারদের অন্ধকারে রেখে দিতে হবে - কার্যকরভাবে, সত্যিই সি ++ না জেনে!
আমি প্রথমে (পাইথন, রুবি, স্কেক, কমন লিস্প, র্যাকেট) সহ একটি সহজ, উচ্চ-স্তরের ভাষা শেখার পরামর্শ দিচ্ছি, যদি আপনাকে অবশ্যই সি ++ শিখিয়েই দিতে পারেন। এর বাইরেও, একটি কার্যকরী ভাষা পরিদর্শন করে ওও থেকে পৃথক একটি ধারণা হিসাবে বহুবর্ষটি শিখুন।
"শিক্ষার্থীদের টেমপ্লেট এবং টেম্পলেট বিপণন বোঝা দরকার" "
আসলেই কেউ এটি জিজ্ঞাসা করে না, তবে আমি তাদের ইচ্ছা করি। সি ++ টিতে দুর্দান্ত টেম্পলেট রয়েছে এবং এসটিএল দুর্দান্ত, তবে প্রথমে সি ++ শেখানোর জন্য তাদের যথেষ্ট উচ্চতর অগ্রাধিকার হওয়া উচিত নয়। ওসিএএমএল বা হাস্কেল টাইপ সিস্টেমটি শেখানো এবং তারপরে সেই ধারণাগুলি পুনঃনির্মাণ করা যাইহোক দ্রুত হতে পারে।
"শিক্ষার্থীদের সমস্যার সমাধান শিখতে হবে।"
হ্যাঁ, আপনি এটি যে কোনও ভাষায় পেয়েছেন, এবং এটি সি ++ ব্যতীত অন্য কোনও ভাষায় যদি আপনি বেশি পান তবে ব্যাগেজ কম থাকায় আপনি আরও পাবেন। আবার, সমস্যা সমাধানের দক্ষতার পরিবর্তে শিক্ষার্থীরা যে সমস্ত বিষয় শিখবে সেগুলির একটি তালিকার জন্য সি ++ এফএকিউ দেখুন ।
"উপরের সমস্তটি এবং আমাদের কেবল একটি ভাষা ব্যবহার করতে হবে।" বা "নিয়োগকর্তারা এটি চান।" বা "আমাদের সি-স্টাইলের ভাষা দরকার।" বা ...
একাধিক ভাষা শেখাও।
আপনি কেবল একটি ভাষা শেখানো বা শেখার মাধ্যমে আপনি যে সময় বা শক্তি সাশ্রয় করেছেন তা সম্পূর্ণ হাস্যকর। এটি এই ধারণার উপর ভিত্তি করে যে কোনও প্রদত্ত ভাষা শেখার ক্ষেত্রে ঠিক X মানুষ মাস ( HINT! HINT! ) লাগে যেখানে X প্রতি ভাষা প্রতি একক সংখ্যা বা এক নম্বর। এটি সেই ধারণার সাথে প্রায় একইরকম যে আপনি সেই সমস্ত 'প্রয়োজনীয়তা' এবং 'পরীক্ষার' আবর্জনা উপেক্ষা করে সময় এবং অর্থ সাশ্রয় করতে পারেন।
একাধিক বাক্য গঠন হিসাবে, আপনি ছাত্রদেরকে অন্য ভাষার বিরুদ্ধে বুনো পক্ষপাতদুষ্ট করে প্রতিটি ভাষায় সি সিনট্যাক্সের প্রত্যাশা করতে শেখানো হলে আপনি বিপজ্জনকভাবে পঙ্গু করে দিন।
প্রায় কোনও পাথ সি ++ দিয়ে শুরু করার চেয়ে দ্রুত এবং ভাল। একটি সাধারণ উচ্চ-স্তরের ভাষা এবং তারপরে সি ++ আরও দ্রুততর হবে। এসেম্বেলার এবং তারপরে সি ++ শিখতে হবে আরও দ্রুত। সি ++ ব্যতীত অন্য যে কোনও কিছুই সেখানে শিক্ষার্থীরা দ্রুত পাবে এবং তারা বুট করার আরও উপায় জানতে পারবে। শুধু প্রথমে সি ++ পড়ান না।
না, অভিজ্ঞ সি ++ বিকাশকারীদের জন্যও সি ++ একটি কঠিন ভাষা। এমনকি সহজ অ্যালগরিদমের জন্য আপনাকে অনেক ভাষার সূক্ষ্মতা ব্যাখ্যা করতে হবে। হ্যালো ওয়ার্ল্ড উদাহরণ বিবেচনা করুন:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
}
হুকুম কী #include
? কি std::cout
। কেন ::
? কী <<
? ওহ, এটি একটি ওভারলোডেড অপারেটর! ওভারলোডেড অপারেটর কী? সুও, কারণ ints
, এটি কিছুটা স্থানান্তরিত করে, তবে যা std::cout
কিছু হোক না কেন এটি কনসোলে স্টাফ আউটপুট করে। ওহ, std::cout
এটি একটি স্ট্রিম এবং স্ট্রিমগুলি তাদের <<
এবং >>
অপারেটরকে ওভারলোড করেছে।
পাইথনে একই নমুনাটি দেখুন:
print("Hello World!")
এটি হ'ল কিছু অ্যালগরিদম কোড চলুন।
এটি সম্ভবত একটি ভাল প্রথম ভাষা নয়: জটিল বাক্য গঠন, প্রচুর বিধি, পুরানো ভাষা, ত্রুটি-প্রবণ মেমরি পরিচালনা। আপনার শিক্ষার্থীদের স্মার্টটাকের মতো আরও ওও, বা পাইথনের মতো প্রোগ্রামের জন্য ভাল কিছু, বা হাস্কেলের মতো কার্যকরী কিছু শেখানো ভাল।
তারা আরও ভাল ভাষা শিখার পরে জীবনের পরে (তারা যদি এটি সহায়তা না করতে পারে) পরে সি ++ শিখতে পারে।
সংক্ষিপ্ত উত্তর: হ্যাঁ!
আমি বলব যে কোনও ভাষা একটি উপযুক্ত শুরু তবে বিশেষত সি ++ (বা সমমানের)। এই দিনগুলিতে সি # এবং জাভা হ'ল ব্যবহার এবং প্রোগ্রামিংয়ের প্রধান ভাষা যার সাথে আপনি দ্রুত এপিআই এবং আইডিইতে ঝুঁকতে শিখেন তবে সি ++ এর সাথে আপনি পারফরম্যান্স অপটিমাইজেশন ইত্যাদি সহ গ্রাউন্ড আপ থেকে প্রোগ্রামিং শেখার সুযোগ পাবেন you
প্রোগ্রাম্টিং, লুপিং এবং বাছাইয়ের বুনিয়াদিগুলি শিখে নেওয়া কখনই খারাপ ধারণা নয় you
আসলে আমি বিশ্বাস করি এটি খুব ব্যবহারিক কারণে প্রথম ভাষা হিসাবে সম্ভবত ভাল পছন্দ: সি ++ শিখার পরে আপনার মুখোমুখি হওয়া অন্য যে কোনও ভাষা শেখার জন্য বাতাসের মতো মনে হবে।
যখন আমি 15-16 বছর ছিলাম তখন আমি নিজেকে সি ++ শিখিয়েছিলাম।
অন্যদের কাছে যাদুটি রেখে দেওয়া এবং নিজেরাই অভ্যন্তরীণ কাজগুলি নিজে শিখতে ভাল।
কথায় কথায় বলতে গেলে, আপনি যদি এন্ট্রি-লেভেল সি ++ সিনট্যাক্স এবং শব্দার্থ আবিষ্কার করতে না পারেন তবে আপনি কম্পিউটারে তেমন ভাল নন। এটা খুব কঠিন নয়। "সি ক্লাস সহ" এড়ানোর কোনও ভাল কারণ নেই।
যদি আপনি প্রত্যাশা করেন যে শিক্ষার্থীরা টেমপ্লেট রূপককরণ, পলিমারফিক কলগুলি কাটা এবং একাধিক উত্তরাধিকারের শ্রেণিবিন্যাসকে অবিচ্ছিন্নভাবে কাজ করতে শুরু করে - তবে আপনি যে জাতীয় ভাষা ব্যবহার করুন না কেন এটি প্রবেশিকা স্তরের শ্রেণির জন্য হাস্যকর।
শিক্ষার্থীদের জন্য প্রোগ্রামিংয়ের জটিলতাগুলি আড়াল করার জন্য খুব খারাপ প্রবণতা রয়েছে। এটি ভালভাবে শেষ হয় না (সিএফ স্পলস্কির জাভা স্কুলগুলি প্রবন্ধ)। এই লোকেরা সরাসরি তাদের মাথা না পেলে ডেইলিডব্লিউটিএফ-এ শেষ হয়। বিমূর্ততা ফাঁস, এবং যখন (যদি তা না হয়) বিমূর্ততা ফাঁস হয়, এটি এটি মোকাবেলা করার চেয়ে খারাপ। আমি এন্ট্রি স্তরের সি ++ শিক্ষার্থীদের জন্য টিএ হিসাবে কাজ করেছি । হয় সমস্ত জিনিস লুকিয়ে রাখতে হয়, বা তাদের পরীক্ষার জন্য আলোতে আনতে হবে। যাদু হচ্ছে শিক্ষার শত্রু।
আমাকে যদি মেশিন কোডে সংকলিত একটি প্রাথমিক ভাষার প্রস্তাব দিতে হয় তবে একটি পাস্কাল বৈকল্পিক সম্ভবত সেরা পন্থা হবে। আমি যা মনে করি তা থেকে সি পরিবারের তুলনায় এর আরও নিয়মিত এবং কাঠামোগত পদ্ধতি রয়েছে।
আমি 'না' বলব- আমার প্রোগ্রামিং শেখার আগ্রহ এবং আকাঙ্ক্ষা ছিল, এবং কলেজটিতে আমার ইন্ট্রো বর্ষে সি ++ দিয়ে সরাসরি ব্যাটে চলে গেলাম। এমন এক শিক্ষকের সাথে মিলিত হয়ে যিনি সি ++ শিখিয়েছিলেন যেন এটি অন্য ভাষা (যে ধারণাগুলি তাদের কাছে উপলব্ধি করে এমন ভাষা বা বাস্তব জগত প্রয়োগের ধারণা নয়) এবং প্রতি সপ্তাহে আমাদের দিকে সরাসরি ছুঁড়ে ফেলা প্রকল্পগুলি আমি ক্র্যাশ হয়ে গিয়েছিলাম এবং সাথে পুড়েছি ক্লাস অর্ধেক। আমি যা শিখিয়ে যাচ্ছিলাম তা হজম করতে, পরীক্ষা করতে ও প্রয়োগ করতে পেরে আমি প্রকল্পের হোমওয়ার্কের সাথে লড়াই করেছি যা পরীক্ষার হিসাবে দ্বিগুণ হয়ে গেছে। আমি যুক্তি দেব যে এটি 100 এর চেয়ে 200 স্তরের কোর্স ছিল।
আমি সত্যিই আমার সেরা চেষ্টা করেছি। আমি সহানুভূতির জন্য জিজ্ঞাসা করিনি, আমি জানতাম এটি চ্যালেঞ্জ হবে, তবে শিক্ষক আমাকে সাহায্যও করবেন না। আমি কেবল পাঠ্যপুস্তকটি পড়তে যেতে বলেছিলাম, যেমনটি আমি করছিলাম।
আমি তর্ক করব (এবং কেউ কেউ একমত হবে না) যে কাউকে প্রোগ্রামিংয়ের জগতে ভাঙতে রুবি বা পাইথন একটি আরও ভাল ভাষা। পরিষ্কার, সংক্ষিপ্ত, পাঠযোগ্য, পরিষ্কার বাক্য গঠন ax
না।
একটি শিক্ষণ ভাষা হিসাবে, সি ++ সি এর চেয়ে সামান্যতর ভাল, যা চারপাশের সবচেয়ে খারাপ শিক্ষার ভাষা। এটি সামনে অনেক জটিলতার পরিচয় দেয়, ভাষার কিছু অংশ গভীরভাবে স্বজ্ঞাত নয় এবং বেশিরভাগ সময় আপনি সাধারণভাবে প্রোগ্রামিংয়ের চেয়ে সি ++ সম্পর্কে আরও বেশি শিখেন।
এর অর্থ এটি নয় যে সি ++ (বা সি) খারাপ ভাষা, বা শেখার পক্ষে মূল্যবান নয়; পাইথনের মতো আরও ভাল ভাষা শেখানোর ভাষা রয়েছে।
string
ডাটা টাইপ overloads অপারেটার চাই যে +
, =
আর ==
কিছু করার যে ছাত্র আরো-বা-কম আশা, কিভাবে সি মধ্যে সম্পন্ন করা স্ট্রিং প্রসেসিং চাহিদা তুলনায় অত: পর "সীমিতভাবে" । আমি হয় শিক্ষার ভাষা হিসাবে প্রস্তাব করব না।
মাধ্যমিক-পরবর্তী শিক্ষার জন্য দুটি প্রকারের প্রয়োজনীয়: বিশ্ববিদ্যালয় এবং বাণিজ্য স্কুল। পার্থক্যটি আপনি স্নাতক শেষ করার পরে যা করতে প্রস্তুত হতে চান তার মধ্যে। স্বয়ংচালিত ক্ষেত্রে, আপনি মেকানিক বা যান্ত্রিক প্রকৌশলী হবেন তা নয়।
বলা হচ্ছে, আপনি ইঞ্জিনিয়ার হতে চাইলে সি ++ একটি দুর্দান্ত প্রথম ভাষা এবং আপনি যদি কোনও মেকানিকের প্রোগ্রামিং সমতুল্য হতে চান তবে লাউস একটি ভাষা।
সি ++ এর একটি ইন্ট্রো ক্লাস ডেটা ধরণ, সংজ্ঞা, ঘোষণা, পয়েন্টার, মেমরি বরাদ্দকরণ এবং আরও অনেক কিছু নিয়ে কথা বলতে অনেক সময় ব্যয় করতে চলেছে। এগুলি একটি দুর্দান্ত ফাউন্ডেশন যদি আপনি কিছু সেমিস্টারের বিল্ডিং ব্যয় করতে চান যা দরকারী কিছু করতে সক্ষম হবেন, তবে জানতে চান যে একবার আপনি সেখানে পৌঁছে গেলে কোনও ডিগ্রি জটিলতার ব্যবস্থা করার ভিত্তি আপনার রয়েছে।
অন্যদিকে, আপনি যদি খুব দ্রুত দরকারী কিছু করতে সক্ষম হতে চান তবে ডোমেন এবং জটিলতা সীমাবদ্ধ থাকলে কিছু মনে করবেন না, তবে সামনে সেই নিম্ন স্তরের ধারণাগুলিতে সমস্ত সময় ব্যয় করা ব্যর্থ হতে চলেছে। প্রচুর প্রোগ্রামার রয়েছে যারা একটি দুর্দান্ত এইচটিএমএল ফর্ম যাচাইকারী লিখতে পারেন, তবে কীভাবে কোনও ডিভাইস ড্রাইভার ডিজাইনিংয়ের কাছে যেতে হবে তার কোনও ক্লু নেই।
অবশ্যই। আমার প্রথম ভাষাটি ছিল সি, তবে এটি কেবলমাত্র আমাদের ক্লাসটিকে সি ++ তে সহজ করার জন্য। আমি একবার বিশ্ববিদ্যালয়ে উঠার পরে এটি জাভাটিকে পরিচালনা করা আরও সহজ করে তুলেছিল। সি ++ এর কিছুটা স্টিপার লার্নিং বক্ররেখা থাকতে পারে তবে এটি যদি সঠিকভাবে শেখানো হয় তবে তা ঠিক হওয়া উচিত।
না, সি ++ প্রথম ভাষা হিসাবে উপযুক্ত নয়। এখানে প্রদর্শিত হিসাবে, অনেক পেশাদার প্রোগ্রামাররা এই মতামত ভাগ করে, তবে এটি পেশাদার শিক্ষকদেরও একটি মতামত।
কার্নেগি মেলন বিশ্ববিদ্যালয়ের ডিনের একটি প্রতিবেদনে নতুনদের প্রোগ্রামিংয়ের জন্য একটি প্রাথমিক পরিচিতি কোর্সের জন্য সি ++ ব্যবহার করার বিষয়ে যা বলা হয়েছে তা এখানে:
সি বা সি ++ এর মতো স্ট্যান্ডার্ড ভাষা এই কোর্সের জন্য উপযুক্ত নয় কারণ তাদের জটিলতা এবং ঘাটতিগুলি অনানুষ্ঠানিক এবং যান্ত্রিকীকরণ যুক্তি কৌশল উভয়ই বাধা দেয়।
সিএমইউ দুটি প্রারম্ভিক কোর্স অফার করে, একটি আবশ্যক একটি এবং একটি কার্যকরী একটি। কার্যনির্বাহী প্রোগ্রামিংয়ের জন্য এসএমএল নির্বাচিত হয়েছিল। আমি জানি না কী অত্যাবশ্যক কোর্সের জন্য বেছে নেওয়া হয়েছিল, তবে প্রতিবেদনে সি এর একটি উপসেট ব্যবহার করে উল্লেখ করা হয়েছে
অবশ্যই সি ++ প্রথম ভাষা হতে পারে। তবে এটি কতটা ভালভাবে শেখানো হয় সে সম্পর্কে।
প্রত্যেকে বলে, প্রথম ভাষাটি বোঝা খুব সহজ হওয়া উচিত। তবে আমার বক্তব্যটি হল, বেশিরভাগ লোকেরা স্নাতক স্তরের প্রোগ্রামিং শুরু করে। সুতরাং, আপনি এমন কিছু শিখতে পারেন যা তারা উপলব্ধি করতে সক্ষম। এবং সি ++ দিয়ে আপনি নিম্ন স্তর থেকে উচ্চ স্তরের প্রোগ্রামিংয়ে যেতে পারেন।
না।
আমার যদি উপায় থাকে তবে আমি প্রায় সম্পূর্ণভাবে একাডেমিক সেটিংয়ে এটির ব্যবহারটি বারণ করব। যে কারণগুলি ইতিমধ্যে তৈরি করা হয়েছে তার বিপরীতে নয়, তবে অনেকেই মনে করেন যে সি ++ (বা এটির প্রকরণগুলি) প্রায় প্রতিটি সমস্যার উত্তর কারণ আপনি এটি যে কোনও পরিস্থিতিতে ব্যবহার করতে পারবেন। এটি প্রোগ্রামিং এর স্ক্রু ড্রাইভার।
কিছু লোক স্ক্রুগুলি শক্ত করার জন্য এটি ব্যবহার করে, কাজের জন্য একটি উপযুক্ত যুক্তিসঙ্গত সরঞ্জাম। অন্যরা এটি একটি প্রাইবারের মতো ব্যবহার করেন, প্রায়শই কার্যকর, সত্যই আদর্শ নয় কারণ কোনও স্ক্রু ড্রাইভার, আপনার পিতা আপনাকে যা বলুক না কেন, একটি প্রাইবার নয়, এবং অপব্যবহারের কারণে বিপর্যয়করভাবে ব্যর্থ হতে পারে কারণ শ্যাঙ্কের রচনাটি ইচ্ছাকৃতভাবে নির্মিত হয়নি যে ধরণের বাহিনীর জন্য একজন পিসবার মুখোমুখি হবে। এখনও অন্যরা এটি চেষ্টা করতে পারে এবং এটি একটি ঘুষি বা ছানি হিসাবে ব্যবহার করতে পারে এবং প্রায়শই তারা সমস্যার মুখোমুখি হবে কারণ স্ক্রু ড্রাইভারের হ্যান্ডেলটি এমন ধরণের মারাত্মক নির্যাতনের জন্য তৈরি করা হয়নি যা পাঞ্চ বা একটি ছিনুকটি প্রতিরোধের জন্য ডিজাইন করা হয়েছিল।
আমার মতে, একজন প্রোগ্রামারের কাজ হ'ল আসল সমস্যাগুলি সাধারণত অটোমেশনে অনুবাদ করা যা কিছুটা উন্নত দক্ষতা সরবরাহ করে (কোনও কার্যের সাথে সংস্থান কমান্ড কমিয়ে দেয়), বেগ (কোনও কার্য সম্পাদনের সময় হ্রাস করা), পূর্বাভাসযোগ্যতা (পুনরাবৃত্তিযোগ্যতা বাড়ানো) কোনও কার্যের) বা সংস্থা (কার্যগুলির মধ্যে সম্পর্কের সম্পর্কে সচেতনতা বাড়ানো)
যদিও এটি বোধগম্য যে প্রত্যেকেরই কম্পিউটারের নিম্ন স্তরের ক্রিয়াকলাপ, এবং বিশেষত ডিভাইস আইও এবং মেমরির বরাদ্দের বিষয়ে সাধারণ জ্ঞান থাকা উচিত প্রত্যেকেরই সেই জ্ঞানটিকে কোনও উল্লেখযোগ্য ডিগ্রীতে ব্যবহার করতে হবে তা অবশ্যই অস্বাভাবিক, তবে এটির জন্য কেবলমাত্র এটিই কাজে লাগানো উচিত let কাজ বিশাল। সমস্যার বিস্তৃত প্রেক্ষাপট না বুঝে এটি করার চেষ্টা অনিয়মিত ঝুঁকিকে একটি প্রচেষ্টা সন্নিবেশ করে।
এটি অযৌক্তিক যে প্রথম প্রোগ্রামিং ল্যাঙ্গুয়েজটি সি / সি ++ বা ঘনিষ্ঠ রূপগুলি হওয়া উচিত, কারণ সি এবং এর ডেরাইভেটিভগুলি যে শ্রেণীর সমস্যার সমাধান করে সেগুলি অবশ্যই বর্তমান এবং ভবিষ্যতের সমস্যার কিছু নির্বিচারে বৃহত শতাংশের জন্য উপযুক্ত নয় (কেবল যেখানে একজনকে উদ্ধার করতে হবে) একটি পূর্বে, স্ক্রু ড্রাইভার প্রোগ্রাম), এবং আসলে আসছে সমস্যাগুলির একটি ছোট সেট সেট। বেশিরভাগ প্রোগ্রামার ছোট ওএস, আন্তঃসংযুক্ত ডিভাইসগুলির বর্ধনশীলতা সত্ত্বেও মূল ওএস বৈশিষ্ট্যগুলি বা সরাসরি ডিভাইস ইন্টারফেসগুলি বিকাশের নিকটে আসতে পারে না। বেশিরভাগই আমাদের মতো কাজ করবে এবং বেঁচে থাকবে। দুই প্রজন্মের বেশি পুরানো কোড ফিক্সিং এবং ফ্যাসিং করা, ইতিমধ্যে বয়স দেখানো প্রযুক্তির উপর প্রয়োগ করা, বা হত্যাকারী (x + 1) অ্যাপ্লিকেশনটিতে প্রযুক্তির সীমানায় কাজ করা।
প্রথম ভাষার জন্য, আমি লেগো এনএক্সটি, হালকা শুল্কযুক্ত তবে ল্যাবভিউয়ের বৈশিষ্ট্যযুক্ত সমৃদ্ধ বৈকল্পিকের দিকে নজর দেব। লেগো এনএক্সটি বাণিজ্যিক উদ্যোগে ব্যাপকভাবে ব্যবহৃত হয় না, এটি একটি "সেন্সর সমৃদ্ধ" উপায়ে প্রোগ্রাম করার জন্য এটির মৌলিক প্রকৃতি উপস্থাপন করবে। আমি এটি জাভাস্ক্রিপ্ট বা টিসিএল / টিকের মতো কিছুটা প্ল্যাটফর্মের নিরপেক্ষ স্ক্রিপ্টিং ভাষার সাথে যুক্ত করতে পারি। প্রতিক্রিয়া লুপ এবং সমস্যার জটিলতার বিভিন্ন ডিগ্রী প্রবর্তন এবং সমাধান করার ক্ষেত্রে নমনীয়তার ক্ষেত্রে উচ্চ প্রত্যাবর্তনের সাথে আপনাকে খুব বুনিয়াদী কিন্তু কার্যকর কাজগুলি করার জন্য যা আবিষ্কার করতে হবে তার ক্ষেত্রে উভয়ই তুলনামূলকভাবে কম প্রভাব ফেলবে। এছাড়াও, এটি শিক্ষার্থীদের পক্ষে একটি ভাল সুযোগ প্রদান করে যেমন তারা ডাবের পরিবেশে যে পরিমাণ সরবরাহ করা হয় তার চেয়ে বেশি সম্ভাবনার অন্বেষণ করতে এগিয়ে যায়: অন্ধকারে স্যাঁতসেঁতে কাজ করার চেষ্টা করার সুযোগ, স্যাঁতসেঁতে,
তারা চারটি সিলিন্ডার স্বয়ংক্রিয়ভাবে চালনা শিখার পরে, যদি তারা সত্যিই আগ্রহী এবং প্রেরণাদ হয় তবে তাদের বড় ভি 8 ম্যানুয়াল হট্রোডে নিয়ে যান। যদি জোয়েল তার পায়ের নীচে কোনও পাথরের নীচে রক-স্টার প্রোগ্রামারগুলি খুঁজে না পায়, তবে তাকে অন্য কোথাও খুঁজতে হতে পারে, বা তার সরঞ্জামবক্সে আরও কিছু স্ক্রু ড্রাইভারের চেয়ে কেন আরও বেশি প্রয়োজন হতে পারে তা নিয়ে পুনরায় চিন্তা করতে হবে।
প্রাথমিক পর্যায়ে সি ++ এ সহজেই ভুল করা যায় এমন কয়েকটি পয়েন্ট:
আপনি যেখানে = বনাম == পরীক্ষা করতে চেয়েছিলেন সেখানে অ্যাসাইনমেন্ট তৈরি করা
অনুপস্থিত;
কোঁকড়া বন্ধনীগুলির পাঠযোগ্যতা বনাম, উদাহরণস্বরূপ পাস্কাল শুরু-শেষ
এবং তারপরে বিভ্রান্ত করার জন্য সমস্ত ফাইল, ম্যাক্রো, মেমরি ম্যানেজমেন্ট ইত্যাদি অন্তর্ভুক্ত রয়েছে।
সুতরাং আমি বলব যে সি ++ শুরু করার জন্য সেরা ভাষা নয় - তবে এটি সন্দেহ নেই যে আপনি এটি শিখলে এটি খুব উপকারী হতে পারে।
আমি - যেমন অন্যরাও পরামর্শ দিয়েছে - সি #, জাভা বা সম্ভবত এমনকি ভিবিও ব্যবহার করুন - এবং ত্রুটি থেকে পুনরুদ্ধার করা আরও সহজ করতে সহায়তা করার জন্য সিনট্যাক্স হাইলাইট, ডিবাগার ইত্যাদি সহ একটি ভাল আইডিই।
আমি যখন কলেজে ছিলাম তখন সি ++ ছিল এমন ভিত্তি ভাষা যা কলেজের প্রথম বছর জুড়েই শেখানো হত। তত্ত্বটি হ'ল এটিতে জটিল প্রোগ্রামিংয়ের কয়েকটি ধারণাগুলি রয়েছে, সুতরাং আপনি যদি এটি আয়ত্ত করতে পারেন তবে আপনি অন্য ভাষা চয়ন করতে পারেন। এটি আমার ভাল ভিত্তি হিসাবে কাজ করেছে।
এটি বলার পরে, আমার সিনিয়র বছরে, আমি মূল কমিটির জাভাতে স্যুইচ করব কিনা তা নির্ধারণের জন্য একটি কমিটিতে দায়িত্ব পালন করেছি। বেশ কয়েকটি বিশিষ্ট নিয়োগকর্তা এবং বিভাগের প্রাক্তন শিক্ষার্থীদের সাথে কথা বলার পরে, এটি নির্ধারিত হয়েছিল যে জাভাতে স্যুইচ করা শিক্ষার্থীদের সেরা আগ্রহ। আমরা যে নিয়োগকর্তাদের সাথে কথা বলেছিলাম তারা চেয়েছিল লোকেরা যে ভাষায় তারা নিয়োগের জন্য তারা যে ভাষা ব্যবহার করছিল তা অভিজ্ঞতা অর্জন করতে পারে। আমি বিশ্বাস করি, 10 বছর পরে, তারা এখনও জাভাটিকে তাদের মূল ভাষা হিসাবে ব্যবহার করছে।
অনুরূপ নোটে, আমরা সত্যিই ভাল সি ++ দক্ষতার সাথে বেশ কয়েকটি সাম্প্রতিক কলেজ স্নাতকদের নিয়োগের সন্ধান করছি। আমরা কোনও সন্ধান করতে পারিনি।
আমি হ্যাঁ বলব। তবে যে কোনও ভাষা সত্যই প্রথম ভাষা হতে পারে। আমি মনে করি সি ++ ভাল কারণ এটি জটিল এবং কখনও কখনও কঠিন হলেও এটি আপনাকে দেখায় যে আপনি আসলে কী করতে পারেন (কম সীমাবদ্ধতা)। এছাড়াও, এর কিছু অবজেক্ট ওরিয়েন্টেড ডিজাইন রয়েছে যা আপনাকে অন্য ভাষা গ্রহণের জন্য প্রস্তুত হতে সহায়তা করতে পারে।
সি ++ ছিল আমার প্রথম ভাষা এবং আমি আনন্দিত এটি ছিল। এটি আমাকে ওওপি মানসিকতায় প্রথম দিকে ভাবতে শুরু করেছে এবং এর জন্য আমি কৃতজ্ঞ। তবে শেষ পর্যন্ত, এটি আপনি যা করতে চান তা আসলে নেমে আসে। ভাষাটি তেমন গুরুত্ব দেয় না কারণ আপনি যদি একটি ভাষার সাথে ভাল পেতে পারেন তবে সম্ভবত অন্যটি চয়ন করতে কোনও সমস্যা হবেনা। আপনি কি করতে চান? গেমস বানান? মোবাইল ফোনের জন্য প্রোগ্রাম? প্রত্যেকের কাছে এর জন্য আরও উপযুক্ত সরঞ্জাম এবং ভাষা থাকবে।
সি ++ একটি বিশেষজ্ঞ ভাষা, কোনও শিক্ষানবিশ নয় ... প্রথমে সি বলে, জাভা বা সি # বা পাইথন নয় ... কেন? কারণ সি আপনাকে আপনার স্মৃতিশক্তি এবং কিছু কৌশল অবলম্বন সম্পর্কে যত্নবান হতে শেখায় যেমন পয়েন্টারগুলি যা সমস্ত ভাষার দ্বারা "লুকানো" এখনও সমস্ত জায়গায় উপস্থিত রয়েছে। আমি এমন অনেক তরুণ বিকাশকারীকে দেখেছি যারা এমনকি মেমরিটি কখনও কখনও প্রকাশিত হওয়া উচিত তাও বুঝতে পারে না এবং ময়লা সংগ্রহকারী একটু বামন নয় যা সমস্ত কোডিং ক্রেপগুলি সাফ করে: তারা তাত্ক্ষণিকভাবে, তারা তাত্ক্ষণিকভাবে উত্সাহ দেয় এবং প্রসারিত হয় এটি এক্সএক্সএক্সএক্সবিবি থাকলেও র্যাম ... তবে তারা বুঝতে পারে না যে ময়লা-আবর্জনা সংগ্রহকারী জাদুকরীভাবে সব কিছু পরিষ্কার করছেন না কেন! এবং আমি এই জাতীয় বিকাশকারীদের C ++ (এবং এমনকি ক্রেজিয়ার, কর্বায়) কোডিং করতে দেখেছি এবং এটি একটি বধ ছিল !!!!!!!!!! সুতরাং আমি সি তে কোডিং শিখতে এবং তারপরে অবজেক্ট কনসেপ্ট এবং আশেপাশের সমস্ত চিনির জন্য পাইথন / জাভা / সি # এ যেতে পরামর্শ দেব। তারপরে আপনি যখন সমস্ত কিছু বুঝতে পারেন, আপনি সি ++ এ যান এবং আপনি সি ++ এর শক্তি অনুভব করেন তবে আপনি এর সমস্ত বিপদগুলিও আবিষ্কার করেন এবং কেন এটি কারও দ্বারা ব্যবহার করা উচিত নয়))
কোন। সি ++ এর মতো অনেকগুলি জিনিস রয়েছে যা একটি নবাগতকে বুঝতে অসুবিধে করে। "সমস্ত প্রোগ্রামিং ভাষা সমান" ফলকিতে প্রবেশ করবেন না।
বেসিক বা পাস্কাল দিয়ে শুরু করুন, ("তারা অবহেলিত" জিনিসগুলি উপেক্ষা করুন) এবং পরে, সি / সি ++ / জাভা / সি # / পার্ল দিয়ে। বা আপনার যদি কোনও সুযোগ থাকে তবে প্রথমে লোগো এবং কারেল এবং তারপরে বেসিক বা পাস্কাল দিয়ে।
পিডি কিছু বিশ্ববিদ্যালয় এবং কলেজগুলির একটি প্রোগ্রামিং ভাষার ব্যবহার এবং তুলনা শ্রেণি রয়েছে এবং এটি ঘটে যে আমি সেই ক্লাসটি পড়িয়েছিলাম ;-)
প্রোগ্রামিংয়ের ভিত্তি শিখতে আপনি যে কোনও ভাষা বেছে নিতে পারেন। আমি সি / সি ++ এ স্টাফ শিখেছি। কিন্তু 7 বছর পরে, আমার স্কুলে সরঞ্জাম / ভাষা পরিবর্তন করা হয়েছে এবং তারা জাভা / সি # পছন্দ করে। ভাষা নিছক সরঞ্জাম। আপনার আরও ভাল হওয়ার জন্য যা দরকার তা হ'ল মৌলিক বিষয়গুলি। যেমন এমআইটি-তে লোকেরা অজগর ব্যবহার করে অ্যালগরিদম ফান্ডামেন্টাল শিখেন। যেমন জাভা ওয়েব প্রোগ্রামিংয়ের জন্য ভাল হতে পারে। তবে সি / সি ++ পরিষেবা এবং উচ্চ কার্যকারিতা অ্যাপ্লিকেশনগুলির জন্য ভাল good সুতরাং এটি আপনার পরিস্থিতিতে উপর নির্ভর করে।
যদি "উপযুক্ত" মানে "সম্ভব" হয় তবে হ্যাঁ। যদি "ভাল" জন্য হয়, অবশ্যই না।
এমনকি সি ++ পছন্দ করাও সম্ভব, তবে এর জন্য আপনি বেশ কয়েকটি ভাষা ভালভাবে শিখতে পারেন এবং কয়েক বছর ধরে টিল লাইফ পচা কোডবেস নিয়ে কাজ করতে পারেন, "ক্র্যাফটিং ননট্রিভিয়াল সফটওয়্যার যা আসলে কাজ করে" এর অভিজ্ঞতা পান - তারপরে সি ++ এর আকর্ষণ থাকবে।
আপনি কুমারী থাকাকালীন শুরু নয়, ছোট, সরল (তবে অনুমান করা আকর্ষণীয় এবং মজাদার) সমস্যাযুক্ত স্নিগ্ধতা।
আমি পাইথন দিয়ে শুরু করব, তারপরে এসআইসিপি (স্কিম) বা এরকম কিছু। হতে পারে বিপরীত বা আন্তঃবাহিত। তাদের সাথে আপনি কেবল সমস্যার সাথে ডিল করতে পারেন। সিস্টেমের সাথে লড়াই করার পরিবর্তে গভীর কাদায় হাঁটতে এবং সমস্ত ধরণের অযৌক্তিক কৌতুক এবং তাদের historicalতিহাসিক কারণগুলি শিখুন।
পরে, আপনি যখন আগে থেকেই কোনও কাগজের ব্যাগ থেকে বেরিয়ে যাওয়ার প্রোগ্রাম করতে পারেন, তখন খালি ধাতবটিতে স্যুইচ করুন: সমাবেশ এবং বিভিন্ন আর্কিটেকচারের উপায়গুলি শিখুন, সম্ভবত নথের মিক্স। আমি ওপকডগুলি মুখস্ত করার অর্থ বা প্রচুর আসল জিনিসগুলি বোঝাতে চাইছি না, কেবল মেমরি বুঝতে, রেজিস্টার করতে, আএলইউ, ক্যাশে, বাধা দেয় এবং পড়ার স্তরের দিকে যায়।
তারপরে সেই ভিত্তির সাহায্যে আপনি সি ++ সহ অন্যান্য ভাষায় প্রকাশিত হতে পারেন। এর মধ্যে কিছু "ভাষার ইতিহাস এবং বিবর্তন" যুক্ত করার জন্য একটি ভাল ধারণা।
আমি মধ্য বিদ্যালয়ে সি ++ দিয়ে শুরু করেছি। আমি এই বইয়ের একটি অনুলিপি তুলেছি : সি ++ হিট প্রোগ্রাম কীভাবে দেইটেল এবং ডিজিটেল । এই বইটি বেশ ভাল।
সত্যিকার অর্থে এখানে কোন সঠিক বা ভুল উত্তর নেই, আমি ব্যক্তিগতভাবে দেখতে পেয়েছি যে সি ++ উপলব্ধিযোগ্য। আমি ওওপি-তে সর্বত্র এটি শিখেছি (আমি "এই" -তে বিভক্ত হয়ে পড়েছি যা আমি এখন বুঝতে পারি না যে কীভাবে আমি কীভাবে এটি পেলাম না) যাই হোক না কেন)। চেষ্টা করে দেখুন, নিরুৎসাহিত হবেন না। যদি আপনি আটকে যান, অন্য ভাষাগুলি দেখুন এবং নতুন ভাষা শিখুন। ধারণাটি হ'ল আপনি একই ধারণাটি ২-৩ টি বিভিন্ন আকারে দেখলে আপনি তাদের আরও ভাল বুঝতে পারবেন। যেমনটি আমি বলেছিলাম, "এই" পয়েন্টারের ধারণাটি আমাকে বিভ্রান্ত করেছে কিন্তু আমি পাইথনে একই জিনিসটি দেখেছি (পরিবর্তে স্ব নামকরণ করা হয়েছে) এটি এখনই আমার কাছে বোধগম্য হয়েছিল কারণ আমি এটি সি ++ তে বুঝতে পেরেছিলাম। আপনি যতগুলি কলেজ এটি শেখাতে পারেন তবে জাভা শিখুন। অজগর বা রুবি শিখুন এটি ভাষা দু ভ্রমণ এবং আপনি যদি ক্লোজার (এবং অন্যান্য সমস্ত লিপস), হাস্কেল, স্কালার মতো আরও কুলুঙ্গি / নতুন জিনিসগুলি আবিষ্কার করতে পারেন ...
না, আমি জাভা বা সি # দিয়ে শুরু করব। আপনি যদি সি ++ শিখতে চান তবে বুনিয়াদি যেমন আপনার ক্লাস কী, লুপ এবং কাঁটাচামচ কীভাবে করা যায় (যদি তবে বিবৃতি দেওয়া হয়) ইত্যাদি শিখার পরে সম্ভবত এটি সহজ হয় তবে কীভাবে সন্ধান করতে হয় তা শিখতে আরও অনেক গুরুত্বপূর্ণ কোনও সমস্যা বা গাণিতিক সমীকরণ এবং এটির থেকে প্রোগ্রাম করার চেয়ে আপনি নিজের সমস্ত স্মৃতি বা যা কিছু প্রকাশ করেছেন তা নির্ধারণ করা।
এই প্রশ্নের পিছনে অনুমানটি উপস্থিত হয় যে "সি ++ এত জটিল দেখা যাচ্ছে, 16 বছর বয়সী কি এটিকে প্রথম (কম্পিউটার প্রোগ্রামিং) ভাষা হিসাবে বেছে নিতে পারবে?"
আমরা 4 বা 5 বছর নাগাদ, আমরা মাতৃভাষায় বেশিরভাগ নির্মাণগুলি তুলে ধরি, অন্যরা এটি শোনার মাধ্যমে এটির এতটা এক্সপোজার নিয়ে। দুর্দান্ত বাক্য গঠনে একটি জীবন সময় লাগে, সেখানে কোনও প্রশ্ন নেই।
সি ++ নিশ্চিত যে বেশিরভাগ মানুষের ভাষা থেকে অনেক কম জটিল / জটিল। 16 বছরের বাচ্চাদের অবশ্যই এটি বাছাই করতে সক্ষম হওয়া উচিত। তারা কি এটি দিয়ে দুর্দান্ত কোড লিখবে? অপেক্ষা করতে এবং দেখতে পেয়েছেন।
নতুনদের প্রথমে 'প্রোগ্রামিং' এর প্রশংসা করা দরকার। এক শ্রেণীর শুরুর প্রশিক্ষণ দেওয়ার অভিজ্ঞতায় তারা প্রথমে তাদের প্রশংসা করেছে যা তারা সবচেয়ে বেশি বোঝে। পাইথন বনাম সি # এর মতো তারা পাইথনের প্রশংসা করে কারণ এটি খুব উচ্চ স্তরের এবং সি # এর মতো চিহ্ন ব্যবহার করে না, যার অর্থ মানব ভাষার খুব কাছাকাছি, এর ইংরেজি। সুতরাং আমি উচ্চ স্তরের থেকে নিম্ন স্তরের প্রোগ্রামিং শিখতে সুপারিশ করব।