প্রথম প্রোগ্রামিং ভাষা হিসাবে সমাবেশ? [বন্ধ]


12

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

দ্রষ্টব্য: আমি কোনও শিক্ষক নই, কেবল কৌতূহলী


5
আমি মনে করি এটি কম্পিউটার বিজ্ঞান অধ্যয়নকারী এবং সফটওয়্যার ইঞ্জিনিয়ারিং / উন্নয়ন নয়
ইমরান ওমর বুখশ

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

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

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

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

উত্তর:


14

অ্যাসেম্বলি কোড সহ কোনও নতুন প্রোগ্রামারকে অনুপ্রাণিত করা কঠিন হবে। একটি গতিশীল হ্যালো, ব্যবহারকারীর ওয়েবসাইট কম প্রচেষ্টা সহ অনেক শীতল। আমি বলছি না যে মৌলিক পাঠগুলি একই রকম, তবে একটি প্রাথমিক পাঠ্যক্রমটিতে একটি বৃহত্তর অনুপ্রেরণামূলক বিষয়বস্তু রয়েছে, অন্যথায় দ্বিতীয় কোর্সটি থাকবে না।

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


20
আমি অনেক শিক্ষার্থী দেখেছি যারা একটি এলইডি পলক এবং মোটর পদক্ষেপ তৈরি করতে ব্যাপকভাবে বিস্মিত হয়েছিল।
ফিস

1
@ হোয়াটসিসনাম +১, এটি একটি দুর্দান্ত চিত্তাকর্ষক ডেমো তৈরি করবে, যতক্ষণ না এটি ইলেক্ট্রনিক্সে ধরা না পড়েই করা যায়। অবশ্যই, এটি একটি উচ্চ-স্তরের ভাষার সাথেও করা যেতে পারে অর্থাৎ রুম্বা হ্যাকিং, যদি "চালক" কোনও প্রশিক্ষক সরবরাহকারী ব্ল্যাক বক্স থাকত।
G__

1
প্রচুর নতুন প্রোগ্রামার ভিআইসি 20, সি = 64 এবং অনুরূপ মেশিনে সমাবেশ দ্বারা অনুপ্রাণিত হয়েছিল।
গাইউস

2
@ গাইউস প্রথমে নেই! আপনি সেই মেশিনগুলি চালু করেন এবং আপনি একটি প্রাথমিক দোভাষী হন।
সমাবেশটি

1
@ হোয়াটসিসনাম তবে আপনি আরডুইনোর মতো কিছু ব্যবহার করতে পারেন এলইডি জ্বলতে এবং মোটর সরিয়ে অ্যাসেম্বলি না শিখে
কেন লিউ

12

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

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

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


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

10
@ জন ক্যাশকমনেস: খারাপ উপমা। এসেম্বলারের সাথে শুরু করা হাতুড়ি, কীবোর্ড, ওজন এবং ড্যাম্পার শুরু করার মতো। এবং তারপরে কালো-কী, সাদা-কী ব্যবসায়টি ব্যাখ্যা করতে সঙ্গীত তত্ত্ব (পঞ্চমতম বৃত্ত) এ এগিয়ে চলেছেন। তারপরে স্কেল বাজানোর আগে আরও বেশি সংগীত তত্ত্বের দিকে এগিয়ে যাওয়া।
এস .লট

3
@ এস.লোট: এহহহহ্ ... এটাকে বেশ কিনবেন না। ট্রানজিস্টর সম্পর্কে চিন্তা না করে আমি সমাবেশে "হ্যালো ওয়ার্ল্ড" টাইপ প্রোগ্রাম লিখতে পারি। একজনকে প্রোগ্রামার হওয়ার জন্য একটি চিপ ডিজাইনার হওয়ার দরকার নেই। আপনি যে জ্ঞানের কথা বলছেন তা হ'ল পিয়ানো তৈরি বা মেরামত করার ভিত্তি, যা কেবলমাত্র একটি খেলার সাথে সম্পর্কিত।
জন

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

1
@ এস.লট: হুমম্মম ... আমি অনুমান করি যে নির্দিষ্ট নির্দেশের সেটটি চিপের উপর নির্ভর করে, তাই না? ভাল যুক্তি.
জন

7

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

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

এটি ভালভাবে কাজ করতে পারে , যদি এটি সঠিকভাবে করা হয়। শুধু সতর্ক হও...


সমস্যা জিনিসটির জটিলতার জন্য +1। আমার ভোটটি উচ্চ স্তরের ভাষা বাস্তবায়নের বিরুদ্ধে কয়েকটি সমাবেশকারী বাস্তবায়নের বিপরীতে হবে। এবং সম্ভবত x86 এর পরিবর্তে একটি এমুলেটরটিতে 68000 এসেম্বলারের ব্যবহার করুন - আমি জানি না যে x86 / amd64 এসেম্বলারের কীভাবে বিবর্তন হয়েছে, তবে 000৮০০০ এর চেয়ে 86০86 way এর চেয়ে বেশি পরিচ্ছন্ন এবং কাজ করা সহজ ছিল ততক্ষণে-উপায়-ব্যাক-এর পরে। এছাড়াও সম্ভবত বিবেচনা করার মতো - একটি ভার্চুয়াল মেশিন এসেম্বলারের যেমন আপনি এলএলভিএমের সাথে পেতে পারেন। আসল সমাবেশকারীর মতো নয়, তবে এটি প্রচুর অনুরূপ নীতি ভাগ করে এবং সম্ভবত এটি আরও প্রাসঙ্গিক।
স্টিভ 314

সি এর সাথে একত্রে এএসএম পড়ানো বেশ ভাল ধারণা বলে মনে হচ্ছে
এন্টো

@ Steve314: আমি এক্স 86 প্রতীকী ভাষান্তর আপ নই, কিন্তু এটা দেখে মনে হচ্ছে এটা 8086. চেয়েও বেশি জটিল অর্জিত হচ্ছে
ডেভিড Thornley

@ ডেভিড - আমি এটির আশা করি তবে এটি কিছু উপায়ে সহজ হতে পারে got 8086 দিনের মধ্যে, উপলভ্য মোডগুলির পরিসীমা নির্ভর করে আপনি কোন নির্দিষ্ট নিবন্ধটি ব্যবহার করছেন, সেই সাথে নির্দেশের উপরও নির্ভর করে। 68000-তে, (বেশিরভাগ উদ্দেশ্যে) ডেটা রেজিস্টার এবং অ্যাড্রেস রেজিস্টার ছিল, প্রতিটি প্রকারের সাথে একত্রে একইভাবে ব্যবহৃত হয়, কোনও-ই-এইড-ইনডেক্স-বা-বে-পয়েন্টার-বা-কোন ঝামেলা নেই ss সময়ের সাথে সাথে, সম্ভবত যে পরিবর্তন হয়েছে? 000৮০০০-তে আরও রেজিস্টার ছিল, কিছুটা স্মৃতি থেকে বেরিয়ে যাওয়ার ক্ষেত্রে সঞ্চয় করে। যাইহোক, বেসিক এসেম্বলারের নীতিগুলি পেতে আপনার সিমড স্টাফ শেখার দরকার নেই।
স্টিভ 314

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

7

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

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


7

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

আমি কখন গাড়ি চালানো শিখলাম এটির বিষয়টি মনে করিয়ে দেয়। আমার মা জোর দিয়েছিলেন

আপনার আত্মবিশ্বাস না পাওয়া পর্যন্ত একটি স্বয়ংক্রিয় গাড়ীতে শিখুন এবং তারপরে আপনি আমাদের ম্যানুয়াল গাড়ি চালাতে পারবেন।

যুক্তিটি হওয়ায় তিনি চাননি যে আমাকে যতটা হওয়া দরকার তার চেয়ে বেশি একবারে একবারে বিভ্রান্ত হব।

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

আমার ক্লাস অর্ধেকেরও বেশি আমাদের অ্যাসেম্বলি ক্লাসে ব্যর্থ হয়েছিল এবং এটি এমন একদল লোক ছিল যারা সেই সময়টিকে 2+ বছর ধরে প্রোগ্রামিংয়ের জন্য নিজেকে জ্ঞানী মনে করেছিল।

আমার ব্যক্তিগত পছন্দ, যদি আমাকে আবার সবকিছু শিখতে হয় তবে তা এমন একটি ভাষা দিয়ে শুরু করা উচিত যা আমার পক্ষে যথাসম্ভব চেষ্টা করে। তারপরে, আমি যেমন শিখছি তত নিম্ন স্তরের ভাষাগুলির দিকে পিছনে চলে যান।


1
আমি মনে করি এটি ভাল এবং দৃ sound় পরামর্শ। এক পর্যায়ে বিটস এবং বাইটস এবং প্রসেসর তাদের সাথে কী করে তবে তাদের সাথে শুরু করা সম্পর্কে সচেতন হওয়া জরুরী কারণ আমাদের কাছে রুবি এবং পাইথনের মতো ভাষা রয়েছে যা শিক্ষাগতদের জন্য নিখুঁত এবং দুর্দান্ত সফ্টওয়্যার ইঞ্জিনিয়ারিং নীতিগুলি উত্সাহিত করে।
davidk01

1
আপনি কি সেই সম্ভাবনা বিবেচনা করেছেন যে প্রশিক্ষক অ্যাসেম্বলির ভাষা ক্লাসটি শেখানোর ক্ষেত্রে কম-উচ্চতর কাজ করেছেন?
জন আর স্ট্রোহম

আমি মনে করি তিনি একটি আশ্চর্যজনক কাজ করেছেন।
ক্রেজিপেনগুইন

3

অন্তত যারা অতিরিক্ত প্রচেষ্টা চালাতে প্রস্তুত তাদের কাছে কি এটি একটি বাস্তবসম্মত ধারণা?

না

তবে একজনের মেশিনটি সম্পর্কে ভাল ধারণা থাকতে পারে

কেন যে সুবিধাজনক? এটি কীভাবে কোনও মূল্য হতে পারে সে সম্পর্কে আপনি একটি উদাহরণ বা একটি ইঙ্গিত সরবরাহ করতে পারেন?

সুবিধাগুলি এবং অসুবিধাগুলি?

সুবিধা: কিছুই নয়।

অসুবিধা:

  • পতাকা এবং রাজ্য এবং রেজিস্ট্রার এবং জটিল মেমোরি-সম্বোধন প্রকল্প এবং I / O ডিভাইস এবং ডিএমএ এবং বিঘ্ন এবং ঘড়ির চক্র এবং স্টাফ সম্পর্কে এলোমেলো ট্রিভিয়ার একটি গোলমাল। এর কোনটিই আধুনিক ভিএম ভিত্তিক ভাষা এবং কম্পিউটিং বুঝতে সহায়তা করে না।

  • প্রকৃত সমস্যা-সমাধান থেকে সংযোগ বিচ্ছিন্ন করা যা কম্পিউটারগুলি আসলে প্রয়োগ করা হয়।

  • শেষ ব্যবহারকারীদের কাছ থেকে একটি তালাক এবং তাদের সমাধান করার জন্য ব্যবহারিক ডেটা এবং প্রক্রিয়াজাতকরণ সমস্যাগুলি।

  • মেশিন এবং ভার্চুয়াল মেশিন এবং সংকলক এবং দোভাষী এবং বিশ্বের কচ্ছপগুলির পুরো স্ট্যাকের ব্যাখ্যাগুলির একটি অযথা sp

  • তারা পরিশেষে যে উচ্চ-স্তরের ভাষায় আসে সেগুলিতে "এটি একটি 'অবজেক্টের শারীরিক বাস্তবায়ন' সম্পর্কিত অনেক বিস্তৃত।

  • তারা শেষ পর্যন্ত যে উচ্চ-স্তরের ভাষায় পৌঁছে যায় তাতে "এই পদ্ধতি পদ্ধতিগুলি কীভাবে প্রেরণ করা হয়" তার অনেকগুলি বিস্তারিত।

  • "এটি 80386-তে প্রযোজ্য না তবে এটি 80586 চিপসেটের ক্ষেত্রে প্রযোজ্য" ব্যাখ্যাগুলি প্রচুর।

  • কোনও ASM প্রোগ্রামকে এমন কোনও কিছু করার জন্য অনেকগুলি নিম্ন-স্তরের ওএস এপিআই কল করে যা কারওরূপে কার্যকর হওয়ার অনুরূপ।

প্রথম প্রোগ্রামিং ভাষার মূল বিষয়টি চিপসেটে দক্ষতা অর্জন নয়।

প্রথম প্রোগ্রামিং ভাষার মূল বিষয় হল

  1. কম্পিউটিং সম্পর্কে কীভাবে ভাববেন তা বুঝুন।

  2. কীভাবে দরকারী ডেটা প্রক্রিয়াকরণ করবেন তা বুঝুন।

  3. কীভাবে কিছু করা যায় তা বুঝুন। ডিজাইন - কোড - পরীক্ষা।


1
@ এস.লট - অবশ্যই, এটি আমার মূল প্রশ্নের মূল বিষয় নয়, আপনি উচ্চ স্তরের ভাষাগুলিতে যাওয়ার আগে এগুলি রাখা সুবিধাজনক হতে পারে । আমাকে ভুল করবেন না, আপনি একটি বৈধ পয়েন্ট করেন।
Anto

3
-1 আপনার অনেক অসুবিধাগুলি আমি সুবিধাগুলি বিবেচনা করি। উপরে থেকে এটি ব্যবহার করার আগে নিম্ন স্তরের কীভাবে কাজ করে তা আরও ভাল। ভিত্তি গুরুত্বপূর্ণ।
9'11

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

4
এসেম্বলারের সুবিধা হ'ল এটি প্রদর্শিত হয় যে প্রকৃত কম্পিউটার কীভাবে কাজ করে। তুমি জান. জিনিসটি আসলে সব কিছু চালিয়ে যায়
পল নাথান

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

3

যদি আমাকে একটি পাঠ্যক্রম ডিজাইন করার দায়িত্ব দেওয়া হয় তবে আমার একই সময়ে দুটি সেমিস্টারে প্রথম সেমিস্টার চলবে: এসএম + বেসিক কম্পিউটার সংস্থা / আর্কিটেকচার এবং স্কিম প্রতিষ্ঠিত একটি এসআইসিপি-ভিত্তিক কোর্স। দ্বিতীয় সেমিস্টারটি ডেটা স্ট্রাকচার এবং স্কিমের প্রাথমিক অ্যালগরিদমগুলিকে কেন্দ্র করে হবে।

দ্বিতীয় বছরটি হবে দেলফি, সি ++ বা সি # এর একটি ব্যবহার করে একটি দীর্ঘ-বছরের প্রকল্প যা আধুনিক সফ্টওয়্যার ডিজাইনের (ওও ডিজাইন, কিছু কার্যকরী নকশা, সফটওয়্যার ইঞ্জিনিয়ারিং, সংস্করণ নিয়ন্ত্রণ ইত্যাদি) উপর দৃষ্টি নিবদ্ধ করে।

এর প্রভাবটি বিমূর্ত এবং ব্যবহারিক উভয় ক্ষেত্রে একটি তীব্র ভিত্তি প্রদান করা উচিত, যা তৃতীয় এবং চতুর্থ বছরে গভীরতর কোর্সগুলি সৃজন করে।


3

আমি টিএ প্রবর্তনীয় কম্পিউটার বিজ্ঞানের ক্লাস করতাম, এবং আমি এটি একটি খারাপ ধারণা বলে মনে করি।

  1. অ্যাসেম্বলি উভয় যুক্তি ব্যবহার করে (যদি এটি হয় তবে) এবং ধারণা এবং সংখ্যার মধ্যে খুব কঠিন অনুবাদ। ইন্ট্রো সিএস শিক্ষার্থীরা প্রায়শই কেবল যুক্তি (লুপগুলি, যদি / অন্যথায়, বুলিয়ান এক্সপ্রেশন) নিয়ে লড়াই করে এবং কোন সংখ্যাটি কী যুক্তিযুক্ত অভিব্যক্তি বোঝায় তা নিয়েও তারা চিন্তিত হওয়ার আগে তাদের কেবল এটিকে মোকাবেলা করতে হবে। উচ্চ স্তরের ভাষা ব্যবহার করে এমন শিক্ষার্থীদের জন্য এই যুক্তিটি বিমুগ্ধ করে যাঁদের আগে এমনভাবে ভাবার কোনও কারণ নেই।
  2. ইন্ট্রো সিএস ক্লাসগুলি অগত্যা কেবল সিএস মেজরদের দ্বারা নেওয়া হবে না যারা সিএস দিয়ে চালিয়ে যাবেন। প্রায়শই, এগুলি অন্যান্য ইঞ্জিনিয়ারিং মেজর এবং নন-মেজরদের দ্বারা নেওয়া হয় যারা কেবল নির্বাচনের জন্য একটি আকর্ষণীয় বিষয় "ভ্রমণ" করে are হার্ড-কোর, প্রতিশ্রুতিবদ্ধ সিএস শিক্ষার্থীদের ফাউন্ডেশনের জন্য অ্যাসেম্বলিটি দুর্দান্ত, তবে মেজর বিবেচনা করা শিক্ষার্থীরা বা যারা কখনও মেজর নিতে চায় না তবে ক্ষেত্রের সাথে একটি পরিচিতি চায় তার জন্য প্রোগ্রামিং প্রায়শই কী হয় তার একটি খুব ভাল ধারণা দেয় না doesn't ; না এটি বেশিরভাগ ক্ষেত্রে এটি নিজস্বভাবে মারাত্মকভাবে কার্যকর।
  3. উচ্চ-স্তরের ভাষাগুলি প্রকৃত প্রোগ্রামিং কাজের মূলটিকে আরও স্বচ্ছ করে তুলেছে। অ্যাসেম্বলি কিছু মূল ভিত্তিক বিষয়গুলি হিট করে - বেসিক মেমোরি ধারণাগুলি, বেসিক পারফরম্যান্স ধারণা, ইত্যাদি - তবে সত্যই কোনও রক্ষণাবেক্ষণযোগ্য, পঠনযোগ্য নকশা তৈরি করতে আসে না, যা এই দিনগুলির চেয়ে বেশি গুরুত্বপূর্ণ, আইএমও। প্রারম্ভিক শিক্ষার্থীরা প্রায়শই মনে হয় পুরানো ফ্যাশনযুক্ত "রিয়েল প্রোগ্রামাররা কোড লেখেন অন্য কেউ" ধারণাগুলি পরিচালনা করতে পারে না, এবং একটি উচ্চ স্তরের ভাষা শেখানো শিখতে সহায়তা করে যে কোডিং একটি দক্ষ কাজ নয় কেবল উজ্জ্বল হওয়ার বিষয়ে নয় being

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


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

3

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

কমোডোর কীভাবে কাজ করেছিল সে সম্পর্কে আমি অনেক কিছু শিখেছি, তবে মোটরোল্লা চিপটির একটি খুব সাধারণ অপকোড সেট ছিল। 255 এরও কম অপকড একে অপরের থেকে আলাদা রাখা খুব বেশি কঠিন নয়। আমার বয়স না ইন্টেল 8086. জন্য প্রোগ্রামিং মটোরোলা 6510 চিপের উপর আমার অভিজ্ঞতা parlay করার চিপ এবং সিস্টেম আর্কিটেকচারের খুব আলাদা সক্ষম। আমি ভাবছি আমিও এমিগির মোটরোলার 68000 চিপ পর্যন্ত উঠতে একই সমস্যা করতে পারতাম।

সংক্ষেপে, আমাকে যে সমস্ত লোক বলেছে যে এসেম্বলিকে একটি ভাল প্রথম ভাষা হতে হবে তার সাথে আমি আন্তরিকভাবে একমত হতে পারি না। কারণটা এখানে:

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

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


1

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

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


0

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


0

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

  • মেমরি পরিচালনা কৌশল
  • এইচডব্লিউ আইও (বিশেষত সময় এবং কার্য সম্পাদন সম্পর্কিত চ্যালেঞ্জগুলি)
  • সিপিইউ বৈশিষ্ট্য - বিশেষত সুরক্ষা বৈশিষ্ট্য

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

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

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