به تازگی، مشغول صحبت کردن با فردی بودم که برای بیشتر از یک سال توسعه دهنده بود. وی از من پرسید که برای داشتن فرصت های شغلی بیشتر و توسعه قابلیتهای فردی خود به عنوان توسعه دهنده کدام زبان را انتخاب کند. این موضوع واقعا من را به فکر فرو برد: آیا برای تبدیل شدن به یک برنامهنویس عالی، به یادگیری چند زبان مختلف نیاز دارید؟
یک برنامهنویس چند زبانه به فردی گفته می شود که توانایی نوشتن کدهای برنامه نویسی را در چند زبان مختلف دارد. برخی افراد روی اپلیکیشنهای تحت وب با استفاده از HTML، CSS و جاوااسکریپت کار میکنند. مشابه با آن سرویسهای بک اند نیز ممکن است در یک زبان خاص نوشته شوند، اما جدای از اینها توسعه دهنده نیاز دارد تا SQL نیز بداند و یا حتی برای کانفیگ کردن فایلها YAML بلد باشد.
به عنوان یک توسعه دهنده ما همواره دوست داریم تا زبان و فریمورکهای جدیدی را یاد بگیریم. ما اینکار را برای اهداف مختلفی مانند حل یک مسئله خاص، پیدا کردن یک جایگزین بهتر و یا اینکه خودمان را بروز نگه داریم انجام میدهیم.
در کنار این مزایا، کار کردن با زبانهای مختلف برنامهنویسی به ما این فرصت را میدهد تا بتوانیم آشنایی بیشتری با پارادایمهای مختلف برنامهنویسی پیدا کنیم. میتوانیم در چنین حالتی راههای متفاوتی برای حل یک مشکل را برویم و در راه های متفاوتی فکر کنیم. با کنار هم قرار دادن تمام این موارد میتوانیم کدنویسی بهتری انجام دهیم.
چالشها
در حالیکه فواید مختلفی برای اینکه بتوانید در زبانهای مختلف برنامهنویسی کنید وجود دارد، اما این فرایند یادگیری مداوم، چالشهایی نیز در بر دارد.
از نگاه یک سازمان اضافه کردن یک زبان برنامهنویسی نیازمند برقراری بالانس و مصالحه است. این موضوع ممکن است هزینههای تیم را بالا ببرد و نیاز به یادگیری موارد بیشتری شوند. در طرفی دیگر ممکن است کیفیت کدها و کارایی آنها بهبود یابد.
شرکتهایی که از بالا بردن سطح دانش تیم و یا بروزرسانی مواردی که در تیم وجود دارند اجتناب می کنند، ممکن است در آینده با مشکل نگهداری کردن از کدها روبرو شوند. حتی در چنین شرایطی تغییرات کوچک ممکن است هفتهها طول بکشد و پیدا کردن یک توسعه دهنده توانا ممکن است برای آنها به یک چالش بدل گردد.
از طرفی دیگر، تغییرات مداوم زبان برنامهنویسی و تکنولوژی های مرتبط میتواند تحویل ویژگیها را ماهها و یا حتی سالها به تاخیر بیاندازد. پروژههای بسیاری تا به حال نوشته شده که بعد از سالها توسعه آن، برنامهنویسان تصمیم گرفتهاند که کل پروژه را در یک زبان یا فریمورک جدید بنویسند. در حالیکه معماری مانند میکروسیستمها به ما این اجازه را میدهند که بخشهای مختلف یک پروژه را در زبان های مختلفی بنویسیم اما بسیار مهم است که درک کاملی از هزینه معرفی یک زبان جدید داشته باشیم. فوایدی که ما از یک پروژه دریافت میکنیم همیشه باید مهمتر از هزینه آن در نظر گرفته شود.
هر نادانی میتواند کدهایی بنویسد که کامپیوتر آن را متوجه شود. برنامهنویس خوب کسی است که بتواند کدهایی بنویسد که انسان نیز آن را درک کند. – مارتین فاولر
یادگیری زبانهای مختلف برنامهنویسی تنها یکی از راهها برای بهتر کردن استعداد به عنوان یک توسعهدهنده است، اما اینجا راههای دیگری نیز هست که با استفاده از آنها میتوانیم سطح توانایمان را افزایش دهیم.
کدهای تمیزی بنویسید. به عنوان توسعه دهنده ما بیشتر از آنکه کد بنویسیم باید آنها را مطالعه کنیم. نوشتن کدهایی که درک و خوانایی آنها ساده و راحت باشد یکی از نشانههای خوب بودن یک برنامهنویس است.
کدهایی بنویسید که نگهداری آن ساده باشد. یک برنامهنویس خوب کسی است که سعی دارد کدهایی بنویسد که نگهداری کردن و پایدار نگهداشتن آنها ساده باشد. استفاده کردن از قواعد طراحی و توسعه آزمایش در حین اجرا به شما این قابلیت را میدهد که از ساده بودن آنها و تاثیر نذاشتن روی دیگر کاراییها مطمئن شوید.
یک توسعه دهنده خوب کسی است که مشکلات را درک میکند و براساس آنها ابزار درست را برای حل آن انتخاب میکند نه صرفا ابزاری که به آن گرایش دارد.
مطمئنا مزایای زیادی برای اینکه بتوانید همزمان در چندین زبان مختلف کدنویسی کنید وجود دارد. نه تنها این موضوع به شما کمک میکند که بتوانید رزومه بهتری داشته باشید بلکه کارایی شما را به عنوان یک توسعه دهنده نیز افزایش میدهد. در هر حال به همین مقدار مهم است که بتوانید مشکلات و مسائل را حل کنید. خواه که یک برنامهنویس چند زبانه باشید و یا نباشید مهمترین قضیه در رابطه با برنامهنویس بودن تمرکز کردن روی حل کردن مشکلات است نه ابزار کار.