নিজেকে একজন পদার্থবিজ্ঞানী হিসাবে আরও ভাল প্রোগ্রামার হওয়ার জন্য শেখানো [বন্ধ]


17

আমি সবসময় পদার্থবিজ্ঞান পছন্দ করেছি এবং আমি সবসময় কোডিং পছন্দ করি, তাই যখন কোনও বিশ্ববিদ্যালয়ে পিএইচডি পজিশনের জন্য সংখ্যাগত পদার্থবিজ্ঞানের (অফারটি প্রাসঙ্গিক নয়, এটি বেশিরভাগই একটি ক্লাস্টারের জন্য সমান্তরাল প্রোগ্রামিং) করার প্রস্তাব পেয়েছিলাম, তখন এটি ছিল না -আমার জন্য

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

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

কম্পিউটার বিজ্ঞানে স্নাতকের মতো কীভাবে আমি নিজেকে একটি ভাল, বিমূর্ত পদ্ধতিতে কোড শেখাতে পারি?

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


12
একটি প্রশ্ন: আপনি কীভাবে জানেন যে আপনার কোড দক্ষ?
ম্যাটসেম্যান

আমি প্রচুর লোককে প্রথম OO ভাষা হিসাবে সি ++ না বলে বলতে দেখেছি। আমি জাভা শিখছি এবং আমি মার্ক ডেক্সটারের ভিডিও টিউটোরিয়ালগুলি এখানে eclipsetset.sourceforge.net/totalbeginner.html পেয়েছি , তারা বেশ ভাল এবং আপনাকে টিডিডি উপায়ে শেখাবে will হেড ফার্স্ট জাভাও পরীক্ষা করে দেখুন ওও উপায়ে জাভা coveringাকতে এটি বেশ ভাল।
গারভ

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

1
@ ডেভেলপারডন যখন সিইআরএন-তে পদার্থবিজ্ঞানীরা উদাহরণস্বরূপ ডেটা পান তখন তারা লক্ষ লক্ষ কণার সংঘর্ষের তথ্য পেয়ে থাকে get এই পরিমাণের তথ্য পরিচালনা করতে আপনার একটি কম্পিউটার দরকার। দৃ state় রাষ্ট্র পদার্থবিজ্ঞানের মতো একটি অঞ্চলও বিবেচনা করুন যেখানে আপনি পরমাণুর মাইক্রোস্কোপিক ইন্টারঅ্যাকশন থেকে কোনও উপাদানের ম্যাক্রোস্কোপিক বৈশিষ্ট্যগুলি বোঝার চেষ্টা করেন। এই জাতীয় সিস্টেমে একটি একক ইলেক্ট্রন কোটি কোটি নিউক্লিয়াস এবং ইলেক্ট্রন থেকে বিকর্ষণ / আকর্ষণ অনুভব করে - এবং এই জাতীয় সিস্টেমটিকে সঠিকভাবে বর্ণনা করতে আপনার একটি দ্রুত কম্পিউটার এবং দক্ষ অ্যালগরিদম (এবং মৌলিক সমীকরণের জন্য কিছু ভাল অনুমান) প্রয়োজন।
ব্যবহারকারী 78726767

1
হয়তো আপনার ভাষাটি সি / সি ++ থেকে পাইথনে পরিবর্তন করা উচিত যাতে আপনি আরও সময় পান? পাইথনটি প্রায়শই বিজ্ঞানীরা ব্যবহার করেন , পাইথন বা সায়্পাইয়ের সাথে বৈজ্ঞানিক কম্পিউটিংয়ের জন্য নুমপি-প্যাকেজ জাতীয় মডিউল রয়েছে । পাইথনে আপনার যদি সি / সি ++ এর গতি প্রয়োজন হয় তবে সিথন ব্যবহার করুন , এটি আপনাকে সি / সি ++ প্রকার এবং কাঠামোগত ব্যবহার করতে দেয় যাতে আপনি সি / সি ++ এর মতো গতি পেতে পারেন, সাইথন ব্যবহার করে বিদ্যমান সি / সি ++ লাইব্রেরির সাথে সংহত করাও সহজ।
Czarek Tomczak

উত্তর:


20

মনে রাখবেন যে অ্যাবস্ট্রাক্ট প্রোগ্রামিং সম্পর্কে আমার বেশ কয়েকটি 1000-পৃষ্ঠাগুলি পড়ার সময় নেই।

সুতরাং আপনি কি এমন কাউকে পাঁচ ধাপের চেক তালিকা দেওয়ার জন্য বলছেন যা আপনাকে দক্ষ প্রোগ্রামার করে তুলবে? তা হতে যাচ্ছে না !

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

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

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

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


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


2
কোড সম্পূর্ণ করার পরামর্শ দেওয়ার জন্য +1। সমস্যাটি সমস্যা সমাধানের জন্য অপ্টটি পড়তে পারে এটি সত্যিই সেরা।
JW01

9

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

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

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

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


মেন্টরনেট দেখতে খুব আকর্ষণীয় - আমি এটিতে নজর দেব look পদার্থবিজ্ঞানী থেকে সফটওয়্যার ইঞ্জিনিয়ারে স্থানান্তরিত করা কি কঠিন ছিল?
ব্যবহারকারী 78726767

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

5

কোনও রয়্যাল রোড টু সফটওয়্যার নেই

প্রাচীনকালে, ইউক্লিডকে তার ছাত্র রাজা টলেমি দ্বারা আপনার মতো প্রশ্ন জিজ্ঞাসা করা হয়েছিল। তাঁর প্রতিক্রিয়া: "জ্যামিতির কোনও রাজপথ নেই" "

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

তারা আপনার লক্ষ্য থেকে কম:

"প্রকৃত পদার্থবিদ্যায় আমার সময় কাটাতে হবে"

কনসার্ট পিয়ানোবাদক বা ওয়ান ম্যান ব্যান্ড?

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

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

প্রোগ্রামার দৃষ্টিকোণ থেকে আমার কাজটি ভাল হয় কিনা আমি কীভাবে মূল্যায়ন করব?

আপনি যদি বারটি উচ্চতর স্থাপন করতে চান তবে এখানে শুরু করুন:

অনুশীলনে সফটওয়্যার আর্কিটেকচার, লেন বাস, পল ক্লিমেটস, রিক কাজম্যান

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

http://msdn.microsoft.com/en-us/library/ee658094.aspx

http://www.sei.cmu.edu/reports/95tr021.pdf

আপনার লক্ষ্যগুলি বনাম সি এবং সি ++

ফরট্রানের মতো এগুলিও শক্ত এবং পুরানো ভাষা। সি / সি ++ এর জন্য ইতিবাচক সূচকগুলির মধ্যে রয়েছে:

  • হার্ডওয়্যার, এমবেডেড সিস্টেম সহ অ্যাপ্লিকেশন।
  • বিদ্যমান প্রকল্পটি আপনি একটি সূচনা পয়েন্ট হিসাবে চান।

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

মতলব ব্যবহার বিবেচনা করুন

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

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


4

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

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

এর পরে আপনার ভাষার মূল অংশে যা উপলব্ধ তা ব্যবহার করুন, যেমন সি ++ সিপ্রেফারেন্স ডট কম । আমি আপনাকে স্কট মায়ার্স দ্বারা কার্যকর সি ++ সিরিজ এবং কোয়েনিগ এবং মো দ্বারা ত্বরিত সি ++ পড়ার জন্য দৃ strongly়ভাবে সুপারিশ করব । কমপক্ষে সি ++ এর জন্য এটি আপনাকে ভাষা পক্ষের একটি শক্ত ভিত্তি দেয়।

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

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

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


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

আমার উল্লেখ করা উচিত পাইথন আসলেই কোনও বিকল্প নয় কারণ আমার কোডটি খুব দ্রুত হওয়া দরকার - যদিও আমি এটি প্লট করার জন্য পছন্দ করি। আমি মতলবকেও অনেক ব্যবহার করেছি।
ব্যবহারকারী 78726767

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

@ ব্যবহারকারী 72২72726767 পাইথন ধীরে ধীরে সঞ্চালন করে এমনটি আর দরকার নেই - উদাহরণস্বরূপ youtube.com/watch?v=Iw9-GckD-gQ দেখুন । মূলটি হ'ল আপনি পাইথন ব্যবহার করে দ্রুত একটি ওয়ার্কিং কোড লিখতে পারেন যা আপনি 1 টি দিয়ে দ্রুত করতে পারবেন) নিম্পি / স্কিপি ব্যবহার করে 2) সিথন বা শেডস্কিন ব্যবহার করে এবং 3) কেবল কোর অ্যালগরিদমকে সি / সি ++ বা ফরটারান মডিউলে রাখলে আপনার সত্যিকারের শেষ 5% উন্নতি দরকার। এছাড়াও মনে রাখবেন, কোডিংয়ে ব্যয় করার সময়টি এমন সময় যা কোডটি ইতিমধ্যে চালু না হয়, তাই অর্ধেক সময়ের মধ্যে একটি 80% পারফরম্যান্স কোড লেখা আরও দক্ষ হতে পারে
টোবিয়াস কেইনজলার

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

4

প্রোগ্রামার দৃষ্টিকোণ থেকে আমার কাজটি ভাল হয় কিনা আমি কীভাবে মূল্যায়ন করব?

  • এটা কি ঠিক? এটি কি সব ক্ষেত্রে সঠিক ফলাফল দেয়?

  • অন্যান্য লোকেরা কি আপনার কোডটি সহজেই পড়তে এবং বুঝতে সক্ষম?

  • যখন আপনার তত্ত্বাবধায়ক "গ্রেট, এখন এটি এক্সও করুন ..." বললে আপনাকে কি অনেক কোড পুনরায় লিখতে হবে?

  • আপনি যখন কোনও প্রোগ্রাম লিখেছেন, তখন এটি কী এমন সরঞ্জাম হয়ে উঠেছে যা আপনি বারবার ব্যবহার করতে পারেন, বা এটি একবার ব্যবহার করে এটি কোনও ধরণের জিনিস ফেলে দেয়?

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


3

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

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

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


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

দুর্ভাগ্যক্রমে শিল্পের এমন দক্ষতার প্রয়োজন হয় যা আপনি সাধারণত একাডেমিক বিকাশে অর্জন করেন না। আপনার একাডেমিক গবেষণার সময় আপনি যে জিনিসটি লিখবেন তা বাণিজ্যিকভাবে প্রয়োগের উত্স কোডের 5% এরও কম।
আন্দ্রেজেববাক

3

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

আপনার নিজের কোডের সমালোচনা করা আরও ভাল হওয়ার অন্যতম সেরা উপায়। সর্বদা নিজেকে জিজ্ঞাসা করুন:

  • এই পরিবর্তন করা সহজ হবে?
  • এটি কি সহজে পরীক্ষণযোগ্য?
  • আমি কি এটি সহজ করতে পারি? আমি যখন 3 মাসের মধ্যে আবার দেখতে পাচ্ছি তখন কী আমি সহজেই এটি বুঝতে পারি?

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

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

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


2

প্রথমত, "মার্জিত" একটি আপেক্ষিক শব্দ। বিমূর্ততা আপনার কাছে মার্জিত মনে হতে পারে তবে অন্য সি আফিকানোডোর কাছে এটি অপ্রয়োজনীয় বলে মনে হতে পারে। যাইহোক, আপনার প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে http://codereview.stackexchange.com এ পর্যালোচনার জন্য আপনার কোড পোস্ট করার চেষ্টা করা উচিত ।
মূল বক্তব্য থেকে খনন, আমার নিজের অভিজ্ঞতার ভিত্তিতে কিছু অযৌক্তিক পরামর্শ। আপনি যদি কেবলমাত্র সি দিয়ে আপনার সমস্ত কাজ সম্পন্ন করতে পারেন তবে আপনি কেন এটি বিমূর্ত পদ্ধতিতে কোড করতে চান? এর মাধ্যমে, আপনি কি অন্যদের আপনার কোডটি পুনরায় ব্যবহার করতে সক্ষম করতে চান? আপনার যদি সত্যিই সি ++ এ স্যুইচ করার দৃ reason় কারণ থাকে তবে বিমূর্ততা এবং C ++ এবং OO ধারণাটি শিখুন। অন্যথায় ধারণা বাদ দিন। আমার নম্র মতামতে, আপনার কোডটি কী আরও পাঠযোগ্য এবং আপনার বৈজ্ঞানিক ফলাফলগুলি এ ও বিমূর্ততা দেওয়ার চেয়ে পুনরুত্পাদনযোগ্য হওয়া উচিত তা লক্ষ্য করা উচিত নয়? আমি নিজেও ওওপিএস এবং কোড "মার্জিত" লাই শিখতে এই ধরণের আবেশ পেয়েছিলাম। তবে সি ++ মাস্টার লাগতে সময় লাগবে C সি ++ এ আবর্জনা সংগ্রহ স্বয়ংক্রিয় নয় বলে আপনাকে মেমরি পরিচালনা শিখতে হবে। আমার পরামর্শ নিন যেহেতু আমি নিজেই একটি গবেষণাগারের জন্য কাজ করেছি এবং সি ++ এবং ওও শিখতে প্রচুর সময় হারিয়েছি,


1
সি সি ++ এর চেয়েও বেশি নিয়ন্ত্রণহীন। সি ++ তে কমপক্ষে RAII থাকে।
বেনজামিন ব্যানিয়ার

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

2

তত্ত্ব অধ্যয়নের সময় অভাব আপনার উল্লেখ বিবেচনা।

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

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

এছাড়াও ম্যাটল্যাব বা পাইথনের মতো ভাষা ব্যবহার করে দেখুন।


আমি স্ট্যাক এক্সচেঞ্জে বেশিরভাগ সময় ব্যয় করি - এটি আমার দৈনন্দিন কাজের জন্য আমার জন্য এক অমূল্য সম্পদ। আমি মতলবকে অনেক ব্যবহার করেছি তবে খারাপ অভ্যাসগুলি বিকাশ করা খুব সহজ যেমন প্রাক-বরাদ্দ অ্যারেগুলি খুব ক্ষমাযোগ্য নয় develop
ব্যবহারকারী 787267

পাইথনের জন্য +1 ব্যবহারকারীর জন্য 72২২7267 I অ্যারে প্রাক বেনিফিট করা কেন খারাপ অভ্যাস তা আমি সত্যিই ধরতে পারি না
জেভিয়ার Combelle

2

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

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

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

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

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


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

2

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

পার্সার এবং সংকলক স্টাফগুলির জন্য একটি দুর্দান্ত উত্স PL101: আপনার নিজস্ব প্রোগ্রামিং ভাষা তৈরি করুন । ফাংশনাল প্রোগ্রামিংয়ের জন্য এখনও আমি একটি ভাল পরিচয় খুঁজে পাইনি তবে এসআইসিপি সম্পর্কে আমি সত্যিই ভাল জিনিস শুনেছি


-5

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

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

হেড ফার্স্ট ডিজাইনের প্যাটার্নগুলি পড়ুন, এটি একটি ভাল বই। এটি বেশ বিস্তৃত বই। আপনার যা প্রয়োজন তা হ'ল।


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