একটি বৈজ্ঞানিক পরিবেশে প্রোগ্রামিং জন্য অনুশীলন? [বন্ধ]


91

পটভূমি

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

এখন, জিনিসগুলি আশ্চর্যজনকভাবে ঠিক হয়ে গেছে, তবে প্রাকৃতিক বিজ্ঞানের লোকেরা কীভাবে তাদের সফ্টওয়্যার বিকাশ করে?

প্রশ্ন

কিছু শক্ত প্রশ্ন:

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

উত্তরের সংক্ষিপ্তসার এই পর্যন্ত

উত্তরগুলি (বা তাদের সম্পর্কে আমার ব্যাখ্যা) এতদূর: (২০০৮-১০-১১)

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

4
সংশ্লিষ্ট পাঠ: nature.com/news/2010/101013/full/467775a.html
Tobias Kienzler

উত্তর:


27

আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

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

Enthought পাইথন বিতরণ বিশ্লেষণ সহ সব বৈজ্ঞানিক কম্পিউটিং লাইব্রেরি, ষড়যন্ত্র 3D visualation ইত্যাদি দিয়ে আসে

প্রোগ্রামিংয়ে কোন উল্লেখযোগ্য পটভূমি ছাড়াই লোকদের জন্য প্রশিক্ষণ ছিল?

এনটহোটটি সায়পাই প্রশিক্ষণ দেয় এবং সায়পাই সম্প্রদায় মেলিং তালিকাগুলিতে প্রশ্নের উত্তর দেওয়ার ক্ষেত্রে বেশ ভাল।

আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

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

আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের পথে খুব বেশি না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা চালিয়ে যাবেন (যেমন, পদার্থবিদরা অনড় মানুষ!)

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


21

সফ্টওয়্যার কার্পেন্ট্রি কোর্সটি বিশেষত বৈজ্ঞানিক কম্পিউটিং করা লোকদের লক্ষ্য এবং সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের বেসিকগুলি এবং পাঠগুলি শেখানো এবং প্রকল্পগুলিতে কীভাবে তাদের সর্বোত্তম প্রয়োগ করা যায় তা লক্ষ্য করা যায়।

এটিতে সংস্করণ নিয়ন্ত্রণ, ডিবাগিং, টেস্টিং, স্ক্রিপ্টিং এবং অন্যান্য বিভিন্ন বিষয়কে অন্তর্ভুক্ত করে।

আমি প্রায় 8 বা 9 বক্তৃতা শুনেছি এবং মনে করি এটির উচ্চ প্রস্তাব দেওয়া উচিত।

সম্পাদনা করুন: বক্তৃতাগুলির এমপি 3 এছাড়াও উপলব্ধ


16

পারমাণবিক / কণা পদার্থবিজ্ঞান এখানে।

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

জিনিসগুলির উন্নতি করতে:

  1. স্থানীয় সফ্টওয়্যার নেতাদের ভাল দিকে যান
  2. আপনি নিজের এলাকায় যে প্রক্রিয়াটি ব্যবহার করতে চান তা প্রয়োগ করুন এবং আপনি এটি ব্যবহার করতে দিয়েছিলেন তাদেরকে উত্সাহিত করুন।
  3. অপেক্ষা করুন। পদার্থবিদরা অভিজ্ঞতাবাদী মানুষ people এটি যদি সহায়তা করে তবে তারা (অবশেষে!) লক্ষ্য করবে।

জিনিসগুলির উন্নতির জন্য আরও একটি পরামর্শ।

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

11

এটি সামান্য স্পর্শকাতর হতে পারে তবে আশা করি প্রাসঙ্গিক।

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

  1. উৎস নিয়ন্ত্রণ. এনআই পারফোর্স ব্যবহার করে। আমরা নিয়মিত জিনিসটি করেছি - দেব / ট্রাঙ্ক শাখা, একটানা সংহতকরণ, কাজগুলি।
  2. আমরা স্বয়ংক্রিয় পরীক্ষার স্যুট লিখেছি।
  3. আমাদের কয়েকটি লোক ছিল যারা সিগন্যাল প্রক্রিয়াজাতকরণ এবং যোগাযোগের ক্ষেত্রে একটি পটভূমি নিয়ে এসেছিল। আমাদের নিয়মিত কোড পর্যালোচনাগুলি ছিল, এবং তাদের কোডটি চিহ্ন পর্যন্ত ছিল তা নিশ্চিত করার জন্য সর্বোত্তম নথির নথিগুলি used
  4. কোড পর্যালোচনা সত্ত্বেও, কয়েকটি অনুষ্ঠান ছিল যখন আমার মত "সফ্টওয়্যার বল", দক্ষতার জন্য এই কোডটির কয়েকটি পুনরায় লিখতে হয়েছিল।
  5. একগুঁয়েমি মানুষদের সম্পর্কে আপনি কী বোঝাতে চেয়েছেন তা আমি জানি! আমাদের ধারণা ছিল যে তাদের কোডে সম্ভাব্য পারফরম্যান্সের উন্নতির ইঙ্গিত করা প্রত্যক্ষ ব্যক্তিগত অবমাননা! এটি বলে না দিয়ে যায় যে এটি ভাল পরিচালনার জন্য প্রয়োজন for আমি ভেবেছিলাম এই লোকদের সাথে ডিল করার সর্বোত্তম উপায় হ'ল ধীরে ধীরে চলতে হবে, পরিবর্তনের জন্য কঠোর চাপ না দেওয়া এবং যদি প্রয়োজন হয় তবে নোংরা কাজ করার জন্য প্রস্তুত থাকতে হবে। [উদাহরণস্বরূপ: তাদের কোডের জন্য একটি পরীক্ষার স্যুট লিখুন]।

9

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

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

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


7

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

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

৩) আমরা এসভিএন ব্যবহার করি; তবে আমাদের কাছে বাগ ট্র্যাকিং সফ্টওয়্যার নেই। আমাদের জন্য এটি যতটা উত্তম হয় তা হ'ল একটি টেক্সট ফাইল যা আপনাকে জানায় যে নির্দিষ্ট বাগগুলি কোথায় রয়েছে।

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


6

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


5

আমি কন্ডেনড ম্যাটার ফিজিক্স, ক্লাসিকাল এবং কোয়ান্টাম মডেল তৈরির ক্ষেত্রে একজন পদার্থবিদ।

ভাষা:

গ্রন্থাগারসমূহ:

  • আর্মাদিলো / ব্লিটজ ++ - সি ++ এর জন্য দ্রুত অ্যারে / ম্যাট্রিক্স / কিউব বিমূর্ততা
  • ইগেন / আর্মাদিলো - লিনিয়ার বীজগণিত
  • জিএসএল - সি ব্যবহার করতে
  • ল্যাপাক / বিএলএএস / আটলাস - অত্যন্ত বড় এবং দ্রুত, তবে কম সুবিধাজনক (এবং ফরট্রানে লিখিত)

গ্রাফিক্স:

  • GNUPlot - এটির খুব পরিষ্কার এবং ঝরঝরে আউটপুট রয়েছে তবে কখনও কখনও উত্পাদনশীল হয় না
  • উত্স - চক্রান্ত করার জন্য খুব সুবিধাজনক

ডেভেলপমেন্ট টুলস:

  • ভিম + প্লাগইনস - এটি আমার পক্ষে দুর্দান্ত কাজ করে
  • জিডিবি - সি / সি ++ এর সাথে কাজ করার সময় একটি দুর্দান্ত ডিবাগিং সরঞ্জাম
  • কোড :: ব্লকস - আমি এটি কিছু সময়ের জন্য ব্যবহার করেছি এবং এটি বেশ আরামদায়ক পেয়েছি, তবে আমার মতে ভিম আরও ভাল।

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

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

4

আমি যুক্তরাজ্যের একটি বিশ্ববিদ্যালয়ে পদার্থবিদ হিসাবে কাজ করি।

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

  • আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

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

কন্ট্রোল সফ্টওয়্যার সাধারণত ল্যাবভিউতে করা হয়, যদিও আমরা আসলে ডেলফি ব্যবহার করি যা কিছুটা অস্বাভাবিক।

  • প্রোগ্রামিংয়ে কোন উল্লেখযোগ্য পটভূমি ছাড়াই লোকদের জন্য প্রশিক্ষণ ছিল?

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

  • আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

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

  • আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের পথে খুব বেশি না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা চালিয়ে যাবেন (যেমন, পদার্থবিদরা অনড় মানুষ!)

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

আমি সামগ্রিকভাবে বলতে চাই, বেশিরভাগ প্রাকৃতিক বিজ্ঞান প্রকল্পের জন্য, গবেষণা করার সময় সাধারণত ভালভাবে ব্যয় করা হয়!


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

4

প্রাক্তন একাডেমিক পদার্থবিদ এবং এখন শিল্প পদার্থবিদ যুক্তরাজ্য এখানে:

আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

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

প্রোগ্রামিংয়ে কোন উল্লেখযোগ্য পটভূমি ছাড়াই লোকদের জন্য প্রশিক্ষণ ছিল?

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

আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

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

আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের পথে খুব বেশি না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা চালিয়ে যাবেন (যেমন, পদার্থবিদরা অনড় মানুষ!)

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

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


4

আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

পাইথন, NumPy এবং pylab (ষড়যন্ত্রে লিপ্ত)।

প্রোগ্রামিংয়ে কোন উল্লেখযোগ্য পটভূমি ছাড়াই লোকদের জন্য প্রশিক্ষণ ছিল?

না, তবে আমি একটি মাল্টিমিডিয়া গবেষণা ল্যাবে কাজ করছিলাম, তাই প্রায় প্রত্যেকেরই কম্পিউটার বিজ্ঞানের পটভূমি ছিল।

আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

হ্যাঁ, সংস্করণ নিয়ন্ত্রণের জন্য সাবভারশন , বাগ ট্রেসিং এবং উইকির জন্য ট্র্যাক । আপনি যদি http://www.assembla.com/ থেকে তাদের প্রগতিতে আপনার প্রকল্পটি ফিট করে তবে আপনি বিনামূল্যে বাগ ট্র্যাকার / সংস্করণ নিয়ন্ত্রণ হোস্টিং পেতে পারেন ।

আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের (উদাহরণস্বরূপ পদার্থবিদদের একগুঁয়ে মানুষ!) পথে বেশি কিছু না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা করতে যাবেন?

নিশ্চিত করুন যে পরিকাঠামো স্থাপন করা হয়েছে এবং ভাল রক্ষণাবেক্ষণ করা হয়েছে এবং উত্স নিয়ন্ত্রণের সুবিধাগুলি বিক্রির চেষ্টা করুন।


3

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

এটি বলার পরে, বেশ কয়েকটি সমস্যা রয়েছে are খুব বড় ডেটাসেটের সাহায্যে আর খুব ধীর হয়ে যেতে পারে (আমি এটি কেবল> 50,000x30 ডেটাসেট সহ দেখেছি) এবং যেহেতু এটির ব্যাখ্যা করা হয়েছে আপনি এই ক্ষেত্রে ফোর্টরান / সি এর সুবিধা পাবেন না। তবে, আপনি (খুব সহজেই) সি এবং ফোর্টরানকে শেয়ার করা লাইব্রেরি কল করতে পারেন (হয় নেটলিব বা আপনি নিজেরাই লিখেছেন এমন কিছু থেকে) So সুতরাং, একটি সাধারণ ওয়ার্কফ্লো হ'ল:

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

যা আমার পক্ষে খুব ভাল কাজ করে।

আমি আমার বিভাগের একমাত্র ব্যক্তি (এর মধ্যে 100 জন) সংস্করণ নিয়ন্ত্রণ ব্যবহার করছি (আমার ক্ষেত্রে githuib.com দিয়ে গিট ব্যবহার করছেন This) এটি বরং উদ্বেগজনক, তবে তারা কেবল এটি চেষ্টা করতে আগ্রহী বলে মনে হয় না don't আউট এবং চারপাশে জিপ ফাইলগুলি সহ উত্তেজক (ইয়াক।)

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


2

আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

আমার স্নাতক পদার্থবিজ্ঞান বিভাগ ল্যাবভিউ ক্লাস শিখিয়েছিল এবং এর গবেষণা প্রকল্পগুলিতে এটি ব্যাপকভাবে ব্যবহৃত হয়েছিল।

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

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

আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

পিছনে ফিরে তাকালেও আমরা তা করি নি, এবং যদি করি তবে আমাদের সবার পক্ষে আরও সহজ হত। সবকিছু ভেঙে ফেলা এবং ঘন্টার পর ঘন্টা ঠিক করার জন্য সংগ্রাম করার মতো কিছুই নয়!

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

আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের পথে খুব বেশি না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা চালিয়ে যাবেন (যেমন, পদার্থবিদরা অনড় মানুষ!)

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


2

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

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

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

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

আপনার এমন একটি ডিবাগার ব্যবহারের সাথে বিকাশ করাও বিবেচনা করা উচিত যা আপনাকে কোডের স্থিতিস্থাপক বিরতিতে প্রিন্ট লাইন ব্যবহার করে পরিবর্তনশীল সামগ্রীগুলি পরীক্ষা করতে দেয়। আমি পাইথন এবং ফোর্টরান বিকাশের জন্য গ্রিপস ব্যবহার করেছি (যদিও আমি এটির সাথে একটি ফোর্টরান সংক্ষিপ্ত প্রোগ্রামটি সংকলন করে একটি ভুল বাগ পেয়েছি, তবে এটি একটি খারাপ কনফিগারেশন হতে পারে) এবং আমি পাইথনের জন্য এরিক আইডিই ব্যবহার শুরু করছি । এটা ডিবাগ আপনি করতে পারবেন সঙ্গে ভার্সন পরিচালনা SVN , এটি একটি এমবেডেড কনসোল আছে, এটা করতে পারেন (এটা অন্য এক, খুব ব্যবহার করতে পারেন) সাইকেল মেরামতের ম্যান সঙ্গে refactoring করেন, তখন আপনাকে Unittest আছে, ইত্যাদি একটি পাইথন জন্য লাইটার বিকল্প নেই অলস অন্তর্ভুক্ত, সংস্করণ ২.৩ থেকে পাইথনের সাথে।

কয়েকটি ইঙ্গিত হিসাবে, আমিও পরামর্শ দিই:

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

  • কোডটি প্রথম থেকেই মন্তব্য করা।

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

  • অপ্রয়োজনীয় এবং স্বয়ংক্রিয় ব্যাকআপ ব্যবহার করুন! (সংস্করণ নিয়ন্ত্রণের সাথে)।


2

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

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


2

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


আপনি কি কখনও বিতরণ করা সংস্করণ নিয়ন্ত্রণ সিস্টেম ব্যবহার করার চেষ্টা করেছেন?
অ্যান্ড্রু গ্রিম

4
প্রায় বিতরণ করা সমস্ত সিস্টেম একে একে কেন্দ্রীভূতগুলির মতো সহজ করে তোলে। আপনি কেবল একটি সংশোধন নম্বর (এসভিএন হিসাবে) এর পরিবর্তে কমিট আইডি (গিট শর্তে) রেকর্ড করুন in
ফিল মিলার

2

আপনি বৈজ্ঞানিক সফ্টওয়্যার বিকাশের জন্য কোন ভাষা / পরিবেশ ব্যবহার করেছেন, esp। তথ্য বিশ্লেষণ? কি লাইব্রেরি? (যেমন, আপনি ষড়যন্ত্রের জন্য কী ব্যবহার করেন?)

আমি সংখ্যাসূচক এবং বৈজ্ঞানিক-সম্পর্কিত স্টাফ জন্য ব্যবহৃত ভাষা:

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

আমার সম্পাদক ইম্যাকস, যদিও আমি কনফিগারেশন ফাইলগুলি সম্পাদনার মতো দ্রুত স্টাফের জন্য ভিএম ব্যবহার করি না।

চক্রান্ত করার জন্য, আমি সাধারণত একটি পাঠ্য ফাইল তৈরি করি এবং এটি gnuplot এ খাওয়াই।

ডেটা বিশ্লেষণের জন্য, আমি সাধারণত একটি পাঠ্য ফাইল উত্পন্ন করি এবং জিএনইউ আর ব্যবহার করি

আমি এখানে প্রচুর লোক দেখি ফোরট্রান (বেশিরভাগ 77, তবে কিছু 90), প্রচুর জাভা এবং কিছু পাইথন ব্যবহার করছে using আমি সেগুলি পছন্দ করি না, তাই আমি সেগুলি ব্যবহার করি না।

প্রোগ্রামিংয়ে কোন উল্লেখযোগ্য পটভূমি ছাড়াই লোকদের জন্য প্রশিক্ষণ ছিল?

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

আপনার কাছে সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিংয়ের মতো কিছু ছিল?

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

আপনি কীভাবে ব্যক্তিগত বিজ্ঞানীদের পথে খুব বেশি না পেয়ে প্রোগ্রামিংয়ের জন্য একটি শালীন পরিবেশ তৈরি করার চেষ্টা চালিয়ে যাবেন (যেমন, পদার্থবিদরা অনড় মানুষ!)

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

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


2

আমি গাণিতিক কাঠামোর সাথে এর দৃ se় অর্থপূর্ণ সম্পর্কগুলি রেখে বিজ্ঞানের সাথে সম্পর্কিত হেরফেরগুলি সম্পাদনের জন্য সম্ভাব্য প্রার্থী হিসাবে এফ # এর পরামর্শ দেব।

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


1

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

আপনি যদি আরও জেনেরিক স্ক্রিপ্টিং ভাষা ব্যবহার করতে চান তবে আমি পাইথনের সাথে যাব। এটির জন্য দুটি জিনিস যা চলছে:

  • ইন্টারেক্টিভ শেল যেখানে আপনি পরীক্ষা করতে পারেন
  • এটি পরিষ্কার (যদিও কখনও কখনও দীর্ঘ) সিনট্যাক্স

একটি অতিরিক্ত সুবিধা হিসাবে, এটিতে আপনি এটি করতে চাইলে বেশিরভাগ জিনিসগুলির জন্য এটির গ্রন্থাগার রয়েছে।


1

আমি এই অঞ্চলে কোনও বিশেষজ্ঞ নই, তবে আমি সর্বদা বুঝতে পেরেছি যে এটিই ম্যাটল্যাবের জন্য তৈরি করা হয়েছিল। নেই উৎস নিয়ন্ত্রণের জন্য SVN সঙ্গে ম্যাটল্যাব সংহত করার একটি উপায় হিসাবে ভাল।

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