سلام
این بخش اول شروع برنامه نویسی یک پروژه با لازاروس هستش.
من همین اول بگم که ادعایی تو برنامه نویسی ندارم و ممکنه بعضی جاها کارم بهینه نباشه پس تصور شما این نباشه که چیزی که من میگم تنها راه ممکنه برای حل یک مسئله هستش.
-------------------------------------------------------
به نظر من انواع برنامه های کامپیوتری برای نوشتن و توسعه به ۴ بخش تقسیم میشن :
۱- برنامه های سیستمی و یا توسعه خود سیستم عامل : این نوع برنامه ها نیازمند این هستن که برنامه نویس تسلط کامل نسبت به سیستم عاملی که برای اون برنامه مینویسه داشته باشه و در عین حال دستورات مخصوص کامپایلری رو که استفاده میکنه برای اون سیستم عامل خاص بلد باشه.نکته دیگه در مورد این برنامه ها اینه که عموما این برنامه ها مستقل از سکو تولید نمیشن و مختص یک سیستم عامل هستن که این به خاطر نوع معماری مختلف سیستم عامل ها هست. تو کشور ما زیاد رونق نداره و شرکت های اندکی هستن که تو این زمینه فعالیت می کنند.
۲- برنامه های کاربردی که برای انواع کاربر مبتدی و حرفه ای طراحی میشن: این برنامه ها استفاده کننده خیلی زیادی دارند. مثلا پخش کننده موزیک و ویدیو یا برنامه ویرایش تصاویر و یا ..... این برنامه ها به صورت ساده و با امکانات کم زیاد استفاده نمی شن مخصوصا تو کشور ما که مثلا فتوشاپ تقریبا رایگان به دست میاد. نکته بعدی اینکه در نسخه های حرفه ای الگوریتم های پیچیده و سختی استفاده میشه که شاید تو تمام دنیا فقط چند نفر قادر به طراحی همچین الگوریتم هایی باشن. مثلا الگوریتم های مورد استفاده تو برنامه فتوشاپ برای ویرایش تصاویر و یا برنامه اتوکد یا 3dMax و .... این قبیل برنامه ها که استفاده زیادی دارند کار ۲ نفر یا چند نفر نیست و یک شرکت بزرگ با کلی دکتر و مهندس و پروفسور برای ایجاد و توسعه اونها لازمه. خوشبختانه تو کشور ما تو این زمینه وقت هدر نمیدن و نیازی به هزینه کردن برای این کارها نیست چون همه این برنامه ها به صورت رایگان یافت می شود
البته همه این برنامه ها نسخه های متن باز و رایگان هم دارند که برنامه نویس میتونه تو توسعه اونها کمک کنه به شرطی که به زبان طراحی شده اون برنامه آشنا باشه و مهارت کافی برای توسعه داشته باشه.
۳- برنامه هایی که مخصوص کاربر طراحی میشن و عموما برای کار با پایگاه داده و ذخیره و بازیابی اطلاعات مورد استفاده قرار می گیرند. این نوع برنامه ها تو کشور ما رونق خوبی دارند و اغلب شرکت های برنامه نویسی تو این زمینه فعالیت می کنند. هرچند حجم مشتری این نوع برنامه ها قابل قیاس با ۲ نوع قبل نیست ولی برای شرکت ها کار تو این زمینه به صرفه تر و اقتصادی می باشد.
مزیت دیگه این برنامه ها اینکه اغلب اونها مخصوص یک مشتری خاص طراحی می شن که با این کار کپی کردن و استفاده برای دیگری زیاد پیش نمیاد. بعضی هم با استفاده از قفل های سخت افزاری از طریق LPT و جدیدا USB مانع کپی برنامه هاشون می شن.
این نوع برنامه ها معمولا شامل ۲ قسمت مهم میشن که یکی پایگاه داده جهت ذخیره و بازیابی اطلاعات است و دومی خود برنامه اجرایی که رابط بین پایگاه داده و کاربر هستش .
۴- برنامه هایی که تو صنعت استفاده میشن. اغلب کارخونه ها از PLC برای کنترل خط تولید استفاده می کنند. PLC سیستم هایی هستند که مخصوص همین موارد طراحی شدن و با سنسور های مختلف ارتباط دارند و خط تولید کارخونه رو کنترل می کنند. مشکل اینجاست که این تجهیزات برای پشتیبانی و قطعه یدکی زیاد به صرفه نیستن. پس یک PC هرچند برای بیشتر از همچین نیازی طراحی شده ولی به صرفه تر و راه اندازی راحت تری داره. فقط مشکل اینجاست باید برنامه نویسی رو پیدا کنند که بتونه ارتباط بین PC و سنسور های خط تولید و دستورات اونها رو با یک برنامه بر قرار کنه. این زمینه یکم مشکله ولی برنامه نویس هایی هستند که برای کنترل خط تولید با PC برنامه نویسی می کنند. نکته دیگه اینه که این قضیه تقریبا شبیه به برنامه نویسی برای روبات ها هم هست. چون ربات ها هم با استفاده از یک سری سنسور و انجام پردازش باید کاری رو انجام بدن. تفاوت در این هست که تو خط تولید پردازش سنگین کمتر وجود داره ولی تو یک ربات خوب اغلب پردازش ها سنگین و پیچیده هستن.
-------------------------------------------------------------
خیلی فکر کردم چه برنامه ای برای نمونه بنویسم تا با اون جلو بریم. آخر به این نتیجه رسیدم همون برنامه ای که الان روش کار می کنم تا بعد از تکمیل به صورت متن باز منتشرش کنم رو بزارم تا هم برنامه خودمو توسعه بدم و هم در حین کار آموزش هایی که لازمه اینجا بزارم.
--------------------------------------------------------------
من برنامه نویسی رو دارای ۲ قسمت مهم میدونم:
۱- اصول و دستورات پایه هر زبان برنامه نویسی (مثل انواع متغیر ها و نحوه تعریف اونها - حلقه های تکرار - شرط ها و ...) : این دستورات زیاد سخت نیستن و تقریبا تو زبان های مختلف شبیه هم هستن. اگه به زبان دیگه ای برنامه نویسی می کنید یاد گرفتن اونها خیلی راحته. این اصول تو همه زبان ها وجود دارن و تا زمانی که به اونها مسلط نشین برنامه نویسی براتون کار دشواری خواهد بود.
۲- تکنیک یا معماری یا شیوه برنامه نویسی : هر برنامه نویسی مثل یک بازیکن فوتبال میتونه دارای تکنیک باشه
. شما قواعد بازی فوتبال رو همون اصول اولیه در نظر بگیرید (مثلا تو فوتبال نباید از دستها استفاده کرد - تو لازاروس برای تعریف یک متغیر باید از کلمه var استفاده بشه) و حالا نحوه استفاده و شیوه ای که یک برنامه نویس این دستورات رو کنار هم میچینه تا یک پردازش رو انجام بدن همون تکنیک بازیکن فوتبال میشه.( هرچی برنامه نویس الگوریتمی بهینه در مصرف حافظه و سریع تر بنویسه خب حتما تکنیکی تره
)
--------------------------------------------------------------------------------------
من از قسمت اول میگذرم و بیشتر رو قسمت دوم متمرکز میشم. پس بهتره اصول اولیه و دستورات مهم زبان پاسکال رو بدونید. لازم نیست حتما همه دستورات رو حفظ باشید ولی حداقل یک بار ازشون استفاده کرده باشید تا به چشم و گوشتون آشنا باشن
.
قبل از هر چیز مسئله و نیاز رو توضیح می دم تا مشخص بشه چه برنامه ای می خوام بنویسم.شاید این برنامه به درد شما نخوره ولی شما میتونید از روش هایی که تو این برنامه به کار می برم برای موارد مشابه برنامه های خودتون استفاده کنید.
یک کلینیک مشاوره رو تصور کنید که تعداد زیادی مشاور داره که هر چند وقت عوض میشن و مراجعینی داره که جهت مشاوره و رفع نیاز های روان شناسی و ... به این کلینیک مراجعه میکنند و تشکیل پرونده داده و یک یا چند جلسه با روان شناس جهت حل مشکل خود گفتگو می کنند.
این برنامه قصد داره امور مربوط به این کلینیک و نیاز های اون رو به صورت رایانه ای در بیاره تا هم نگهداری و امنیت اطلاعات راحت تر بشه و هم جستجو داخل اونها کار سختی نباشه و مزایای دیگه .....
بیشتر از این در مورد نوع نیاز های این مورد خاص توضیح نمی دم چون بیشتر هدفم تکنیک های مورد استفاده تو برنامه است نه نیاز سنجی یک کلینیک مشاوره ولی توضیحات تکمیلی رو به وقتش در مورد نیاز هایی که باید برنامه برای این مورد داشته باشه میگم.
خب فکر کنم برا این جلسه زیاد شد بقیش باشه برا جلسه دیگه
یا حق