بی اندیش bndsh

طبقه بندی موضوعی
نویسندگان

۱ مطلب در بهمن ۱۳۹۲ ثبت شده است

وبلاگ بچه های نرم افزار دانشگاه شمال - کدام زبان برنامه‌ نویسی را یاد بگیریم؟ (راهنمای انتخاب زبان برنامه نویسی)
تا به حال سعی کرده‌ام به ابهامات مختلفی که ممکن است در زندگی یک جوان پیش بیاید، پاسخی از نگاه خودم دهم. از جمله: در دانشگاه، درس و نمره بالا بهتر است یا کسب مهارت و عدم توجه به نمره و معدل؟  کار آزاد یا کار دولتی؟  کدام دانشگاه بروم؟ دولتی؟ آزاد؟ علمی-کاربردی؟ غیرانتفاعی؟ چگونه برای خودم و مهارتم مشتری جذب کنم؟ حتی در مورد ابهامات دوره سربازی نیز صحبت کرده‌ام.و اما، یکی دیگر از ابهامات و سؤالاتی که ممکن است حتی سال‌ها انسان در انتخاب یکی از آن‌ها دچار سردرگمی شود، برای یک دانشجوی رشته کامپیوتر و یا علاقه‌مند به مباحث کامپیوتری، بحث «انتخاب زبان برنامه نویسی» است. تقریباً هر هفته دانشجویانی هستند که ایمیل می‌زنند و یا حضوراً در مورد اینکه روی چه زبانی کار کنند، سؤال می‌کنند. بنابراین، نظر شخصی‌ام را در این مطلب می‌نویسم که بعداً فقط لینک بدهم:- پیش‌نیاز: الگوریتم







توجه: لازم نیست بیش از حد روی زبان C وقت بگذارید. فقط در حدی که ساختارهای کلی برنامه‌نویسی را درک کنید. اگر به مرحله‌ای رسیدید که این مباحث برایتان ساده شده بود، به گام بعد بروید:- متغیرها- اصول دریافت مقدار از و نمایش آن به کاربر- ساختارهای تصمیم‌گیری (if و switch)- حلقه‌های تکرار (for، while، foreach و do..while)- آرایه‌ها- کار با فایل‌های متنی (باز کردن، نمایش و درج)- اشاره‌گرها- مبحث Struct- اگر C++‎ را یاد می‌گیرید، مبحث کلاس‌ها و شیئ‌گرایی را هم تا حدودی یاد بگیرید. همین‌ها کافی‌ست.




تا اینجا شما برنامه‌نویسی مقدماتی را آموخته‌اید، اما اگر بخواهید پای فرم‌ها و تبادلات داده با بانک اطلاعاتی و لاگین و لاگ‌آوت را به میان بیاورید (که طبیعتاً برای کارهای حرفه‌ای باید بیاورید)، باید به سراغ زبان‌های پویا بروید. از بین زبان‌های برنامه‌نویسی پویا، کدامیک؟ ASP یا PHP یا JSP؟ یا Rubby on Rail و غیره؟ یکی دیگر از درگیری‌ها و ابهامات بین دانشجویان رشته کامپیوتر همین مسأله است! این یک جنگ تاریخی بوده و هست! کافی‌ست در اینترنت جستجو کنید “PHP یا ASP” تا ببینید که چه درگیری‌هایی بین کاربران وجود دارد! در شهرستان‌های کوچک زندگی می‌کنید یا در شهرهای بزرگ مثل تهران؟ مجدداً این سؤال را از شما پرسیدم، چون واقعاً سؤال تعیین کننده‌ای است. چرا؟ در کل، افرادی که به سراغ PHP می‌روند، معمولاً روحیه Open Source دارند و کدهایشان را به رایگان منتشر می‌کنند. اما افرادی که سراغ ASP می‌روند، معمولاً مثل اربابشان مایکروسافت، روحیه تجاری و انحصاری دارند. بنابراین، شما بسیار کم می‌بینید که یک CMS (سیستم مدیریت محتوا) و یا حتی یک کامپوننت به زبان ASP منتشر شود. (البته کم نیست، اما بلا شک کمتر از PHP است) بنابراین، می‌شود گفت:برنامه‌نویسی به زبان ASP یعنی نوشتن برنامه از صفر: یعنی چون سیستم آماده وجود ندارد، شما باید خودتان آستین بالا بزنید و یک برنامه را بنویسید. مثلاً یک مشتری به شما می‌گوید من یک سایت معرفی مؤسسه‌ام یا یک انجمن گفتگو یا یک گالری عکس و یا مدیریت کاربران و امثالهم را می‌خواهم. شما شروع می‌کنید از صفر برنامه‌اش را می‌نویسید. تأمین امنیت، خطایابی و … همه به عهده شماست.نوشتن از صفر یعنی صدها هزار تا چند میلیون تومان هزینه! به مرور متوجه می‌شوید که نوشتن یک برنامه از صفر یعنی یک عمر پای برنامه گذاشتن. حالا شما برنامه‌ای که عمرتان را پایش می‌گذارید، چند می‌فروشید؟ مطمئناً دلتان نمی‌آید در ساده‌ترین شکل ممکن، زیر یک میلیون تومان قیمت بدهید.کدام مؤسسه شهرستانی بیش از یک میلیون تومان صرف سایت خود خواهد کرد؟ تجربه من نشان می‌دهد که تقریباً هیچ مؤسسه و سازمان و شرکتی در شهرستان به یک شرکت طراحی وب یا به شخص شما، این مقدار پول نمی‌دهد. من حدود ۸ سال است که درگیر طراحی وب هستم و با مؤسسات مختلف شهرستانی وارد مذاکره برای داشتن یک سایت شده‌ام و این را به جرأت و از روی تجربه‌ام می‌گویم که در شهرستان، این مبالغ، بسیار بالاست. (بگذریم که گاهی برخی مؤسسات بیشتر از این هزینه را به یک شرکت طراحی وب تهرانی می‌دهند، چون به شرکت‌های شهرستانی اعتماد ندارند)برنامه‌نویسی به زبان PHP یعنی در اختیار داشتن صدها سیستم و کامپوننت آماده: شما اگر یاد بگیرید که به زبان PHP برنامه بنویسید متوجه خواهید شد که این روزها تقریباً برای هر کاری که مشتری از شما بخواهد، یک سیستم آماده وجود دارد! شما با مهارتی که کسب کرده‌اید، در مدت کوتاهی، سیستم را باب میل او تغییر می‌دهید و روی سایتش نصب می‌کنید و تمام!! یک قیمت اندک (زیر یک میلیون تومان. حتی گاهی زیر ۱۰۰ هزار تومان) به او اعلام می‌کنید. هم او راضی است و هم شما و معامله به خوبی جوش می‌خورد و در کمترین زمان کار را تحویل می‌دهید. البته اگر احیاناً جایی لازم به طراحی یک سیستم سفارشی بود، شما مهارت کافی کسب کرده‌اید و می‌توانید به راحتی با ترکیب کامپوننت‌های آماده، کار را تمام کنید.به خیلی از شاگردانم در کلاس‌های طراحی وب یاد داده‌ام که چطور CMSهایی مثل PHP-Nuke، WordPress و امثالهم را نصب کنند. مثلاً این روزها که انتخابات است، می‌بینم که چند نفرشان سایت‌های افراد کاندید انتخابات را با WordPress بالا آورده‌اند! تصور کنید، با تمام مطالب و تغییراتش، کمتر از یک هفته زمان می‌گیرد و بالای پانصد هزار تومان از آن کاندید می‌گیرند.اگر در تهران یا مراکز استان هستید، به سمت ASP یا در بهترین حالت، JSP بروید: در تهران و مراکز استان، طبیعتاً دفاتر مرکزی مؤسسات، شرکت‌ها و ادارات قرار گرفته‌اند و طبق یک قرارداد چند میلیونی تا چند ده میلیونی (که برای آن‌ها واقعاً چیزی به حساب نمی‌آید) هسته اصلی سیستم یا سایت خود را سفارش می‌دهند و در شعبه‌های خود منتشر می‌کنند. از طرفی شما به عنوان برنامه‌نویس به زبان ASP، احتمالاً در مراکزی استخدام خواهید شد که نبض این سازمان‌ها را در دست دارند. این مراکز، به دلیل امکانات جذابی که Visual Studio در سادگی کد نویسی و کار گروهی و مدیریت پروژه‌ها فراهم می‌کند، ترجیح می‌دهند با ASP و یا Java کار کنند. پس در آن شهرها برعکس شهرستان‌ها، به نوعی شاید عاقلانه نباشد که به سمت PHP بروید. (مگر اینکه بخواهید برای خودتان کار کنید که پیشنهاد نمی‌کنم)بین جاوا و ASP کدام؟ در آگهی‌های استخدام، خیلی کم دیده‌ام بنویسند برنامه‌نویس JSP استخدام می‌کنند. معمولاً ASP در اولویت است. دلیل آن هم بلاشک قدرت بسیار بالای Visual Studio در خلق پروژه است.
توجه: زبان‌های جدیدتر مثل Python و Rubby on rails و … هم اینطور که مشخص است دارند جا باز می‌کنند. بد نیست اگر در تهران زندگی می‌کنید روی این موارد هم تحقیق کنید. من فعلاً فرصت نکرده‌ام روی این زبان‌ها وقت بگذارم، پس، ایده‌ای ندارم.

- در برنامه‌نویسی دسکتاپ، C#‎ یا VB یا Java یا Delphi؟

دقت کنید که گاهی VB هم کار راه انداز می‌شود. پس نیم نگاهی به آن هم داشته باشید. مثلاً من خودم VB مقدماتی را تدریس کرده‌ام، اما هرگز روی پیشرفته وقت نخواهم گذاشت، چون ارزش ندارد.بین C#‎ و جاوا و دلفی کدام؟ دلفی هم با توجه به حضور سی شارپ یک مرده به حساب می‌آید. اما جاوا جای بحث دارد. شما اگر جاوا را یاد بگیرید، برنامه شما به راحتی بر روی بسترهای مختلفی (از جمله گوشی‌ها، وب، دسکتاپ و …) اجرا خواهد شد. من فکر می‌کنم این روزها بیشترین کاربرد جاوا در برنامه‌نویسی موبایل است. برای برنامه‌نویسی دسکتاپ، جاوا را چندان پیشنهاد نمی‌کنم.- در برنامه‌نویسی موبایل، کدام پلتفرم؟ Android یا iOS یا Windows Phone یا Java؟
خیلی با احتیاط وارد بازار کار برنامه‌نویسی برای موبایل شوید چون در ایران بازار کار قوی‌ای ندارد و ممکن است بعداً به این نتیجه برسید که اگر وقت خود را روی وب یا دسکتاپ می‌گذاشتید بهتر بود. بیشتر افرادی که من می‌بینم که برنامه‌نویسی موبایل انجام می‌دهند، شغل دیگری دارند و برای تفریح کار می‌کنند.اپل ما را خط زده است، پس ما هم iOS را خط می‌زنیم: احتمالاً می‌دانید که اپل همه چیزش را برای ایران تحریم کرده است. از طرفی برنامه‌های اپل باید حتماً توسط اپل و در App Store تأیید شوند و قرار بگیرند وگرنه قابل استفاده روی گوشی کاربر نیستند (مگر اینکه Jail Break شده باشد که خوب، عاقلانه نیست روی گوشی‌های جیل.بریک شده برنامه‌ریزی کنید). به همین راحتی‌ها نمی‌توانید برنامه‌ای که نوشته‌اید را به دست کاربر برسانید. من تعداد معدودی ایرانی دیده‌ام که برای اپل برنامه‌نویسی می‌کنند که آن‌ها هم اکثرشان در خارج از کشور زندگی می‌کنند و محدودیت قانونی ندارند.به هر حال، اگر بخواهید برای iOS کدنویسی کنید، باید به زبان C++‎ مسلط باشید. Xcode SDK را از سایت اپل دانلود کنید و روی سیستم عامل مک خود نصب کنید و شروع کنید. البته می‌توانید از پروژه مونو هم استفاده کنید تا کدهای C#‎ شما روی iOS اجرا شوند.آندروید دنیای گوشی‌ها را فتح خواهد کرد: گوگل روی هر چیزی دست بگذارد، دیر یا زود به صدر لیست منتقل می‌شود و این طبیعی‌ست. آندروید با اینکه مدت کمی از عمرش می‌گذرد، اما در صدر لیست سیستم عامل‌های موبایل است و به زودی همه جا دیده خواهد شد حتی روی یخچال فریزر شما!! بنابراین، پیشنهاد اول من این است که به سمت آندروید بروید.برای برنامه‌نویسی ویژه آندروید، باید زبان Java را بلد باشید. فکر می‌کنم حالا متوجه می‌شوید که چرا جاوا در رتبه دوم زبان‌های محبوب است! خیلی‌ها معتقدند دنیا دارد به سمت موبایل و تب‌لت می‌رود. “اینترنت بدون وب” عنوانی است که این روزها مطرح است. همه سایت‌ها برای خود یک اپلیکیشن ارائه کرده‌اند که روی گوشی اجرا می‌شود و نیازی نیست وارد وب‌سایت خاصی شوید!ویندوز فون، جان خواهد گرفت: ویندوز فون هم به زودی جا باز خواهد کرد. روی آن هم می‌توانید برنامه‌ریزی کنید، اما اولویت اولتان، جاوا و آندروید باشد. برای ویندوز فون می‌توانید به زبان C#‎ برنامه بنویسید.
خوب، این هم یک اظهار نظر شخصی در مورد زبان‌های برنامه‌نویسی. تأکید می‌کنم که باید نظرهای مختلف را بخوانید و بعد تصمیم بگیرید.

به یکی گفتند: ۳۰ سالت شده است، چرا نماز نمی‌خوانی؟ گفت: هنوز دارم تحقیق می‌کنم که اسلام برتر است یا مسیحیت یا یهودیت!!

شما باید یک دین را که فعلاً فکر می‌کنید برتر است، انتخاب کنید و طبق آن پیش بروید، اگر بعداً به این نتیجه رسیدید که فلان دین بهتر است، مشکلی نیست، به آن دین سوئیچ می‌کنید! (محتوای تمام ادیان تقریباً یکی‌ست، فقط نام‌ها تغییر کرده است) مهم این است که فعلاً بلاتکلیف (گمراه) نباشید
سریعاً یک زبان (مثلاً C++‎) را  انتخاب کنید و وقت را تلف نکنید. روی آن وقت بگذارید… در حین کار، به این نتیجه می‌رسید که فلان زبان بهتر است و به سراغ آن زبان می‌روید.
آخرین مطلب:
واقعاً هر که در شهرستان است، محکوم به انتخاب زبان‌هایی که شما گفتید است؟ خیر، این روزها اینترنت، محدودیت‌های جغرافیایی (یا به قول این ویدئو، Geographical Boundaries) را شکسته است. شما می‌توانید در شهرستان باشید، اما محدوده کاری‌تان کل ایران و حتی دنیا باشد. فقط باید بتوانید خودتان را روی اینترنت مطرح کنید که این یک تسلط کافی روی بحث طراحی وب را می‌طلبد. به طور مثال، من در شهرستان هستم، اما پس از ارائه تستا، بسیاری از سازمان‌ها و دانشگاه‌ها و امثالهم تماس گرفته‌اند و پیشنهاد سفارشی‌سازی تستا را داده‌اند. چندین مؤسسه مطرح در تهران پیشنهاد همکاری در زمینه تبدیل متن به صدا (مربوط به پروژه پارس‌خوان) را داشته‌اند. برخلاف من که حال و حوصله و وقت کار گروهی و سفارشات سنگین را ندارم، شما اگر بخواهید از این راه کسب درآمد کنید، هیچ محدودیتی در محل سکونت و کار شما وجود ندارد.
از دوستانی که احتمالاً اظهار نظر خواهند کرد، خواهش می‌کنم به تأکیدات بنده دقت کنند که این‌ها فقط اظهار نظر شخصی بود و نه یک وحی منزل! من نظرم را گفتم. شما هم نظرتان را بدون هیچ تعصب (و احیاناً لحن تند نسبت به دوستان دیگری که نظر می‌دهند) بیان کنید.
در نهایت این عکس را هم ببینید:
http://aftab.cc/uc/Hamid/532/10_top_programming_language.jpg
موفق باشید؛
حمید رضا نیرومند
منبع مطلب: آفتابگردان


۰ نظر موافقین ۰ مخالفین ۰ ۲۹ بهمن ۹۲ ، ۲۰:۳۰