বৈদ্যুতিন ইঞ্জিনিয়ারদের জন্য প্রোগ্রামিং ভাষা


22

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

আমি ভিবি। নেট, সি # এবং সি ++ জানি। আমার ছুটিতে আমার প্রচুর সময় থাকে তাই আমি "ইলেকট্রনিক্স ক্ষেত্র" তে আরও গভীরভাবে প্রোগ্রামিংয়ে আঁকতে চাই। তাহলে আপনি কী শিখতে বা মনোনিবেশ করার জন্য সুপারিশ করবেন?

আমি সেই ভাষাগুলিকে প্রোগ্রামিং মাইক্রোকন্ট্রোলার এবং অন্যান্য সংহত সার্কিটগুলিতে ব্যবহার করতে চাই। সি ++ কি যথেষ্ট বা আমারও সি ​​সি করা উচিত? আপনার চিন্তা আমাকে বলুন দয়া করে।


3
"সোল্ডার" বা আরও গুরুতর বিষয়, সাপোর্ট সরঞ্জামগুলির জন্য প্লেইন সি মোটামুটি প্রচলিত, যদিও বর্তমানে পাইথনটি কিছুটা ট্রেন্ডি।
ক্রিস স্ট্রাটন

উত্তর:


29

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

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

আমি ডানদিকে ঝাঁপিয়ে পড়তাম এবং কয়েকটি উন্নয়ন বোর্ড দখল করতাম এবং কোডিং করতাম। আপনি পিআইসি 16 এফের মতো নিম্ন-প্রান্তের 8-বিট মাইক্রো বেছে নিতে পারেন (মাইক্রোচিপ ডাইরেক্টারে প্রচুর স্টার্টার কিট)
পিক 24 এর মতো 16-বিট মাইক্রো এর মাঝারি এবং একটি সি / সি ++ / এমবেডেড লিনাক্স এআরএম - STM32F4 এআরএম কর্টেক্স এম 4 ডিসকভারি একটি খুব সস্তা দেব বোর্ড যা দখল করার মতো হতে পারে।
প্রোগ্রামেবল লজিক এবং হার্ডওয়্যার বর্ণনা ভাষার ভাষাতে (এইচডিএল - বড় দুটি হ'ল ভেরিলোগ এবং ভিএইচডিএল) দিক থেকে, এটি ডিগ্লেন্ট বা অনুরূপ থেকে কোনও এফপিজিএ বা সিপিএলডি ডেভ বোর্ডটি ধরে রাখা উপযুক্ত।

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


9
পিআইসিগুলি সস্তা হতে পারে তবে শিখা যুদ্ধ শুরু করার ঝুঁকি নিয়ে আমি যুক্তি দেব যে একটি শিখার সরঞ্জাম হিসাবে একটি পিক ব্যবহার করা আপনাকে সাধারণ উদ্দেশ্যে মাইক্রোকন্ট্রোলার প্রোগ্রাম করার জন্য শেখানোর পরিবর্তে পিকগুলি প্রোগ্রাম করতে শেখায়। এর জন্য এমএসপি, এভিআর (আরডুইনো), নিম্ন প্রান্তের এআরএম কর্টেক্স বা এমনকি সম্মানজনক 8051 প্রসেসর আরও সহজে স্থানান্তরযোগ্য দক্ষতা সরবরাহ করবে।
uɐɪ

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

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

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

2
"আপনি ইতিমধ্যে সি ++ জানলে খুব বেশি শক্ত হওয়া উচিত নয়"? আমি তাতে একমত হব না, "VB। নেট, সি এবং সি ++" জানে এমন কেউ সম্ভবত সম্ভবত একটি উচ্চ-স্তরের, অবজেক্ট-ভিত্তিক আরআইআই শৈলীতে ব্যবহার করেছেন এবং সঠিকভাবে ম্যানুয়ালটিতে আঁকড়ে ধরার জন্য কিছুটা সময় প্রয়োজন হতে পারে স্মৃতি ব্যবস্থাপনা.
বাম দিকের বাইরে

23

সি শিখুন এবং এমএসপি ৪৩০ বা এআরএম কর্টেক্সের মতো সস্তা মাইক্রোকন্ট্রোলার ডেভলপমেন্ট বোর্ড পান এবং কমপক্ষে কয়েকটি সি প্রোগ্রাম লিখুন এবং লোড করুন।

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

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

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

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

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


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

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

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

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

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

10

আমি অন্য সবার সাথে একমত যে আপনাকে সি তে খুব দক্ষ হতে হবে

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

আপনার সি তৈরি করছে এমন এসেমব্লার বোঝা আপনাকে গতি এবং সংযোগের দিক থেকে আরও অনুকূল সি লিখতে দেয়। দ্রুত কোডটির অর্থ:

  • আপনি একটি ধীর সস্তার এমসিইউ ব্যবহার করতে পারেন এবং প্রতিযোগীকে আন্ডারকাট করতে পারেন।
  • আপনি উন্নত EMC সম্মতি জন্য ঘড়ির হার ডাউন করতে পারেন।
  • একটি স্বল্প শক্তি প্রয়োগে এমসিইউ ঘুমের মধ্যে আরও বেশি সময় ব্যয় করতে পারে, যা সরাসরি ব্যাটারির আয়ু বাড়িয়ে তোলে।

আরও কমপ্যাক্ট কোডের অর্থ হ'ল আপনি কম স্মৃতি সহ সস্তা একটি এমসিইউ ব্যবহার করতে পারেন। অথবা আরও বৈশিষ্ট্যের জন্য জায়গা আছে।


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


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

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

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

9

একজন এমএসইই হিসাবে যারা প্রতিরক্ষা শিল্পে 8 বছর ধরে কাজ করছেন, আমি আপনাকে বলতে পারি যে ল্যাবভিউ ( কীভাবে একটি গ্রাফিকাল, কঠোরভাবে টাইপ করা, ডেটাফ্লো ভাষা) তে ভাল প্রোগ্রাম করা যায় তা বোঝার অর্থ আপনি কখনই কাজের স্বল্পতায় থাকবেন না।

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

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

দ্রষ্টব্য: আমি একটি সার্টিফাইড ল্যাবভিউ বিকাশকারী।

এখানে চিত্র বর্ণনা লিখুন


5
আমি যে সমস্ত প্রোডাকশন ল্যাবভিউ দেখেছি এগুলি আরও দেখতে দেখতে: আমার এই সন্দেহ নেই যে এই জাতীয় কোড বজায় রাখতে আগ্রহীদের জন্য একটি শক্ত চাকরির বাজার রয়েছে।
markrages

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

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

@ মার্কেজগুলি: কেন আমি ল্যাবভিউজ পছন্দ করলাম তা স্মরণ করিয়ে দেওয়ার পরে, আমি আপনার মন্তব্যটি দেখেছি এবং কেন আমি এটি ঘৃণা করেছি তা মনে পড়ে। ওহ, হতাশার ঘন্টাগুলি সমস্ত একবারে ফিরে এসেছিল।
জনি বি গুড

6

আপনি যদি মাইক্রোকন্ট্রোলারদের নিম্ন-স্তরের প্রোগ্রামিং করতে চান, তবে আপনার অ্যাসেম্বলি-ল্যাংজ প্রোগ্রামিং (আরও বেশি ভিন্ন আর্কিটেকচার আরও ভাল) হওয়া উচিত, এবং হ্যাঁ, আপনি সি ++ ব্যবহারের চেয়ে সিটিকে অনেক বেশি ব্যবহার করবেন।

সাধারণ ইঞ্জিনিয়ারিং কাজের জন্য ম্যাথল্যাবের মতো গণিত-ভিত্তিক ভাষা (এছাড়াও সায়্লাব এবং জিএনইউ অক্টাভ) সাধারণত মডেলিং এবং প্রোটোটাইপিংয়ের জন্য ব্যবহৃত হবে।

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

হার্ডওয়্যার ডিজাইনের জন্য আপনার ভেরিলোগ এবং / অথবা ভিএইচডিএল দক্ষতা প্রয়োজন।


6

সি ++ কি যথেষ্ট? হতে পারে.

দয়া করে মনে রাখবেন যে সমস্ত এমসিইউ: 90-99% এর মতো সিটিতে ব্যবহৃত হয়েছিল, তাই সি আপনার জীবনবৃত্তান্তের জন্য অবশ্যই আবশ্যক।

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


3

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

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


2

আপনি যদি প্রসেসরের সাথে কাজ করেন তবে সি স্টেটমেন্ট দ্বারা উত্পন্ন সি এবং প্রকারের এসেম্বলারের কোডটি শিখতে পারতেন, তবে আপনার নিজের শিখতে হবে কীভাবে ইউনিক্স কমান্ড লাইন শেল যেমন বাশ এবং এর সাথে যে সরঞ্জামগুলি সেড, ed, awk, vim / vi, Find, tar, gzip, ... পাশাপাশি পাইথন যা আপনি অনেকগুলি প্ল্যাটফর্মে ব্যবহার করতে পারেন এবং "জিনিসগুলি সম্পন্ন করার" একটি ভাল উপায়।


2

আপনি যদি সিরিয়াস এম্বেডড ডেভেলপার হতে চান তবে আপনাকে অবশ্যই সি শিখতে হবে। আপনার সম্ভবত এসেম্বলারেরও জানা উচিত যদিও আপনি এটি খুব কম ব্যবহার করেন।


0

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

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