بسیاری از دانشجویان، کارآموزان و علاقه مندان به برنامه نویسی بارها و بارها این سوال را از من پرسیده اند. بیشتر آنها می گویند که تمامی دستورات برنامه نویسی را بلد هستیم ولی زمانی که می خواهیم شروع به کد نویسی یک پروژه کنیم نمی دانیم باید چه کار کنیم و از کجا شروع کنیم!!؟
دلیل اصلی این مشکلات در بین افرادی که تازه وارد دنیای برنامه نویسی شده اند و یا می خواهند وارد شوند این است که کار را از ابتدا شروع نمی کنند و در بیشتر مواقع مستقیما وارد مرحله یاد گرفتن دستورات زبان های برنامه نویسی و کد نویسی می شوند، و یا مراحل اولیه و مهم کار را خیلی ساده در نظر می گیرند.
بیایید علت پیاده سازی یک سیستم و مراحل پیاده سازی آن را به صورت خیلی ساده با هم بررسی کنیم:
برای حل یک مسئله، ابتدا باید صورت مسئله را خوب درک کنیم، یعنی چرا یک سیستم را پیاده سازی می کنیم. برای درک بهتر با مثالی این موضوع رو توضیح می دهم، شما فروشگاه دیجی کالا را در نظر بگیرید! یک سایت کامل و ریسپانسیو که در تمامی پلتفرم ها بهترین عملکرد را دارد یعنی شما از طریق مرورگر کامپیوتر های شخصی، تبلت ها، گوشی های هوشمند به راحتی می توانید از محتویات ارائه شده آن استفاده نمائید. پس علت نیاز به داشتن اپلیکیشن برای گوشی های هوشمند چیست؟ چه نیازمندی هایی وجود داشته که دیجی کالا تصمیم گرفته برای اسمارت فون ها اپلیکیشن طراحی کند؟
پس مهمترین و ابتدایی ترین کار دریافت نیازمندی های یک پروژه است. نیازمندی هایی که کارفرما یا خود شما را ملزم به پیاده سازی یک سیستم می کند بسیار مهم می باشد چون پروژه شما بر اساس آن نیازمندی ها ساخته می شود.
پس از دریافت نیازمندی ها باید سیستم تجزیه و تحلیل گردد. برای این کار روش های مختلفی وجود دارد، که پیش نیاز آن داشتن دانش طراحی الگوریتم است، الگوریتم در لغت به معنای حل مسئله است. شما زمانی که دانش حل مسئله را نیاموخته باشید، نمی توانید یک سیستم را پیاده سازی کنید(یا کد نویسی کنید). جالب است که به این موضوع هم اشاره شود که همه افراد در زندگی روزمره خود، بی اختیار، از الگوریتمها برای انجام کارهای خود استفاده میکنند. برای مثال، درست کردن غذا، آماده شدن برای رفتن به محل کار، هر یک الگوریتمهای خاص خود را دارند. اشخاص در مشاغل گوناگون نیز برای انجام کار روزانه خود از الگوریتمهای ذهنی یا مکتوب خاصی برای انجام کارها و انجام وظایف بهره میبرند. برنامه نویس ها نیز از این قاعده مستثنی نیستند. نتیجه نهایی یک برنامه نویسی(پیا یاده سازی یک سیستم) ساخت مجموعه ای از الگوریتم هاست.
پس مرحله دوم، آشنایی با طراحی الگوریتم و آموختن دانش تجزیه و تحلیل می باشد.
پس از طراحیِ الگوریتمِ یک مسئله، خواهید دید که با حجمی از داده ها روبرو هستید. داده هایی که باید دریافت، پردازش و ارائه شوند. از آنجا که داده حیاتیترین موجودیت در علم کامپیوتر است، ارزش واقعی ساختمان دادهها مشخص می شود. اهمیتی ندارد که شما در حال حل چه مسالهای هستید، از هر رو به نوعی با داده سر و کار دارید. از جمله مسائلی که شما به آنها میپردازید میتوان به حقوق کارمندان یک سازمان، قیمت سهام، لیست خوار و بار و یا حتی یک راهنمای تلفن ساده اشاره کرد. بر اساس سناریوهای گوناگون، دادهها را باید در فرمت (قالب) خاصی ذخیره کرد. ساختمان دادههای گوناگونی وجود دارند که پاسخگوی نیازهای کاربران جهت ذخیرهسازی دادهها در قالبهای گوناگون هستند، و از آنجاییکه هیچ ساختار داده ی یکتایی وجود ندارد که برای همه مسائل و اهداف خوب باشد بنابراین، نیاز به شناخت انواع ساختار دادهها و نقاط ضعف و قوت آنها است.
پس تا اینجای کار دانستیم که قبل از شروع به کد نویسی باید نیازمندی های مسئله را بدانیم و بر اساس آن سیستم را تجزیه و تحلیل کنیم و جهت دریافت، پردازش و ارائه داده ها با ساختمان داده ها آشنایی داشته باشیم. تا بتوانیم کد نویسی را آغاز کنیم. لازم است اشاره کنم که کدنویسی پایان کار پیاده سازی یک سیستم نیست! پس از اتمام کد نویسی، سیستم تولید شده باید آزمایش و ایرادات احتمالی آن رفع و سپس تحویل کارفرما گردد. بعد از تحویل سیستم نوبت به روزرسانی، نگهداری و پشتیبانی می رسد، ممکن است بعضی از ایرادات پس از مدتی خود را نشان دهند و یا کارفرما نیاز به ایجاد تغییراتی در برنامه و یا حتی اضافه کردن امکانات جدیدی به پروژه را داشته باشد، شما باید آمادگی لازم را حتی بعد از تحویل کار داشته باشید و جهت سهولت کار بهتر است هر پروژه را به صورت مجزا و کامل مستند سازی نمایید.
البته در شرکت های بزرگ و متوسط، روال کار بر این قرار است که هر مرحله از کار توسط متخصص آن کار انجام می پذیرد، ولی زمانی که شما به تنهایی یک سیستم را پیاده سازی می کنید به ناچار باید تمامی مراحل را خودتان انجام دهید. باید توجه داشته باشید که حتی اگر شما در مجموعه بزرگی با تخصص کد نویسی(به عنوان برنامه نویس) نیز کار کنید باید آشنایی نسبی با مراحل کار داشته باشید.
این را نیز در نظر بگیرید که مراحل برنامه نویسی را می توان خیلی ریزتر از آنچه در اینجا اشاره شد نیز بیان کرد، در این مطلب سعی بر آن بود تا برنامه نویسان کم تجربه با روند کلی کار آشنا شوند و از سردرگمی شروع یک پروژه جدید رها شوند.