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