শিল্পে প্রোগ্রামিং বনাম প্রোগ্রামিংয়ের মধ্যে পার্থক্য? [বন্ধ]


50

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

একাডেমিক সেটিংয়ে প্রোগ্রামিং এবং 'রিয়েল ওয়ার্ল্ড'-এ প্রোগ্রামিংয়ের মধ্যে কিছু পার্থক্য কী?


উদাহরণ: techcrunch.com/2011/11/12/...
rdasxy

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

9
এই প্রশ্নটি কি পিএইচডি স্তরের একাডেমিক সম্পর্কে জিজ্ঞাসা করছে, বা স্নাতক শেষ হওয়ার পরে, বা কেবল একজন সাধারণ, "শ্রেণিকক্ষ বনাম রিয়েল ওয়ার্ল্ড" সেটিং?
বব

@Bob। এটি সাধারণ একাডেমিয়া সম্পর্কে আরও ছিল। শিল্পে শ্রেণিকক্ষ / গবেষণা / নির্দেশিত পাঠক / কার্যাদি বনাম "রিয়েল ওয়ার্ল্ড" প্রোগ্রামিং।
rdasxy

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

উত্তর:


72

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

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

ওহ হ্যাঁ, এবং আপনাকে খুব কোড লিখতেও সক্ষম হতে হবে, যদিও এটি একটি সফ্টওয়্যার ইঞ্জিনিয়ারের সময় হিসাবে গড়ে 40 - 60% সময় নেয়।

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


18
Oh yeah, and you also have to be able to write code too, but that's, on average, only 40 - 60% of a software engineer's time.- বা এমনকি 0-2% সত্যিই খারাপ এবং সত্যিই বড় কর্পোরেট শপগুলিতে।
রিচ মেল্টন

1
খুব ভাল উত্তরের জন্য +1 এবং রিচের জন্য +1 (আরও বেশি হওয়া উচিত)। যদি / ডাব্লু ইঞ্জিনিয়ার প্রকল্পের জীবনচক্রের 20% এরও বেশি কোডিংয়ের জন্য ব্যয় করে থাকেন তবে কিছু খুব, খুব ভুল। 50% ডিজাইন, 30% পরীক্ষা, 20% বিশ্রামের জন্য .... কোডিং সহ অন্য সব কিছুই সঠিক সম্পর্কে মনে হয়। সঠিক নকশা সহ, কোডিং তুচ্ছ হওয়া উচিত। এটি ছাড়া লোকেদের "কোডিং" বলতে প্রকৃতপক্ষে অবিরাম পুনর্লিখনগুলি যাচ্ছিল যেহেতু তারা এগিয়ে যাওয়ার সাথে সাথে কোনও নকশার নকশাকে হ্যাক করার চেষ্টা করছে
মগ

36

বিশ্ববিদ্যালয়ে...

আপনার শিক্ষক আপনাকে দেয়:

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

বাস্তব জগতে"...

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

উপসংহার

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


11
এটিই আমি উত্তর দিতে যাচ্ছিলাম মূলত। স্কুলে আপনি সমস্যাটি জানেন এবং সমাধানটিও জানেন। "বাস্তব জগতে" আপনি সমাধানটি খুব কমই জানেন এবং প্রায়শই আসল সমস্যাটিও জানেন না।
বব

20

তারা সমস্যার একটি ভিন্ন দিকের মুখোমুখি:

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

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


10

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

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

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

এই জিনিসগুলি শেখানো হয় না এবং তারা উত্পাদনশীলতায় একটি বিরাট পার্থক্য করে।


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

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

1
ঠিক আছে, আমি বুঝতে পেরেছি: বড়, বাস্তব-বিশ্বের উদাহরণগুলি ব্যবহার করুন এবং ছাত্রদের তাদের উপর কাজ করতে দিন। খুব ভালো বুদ্ধি.
জর্জিও

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

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

8

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


8

আপডেট: যেন কেউ আমার মন পড়ছে: স্নাতক প্রত্যাশা বনাম বাস্তবতা ...

আমার গ্রহণ, অন্য দুটি কারণ:

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

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

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


আপনার রূপকটি বাড়াতে এবং মেডিসিনের আমার নিজের অভিজ্ঞতা থেকে: ডাক্তার মেডিক্যাল স্কুলে সাধারণ ধারণাগুলি শিখুন তবে আমরা সকলেই ইন্টার্ন এবং বাসিন্দাদের কাজের জন্য প্রশিক্ষণে বাদাম এবং বল্টস এবং বাস্তব জগতের শর্ট কাটগুলি শিখি।
পূর্ণ

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

4

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

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

আমাদের প্রোগ্রামিং দর্শনের পরিবর্তন যাতে আমরা জিনিসগুলিকে "স্টিভ প্রুফ" তৈরি করি তা সাধারণভাবে আমাদের প্রয়োগের স্থায়িত্বকে উন্নত করে।


3

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

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

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


2

একাডেমিয়ায়,

অপূর্ণতা

  • আমাদের সময়সীমা রয়েছে যা মূলত পয়েন্ট করতে হয়।
  • বাগগুলি সত্যই সমস্যার কারণ হয় না, কারণ বেশিরভাগ প্রকল্প বাস্তব বিশ্বের অ্যাপ্লিকেশনগুলিতে কখনই ব্যবহৃত হয় না।

pluses

  • আমরা গবেষণার জন্য পর্যাপ্ত সময় পাই।
  • প্রাথমিক উদ্দেশ্যগুলি থেকে দুরে দৌড়াতে খুব বেশি সমস্যা হয় না।

ইণ্ডাস্ট্রিতে,

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

এটা দেখ:

http://www.dodgycoder.net/2011/10/how-to-become-better-programmer.html


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

2

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

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


1

আসলে,

একাডেমিক স্তরের প্রোগ্রামিং এবং বাস্তব ওয়ার্ল্ড প্রোগ্রামিংয়ের মধ্যে সম্পূর্ণ পার্থক্য করা অসম্ভব।

আমি বলব সবচেয়ে বড় পার্থক্যটি এটি হতে পারে: রিয়েল ওয়ার্ল্ড প্রোগ্রামিংয়ে - আপনাকে প্রোগ্রামিংয়ের চেয়ে আরও বেশি কিছু জানতে হবে এবং দ্রুত মানিয়ে নিতে সক্ষম হওয়া উচিত।

আপনি কোন সেক্টরে কাজ করছেন তার উপর নির্ভর করে আপনাকে তার আইন মেনে চলতে হবে।

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

সাধারণভাবে আপনি একটি শিল্পে প্রতিটি বিষয় অন্ততপক্ষে কয়েকটি চ্যালেঞ্জের মুখোমুখি হবেন:

  • পরিচালন আইন (চিকিত্সার জন্য ক্লায়েন্টের গোপনীয়তা)
  • বিষয়গুলি কীভাবে (প্রাক্তন চালান-শুল্ক ব্যবস্থা, ইনভেন্টরি, রিসোর্স ম্যানেজমেন্ট, মেডিকেল স্কিম, শিল্প মান)
  • ক্লায়েন্টের প্রয়োজনীয়তাগুলির অভাব বা অ-অস্তিত্বহীন বা শিল্পের মান / পরিচালন আইন থেকে পৃথক

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

তারপরে একমাত্র আসল পার্থক্য হ'ল আসল বিশ্ব প্রকল্প

  • একটি ক্লায়েন্ট আছে
  • বাজেট রয়েছে (সময়, অর্থ, জনসম্পদ)

যখন অন্য কেউ নিয়ম করে তখন এটি ভিন্ন বলের খেলা :)


0

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

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

মাইক্রোসফ্ট ওয়েব প্রোগ্রামিং প্রয়োজনীয়তা নিন (যা কোনও সংস্থায় উত্পাদনশীল দলের সদস্য হতে কারও দ্বারা প্রয়োজনীয় অঞ্চলগুলি):

1- C # .NET বা VB.NET

2- এএসপি.এনইটি

3- এইচটিএমএল এবং সিএসএস

4- এসকিউএল সার্ভার (বা অন্য একটি ডাটাবেস)

5- ওও অ্যাপ্লিকেশন প্রোগ্রামিং এবং ডিজাইন

6- জাভা স্ক্রিপ্ট

7- এমভিসি কাঠামো

8- উত্স নিয়ন্ত্রণ সরঞ্জামগুলির কিছু এক্সপোজার

9- স্বয়ংক্রিয় পরীক্ষার সরঞ্জামগুলির কিছু এক্সপোজার

10-বাগ ট্র্যাকিংয়ের সরঞ্জাম

11-ই-বাণিজ্য ধারণা (alচ্ছিক)

12-ORM

13-কিছু ব্যবসায়িক বিশ্লেষণ দক্ষতা

14-কিছু যোগাযোগ দক্ষতা

15-সম্ভবত, কিছু ক্লাউড কম্পিউটিং মৌলিক

আপনি দেখতে পাচ্ছেন যে কলেজ / বিশ্ববিদ্যালয় চলাকালীন উপরের বেশিরভাগ প্রয়োজনীয়তা খুব কমই মনোযোগ নিবদ্ধ করে (আপনি কিছুতে 1 টি কোর্স পেতে পারেন)।

এমন সংস্থাগুলির অনেকগুলি প্রযুক্তি রয়েছে বলেই তারা প্রতিষ্ঠানগুলিকে পুরোপুরি দোষ দিতে পারে না এবং তারা পরিবর্তন করে চলেছে।

মাইক্রোসফ্ট থেকে উপরের বেশিরভাগগুলি জাভাতে অ্যাপ্লিকেশন বিকাশ করতে চায় এমন কাউকে সহায়তা করবে না।

আসল সমস্যাটি হ'ল যে ব্যবসায় আজকের জন্য প্রয়োজনীয় প্রযুক্তি স্ট্যাকগুলির মধ্যে একটিও পূর্ণ নয়।

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


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

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

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

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

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

0

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

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


0

রক্ষণাবেক্ষণ ও রক্ষণাবেক্ষণ

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

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

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

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