
یکی از سوالات متداولی که عمدتا توسط نوآموزان پرسیده میشه اینه که چه زبانی رو برای برنامه نویسی انتخاب بکنن که بتونن برای آینده کاریشون روی اون تمرکز بیشتری داشته باشن.پاسخ این سوال بویژه برای دانشجویان اهمیت بیشتری داره.
پیش از هر چیز ، لازم میدونم مقدمه ای کوتاه رو بگم.واضحه که اغلب کسانیکه این پرسش رو مطرح میکنن ، قصدشون اینه که بپرسن : چه زبانی رو برای توسعه نرم افزارشون در آینده ، بیاموزند و امیدوار باشن که درآمد بهتری در آینده خواهند داشت؟
بنابراین ، باید مقایسه ها رو بر اساس معیارهایی توضیح بدم که مبتنی بر درآمد باشه.بر این اساس ، شما باید بازار تولید نرم افزار و همچنین نیازهای بازار رو در کشوری که دارید در اون زندگی میکنید و یا کشوریکه میخاید در اون یا برای اون تولید نرم افزار بکنید ، شناسایی بکنید.
بعنوان مثال ، در امریکا ، آمار استفاده از جاوا برای تولید نرم افزار های مستقل از سکو ، بسیار بیشتر از ایران هست و در ایران ، مدت زیادی نیست که توسعه دهندگان به این فکر افتادن که نرم افزارهای خودشونرو مستقل از سکو تولید کنن و مثلا برن سراغ زبانهایی همانند جاوا!
خب ، بنابر این شما باید اول مشخص کنید که در آینده در نظر دارید که در چه کشوری کار کنید؟
موضوع دوم ، که باید مشخص بشه ، این هست که در اون کشور و یا شاید بهتره دقیقتر بشیم ، در استان و یا شهری که شما قصد دارید آینده شغلیتونرو در اونجا بمونید ، چه تیپ پروژه هایی بیشتر هستند؟ چه صنایعی در اونجا فعالترند و غالب نیازهاشون چیه؟
مثلا در شهرهایی مثل تبریز و اهواز ، که شهرهایی صنعتی بشمار میرن ، شما باید ببینید که نیاز غالب صنایع امروز اونها چیه؟ خب بررسی نشون میده که صنایع این شهرها در دو سطح قابل ارزیابی هستند: اول ، صنایع کوچک و متوسط به لحاظ وسعت مدیریت و درآمد ، که از این نظر ، اونها عمدتا نیازهاشون به نرم افزارهای مالی و همچنین گاهی نرم افزارهای کنترلی هست.طبیعیه که در چنین شرایطی شما بهتره برای رفع نیازهای نوع اول ، زبانهایی مثل دلفی و یا سی شارب رو برای تولید نرم افزارهای رومیزی و ASP.Net رو بهمراه ترجیحا #C برای تولید رابطهای وب مورد نیاز این نرم افزارهای رومیزی انتخاب کنید.
اما ، برای رفع نیازهای نوع دوم ، یعنی نرم افزارهای کنترل ، و برنامه ریزی ماشین آلات صنعتی ، عمدتا از زبان ++C و گاهی Lisp استفاده میشه و برای ایجاد رابطهای کنترلی تحت وب اونها هم ترجیحا از همون ++C بصورت نرم افزار وبی CGI استفاده میشه.
دوم:صنایع بزرگ هستند که بعید بنظر میرسه که تاکنون در مورد تهیه نرم افزارهای مالی خودشون اقدامی نکرده باشند ، و عمده نیازهای اونها در این مرحله و سالهای پیش رو ، محصولات نرم افزاری ناظر بر مدیریت کیفیت و خدمات خواهد بود.بنابر این در این صنایع ، نیاز اساسی کنونی تهیه نرم افزارهایی از نوع CRM و یا ERP خواهد بود که به نظر من بهتره اگر میخاید از حالا شروع کنید ، جاوا رو انتخاب کنید و بهش مسلط بشید چون نزدیکی زیادی با #C داره و در آینده در صورت نیاز ، مشکل چندانی برای تسلط به اون نخواهید داشت اما مطمئن باشید تسلط به هر دوی اینها باید در برنامه هاتون حتما وجود داشته باشه.
گاهی کارشناسان مختلف ، نظرات متنوعی رو ارائه می کنن و من بارها RFP و RFI هایی رو دیدم که واقعا عجیب بود! مثلا برای تولید یک سیستم که صرفا یک سیستم بانک اطلاعاتی از نوع CMS با گرایش پزشکی بود ، یکی از دانشگاههای کشور ، در RFP ارائه شده ذکر کرده بود که باید نرم افزار با Rubby نوشته بشه! و من واقعا متعجب شدم که وه چه کارشناسان زبده و با تجربه ای باید در این دانشگاه بوده باشند که پس از سالها بررسی به این نتیجه غریب رسیده باشند!
و یا گاهی برخی از متقاضیان ، اصرار دارند که نرم افزار باید حتما Cross-Platform باشه.در حالیکه نمیدونن اصولا پیش از اینکه شما RFP رو بنویسی باید ابتدا RFI بدید و پس از دریافت اون ، و همچنین بررسیهای میدانی ، اقدام به تهیه RFP بکنید و در هر کدوم از مراحل فوق ، شما باید به سوالهای زیادی پاسخ بدید مثلا:
1- چه سیستم عاملی هم اکنون در ایستگاههای کاری سازمان مورد استفاده قرار می گیره؟
2- آیا توجیهی وجود دارد که بخواهیم سیستمهای عامل ایستگاههای کاری رو تغییر بدیم و هزینه این تغییرات از نظر قیمت تمام شده تهیه نرم افزارها ، سخت افزارها و از همه مهمتر منابع انسانی ، آموزش کارکنان و بروز چالشهایی مثل مقاومت در برابر تغییر چه مقدار خواهد بود؟
3- سازمان قرار هست چند سال از نرم افزار تولید شده استفاده بکنه و بعبارت دیگر Life-Cycle نرم افزار چقدره؟
4- …..
و خلاصه کنم حتی برای تهیه فهرستی از سوالاتیکه باید یک سازمان بهشون جواب بده تا تازه در مرحله تهیه RFP قرار بگیره ، ابتدا باید ضمن عقد قرارداد ، اقدام به تهیه طرح جامع تحت عنوان طرح جامع فن آوری اطلاعات و یا ICT-Master Plan بکنه.
نمیخاستم در پاسخ به سوال ابتدای بحث ، وارد این موضوعات بشم ، اما خیلی خلاصه بگم که توصیه من به دانشجویان عزیز این هست که زبانهای زیر رو به ترتیبی که نوشتم در طول زمان دانشجویی بطور کامل مسلط بشن و مثلا در طول دوره 4 ساله کارشناسی هرکدوم یکسال و نیز اقلا دو پروژه متفاوت رو با اون در این یکسال بنویسن:
1- برنامه نویسی دلفی
2- برنامه نویسی SQL
3- برنامه نویسی جاوا
4-برنامه نویسی HTML و بدنبال اون ASP.Net با #C
توضیحات:
RFP=Request for Project
RFI=Request for Information

همچنین توصیه می کنم لینکهای زیر رو هم ملاحظه کنید:
اول
و همچنین:
دوم
گوگل ریدر اشتراکی
5 جواب تا اینجا
صادق // می 12, 2008 در 9:31 ق.ظ |
کارتون خیلی درسته. دستتون درد نکنه.
گجمو2 // می 12, 2008 در 9:36 ق.ظ |
سلام دوست عزیز.
به وردپرس خوش اومدی و امیدوارم وبلاگتون برای همه ما افتخار آفرینی کنه.
پی نوشت :
” جناب دکتر مزیدی سفارش اکید کرده بودند که استاد صداتون کنیم و مطمئنم هم ایشون مزاح فرمودند و هم اینکه شما آدم ساده و بی ریا و بی غل و غشی هستید که قصد کمک به همه رو داشته و دارید و اما از اونجایی که بلد نیستم هندونه بزارم زیر بغل کسی ، اومدم عین دو دوست بهتون خوش اومد بگم “
yousefi // می 12, 2008 در 8:21 ب.ظ |
سلام دکتر الان شاهرود هستم گذرت افتاد پیش ما بیا. وبلاگتون خیلی مفید بود روی دیدگاهم تاثیر گذاشت . آیا باید همیشه با یک زبان کار کرد
سروش // می 13, 2008 در 7:17 ب.ظ |
ممنون از وقتی که برای پاسخگویی میذارید.
خوش و موفق باشید
hasan // فوریه 3, 2009 در 10:47 ب.ظ |
ممنونم از وبلاگ خوبتون اگه ميشه اموزش نوشتن برنامه رو هم بزارين
موفق و پيروز باشين.