انتخاب درست زبان برنامه نویسی

سالیانه این موضوع سوالی هست در بین کسانی که می خواهند وارد دنیای برنامه نویسی شوند. شاید هنوز این سوال جذاب باشه چراکه هر از چند گاهی شخصی همچین سوالی از من می پرسه.

در این نوشته قصد دارم تجربیات و نظرات خودم رو در مورد این سوال بنویسم، پس بگذارید همین اول بگم که مطمئنا ادامه مطلب راهی 100% درست و قابل اطمینان نیست و تنها می تواند به شما در انتخاب این تصمیم کمک کنه ولی مشورت با افراد دیگر هم می تونه بسیار مفید باشه.

اولین توصیه من اینه که امروز رو نبینید. دنیای نرم افزار به شدت در حال پیشرفت هست و هر روز شاهد ورود زبان های جدید، روش های جدید و… هستیم. پس اگر می خواهید وارد این حوزه شوید و در آن موفق باشید سعی کنید چندین سال بعد را ببینید تا بتوانید انتخاب بهتری داشته باشید.

شاید این سوال برای شما پیش بیاید که ساختار زبان های برنامه نویسی یکسان هست و می توان خیلی راحت هر زمان که لازم بود زبان جدیدی را یاد گرفت و وارد آن شد.

پاسخ هم درست هست و هم خیر. هر چقدر تمرکز شما روی یک زبان بیشتر باشد و در اصلاح متخصص اون زبان برنامه نویسی باشید می توانید به موفقیت بیشتری دست پیدا کنید. پس اگر راهی باشه که نیاز کمتری به تغییر زبان برنامه نویسی باشه مطمئنا راه بهتری هست.

مورد بعدی مفهوم هرکسی را بهر کاری ساختند، هست. بله، هر زبان برنامه نویسی را بهر کاری ساختند، پس جزو قدم های ابتدایی باید ببینید می خواهید چه کاری انجام بدهید و علاقه خود را در چه چیزهایی می بینید.

پول کجاست؟ خب اینم ملاک مهمی در انتخاب زبان برنامه نویسی هست. زبانی که بازار کار مناسبی داره و به قولی پول توش پیدا می شه. اما اگر پول خوب می خواهید بیش از اینکه از بازار کار یک زبان برنامه نویسی پول در بیاد از تخصص شما توی اون زبون خاص و مهارتی که دارید پول در خواهد آمد. پس این نکته رو هم در نظر داشته باشید.

خب بریم سر اصل سوال، بالاخره کدوم؟

silicon-valley-ep-6-cloud

بیاید نگاهی داشته باشیم به آینده. اینطور که سرمایه گذاری شرکت ها و شواهد نشون می ده همه چیز داره به سمت وب و ابزارهای همراه پیش می ره. با همین نکته یکسری از گزینه ها حذف خواهد شد. بهتره اول چند حوزه آینده دار رو معرفی کنیم که فعالیت در اون ها می تونه بسیار مناسب باشه:

وب اپلیکیشن ها

به اعتقاد من آینده دار ترین مبحث نیز همین موضوع هست و این یعنی برنامه شما تحت مرورگر اجرا خواهد شد (خروجی آن با زبان های CSS,HTML و جاوا اسکریپت). در همین رابطه زبان های دیگری هم هستند که کار پشت صحنه رو انجام می دهند. اما مهمترین زبان در این حوزه بدون شک جاوا اسکریپت خواهد بود.

بله، پیشنهاد اول من برای یادگیری زبان برنامه نویسی همین زبان جاوا اسکریپت می باشد که هم اکنون نیز در بازار کار خارج از ایران نیز با تقاضای بسیار بالایی مواجه هست. این زبان فاقد هرگونه رقیبی هست اما چند وقتی هست که گوگل زبانی را با نام Dart ارائه کرده و ظاهرا قصد داره در چند سال آینده آنرا به نوعی به عنوان جایگزینی برای جاوا اسکریپت قرار دهد که با توجه به کاستی های این زبان و قدرت گوگل چیزه عجیبی نخواهد بود و امکانش وجود دارد.

گجت های همراه

این روزها برنامه نویسی مبتنی بر سیستم عامل های موبایل در قالب تولید اپلیکیشن برای آن ها بسیار محبوب هست. جایی که زبان جاوا برای اندروید و زبان Objective-C برای اپل از محبوبیت بسیار بالایی برخوردار هستند. اما اپل چندی پیش با معرفی Swift و جایگزینی سریع آن با Objective-C قدم بزرگی برداشت و حالا می توانید با یادگیری زبان قدرتمند و زیبای اپل یعنی Swift روی تمامی پلتفرم های اپل به تولید اپلیکیشن بپردازید.

اپل هرچقدر هم با این مسئله باز برخورد کند و زبان خود را به شکل اپن سورس منتشر کند اما بعید به نظر می رسد به جز محصولات خود اپل در دیگر بخش های دنیای نرم افزار این زبان به موفقیت بزرگی دست پیدا کند. بنابراین موفقیت این زبان با پلتفرم اپل پیوند خورده است و از اونجایی که اپل حداقل تا چندین سال بعد با قدرتی کمتر و یا بیشتر اما قابل قبول وجود خواهد داشت بنابراین انتخاب این زبان با توجه به بازار بسیار پر سود آن می تواند انتخاب بسیار خوبی باشد.

اما جاوای گوگل چی؟ به نظر من خود گوگل هم می دونه زبان جاوا گزینه ای مناسب برای اندروید نبوده و نیست و به همین دلیل چند سالی هست در حال آماده سازی زبانی عالی به نام Go هست و من فکر می کنم در آینده ای نه چندان دور این زبان جایگزین جاوا در سیستم عامل اندروید خواهد بود. در مجموع زبان Go زبان بسیار خوبیست که بازار کار مناسبی هم در خارج از ایران برای خود ایجاد کرده و با توجه به قدرت گوگل مطمئنا می تواند گزینه ای ایده عال برای انتخاب باشد.

خب! دیگه؟

programming_languages

موارد بالا پیشنهاد من هست. اما دیگر زبان هایی که می توان به آن ها فکر کرد:

جاوا: از قدیم قدرتمند بوده و هنوز هم هست. خیلی ها سعی کردند به نوعی جایگزینی برای این زبان باشند اما نشده و بعید به نظر می رسد جایگاه مناسب خود را در آینده ای نزدیک از دست بدهد.

C#: گل سر سبد مایکروسافت. درسته که مایکروسافت در حوزه های جدید به خوبی عمل نکرده است اما به هر حال مایکروسافت هست و پلتفرم قدرتمند آن تا مدت ها گزینه اول بسیاری از کاربران و شرکت ها خواهد بود.

پایتون: زبان فوق العاده سریع و خوب که پشتیبانی بسیار مناسبی نیز از سمت گوگل می شود. این زبان نیز می تواند انتخاب بسیار مناسبی باشد.

Ruby: زبانی زیبا و لذت بخش هست اما بعید به نظر می رسد در آینده استفاده از آن خیلی گسترش پیدا کند. در همین حدی که الان هست آینده هم خواهد بود.

PHP: معرف حضور همه هست. درسته ضعف های خاص خودش رو داره اما بخش اعظم وب با این زبان نوشته و توسعه داده می شود.

دیگر نکات مهم:

مهمترین نکته: به همان اندازه ای که انتخاب زبان برنامه نویسی اهمیت داره، انتخاب فریم ورک مورد استفاده هم بسیار مهم هست. امروزه انتخاب یک فریم ورک مناسب نیز جزئی از کار هر پروژه شده است.

مشاهده اطلاعات آماری گرفته شده از سایت Github نیز می تونه بسیار مفید باشه (بطور نمونه اینجا و اینجا را مشاهده کنید).

مطمئنا زبان های خوب دیگری نیز وجود دارد که من اطلاعاتی در مورد آن ها ندارم.

silicon-valley-html

تعصب کلا چیزه خوبی نیست. حالا روی هر چیزی. پس روی زبان و به خصوص فرم ورک خود تعصب نداشته باشید و در صورت لزوم در هر لحظه آمادگی تغییر آن ها را داشته باشید چراکه دنیا در حال تغییر هست.

خوشحال می شم پیشنهادات و تجربیات خودتون در همین رابطه را در قسمت نظرات عنوان کنید.