আমার সি / সি ++ কোডের স্তর বাড়ানো হচ্ছে


16

আমি এখন ৩-৪ বছর ধরে প্রোগ্রামিং করছি এবং অনুভব করছি যে আমাকে আর আর কোনও শিক্ষানবিশ বলা যায় না, তবে আমি এই সাইটে কিছু প্রশ্ন পড়েছি এবং মনে করি ডব্লিউটিএফ তারা কি কথা বলছে? আমি আজকাল প্রোগ্রামিং বই তুলি যখন আমি একইভাবে অনুভব করি।

আমি বেশ কয়েকটি শুরুর প্রোগ্রামিং বই পড়েছি, কিছু সি / সি ++ এবং অন্যগুলি গেমিংয়ের উপর। আমি আরও কিছু জটিল জিনিস লিখেছি যেমন খুব বেসিক এআই, সিরিয়াল এবং টিসিপি / আইপি ইন্টারফেস।

আমি গেম প্রোগ্রামার হওয়ার পরিকল্পনা করছি, তবে আমি সম্প্রতি এম্বেড থাকা সিস্টেমে সেগুলির (সিরিয়াল ইন্টারফেস) কাজ করার সুযোগ পাওয়ার পরে কিছুটা আগ্রহী হয়ে উঠছি।

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

আমার জ্ঞান এবং দক্ষতা বৃদ্ধি এবং বাড়ানোর জন্য আপনি কী পরামর্শ দেবেন? নির্দিষ্ট সম্পদ ব্যাপকভাবে প্রশংসা করা হবে।


সি ++ বইয়ের জন্য এই প্রশ্নটি দেখুন: স্ট্যাকওভারফ্লো.com
নবীন

উত্তর:


10

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

পরের কাজটি হ'ল ডাইরেক্টএক্সের মতো নিম্ন স্তরের এপিআইতে 3 ডি গ্রাফিক্স ইঞ্জিন লেখার চেষ্টা করার মতো একটি বড় প্রকল্প শুরু করা এবং যখন আপনার নকশাটি প্রথম প্রথম প্রকল্পগুলির মতো খারাপভাবে ব্যর্থ হয়, তখন আপনি কীভাবে করবেন না সে সম্পর্কে কিছু শিখবেন প্রোগ্রাম.

C ++ শিখতে ভাল বইয়ের একটি বৃহত তালিকার জন্য আপনি এই লিঙ্কটি স্ট্যাকওভারফ্লোতে দেখতে পারেন।


3
না, সি ++ শেখার সেরা উত্স হ'ল একটি ভাল বই, বা বেশি পছন্দযোগ্য বই।
নীল বাটারওয়ার্থ

একটি বড় প্রকল্প শুরু করার জন্য +1। আমি বইতে যা পড়ি তার চেয়ে 3 ডি গ্রাফিক্স ইঞ্জিনের মাধ্যমে লড়াই করে আরও শিখেছি। এটি আপনাকে অপরিচিত পরিস্থিতিতে পড়তে বাধ্য করে যার সমাধানের জন্য গবেষণার প্রয়োজন। এটি সুন্দর নয়, এটি দক্ষ নয়, তবে আপনি কিছু শিখবেন।
এসসি ঘোস্ট

"আপনি যদি সি / সি ++ এর কথা বলছেন তবে +1 এর জন্য আপনি অবশ্যই কিছু অতিরিক্ত অভিজ্ঞতা ব্যবহার করতে পারেন।" "C ++ শেখার সেরা উত্স হ'ল স্ট্যাকওভারফ্লো", সুতরাং কোনও ভোট নেই।
Residuum

5

প্রথমত, আপনি যা জানেন না সেটিতে আপনার মৌলিক তাত্ত্বিক পটভূমিটি বাড়ান। তত্ত্বটি অধ্যয়ন করুন এবং কয়েকটি সংক্ষিপ্ত উদাহরণ লিখুন।

মৌলিক তাত্ত্বিক পটভূমির উদাহরণ অন্তর্ভুক্ত:

  • অ্যালগরিদম এবং ডেটাস্ট্রাকচার
  • সফ্টওয়্যার ডিজাইন (ইউএমএল, ডিজাইনের নিদর্শন, ওওপি)
  • অপারেটিং সিস্টেম এবং সমান্তরাল প্রোগ্রামিং

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

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

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

আশা করি, আপনি কীভাবে নতুন পদ্ধতি এবং প্রযুক্তি শিখবেন এবং একটি ভাল আর্কিটেকচারের সাথে তাদের একীভূত করবেন তা শিখবেন।


বিশেষত গেম প্রোগ্রামিংয়ের জন্য আমি নিম্নলিখিত ডোমেন / প্রযুক্তি চয়ন করার পরামর্শ দিচ্ছি:

  • চিত্র প্রক্রিয়াকরণ বেসিক
  • যে কোনও নির্দিষ্ট ইউআই প্রযুক্তি
  • কম্পিউটার গ্রাফিক্সের বুনিয়াদি
  • যে কোনও নির্দিষ্ট গ্রাফিক্স ইঞ্জিন (যেমন ডাইরেক্টএক্স, ওপেনজিএল, ওজিআরই, ওডিজি, জাভা 3 ডি, ...)
  • যান্ত্রিক পদার্থবিজ্ঞানের বুনিয়াদি
  • যে কোনও নির্দিষ্ট পদার্থবিজ্ঞানের ইঞ্জিন (যেমন ফিজএক্স, ...)
  • যে কোনও নির্দিষ্ট গেম ইঞ্জিন (যেমন এক্সএনএ, ...)
  • মাল্টি থ্রেডেড প্রোগ্রামিং
  • বিতরণ প্রোগ্রামিং


সম্পাদনা:

কিভাবে শিখব:

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

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

2
উদাহরণ লিখে - পরীক্ষা এবং ত্রুটি সেরা উপায় way এছাড়াও, সম্পাদনা দেখুন।
ড্যানি ভারোদ

1

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

আমি আপনার ক্ষেত্রে ছিলাম এবং আমি এখনও সেই ভাষাগুলি সম্পর্কে শিখছি। আমি এম্বেড থাকা সিস্টেমে অনেক কাজ শিখি।

আমার পরামর্শটি এখানে:

  • এই বইগুলি পড়ুন: /programming/388242/the-definitive-c-book-guide-and-list -> আপনি প্রাথমিক মনে করেন না এমনকি এমনকি পরিচিতি বই দিয়ে শুরু করুন, কারণ আপনার কাছে আপনার বুনিয়াদি জ্ঞানকে চালিয়ে যাওয়ার আগে একসাথে নিখুঁত করতে। তারপরে টেমপ্লেট মেটাপোগ্রামিং এবং এম্বেড থাকা সিস্টেমের সীমাবদ্ধতা সম্পর্কে শিখুন।
  • প্রচুর অনুশীলন করুন: আপনি যা শিখেন তত বেশি প্রয়োগ করুন, ততই আপনি এটি বুঝতে পারবেন। এই মুহুর্তে, আমার করার পদ্ধতিটি হ'ল সামান্য পরীক্ষা প্রকল্পগুলিতে ভাষা এবং প্রসঙ্গের যে কোনও কোণকে পরীক্ষা করা। আমার কাছে "বড়" হোম প্রকল্প রয়েছে যেখানে আমি সবকিছুর নিয়ন্ত্রণে থাকি এবং আমি নতুন কৌশল অনুশীলন করি এবং সেগুলি না ভেঙে দেওয়া পর্যন্ত তাদের ধাক্কা দিয়ে থাকি।

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

আপনি কেবল আপনার যাত্রা শুরু করছেন।


3
"পরিপক্ক", যেমন আপনি এটি ব্যবহার করছেন তা উল্লেখ না করা, "শেখার কিছুই বাকি নেই" থেকে দূরে। আপনি যত বেশি শিখবেন তত বেশি স্টাফ যা আপনি জানেন তা আপনি জানেন না।
ডেভিড থর্নলি

0

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

  • আপনি যদি ওওপির প্রাথমিক বিষয়গুলি সম্পর্কে স্বাচ্ছন্দ্য বোধ করেন না - তবে সেগুলি প্রথমে শিখুন। উত্তরাধিকার এবং encapsulation এর প্রাথমিক বিষয়গুলি বুঝতে। ভার্চুয়াল, পাবলিক / সুরক্ষিত এবং ব্যক্তিগত এবং স্থির কীওয়ার্ডগুলি কীভাবে আচরণ করে তা জানুন।

  • পয়েন্টার এবং রেফারেন্স (এবং সাধারণত রেফারেন্স পছন্দ করে) ব্যবহার করে আরামদায়ক হন। "অটোমেজিকাল" মেমরি পরিচালন অর্জনের জন্য স্মার্ট_পিটার <> কনস্ট্রাক্ট শিখুন এবং ব্যবহার করুন।

  • কীভাবে সি ++ টেম্পলেটগুলি ব্যবহার করবেন তা শিখুন - প্রথমদিকে ঠিক ধারক ডেটা ধরণের হিসাবে। আপনি ক্রমাগত নতুন এবং আরও শক্তিশালী কৌশলগুলি আবিষ্কার করবেন যা সি ++ টেমপ্লেটগুলি মেটা-প্রোগ্রামিংয়ের মাধ্যমে সম্পাদন করতে পারে।

  • এসটিএল শিখুন: স্ট্রিং, আইস্ট্রিম, ব্যতিক্রম এবং ধারক শ্রেণীর ব্যবহার করুন এবং যখনই ব্যবহারিক হবে তখন এগুলি নিম্ন-স্তরের চর *, ফাইল * এবং চর [] ডেটাটাইপগুলির চেয়ে বেশি পছন্দ করুন।

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

  • আনন্দ কর! সিরিয়াসলি - কোড আপ করার জন্য কিছু পোষা প্রকল্প বেছে নিন। আপনি এম্বেডেড প্রোগ্রামিং প্রকল্পগুলি পছন্দ করতে পারে তবে আরডুইনো বোর্ডগুলির সাথে টিঙ্কার।

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

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