গভীর প্রোগ্রামিং জ্ঞান বিকাশের উপর


136

মাঝে মাঝে স্ট্যাক ওভারফ্লোতে প্রান্তের কেস এবং অন্যান্য অদ্ভুততা সম্পর্কিত প্রশ্নগুলি দেখতে পাই যা জোন স্কিট এবং এরিক লিপার্টের পছন্দগুলির দ্বারা খুব সহজেই উত্তর দেওয়া হয়, ভাষাটির গভীর জ্ঞান এবং এর অনেকগুলি জটিলতা বোঝায়, যেমন:

আপনি ভাবতে পারেন কোনও foreachলুপ ব্যবহার করার জন্য , আপনি যে সংগ্রহটি পুনরাবৃত্তি করছেন তা অবশ্যই প্রয়োগ করতে হবে IEnumerableবা IEnumerable<T>। তবে দেখা যাচ্ছে যে এটি আসলে কোনও প্রয়োজন নয়। যা প্রয়োজন তা হ'ল সংগ্রহের ধরণটিতে অবশ্যই একটি পাবলিক পদ্ধতি বলা GetEnumeratorউচিত এবং এর জন্য অবশ্যই এমন কোনও প্রকার ফিরে আসতে হবে যা জনসাধারণের সম্পত্তি হিসাবে পরিচিত Currentএবং একটি পাবলিক পদ্ধতি MoveNextযা ফিরে আসে bool। যদি সংকলক নির্ধারণ করতে পারে যে এই সমস্ত প্রয়োজনীয়তা পূরণ করা হয় তবে সেই পদ্ধতিগুলি ব্যবহার করার জন্য কোড তৈরি করা হয়। সেই প্রয়োজনীয়তা পূরণ করা হয় না শুধু যদি আমরা অবজেক্ট প্রয়োগ কিনা তা আপনার পরীক্ষা না IEnumerableবা IEnumerable<T>

এটি দুর্দান্ত জিনিস আমি বুঝতে পারি এরিক কেন এটি জানে; সে সংকলক দলে রয়েছে, তাই তাকে জানতে হবে। তবে যারা এমন গভীর জ্ঞান প্রদর্শন করেন যারা অন্তর্নিহিত নয় তাদের কী করবেন?

নিখুঁত প্রাণীরা (যারা সি # সংকলক দলে নেই) কীভাবে এই জাতীয় জিনিসগুলি সন্ধান করতে পারে?

বিশেষত, এই পদ্ধতিগুলি কীভাবে এই জ্ঞানগুলি নিয়মিতভাবে উত্সাহিত করতে, এটি অন্বেষণ করতে এবং এটি অভ্যন্তরীণ করার জন্য (এটিকে নিজস্ব তৈরি করে) ব্যবহার করার জন্য কোনও পদ্ধতি রয়েছে?


10
আমি মনে করি এটি বিশেষত যেখানে ওপেন সোর্স সফ্টওয়্যারটি জ্বলে। ফ্রেমওয়ার্ক / সিস্টেম / লাইব্রেরিগুলিকে পুরো পথে নামতে সক্ষম হওয়ায় খুব ভাল। উইনফর্মগুলির সাথে কাজ করার চেয়ে আমি কিউটি-র সাথে কাজ করার সময় ফ্রেমওয়ার্কের অভ্যন্তরগুলি সম্পর্কে আরও ভালভাবে বুঝতে পারি understand
পাই

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

26
এটি কি মূল্যবান? আমি দ্বিভাষিক এবং আরও কয়েকটি কথ্য ভাষা শেখার চেষ্টা করছি। আমি কিছু গাণিতিক ক্লাস নিয়েছি তবে সেগুলির পর্যাপ্ত পরিমাণ নেই। আমি অর্ধ-শালীনভাবে টেনিস খেলতে এবং প্রজাপতি স্ট্রোক ব্যবহার করে সাঁতার শিখতে শিখতে চাই। আমি আরও ভ্রমণ করতে চাই। আমি কিছু ক্লোজার শিখতে চাই আমি যা চাই না তা হ'ল এক ভাষাতে দক্ষ হওয়া, গণিতে পিএইচডি করা, মাইকেল ফেল্পস ইত্যাদির মতো একটি পুলে প্রতি সপ্তাহে 30 ঘন্টা ব্যয় করা etc. অন্য অভিজ্ঞতা থেকে অনুপস্থিত যখন একটি (বা কয়েকটি) জিনিস চেষ্টা। চাকরি বদলে যাবে?
চাকরী

10
"আমি বুঝতে পারি যে এরিক এটি কেন জানেন; তিনি সংকলক দলে রয়েছেন, তাই তাকে জানতে হবে।" - সম্ভাবনা রয়েছে যে তিনি এটি জানেন কারণ তিনি এটি প্রথম স্থানে ভেবেছিলেন । আমি সন্দেহ করি যে তাকে 'এটি খুঁজে বের করতে হয়েছিল' যে এটি এর মতো কাজ করে :)
অ্যালেক্স টেন ব্রিঙ্ক

10
@ অ্যালেক্স: আমি বাস্তবে কেবল সি # তে কাজ করেছি যেহেতু আমরা আসলে সি # 3 বাস্তবায়ন তৈরি শুরু করেছি, তার আগে ছয় বছর ধরে "ফরচ" স্পেসিফিকেশন লেখা হয়েছিল। আমি এখনও ভাষা সম্পর্কে ক্রেজি historicalতিহাসিক জিনিসগুলি প্রতিদিন খুঁজে পাই। উদাহরণস্বরূপ, আমি আজ শিখেছি প্রতিনিধিদের জন্য, ((এ + বি) + সি) - (এ + সি) = এ + বি + সি, কিন্তু ((এ + বি) + সি) - (বি + সি) = এ অদ্ভুত!
এরিক লিপার্ট

উত্তর:


167

প্রথম প্রথম, ভাল শব্দ জন্য ধন্যবাদ।

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

যাইহোক, সেই সুবিধাগুলি ছাড়াই এখনও বিষয়টির গভীর জ্ঞান পাওয়া সম্ভব।

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

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

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

ব্লগ লেখাও প্রচুর সহায়ক; অন্যান্য লোকদের কাছে জটিল বিষয়গুলি ব্যাখ্যা করার জন্য আমাকে প্রয়োজনীয় করে, আমি সর্বদা বিভিন্ন বিষয় সম্পর্কে নিজের অপ্রতুল বোঝার মুখোমুখি হতে বাধ্য হই।


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

6
তিনি কী বলছেন তা সম্ভবত আপনি ভুল বুঝে গেছেন। স্ব-স্বজ্ঞাতভাবে, তিনি জিনিস শিখতে প্রশ্ন জিজ্ঞাসা করছেন না, তিনি প্রশ্নের উত্তর দিচ্ছেন
01

65

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


1
খুব ভাল পয়েন্ট। দীর্ঘ সময় ধরে গবেষণা শুরু করার সময় আমি প্রায়শই খুঁজে পাই যে আমি দিনের প্রথম দিকে শিখেছি এমন জিনিসগুলির কারণে আমি এখন উত্তর দিতে পারি এমন প্রশ্নের সন্ধান করি।
ম্যাথু

47

প্যারাফ্রেসিং যোগী ভজন:

"আপনি যদি কিছু শিখতে চান তবে এ সম্পর্কে পড়ুন; আপনি যদি কিছু বুঝতে চান তবে এ সম্পর্কে লিখুন; আপনি যদি কিছু আয়ত্ত করতে চান তবে প্রোগ্রাম করুন।"

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

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


2
প্রোগ্রামিং হ'ল লেখার (খুব সহজেই লোকেরা পড়ার জন্য) খুব স্পষ্টভাবে একটি প্রচেষ্টা করারও একটি বিনয়ী প্রচেষ্টা।
vpit3833

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

1
@ বুগি সম্ভবত আপনি নিয়মগুলি আয়ত্ত করতে পারেন: ডি
জুলিও রডরিগস

@ বুগি, 'প্রোগ্রাম এটি' খুব বিস্তৃত শব্দ যা সর্বদা রাইটিং কোডের সাথে সম্পর্কিত হয় না !! বাক্স থেকে একটু ভাবুন।
নীতেশ ভার্মা

25

আমি যতদূর জানি, এটি শেখার উপায়গুলি হ'ল:

  • এরিক লিপার্টের মতো কারও কাছ থেকে এটি সম্পর্কে পড়ুন
  • অভিজ্ঞতা এবং তারপরে প্রথমে সমস্যার সমাধান করুন।

দ্বিতীয় উপায়টি আরও বেশি সময় নিতে পারে তবে সম্ভবত আরও গভীর বোঝার ফলাফল হবে (তবে সবসময় নয়)।


17
অথবা উভয়. [15 অক্ষর]
মাইকেল কে

23

আমি নিম্নলিখিত করতে বলব:

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

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

৩০ দিনের ধরণের বইগুলিতে এক্স শিখার পরিবর্তে এক ভাষাতে উন্নত বইগুলি পড়ুন (এসকিউএল সার্ভারের জন্য এটিতে পারফরম্যান্স টিউনিং এবং ডাটাবেস ইন্টার্নালগুলি পড়ার অন্তর্ভুক্ত থাকবে) X

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

কিছু কঠিন প্রশ্ন জিজ্ঞাসা করুন। আপনার দেওয়া উত্তরগুলি মূল্যায়ন করুন, কেবল সেগুলি ব্যবহার করবেন না। উত্তরটি কেন কার্যকর হবে না তা বুঝতে নিশ্চিত করুন। এই উত্তরগুলি গবেষণার জন্য একটি শুরুর জায়গা হিসাবে ব্যবহার করুন।

ক্ষেত্রের পরিচিত বিশেষজ্ঞদের কাছ থেকে কিছু ভাল প্রযুক্তিগত ব্লগ সন্ধান করুন এবং সেগুলি পড়ুন।

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


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

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

9

আপনি যে বিশেষজ্ঞদের বিশেষজ্ঞ হতে চাইছেন সেগুলির ভাষা নির্দিষ্টকরণের গভীরভাবে অধ্যয়ন করে আপনি শুরু করতে পারেন । উদাহরণ স্বরূপ:


3
উত্তম উত্তর - উদাহরণস্বরূপ, লিঙ্কযুক্ত সি # স্পেসিফিকেশনের 15.8.4 সেকশনটি foreachএরিক লিপার্টের উদ্ধৃত ব্লগ পোস্টে বর্ণিত আচরণটি বর্ণনা করে। যদি কেউ কখনও নিজেকে "ফোরচ সত্যিই কীভাবে কাজ করে .." এর মতো কিছু ভাবতে দেখা যায় তবে এটি শুরু করা ভাল জায়গা হবে place
কারসন 63000

6

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


5
আমি আসলে BitConverterক্লাসগুলির সাথে এটি করেছি এবং IsLittleEndianসিস্টেম-নির্দিষ্ট পতাকাটি আবিষ্কার করেছি ।
রবার্ট হার্ভে

হাঃ হাঃ হাঃ. লিটেল ইন্ডিয়ানদের জন্য +1
রুডি

4

আমি এই ধরণের জ্ঞানটি comp.lang.c++.moderatedকয়েক বছরের জন্য হ্যাংআউট করে সি ++ এ বিকাশ করেছি , যদিও আমি এই মুহুর্তে কোডটিতে কোড করার জন্য সত্যিকারের চেষ্টা করেছিলাম না। যদিও আমি গুরু হতে পারি তবে আমি নিশ্চিত নই।

আমি মনে করি যে প্রোগ্রামিং ভাষা সম্পর্কে কেউ বাছাই করতে পারে এমন দুটি জ্ঞান রয়েছে:

  1. ভাষা সম্পর্কে তুচ্ছ জ্ঞান জানা, এবং কীভাবে সমস্যাগুলি এড়ানো যায় তা জেনে।
  2. কীভাবে সমস্যাগুলি কার্যকরভাবে সমাধান করা যায় তা জানা।

সংখ্যা 2 কেবলমাত্র ভাষায় প্রোগ্রামিং করে এবং অন্যান্য লোকের কোডটি দেখে অর্জন করা যায়, তবে লোকেরা কী ধরণের প্রশ্ন জিজ্ঞাসা করে এবং কী কী তা দেখে তার আলোচনার ফোরামগুলিতে ভাষাটি পড়তে প্রচুর সময় নিয়ে 1 নম্বর অর্জন করা যায় the উত্তর হয়। স্ট্যাকওভারফ্লোও এটির জন্য একটি ভাল জায়গা।


4

গভীর জ্ঞান এবং প্রোগ্রামিং দক্ষতার অর্থ সমস্ত বিমূর্ত স্তরে স্বাচ্ছন্দ্য বোধ করা। অর্থাত

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

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

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


3

ফাইন ম্যানুয়াল পড়ুন এটি বিশেষত গভীর জ্ঞান নয়। এটি সি # ভাষার স্পেসিফিকেশন বিভাগ 8.6.4 এ প্রকাশিত হয়েছে । আপনার ব্যবহৃত ভাষাগুলির জন্য স্পেসিফিকেশনগুলি কমপক্ষে স্কিমিং করার পাশাপাশি সমস্ত বিল্টিন লাইব্রেরির জন্য ডকুমেন্টেশন স্কিমিংয়ের অভ্যাসে আপনার উচিত।

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


1
আমি মনে করি না যে সি # ভাষার স্পেসিফিকেশন "স্কিমিং" এর মতো জিনিস আছে।
রবার্ট হার্ভে

@ রবার্টহারভে: অপারেটর অগ্রাধিকার এবং ঘোষণাপত্র সিনট্যাক্সের মতো আপনি ইতিমধ্যে জেনে থাকা বেশিরভাগ আনুষ্ঠানিক ভাষার উপর ঝাঁপিয়ে পড়তে পারেন এবং সি # ফোরচ বা জাভা এনাম কনস্ট্রাক্টরগুলির যথাযথ আচরণের মতো অপ্রত্যাশিত তবে দরকারী বিবরণে মনোনিবেশ করতে পারেন।
কেভিন ক্লাইনে

আপনি স্ট্যান্ডার্ডের একটি টিকা সংস্করণ কিনতে পারেন। এটি এখন কিছুটা তারিখযুক্ত তবে মন্তব্যগুলি ভাষার যে অংশগুলি আচ্ছাদিত রয়েছে সেগুলির জন্য এখনও খুব আকর্ষণীয়।
জার্জেন ফোগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.