کدام زبان برنامه نویسی را یاد بگیریم؟ (راهنمای انتخاب زبان برنامه نویسی) بخش اول
برگرفته شده از وبسایت کانون فرهنگی آفتابگردان
یکی دیگر از ابهامات و سؤالاتی که ممکن است حتی سالها انسان در انتخاب یکی از آنها دچار سردرگمی شود، برای یک دانشجوی رشته کامپیوتر و یا علاقهمند به مباحث کامپیوتری، بحث «انتخاب زبان برنامه نویسی» است. تقریباً هر هفته دانشجویانی هستند که ایمیل میزنند و یا حضوراً در مورد اینکه روی چه زبانی کار کنند، سؤال میکنند. بنابراین، نظر شخصیام را در این مطلب مینویسم که بعداً فقط لینک بدهم:
- پیشنیاز: الگوریتم
پیش از هر چیز باید بگویم که مشکل اصلی در برنامهنویسی، کدنویسی نیست بلکه روش حل مسأله است! من به دانشجویان زیادی کدنویسی به زبانهای مختلف برنامهنویسی را تدریس کردهام، اما از بین آنها، فقط افرادی که توانایی حل مسأله و تشخیص راه حل (الگوریتم) را داشتهاند توانستهاند پروژههای کاملی تحویل دهند.
شما باید بتوانید ذهن الگوریتمیک به دست آورید. سریعاً برای پیچیدهترین مسائل راه حل ارائه کنید و اگر اشتباه بود، روی راه حل خود کار کنید تا به نتیجه برسید.
برای یادگیری و یا تقویت این مبحث فکر میکنم کتاب الگوریتم کار و دانش بهترین منبع باشد:[فقط کاربران ثبت نام شده قادر به مشاهده لینکها هستند . ]. ([فقط کاربران ثبت نام شده قادر به مشاهده لینکها هستند . ]را هم ببینید)
شاید لازم باشد برای تقویت ذهن خود در این زمینه، برخی بازیهای کامپیوتری که با همین هدف ساخته شده است را بازی کنید که ما پیش از این برخی از آنها را در مطلب «[فقط کاربران ثبت نام شده قادر به مشاهده لینکها هستند . ]» معرفی کردهایم.
نکته 1: یک زبان کافی نیست:
این روزها اینطور نیست که شما اگر بگویید من فقط یک زبان برنامهنویسی خاص را بلد هستم، برای شما کاراییای تصور کنند! پس باید خود را به چندین زبان مجهز کنید. البته به مرور متوجه میشوید که همه زبانها شبیه به هم هستند. شما به جایی خواهید رسید که میتوانید در مدت کوتاهی (شاید یک هفته) خیلی راحت از یک زبان به زبان دیگر سوئیچ کنید. چون خواهید فهمید که همه زبانها ساختار تقریباً مشابهی دارند، فقط اسمهای توابع با هم فرق میکند. کمی طول میکشد تا با اسامی جدید در آن زبان آشنا شوید.
- نکته 2: یک زبان کافی است!
اگر این دو نکته را با هم جمع کنید، نتیجه این میشود: سیاست کلی شما باید این باشد: از همه زبانها تا جایی که لازم است، بدانید، اما یک زبان را به طور تخصصی و حرفهای بدانید. به طور مثال، من تقریباً با بیش از 10 زبان برنامهنویسی آشنایی دارم. مثلاً «پارسخوان» را با C# نوشتهام، «تستا» را با PHP، وyouRL را با Ajax، «پخشکننده صدای آفتابگردان» را با پاسکال و ... که در همین پروژهها، زبانهای دیگری (مثل HTML، CSS، Javascript، Action Script و...) کاربرد داشتهاند. شما اگر از من هر چه به این زبانها بخواهید بالاخره گلیمم را بیرون میکشم، اما تمرکز و تخصص اصلی من روی زبان PHP است.
- اولین زبان برنامهنویسی: زبان C
پس، حالا که متوجه شدید که باید چندین زبان را یاد بگیرید، اولین زبانی که باید یاد بگیرید زبان C است. زبان C را میتوان پایه بسیاری از زبانهای برنامهنویسی پیشرفته دانست. اگر با ساختارهای مختلف در این زبان آشنا باشید خیلی راحت میتوانید زبانهایی مثل سی شارپ، جاوا، پی.اچ.پی، جاوا اسکریپت و ... خیلیهای دیگر را یاد بگیرید.
توجه: در حد مقدماتی، زبان C با C++ تفاوت خاصی ندارد. پس اگر خواستید میتوانید با C++ شروع کنید. اما من فکر میکنم همان C بهتر است.
تصویر زیر میزان عمومیت زبانهای برنامهنویسی در بین برنامه نویسان را نشان میدهد که از سایت LangPop.com اخذ شده است:
توجه: لازم نیست بیش از حد روی زبان C وقت بگذارید. فقط در حدی که ساختارهای کلی برنامهنویسی را درک کنید. اگر به مرحلهای رسیدید که این مباحث برایتان ساده شده بود، به گام بعد بروید:
- متغیرها
- اصول دریافت مقدار از و نمایش آن به کاربر
- ساختارهای تصمیمگیری (if و switch)
- حلقههای تکرار (for، while، foreach و do..while)
- آرایهها
- کار با فایلهای متنی (باز کردن، نمایش و درج)
- اشارهگرها
- مبحث Struct
- اگر C++ را یاد میگیرید، مبحث کلاسها و شیئگرایی را هم تا حدودی یاد بگیرید.
همینها کافیست.
- انتخاب مهم: انتخاب کنید: زبان برنامهنویسی وب یا دسکتاپ یا موبایل؟
بعد از اینکه زبان C یا C++ را در حد مقدماتی یاد گرفتید، حالا باید تصمیم اصلی زندگی برنامهنویسیای خود را بگیرید!
آیا میخواهید نرم افزاری که طراحی میکنید تحت وب اجرا شود؟ یا در قالب یک برنامه روی سیستم کاربر نصب شود و یا اینکه روی موبایل کاربر اجرا شود؟
--- کدام یک بهتر است؟
انتخاب یکی از این سه زمینه، انصافاً مشکل است و بستگی به این دارد که در محیط زندگی شما کدام یک بیشتر کاربرد دارد.
-- در شهرستانهای کوچک زندگی میکنید یا در شهرهای بزرگ مثل تهران؟
من یک ایده برای خودم دارم که البته ممکن است مخالفان و موافقان خاص خودش را داشته باشد: من میگویم اگر در شهرستان زندگی میکنید و مثل من دوست ندارید تا آخر عمر، یک گام هم بیرون از شهرتان بگذارید، قید برنامهنویسی موبایل و دسکتاپ را بزنید. کمتر کسی پیدا میشود در شهرستان به شما پیشنهاد برنامهنویسی موبایل را بدهد و در ازای آن از چند صد تا چند میلیون تومان پول بدهد!
برنامههای دسکتاپ سازمانها و شرکتها همگی از مراکز اصلی ارسال میشوند و هیچ وقت به یک مؤسسه شهرستانی نخواهند گفت مثلاً برنامه دفتر پستی ما را بنویس!
-- برنامهنویسی وب: با یک تیر سه نشان را بزنید!
اگر شما برنامهنویسی وب را یاد بگیرید، برنامههایی که خواهید نوشت بر روی هر سه Platform (بستر) یعنی وب، دسکتاپ و موبایل به یک صورت اجرا خواهند شد!
مثل تستا (سیستم مدیریت آزمون آنلاین)، که هم با یک دابل کلیک، بر روی ویندوز مربی در یک شبکه محلی اجرا خواهد شد و هم اینکه روی یک سایت نصب میشود و تحت وب اجرا میشود.
-- دنیا دنیای وب است:
بخواهید یا نخواهید دنیا دارد به سمت آنلاین کردن تمام برنامهها پیش میرود. همه نرم افزارها، حتی سنگینترین برنامهها مثل فتوشاپ، دارند نسخه آنلاین تهیه میکنند. به زودی Nettopها و Netbookها فراگیر میشوند.
- چیزی لذتبخشتر از طراحی وب نیست!
تجربه من نشان میدهد که کاربرانی که قبلاً با زبان C کار کردهاند وقتی اولین برنامههایشان به زبانهای تحت وب را مینویسند، گل از گلشان میشکفد! لذت میبرند از اینکه بر خلاف C که همیشه برنامههایشان Error میداد و اجرا نمیشد، اینجا با اینکه کلی غلط دارند، اما بالاخره برنامهشان اجرا میشود و یک خروجی شیک تحویل میدهد من در کلاسهایم میگویم که: زبانهای طراحی وب، سخاوتمند هستند و بالاخره با اینکه خطا دارید، با شما راه میآیند.
پس من فکر میکنم اولویت اول شما باید وب باشد مگر اینکه خلاف آن ثابت شود!!
تأکید میکنم که این بستگی به محیط کاری و زندگی شما دارد.
پایان بخش اول ...
موضوعات مشابه:
بوک مارک ها