اگه شما هم جزء کسانی هستید که به تازگی قصد شروع یادگیری یه زبان برنامهنویسی رو دارین، این مقاله برای شما نوشته شده. احتمالا شما هم براتون پیش اومده که در انتخاب یه زبان برنامهنویسی سردرگم شده باشید. در این نوشته قصد داریم که به این سوال جواب بدیم:
برای شروع برنامهنویسی چه زبانی رو انتخاب کنم؟
پاسخ: هر زبانی که شد!
بله واقعا جواب این سوال آنقدر هم مهم نیست. مقالات زیادی درباره انتخاب یه زبان برنامهنویسی برای شروع یادگیری، سراسر اینترنت وجود داره. احتمالا شما هم مقالاتی رو دیدین که به بررسی و نقد یه زبان میپردازند و معایب و مزایای هر کدوم رو بیان میکنند و در نهایت انتخاب رو به عهدهی شما میذارن. از نظر من انتخاب یه زبان برای شروع یادگیری اونقدرها هم مهم نیست. در ادامه قصد دارم تا دلایل خودم رو بیان کنم.
قرار نیست فقط یک زبان یاد بگیریم!
هیچ تضمینی وجود نداره که زبانی که برای شروع یادگیری انتخاب میکنید، اولین و آخرین انتخاب شما باشه! هدف اینه که شما با یادگیری یه زبان برنامهنویسی با روال و منطق برنامهنویسی آشنا بشید و قرار نیست که تا آخر عمرتون فقط از اون زبان استفاده کنید! امروزه با توجه به سرعت رشد بالای تکنولوژیها، نمیشه فقط روی یادگیری یه زبان برنامهنویسی کرد. و با ظهور زبانهای جدید امکان منسوخشدن زبانهای قبلی وجود داره. و به نوعی محیط و شرایط ما رو مجبور به مهاجرت به سمت تکنولوژیهای جدید میکنه!
پوسته مهم نیست، مغز مهم است!
زبانهای برنامهنویسی مختلفی وجود دارند که هر کدوم ویژگیهای متنوعی دارند و برای اهداف خاصی ایجاد شدهاند. هر زبانی ممکنه از یه منظر دارای معایبی باشه اما توی یه زمینه دیگه قویتر عمل کرده باشه. اما با وجود تفاوت ویژگیها و قواعد دستوری، تقریبا اکثر اونها دارای یه سری از مفاهیم پایهای مشترک هستند. اون چیزی که مهمه، اینه که شما منطق برنامهنویسی رو یاد بگیرین و تنها وابسته با سینتکس و قواعد اون زبان نباشید.
برنامهنویسی یک حرفه است!
برنامهنویسی هم بقیه شغلها، یه حرفه هستش؛ مثل نجاری. اجازه بدین که برای درک بهتر این دو تا رو مقایسه کنم.
کسی که برای مثال تصمیم به یادگیری حرفهی نجاری میکنه، هدفش اینه که به یه نجار حرفهای تبدیل بشه و هنر نجاری رو یاد بگیره. طبیعتا هر حرفهای نیاز به یه سری ابزار داره. برای مثال یکی از ابزارهای یه نجار اره هستش. یه نجار هدفش فقط یادگیری کار با اره نیست. بلکه هدفش تسلط در مهارت نجاری هستش. ممکنه یه نجار برای مدتها با اره معمولی کار میکرده. اما بعد از اون مجبور میشه برای پیشرفت کارش و وفقدادن خودش با شرایط محیط، کار با اره برقی رو یاد بگیره. اینجا هستش که یه نجار باید انعطاف داشته باشه و وابسته به یه ابزار نباشه و گرنه در کارش شکست میخوره. البته یکی از تفاوتهای بارزی که بین حرفهی نجاری و برنامهنویسی وجود داره، تعدد ابزارهای موجود در زمینه برنامهنویسی و سرعت سریع رشد تکنولوژیهاست. به عبارتی یه برنامهنویس موفق باید برای پیشرفت در کارش، انعطافپذیری بیشتری داشته باشه. و خب اینجاست که یه خورده کار ما برنامهنویسان بیشتر میشه و باید تلاش بیشتری بکنیم!
بالاخره چه زبانی رو برای شروع یاد بگیریم؟!
همونطور که اشاره کردم افرادی که به تازگی قصد شروع یادگیری برنامهنویسی رو دارند، انتخاب و وسواس بیش از حد در یک زبان لازم نیست. اما با این وجود در ادامه چند عامل رو ذکر میکنم که با در نظرداشتن اونها میتونید یه زبان رو برای شروع انتخاب کنید.
اهداف شغلی و آینده
در بعضی از مناطق و شهرها، یه زبان از اهمیت بالاتری برخورداره یا به نوع بازارکار بهتری داره و به نوعی شرکتها در آگاهیهای استخدام خودشون به این زبانها اهمیت بیشتری میدن. البته این موضوع بستگی به منطقهی زندگی شما داره و در هر شهر و کشوری متفاوته. عامل موثر دیگه، آینده شغلی اون زبان هستش. برای مثال ممکنه که یه زبان قدیمی، سالیان سال ازش استفاده بشه اما با ظهور یه زبان جدید با ویژگیهای بهتر تمایل برای یادگیری و استفاده از اون زبان بیشتر بشه و زبان قبلی منسوخ بشه. اما همونطور که کمی قبلتر هم اشاره کردم، هدف ما یادگیری و آشنایی با مبانی برنامهنویسی هستش.
انگیزهها و علاقهمندیها
داشتن علاقه و انگیزه باعث افزایش سرعت رشد یادگیری شما در اون زبان میشه. مثلا شما قبلا عاشق بازیهای رایانهای بودین و الان قصد دارین که چگونگی برنامهنویسی بازیها رو یاد بگیرین. یا مثلا قبلا با اپهای اندرویدی خیلی کار میکردین و خیلی کنجکاو بودین که این اپها چه جوری ساخته میشن. به طور کلی داشتن انگیزه و علاقه قبلی، عامل موثری در پیشرفت آموزش شما میتونه باشه.
سطح دشواری
زبانهای برنامهنویسی مختلفی با سطح دشواری گوناگونی وجود دارند. اگه قبلا سابقهی برنامهنویسی نداشتین، توصیه میکنم که برای شروع یه زبان نسبتا آسون رو یاد بگیرین تا تمرکزتون رو صرفا بر یادگیری مفاهیم اصلی بذارین و درگیری پیچیدگیهای اون زبان نشین. برای مثال، زبان c++ با وجود اینکه زبان قدرتمندی هستش، اما به دلیل پیچیدگیهایی که داره برای شروع برنامهنویسی توصیه نمیشه و بلعکس یه زبانی مثل پایتون به دلیل سادگی و شباهت نزدیکش به زبان انسان برای شروع میتونه گزینه خوبی باشه. البته سادگی زبان پایتون به معنی کاربرد کم اون نیستش و اتفاقا یه زبان محبوبی هم هستش.
منابع آموزشی در دسترس
طبیعتا برای یادگیری هر مهارتی به ویژه برنامهنویسی نیاز به یه سری منابع آموزشی دارین. در گذشته به دلیل امکانات کم، افراد با محدویت منابع روبرو بودند. اما امروزه به لطف فراگیر شدن استفاده از اینترنت، شما میتونید به دریای عظیمی از مقالات، ویدئوها، کتابهای الکترونیکی و… برای هر زبانی که قصد یادگیریاش رو دارین وجود داره. همچنین به لطف انجمنها و سایتهایی مثل stackoverflow میتونید جواب سوالات و مشکلات خودتون رو پیدا کنید.
با یک تیر چند نشان بزنید!
بعضی از زبانها چند پلتفرمی هستند. زبانهای چندپلتفرمی در زمینههای مختلفی کاربرد دارند. مثلا با استفاده از زبانی مثل C# شما میتونید انواع اپهای مختلفی برای پلتفرمهای گوناگون مثل دسکتاپ، موبایل و وب بسازین. این جوری شما با یادگیری یه زبان چند پلتفرمی، با یه تیر دو نشون میزنید. چرا که با یادگیری اون زبان و تسلط در اون میتونید انواع اپهای مختلفی رو برای پلتفرمهای گوناگون بسازید. و برای ساخت یه اپلیکشین برای یه پلتفرم دیگه لازم نیست که از زبان دیگهای استفاده کنید.
کلام پایانی
و در پایان، همونطور که در این مقاله هم اشاره کردم. برای انتخاب یه زبان برنامهنویسی برای شروع لازم نیست که وسواس بیش از حد به خرج داد. هدف یادگیری و تسلط بر مبانی برنامهنویسی هستش. اگرچه زبانهای مختلف در سینتکس و در برخی ویژگیها متفاوت باشند. اما تقریبا هستهی اونا از یه سری موارد پایه تشکیل میشه. ممکنه یادگیری اولین زبان برای مبتدیان خیلی سخت باشه. اما به مرور یادگیری زبانهای دیگه آسونتر میشه. مهم اینه که شما شروع کنید و تعلل نکنید. با یادگیری اولین زبان، شما پس از اون قادر خواهید بود زبانهای بعدی رو سریعتر یاد بگیرین.