یک زبان برنامه نویسی یا چند زبان برنامه نویسی ؟

اگر شما وارد این مقاله شدین و قصد خوندنش رو دارین احتمالا جزو دو دسته باشین!یک: اون دسته از افرادی که تیتر این مقاله رو خوندن و در حال حاضر دارن با چند تا زبان برنامه نویسی کار میکنن و خیلی شاکی هستن ببینن من چی نوشتم!دو: اون دسته از افرادی که مثل من فقط چسبیدن به یه زبان برنامه نویسی و اومدن این مقاله رو بخونن و کار خودشون رو تایید کنن! خبر خوش اینه که من برای هر دو دسته توی این مقاله چیزهایی نوشتم که خوندنشون خالی از لطف نیست :)چرا ما باید فقط یه زبان برنامه نویسی رو یاد بگیریم؟! این سوال میتونه جواب های زیادی داشته باشه! احتمالا توی دلتون میگین "اگه راست میگی یکیشو بگو!" بله که میگم:1- چون مسیر یادگیری ما نظم بهتری خواهد داشت.برای یادگیری برنامه نویسی باید نظم داشته باشین، باید تمرکز داشته باشین و پیوسته یادگیری رو ادامه بدین. اگر یه زبان برنامه نویسی رو شروع کنید و توش جلو برین، دقیقا میدونید الان کجای راه هستین و مبحث بعدی باید چی یاد بگیرین! اما اگر چند زبان برنامه نویسی رو بخواین با هم جلو ببرین، گیج میشین! با خودتون میگین مثلا از الان تا 30 روز دیگه من جاوا اسکریپت کار میکنم! بعدش میرم سراغ پایتون. حالا یه روز جاوا اسکریپت رو نمیرسین کار کنید! از اون طرف باید یه روز از یادگیری پایتون بزنید و جاوا اسکریپت کار کنید! همش فکرتون درگیر این هستش که چیکار کنید و چیکار نکنید! و در نهایت این درگیری های ذهنی باعث میشه شما هم از جاوا اسکریپت بمونید و هم از پایتون!2- چون مسیر یادگیری کوتاه تری خواهید داشت!اگر یه زبان برنامه نویسی رو انتخاب کنید و شروع به یادگیری کنید. قطعا مسیر یادگیری شما کوتاه تره! چون فقط یه تسک دارین! "یادگیری فلان زبان برنامه نویسی" و این باعث میشه شما اون زمانی که دارین رو بهتر بتونید مدیریت کنید و مطالب بیشتری یاد بگیرین، چند تا نمونه پروژه بزنید، تجربه کسب کنید و...3- چون شما تبدیل به یه متخصص میشین!اگر فقط یه زبان برنامه نویسی رو شروع به یادگیری بکنید، میدونید آخر این مسیر شما قراره به اون زبان برنامه نویسی تسلط نسبی پیدا بکنید و بتونید خودتون رو متخصص اون زبان برنامه نویسی بدونید! این خیلی چیز ارزشمندیه! چون توی دنیای برنامه نویسی، متخصص توی یه حوزه خاص خیلی کم پیدا میشه!و اما... تا اینجای مقاله من از کسایی که فقط یه زبان برنامه نویسی کار میکنن تعریف کردم! حالا نوبت به کسایی هستش که میخوان و یا دارن چند تا زبان برنامه نویسی رو یاد میگیرن!اگر شما میخواین چند زبان برنامه نویسی رو یاد داشته باشین باید چند تا نکته رو رعایت کنید.1- همزمان یاد نگیرین!این خیلی خیلی نکته مهمیه! چون نباید با هم دیگه یاد بگیرین. اگر با هم بخواین مطالب رو جلو ببرین گیج میشین و به زودیِ زود از برنامه نویسی زده میشین. پس هیچ دو زبان برنامه نویسی رو با هم یاد نگیرین حتی اگر که به هم شبیه باشن!اگه دوست دارید یه دوره ی عالی داشته باشید که هم مبانی برنامه نویسی را بصورت کامل پوشش داده باشه و هم توش زبان سی پلاس پلاس بصورت تخصصی آموزش داده بشه و همچنین کلی مباحث دیگه مثل لینوکس و استفاده ی آن در برنامه نویسی میتونید از دوره ی 12 قدم برنامه نویسی استاد نیکزاد از سایت آواسام کمک بگیرید. ( در گوگل جستجو کنید میاد )2- یه زبان اصلی داشته باشین.درسته! اگر شما میخواین چند زبان برنامه نویسی رو یاد داشته باشین. بااااااااااید یه زبان اصلی داشته باشین! اون زبان رو باید بیشتر از همه کار کرده باشین. اول با اون شروع کنید و تا حد خوبی توش مسلط بشین بعدش که حس کردید وقتشه، میتونید برین و یه زبان دیگه رو هم تست کنید و یه چیزایی ازش یاد بگیرین. اما شما همیشه باید یه زبان برنامه نویسی اصلی داشته باشین! اون سلاح اصلی شماست!3- مفاهیم رو خوب کار کنید.زبان های برنامه نویسی همه از مفاهیم پایه و تقریبا یکسان برنامه نویسی استفاده میکنن مثلا "شرط ها"، "حلقه ها"، "توابع" و.. که پیاده سازی اینا توی هر زبان برنامه نویسی ممکنه یه سری تفاوت ها داشته باشه ولی اصل ماجرا یکیه! یعنی توابع توی هر زبان برنامه نویسی یه کار مشخصی رو انجام میده! یا مثلا حلقه ها، همه جا برای کارهای تکراری به کار میرن! پس اگر روی مفاهیم خوب کار کنید "برنامه نویسی رو خوب یاد میگیرین!" و این برای شما کار رو راحت میکنه که هر زبانی رو بخواین بتونید باهاش کار کنید!اگر روی مفاهیم خوب کار کنید "برنامه نویسی رو خوب یاد میگیرین!"چالش‌هادر حالیکه فواید مختلفی برای اینکه بتوانید در زبان‌های مختلف برنامه‌نویسی کنید وجود دارد، اما این فرایند یادگیری مداوم، چالش‌هایی نیز در بر دارد.عدم تخصص : در کتاب « The Good Parts» به نویسندگی Douglas Crockford به بخش‌های خوب و بد جاوااسکریپت اشاره شده است. مشابه این قضیه، در زبان‌های برنامه‌نویسی دیگر، بخش‌هایی وجود دارد که نیاز هست شما با آن‌ها با احتیاط مقابله کنید. اگر شما فردی باشید که به صورت مدام زبان‌های برنامه‌نویسی مورد نظرتان را تغییر می‌دهید، مطمئن باشید که در آینده با مشکلاتی مانند کارایی و امنیت برخورد می‌کنید.نگه‌داری تبدیل به یک کابوس می‌شود : داشتن زبان‌های برنامه‌نویسی مختلف در دستتان باعث می‌شود که نگه‌داری کردن آن چه در بخش توسعه و چه در بخش عملیات‌ها برای‌تان تبدیل به یک کابوس شود. این موضوع شما را به جایی می‌کشاند که در آن‌جا خبری از کارایی و سرعت نیست.خستگی توسعه‌دهنده : یادگیری مداوم و تغییر مسیر به سوی یک زبان برنامه‌نویسی و یا تکنولوژی جدید ممکن است توسعه‌دهنده را از پای دربیاورد. این موضوعی است که امروز در دنیای تکنولوژی به یک مشکل تبدیل شده که توسعه‌دهندگان در آن احساس خستگی بیش از اندازه و فشار زیاد می‌کنند. این حالت نه تنها روی کارایی آن‌ها به عنوان توسعه‌دهنده تاثیر می‌گذارد بلکه سلامتی‌ آن‌ها را نیز به خطر می‌اندازد.از نگاه یک سازمان اضافه کردن یک زبان برنامه‌نویسی نیازمند برقراری بالانس و مصالحه است. این موضوع ممکن است هزینه‌های تیم را بالا ببرد و نیاز به یادگیری موارد بیشتری شوند. در طرفی دیگر ممکن است کیفیت کدها و کارایی آن‌ها بهبود یابد.شرکت‌هایی که از بالا بردن سطح دانش تیم و یا بروزرسانی مواردی که در تیم وجود دارند اجتناب می کنند، ممکن است در آینده با مشکل نگه‌داری کردن از کدها روبرو شوند. حتی در چنین شرایطی تغییرات کوچک ممکن است هفته‌ها طول بکشد و پیدا کردن یک توسعه دهنده توانا ممکن است برای آن‌ها به یک چالش بدل گردد.از طرفی دیگر، تغییرات مداوم زبان برنامه‌نویسی و تکنولوژی های مرتبط می‌تواند تحویل ویژگی‌ها را ماه‌ها و یا حتی سال‌ها به تاخیر بیاندازد. پروژه‌های بسیاری تا به حال نوشته شده که بعد از سال‌ها توسعه آن، برنامه‌نویسان تصمیم گرفته‌اند که کل پروژه را در یک زبان یا فریمورک جدید بنویسند. در حالیکه معماری مانند میکروسیستم‌ها به ما این اجازه را می‌دهند که بخش‌های مختلف یک پروژه را در زبان های مختلفی بنویسیم اما بسیار مهم است که درک کاملی از هزینه معرفی یک زبان جدید داشته باشیم. فوایدی که ما از یک پروژه دریافت می‌کنیم همیشه باید مهمتر از هزینه آن در نظر گرفته شود.هر نادانی می‌تواند کدهایی بنویسد که کامپیوتر آن را متوجه شود. برنامه‌نویس خوب کسی است که بتواند کدهایی بنویسد که انسان نیز آن را درک کند. - مارتین فاولرجمع بندی:خب توی این مقاله به این پرداختیم که چرا بهتره شما فقط یه زبان یاد داشته باشین و بعد یه سری توصیه ها به کسایی که دارن چند تا زبان برنامه نویسی رو یاد میگیرن کردم که البته اگر دقت کنید این افراد هم باید یه زبان برنامه نویسی رو بیشتر از بقیه زبان ها یاد داشته باشن! این نکته طلایی هست که باید رعایت کنید! یا یه زبان برنامه نویسی رو فقط کار کنید یا اگر چند زبان کار میکنید یکی رو بیشتر از همه یاد داشته باشین! نظر شما چیه؟