প্রথমত, আমি বুঝতে পারি যে এই প্রশ্নটি কিছুটা দীর্ঘ এবং অস্পষ্ট হয়ে যেতে পারে এবং আমি এর জন্য ক্ষমা চাইছি। এটি সম্ভবত "যিনি" পেয়েছেন তার সংক্ষিপ্ত নাম সহ এটি সম্ভবত একটি প্রাথমিক সমস্যা, তবে আমি নিজেকে এই বিষয়ে অভাব বোধ করি, দয়া করে সমস্যাটি বর্ণনা করার ক্ষেত্রে আমাকে সহ্য করুন।
আমার প্রায় 11 বছর বয়স থেকেই আমি এইভাবে বা অন্য কোনওভাবে প্রোগ্রামিং করছি। এর অর্থ এই যে আমি বেশিরভাগ সময় থেকেই নিজেকে শুরু থেকেই সবকিছু শিখিয়ে চলেছি। আমি প্রযুক্তিগত শিক্ষা পেয়েছি, তবে কম্পিউটার সায়েন্সে কঠোরভাবে নয় (আমি ফোটোনিক ইঞ্জিনিয়ারিংয়ের একটি ডিগ্রি নিয়ে স্নাতক হয়েছি)। আমাদের অবশ্যই প্রোগ্রামিং কোর্স ছিল, তবে এটি বেশিরভাগ ক্ষেত্রে আমার কাছে প্রাথমিক জিনিস ছিল এবং আমি খুব বেশি নতুন জিনিস শিখি না। আমি এটির আনন্দের জন্য নিজেকে পথচলা চালিয়েছি এবং সর্বদা জানতাম যে আমি প্রোগ্রামিংয়ে একটি ক্যারিয়ার অর্জন করব, তবে আমার সমস্ত প্রকল্পগুলি তখন খুব ছোট ছিল। এগুলি আমার মনে রাখতে এবং বজায় রাখতে আমার কোনও সমস্যা হয়নি।
এখন, আমি নিজেকে একটি দলের নেতৃত্বের সন্ধান করি, তবে কর্পোরেট পরিবেশে নয় - প্রকৌশল অ্যাপ্লিকেশনগুলির জন্য আমি বৈজ্ঞানিক সফ্টওয়্যার (সি ++ তে) বিকাশের জন্য বিশ্ববিদ্যালয়ের পক্ষে কাজ করি। হঠাৎ করে প্রকল্পটি বাড়ছে (তুলনামূলকভাবে) বড় এবং আমি বেশিরভাগ সময় আমার মনটি জড়িয়ে রাখতে সমস্যা করি। আমি বেশিরভাগ ক্ষেত্রে দুটি বিষয়ে প্রচুর সময় এবং প্রচেষ্টা হারাচ্ছি:
- যখন আমাকে কোডের কোনও বিভাগে ফিরে যেতে হবে যখন আমি কিছুক্ষণ কাজ করি নি, তখন এটি কীভাবে কাজ করেছে তা মনে করতে আমার অসুবিধা হয়। আমি প্রাসঙ্গিক ক্লাসগুলির জন্য শিরোনাম ফাইলগুলি পর্যালোচনা করতে এবং উত্স ফাইলগুলির পথে আমার দেওয়া মন্তব্যগুলি পড়তে অনেক সময় ব্যয় করি। আমি আশা করি যে "স্কিম্যাটিক" এর কোনও রূপ ছিল আমি ছবিটি আরও সহজে দেখতে পেলাম এবং ফিরে পেতে পারি;
- আমি যখন পরিবর্তনগুলি পরিচয় করিয়ে দিই, কখনও কখনও আমি বুঝতে পারি যে আমি যা করার চেষ্টা করছি তা অন্য কোথাও ভেঙে ফেলবে (বা আরও খারাপ এটি কেবল রানটাইমের সময় অবাক হওয়ার মতো দেখায়)। আমি প্রত্যাবর্তন করি এবং এটি অন্যভাবে করা শুরু করি, কেবলমাত্র অন্য কোনও উপাদানগুলির প্রভাবকে আমি উপেক্ষা করেছি find আমি আশা করি যে এখানে কিছু "আর্কিটেকচার ডায়াগ্রাম" ছিল যেখানে আমি দেখতে পেলাম যে কীভাবে জিনিসগুলি সম্পন্ন হয়, কীভাবে আমি কী করার চেষ্টা করছি তা অন্যান্য উপাদানগুলিকে প্রভাবিত করবে এবং পরিবর্তনগুলি বাস্তবায়ন শুরু করার আগে আমার জন্য বিশদ পরিকল্পনা করার উপায় way
আমি যাদের সাথে কাজ করি তাদের বেশিরভাগেরই আমার নিজস্ব - দৃ strong় প্রযুক্তিগত দিকনির্দেশনা এবং কখনও কখনও দুর্দান্ত দক্ষতা হিসাবে একই গল্প থাকে তবে তাদের কাজটি সংগঠিত করার কোনও উপায় নেই। যাইহোক, তাদের প্রকল্পগুলি সাধারণত আমার চেয়ে অনেক ছোট তাই তারা কোনওরকমে মোকাবেলা করে। যাইহোক, আমার জন্য এর অর্থ হ'ল আমি নিজেই আছি এবং এর থেকে ভাল অনুশীলনগুলি শিখতে আমারও নেই।
আমি আইটি পরিচালনার ক্ষেত্রে স্নাতকোত্তর কোর্স গ্রহণ করেছি এবং আমি এটি বেশ সন্তোষজনক বলে মনে করি, এটি বেশিরভাগই নন-প্রোগ্রামারগুলিকে লক্ষ্য করে লক্ষ্য করা যায়, প্রকল্প পরিচালনার পদ্ধতিগুলি, বাজেট / সময়সূচী অনুমান, এন্টারপ্রাইজ আর্কিটেকচার ইত্যাদি সম্পর্কে শেখানো - সফ্টওয়্যার ডিজাইন এবং পরিকল্পনা যেমন নয়। এটি ঠিক আছে, আমি সেই জিনিসগুলিও শেখার চেষ্টা করছি। অবশ্যই, কিছু সরঞ্জাম (যেমন ইউএমএল) এবং সফটওয়্যার বিকাশের প্রক্রিয়াগুলির ধরণের (ক্যাসকেড, পুনরাবৃত্তি, চৌকস ...) প্রবর্তিত হয়েছিল, তবে স্পষ্টতই খুব বিস্তারিতভাবে নয় এবং আমার কী কী বাছাই করা উচিত এবং কী ব্যবহার করা উচিত তা সিদ্ধান্ত নিতে আমার খুব কষ্ট হয়েছে ( এবং কতটা পরিমাণে)।
আমি এসও-তে সফটওয়্যার ডিজাইন সম্পর্কে অনেক প্রশ্ন এবং উত্তর পড়ছি - এটি বা সেই নির্দিষ্ট সরঞ্জাম বা পদ্ধতিটি ব্যবহার করে এটি করার বিষয়ে অনেকগুলি রয়েছে এবং আমি যদি নিশ্চিত হয়েছি যে ইউএমএল ডকুমেন্টেশনগুলি আমার সমস্যার সমাধান করবে - আমি এটি তুলে নেব এবং এটি ব্যবহার শুরু করুন। তবে কিছু লোক এর কসম খায়, আবার কেউ কেউ বলেন এটি অকেজো। আমি বিমূর্ততার উচ্চ স্তরের একটি উত্তর খুঁজছি - আমার যে দুটি সমস্যা হচ্ছে সেগুলি সমাধান করার কোনও উপায় আছে এবং আপনি কীভাবে ব্যক্তিগতভাবে এটি করেন? সম্ভবত একটি নির্দিষ্ট সরঞ্জামে আবদ্ধ না হয়ে কী করতে পেরে আমার কী শিখতে হবে? এগুলি সময়ে সময়ে স্টাইলের বাইরে আসে এবং আমি আশা করি যে তাদের প্রযোজ্যতা প্রকল্পের ধরণের উপর নির্ভর করে পরিবর্তিত হয়।
পড়ার জন্য অনেক ধন্যবাদ, আমি আরও সংক্ষিপ্তভাবে কী বলতে চাইছি তা বলতে অক্ষম ছিলাম (সফ্টওয়্যার ডিজাইনের অভিজ্ঞতা এবং শব্দভাণ্ডারের অভাব)।