"চাকা পুনরায় উদ্ভাবন করা" শব্দবন্ধটি কি শিক্ষার্থীদের জন্য উপযুক্ত?


115

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

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

"চাকা পুনরুদ্ধার" কি খারাপ? আমি কি এটা ভুল ভাবছি? হতে পারে এমন কোনও উপায় আছে যা আমি চাকাটি পুনর্বহাল করা এড়াতে পারি এবং একই সাথে অনেক কিছু শিখতে পারি?


51
যদি আপনি অন্যান্য লোকেদের জন্য আপনার ওজন তুলতে (যদি আপনি ম্যানেজার হতে শিখছেন না) পান তবে আপনি জিমে যোগদান করে খুব বেশি সুবিধা পাবেন না।
চার্লস ই। গ্রান্ট

82
আপনি যখন চাকা তৈরি করতে যাচ্ছেন তখন চাকাটি পুনরায় সাজানো ঠিক আছে। আপনি যখন ঘর তৈরি করছেন, তখন চাকা নির্মাতারা আপনার চেয়ে আরও ভাল কি করছেন তা জেনে নেওয়া ভাল idea
zzzzBov

22
আপনার অন্তত একটি চাকা তৈরি করার চেষ্টা করতে হবে! অন্যথায় আপনি জানেন না যে আপনার কেন একটি পূর্বনির্দিষ্ট ব্যবহার করা উচিত।

59
নিরঙ্কুশ বলা কখনই উপযুক্ত নয়। :)
একটি সিভিএন

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

উত্তর:


126

আমি মনে করি আপনি একটি ভাল পয়েন্ট করা। এই সাইটের বেশিরভাগ প্রোগ্রামার সম্ভবত কর্মক্ষম পেশাদার যাঁর লক্ষ্য যত তাড়াতাড়ি সম্ভব মানের সফ্টওয়্যার তৈরি করা বেশ। চক্রটির পুনঃসংশোধন এই লক্ষ্যটিকে ব্যর্থ করে দুটি ক্ষেত্রে।

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

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


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

3
সংকলক সম্পর্কে দুর্দান্ত পয়েন্ট
চ্যানী

1
আমি মনে করি চাকাটি পুনরায় উদ্ভাবন না করা শেখা আরও গুরুত্বপূর্ণ। আপনি করতে পারেন এমন অনেকগুলি জিনিস যা ইতিমধ্যে তৈরি করা এমন কিছু তৈরির সাথে জড়িত না।
থমাস বনিনি

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

2
একজন ছাত্র হিসাবে আপনাকে চাকাটি কেন দ্রুত হয় কেন তা দেখার জন্য আপনাকে পুনরায় উদ্ভাবন করতে হবে তবে একজন পেশাদার হিসাবে আপনাকে বাণিজ্যিক চাকা ব্যবহার করা দরকার যাতে আপনি যত দ্রুত সম্ভব যেতে পারেন। দুর্ভাগ্যক্রমে, দেখা যাচ্ছে যে, এসও প্রাথমিকভাবে পেশাদারদের জন্য একটি সাইট, শিক্ষার্থীদের জন্য নয় (তারা কি কিছুক্ষণের জন্য [হোমওয়ার্ক] নিষিদ্ধ করেনি?)
টাকরোয়

19

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


17

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

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

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


12

একজন শিক্ষক বা প্রোগ্রামিং হওয়ার কারণে, আমি ক্রমাগত সমস্যার বিপরীত দিক দিয়ে লড়াই করি: আমি কখন শিক্ষার্থীদের চাকা পুনরায় সন্ধান করতে বলি?

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

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

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

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

আপনার প্রশ্নের আরও সরাসরি উত্তর দিতে দুটি পরামর্শ:

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

6

অনুশীলন আমি সন্দেহ করি যে কেউ লিখেছেন প্রথম 1000 লাইন কোডটি খুব অনন্য।

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

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

অল্প কিছু বিস্মৃততা আছে


1
বিশেষত শেষ পয়েন্টের জন্য।
মাইক ডুনলাভে

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

@ বামফামদিক - আমার ধারণা আমি এই বিবৃতিটি কোডের লাইনে সীমাবদ্ধ করবো যা সংকলন করতে পারে।
JeffO

3

অ্যাসাইনমেন্ট সম্পন্ন করার জন্য শিক্ষার্থীদের অর্থের বাজেট নেই, তবে বিবেচনার জন্য যথাযথ তারিখ রয়েছে।

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

এটি বলেছিল, একবার আপনি স্কুল ত্যাগ করার পরে, ইতিমধ্যে বিদ্যমান জিনিসগুলি তৈরির সময় খুঁজে পাওয়া শক্ত। আপনি যখন স্কুলে রয়েছেন তখন আপনি যখনই পারবেন সুযোগ পাবেন।

আপনি যদি এসও-তে "লাইব্রেরি এক্স / ফ্রেমওয়ার্ক ওয়াই ব্যবহার করুন" ব্রাশ-অফ পেয়ে থাকেন তবে আপনার প্রশ্নটি "এটি সম্পর্কে আরও জানার জন্য আমি নিজেই এক্স লিখছি" দিয়ে প্রবন্ধটি রাখুন


আপনার প্রশ্নের উপস্থাপন করুন "এটি সম্পর্কে আরও জানার জন্য আমি নিজেই এক্স লিখছি" দিয়ে। এই. +1 টি।
Boisvert

2

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


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

2

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

সুমেরীয় সময় থেকে, অনেক কিছুই পরিবর্তিত হয়েছে:

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

এটি কীভাবে সফ্টওয়্যার বিশ্বে অনুবাদ করে? ওয়েল,

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

2

আমি সদ্য শিক্ষিত ছাত্র। স্কুলে আমরা 'এসপ নেট' এবং সি # শিখছিলাম, যে 2 বছর পড়াশুনা লেগেছিল, আমরা কখনও নিজের ইমেইল সিস্টেম, লগইন সিস্টেম বা সিএমএস তৈরি করার চেষ্টা করি নি .. সব কিছুই কেবল টেনে নিয়ে যাচ্ছিল, এবং নকশার দৃশ্যে নিয়ন্ত্রণ ছাড়ছে was ।

আমরা 102 শিক্ষার্থী শুরু করেছি, 23 জন সম্পূর্ণ করেছে। 4 জনের একটি কাজ আছে। কারণ ?: এই 4 জন ব্যক্তি (আমাকে সহ) আমরা আসলে শিক্ষার শুরু করার আগে কীভাবে প্রোগ্রাম করবেন তা জানতেন।

বাকি লোকেরা হারিয়ে গেছে। কারণ আমরা কখনই 'চক্রটিকে নতুনভাবে আবিষ্কার করিনি'। কোডটি আসলে কীভাবে কাজ করে তা আমরা কখনই জানতে পারি নি। ব্যবহারকারী পরিচালনার সাথে একটি পূর্ণ লগইন সিস্টেম তৈরি করা মোটামুটি সহজ - তবে আমার শিক্ষা থেকে আসা শিক্ষার্থীরা কীভাবে তা করতে জানেন না। কারণ তারা জানেন না যে লগইন সিস্টেমটি আসলে কীভাবে কাজ করে।

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

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


1

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

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


1

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

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

শিক্ষার্থীদের জন্য, এর অর্থ এই নয় যে অন্যেরা যা লিখেছেন তা লেখেন না, এর অর্থ আপনি ইতিমধ্যে যা আয়ত্ত করেছেন তা আবার করবেন না - সেই সময়টি যা আপনি আয়ত্ত করেননি তার পক্ষে আরও ভালভাবে ব্যয় করা যেতে পারে।


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

1

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

  1. আপনি হয় বুঝতে পারেন যে জিনিসগুলি কেন সেভাবে হয়।
  2. আপনি এটি অপ্টিমাইজ করতে এবং এটি আরও ভাল করতে পারেন
  3. আপনি এটি স্ক্রু আপ করতে পারেন এবং কীভাবে এই জিনিসটি করবেন না তা শিখতে পারেন।

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


1

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

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

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


1

উত্তরটি আপনি শিখতে বা তৈরি করতে চান তা নির্ভর করে depends

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

তবে যদি কোনও জটিল পণ্য তৈরির লক্ষ্য হয় তবে "চাকা পুনরুদ্ধার করা" সময় সাপেক্ষ অনুশীলন হতে পারে এবং পণ্যটি তৈরিতে সামান্য সহায়তা করবে।

তবুও, যদি আত্মার উদ্দেশ্যটি পর্যাপ্ত সময় এবং স্ট্যামিনা সরবরাহ করে, "চাকা পুনর্নির্মাণ" সর্বোত্তম বিকল্প, কারণ এটি প্রতিটি বৈশিষ্ট্য কাস্টমাইজ করতে সহায়তা করে।


1

ঠিক আছে, এটির দুটি দিক রয়েছে।

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

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

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


আমি রাজী. এই কারণেই এখানে প্রচুর নতুন বিদ্যমান বিদ্যমান সফ্টওয়্যার ফ্রেমওয়ার্ক এবং লাইব্রেরি তৈরি করা হচ্ছে :)
gbjbaanb

0

আমিও একই পরিস্থিতির মুখোমুখি হয়েছি। শিল্প ও শিক্ষাবিদ সম্পর্কে উপলব্ধি পার্থক্যের কারণ এটি।

যদি আপনি "চাকা পুনরায় উদ্ভাবন" না করেন তবে আপনি একেবারে স্কুলে কিছুই অধ্যয়ন করতে পারবেন না বা কীভাবে কাজ করে তা বুঝতে পারবেন না।

যেখানে কোনও শিল্পের উদ্দেশ্য হ'ল কমপক্ষে সময় এবং প্রচেষ্টায় কোনও পণ্য আনা।

ব্যক্তিগতভাবে, আমি খরগোশের গর্তটি নীচে যেতে পছন্দ করি এবং আমি শিল্প দর্শনের ঘৃণা করি তবে এটি কীভাবে ব্যবসা হয় এবং আপনি অভিযোগ করতে পারবেন না।


0

হ্যাকার পরিভাষা Lexikon উপর একটি খুব ভাল মন্তব্য আছে চাকা reinventing :

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

সুতরাং চাকাটি পুনরায় উদ্ভাবন করা ভাল, তবে আপনি এটির আগে বা পরে অন্যের সমাধানগুলি দেখেছেন তা নিশ্চিত করুন।


0

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


-1

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


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

-2

অ্যাসাইনমেন্ট / প্রশ্ন / পরীক্ষা আপনাকে যা করতে বলবে তা করুন।

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

আমরা তাদের ফিরে যা জিজ্ঞাসা করেছি তা হ'ল 'আপনার প্রোগ্রামটি ফাইলটি অনুলিপি করবে?'

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

শিক্ষক যদি বলেন যে কোনও ফ্রেমওয়ার্ক বা লাইব্রেরি ব্যবহার করুন (যেমন কোনও গ্রাফিক্স ক্লাস আপনাকে 3D লাইব্রেরি ব্যবহার করতে বলতে পারে) তবে তারা আপনাকে যা বলবে তা ব্যবহার করুন। নিজের আবিষ্কার করবেন না বা অন্য কোনও ব্যবহার করবেন না। যে কোনও ভিন্ন কিছু আপনার কাজের গ্রেড করা শিক্ষককে আরও শক্ত করে তুলবে।

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


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