প্রোগ্রামার হিসাবে কম্পিউটার আর্কিটেকচার শেখা [বন্ধ]


12

আমি সাধারণত এসও এবং অন্যান্য জায়গাগুলিতে (প্রশিক্ষক, বুক লেখক ইত্যাদির) গুরু জুড়ে ছুটে যাই যা লাইনগুলি "This will cause alignment issues"বা অন্যান্য নিম্ন স্তরের টিডবিটগুলির পাশাপাশি কিছু বলবে ।

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

প্রোগ্রামারদের সাথে প্রাসঙ্গিক নিম্ন স্তরের স্টাফগুলির মধ্য দিয়ে যাওয়া বইগুলির জন্য আপনার কাছে কি সুপারিশ রয়েছে?


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

1
@ ক্রিস: আমি যা বোঝাতে চেয়েছি তা ছিল "প্রোগ্রামারদের জন্য নিম্ন-স্তরের" ... প্রযুক্তিগতভাবে আমরা পূর্ণ বর্ধিত সিপিইউ-আর্কিটেকচারের মতো যেতে পারি, নিঃসন্দেহে এটি একদিন কার্যকর হবে, তবে আমাদের সবার বিবেচনায় সীমিত সময় আছে, একটি বই এটি নিম্ন-স্তরের জিনিসগুলি শেখায় যা সম্পর্কে সমস্ত প্রোগ্রামারদের জানা উচিত নিখুঁত।
সমরসার

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

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

উত্তর:


16

এই উদ্দেশ্যটির জন্য নিখুঁতভাবে বইগুলির একটি দুর্দান্ত সেট হ'ল র‌্যান্ডাল হাইডের "রাইন্ড গ্রেট কোড" সিরিজ ( খণ্ড ১ ম খণ্ড ২ ): উচ্চ স্তরের ভাষাগুলিতে দক্ষ কোড লেখার জন্য আপনার কী প্রয়োজন তা পরিপ্রেক্ষিত থেকে স্পষ্টভাবে মেশিন আর্কিটেকচারের বর্ণনা description ।


এটি কোন উচ্চ-স্তরের ভাষাগুলিতে প্রয়োগ হবে? এটি উদাহরণস্বরূপ পাইথন, জাভাস্ক্রিপ্ট, সি #, স্কেলা অন্তর্ভুক্ত করবে?
কাজ

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

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

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

যদিও আমি এখনও বইগুলি পড়িনি, তবে আমি এই উত্তরটি বইয়ের পর্যালোচনা / সারাংশের ভিত্তিতে সঠিক হিসাবে নির্বাচন করব select
সমরসা

6

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

অনলাইন, এই http://www-uxsup.csx.cam.ac.uk/courses/ আর্কিটেকচার / কোর্স.পিডিএফ সম্ভবত আপনি যা চান তা আপনাকে দেবে।


পিডিএফের লিঙ্কটি মারা গেছে।
অজয়

5

এক্স 86 প্ল্যাটফর্মের জন্য, ইন্টেলের আইএ -32 এবং ইন্টেল 64 প্রসেসরের ম্যানুয়ালগুলির একটি অনুলিপি নিন । অপ্টিমাইজেশান রেফারেন্স ম্যানুয়ালটি ইন্টেল x86 সিপিইউগুলির জন্য নিম্ন-স্তরের দৃষ্টিভঙ্গি থেকে এই বিষয়গুলি নিয়ে প্রচুর আলোচনা করে। এএমডি-তে একই রকম ম্যানুয়াল রয়েছে যা একই সমস্যাগুলি কভার করে।

বেশিরভাগ সিপিইউ আর্কিটেকচারে একই রকম ম্যানুয়াল রয়েছে যা পারফরম্যান্সের সমস্যাগুলি নিয়ে আলোচনা করে। ( যেমন এআরএম এবং পাওয়ারপিসি ।)


3

প্রোগ্রামিংয়ের সাথে সরাসরি প্রাসঙ্গিক বেশ কয়েকটি কেস স্টাডি সহ হেনেসি এবং প্যাটারসনের ( অ্যামাজন লিঙ্ক ) র একটি "কম্পিউটার আর্কিটেকচার: একটি কোয়ান্টেটিভেটিভ অ্যাপ্রোচ" পেয়েছি ।

এটি মার্কিন যুক্তরাষ্ট্রে বেশ কয়েকটি স্নাতক এবং স্নাতক স্তরের সিএস আর্কিটেকচার কোর্সে বিভিন্ন এক্সেন্টেন্টগুলির সাথে অভ্যস্ত।

এটি আরস টেকনিকাতে কিছুক্ষণ আগে দুর্দান্ত রিভিউ পেয়েছিল ।


1
যদিও আমি এই বইটি পছন্দ করি - আমি চারটি সংস্করণের মালিক - এটি কম্পিউটার আর্কিটেক্ট হিসাবে পরিচালিত, প্রোগ্রামার নয়।
এপ্রোগ্রামার

3

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

এখানে বইয়ের বর্ণনা:

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


এটি একটি আশ্চর্যজনক বই !!
আরমান্ডো

2

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

আপনি আসলে উপাদানটি শেখার জন্য কয়েক মাস উত্সর্গ করতে না পারলে আমি এটির প্রস্তাব দিতে পারি না। এটি এমন ধরণের জিনিস নয় যা আপনি কেবল স্কিম করেন এবং হঠাৎ আলোকিত হন। তবে আপনি যদি গুরুতর হন তবে আমি এটির সুপারিশ করছি।


2

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

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

(সেই "গ্রেট কোড লিখুন" বইয়ের সিরিজ যা উল্লিখিত অন্য এক ব্যক্তি দারুণ দেখায়, এবং আমি আমার প্রশ্নটি সম্পাদন করেছিলাম যে আমি আগে যে বইটি শিখতে-বুকিং শিখিয়েছিলাম সেগুলি সরাতে, কারণ এটি দুর্দান্ত দেখাচ্ছে! )

কম্পিউটার আর্কিটেকচারের সত্যিকার অর্থে ভাল কিছু শেখানো:

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

  2. আমার প্রথম পয়েন্ট থেকে কয়েক বছর এগিয়ে চলছে; আসল আইবিএম পিসি আর্কিটেকচার, 8086 সমাবেশ ভাষা এবং আইএসএ বাস সম্পর্কে জানুন। এগুলি এবং এর সীমাবদ্ধতাগুলি থেকে, "ইনটেল কোর আই 7" সিপিইউতে কী রয়েছে এবং পিসিআই এবং পিসিআই-ই বাসগুলি কীভাবে আপনার প্রয়োজন হয় তা বোঝা আরও প্রাকৃতিকভাবে এগিয়ে যেতে পারে। পিসি আর্কিটেকচারে আজও মূল আইবিএম পিসি ডিজাইন থেকে কিছুটা "হ্যাংওভার" রয়েছে। ২০১১ পিসিতে যেভাবে প্রাথমিক প্রোগ্রাম (অপারেটিং সিস্টেম) লোডিং (বুট-আপ) ঘটে তার মূল আইসিএম পিসি এবং তার রম বায়োস এবং একটি মূল পিসিতে এর সিএমওএস সেটিংসের উত্তরাধিকারের জন্য এখনও অনেক .ণী।

  3. লিনাক্সের পূর্ব-কনফিগার করা বিল্ডটি ব্যবহার করুন এবং সংশোধন করুন যা কিছু এম্বেড থাকা নন-পিসি ডিভাইসে কাজ করে এবং আপনি এম্বেড থাকা কম্পিউটার আর্কিটেকচার সম্পর্কে কেবলমাত্র প্রযুক্তিগত আর্কিটেকচারই নয়, কেন কিছু বৈশিষ্ট্যগুলি সেগুলি সম্পর্কেও শিখবেন। একটি সহজ উদাহরণ যা সস্তা পাওয়া যায় তা হ'ল টিএস -7200, যার দুর্দান্ত পিসি -104 রয়েছে (আসল পিসির মতো আইএসএ বাস)। পিসি -104 (এম্বেড করা 16 বিট আইএসএ-বাস যা আইবিএম পিসি / এটি 80286 এর যুগের পিসিগুলির সাথে পিন সামঞ্জস্যপূর্ণ) কম্পিউটারগুলি নন-বোর্ড-ডিজাইনারের জন্য একটি এম্বেডড সিস্টেম তৈরির দুর্দান্ত উপায়, কারণ মডিউলগুলি স্ট্যাকেবল। কিছু অতিরিক্ত আইও বা পেরিফেরিয়াল চান? কেবল কয়েকটি মডিউল স্ট্যাক আপ। টিএস -3200 এর একটি নন- x86 কোর (একটি এআরএম 9 সিপিইউ) রয়েছে যা বিগ-এন্ডিয়ান বা লিটল-এন্ডিয়ান চালাতে সক্ষম। আপনি যদি এখনও আপনার আর্কিটেকচার শিখার যাত্রায় "অন্তর্নিহিততা" না নিয়ে থাকেন তবে এটির মুখোমুখি হওয়ার জন্য এটি ভাল জায়গা।


0

সমাবেশ ভাষা সম্পর্কিত বেশিরভাগ বই প্রাসঙ্গিক বৈশিষ্ট্যগুলি নিয়ে আলোচনা করবে তবে সাধারণত কেবল স্থাপত্যের জন্যই বইটি লক্ষ্য করে। সুতরাং আপনি ক্যাশে স্পিল এবং এমএমইউ পৃষ্ঠা-ম্যাপিং কৌশলগুলি সম্পর্কে তথ্য পাবেন তবে সম্ভবত শেষের দিক থেকে কিছুই নয়।

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