استخدام برنامه نویس جاوا
اگر قصد دارید به عنوان برنامه نویس جاوا استخدام شوید، خوب است بدانید، جاوا یکی از مهارتهای پرتقاضا در بازارکار جهانی است. بسیاری از شرکتهای بزرگ همچون آمازون و گوگل برای توسعهی بکاند وبسایتهای خود، مرتباً در حال استخدام برنامه نویس جاوا هستند. همچنین، به دلیل عملکرد نسبتاً خوب جاوا، بسیاری از استارتاپها پس از رسیدن به نقطهی افزایش مقیاس خود، به استخدام توسعه دهنده جاوا میپردازند. هدف از این کار آن است که آنها میخواهند اپلیکیشنهای خود را با جاوا یکپارچهسازند و به عملکردی ایدهآل دستیابند.
تاریخچهی پیداش زبان برنامه نویسی جاوا
زبان برنامهنویسی جاوا (Java)، اولین بار توسط «جیمز گاسلینگ» در شرکت Sun Microsystems در سال ۱۹۹۵ منتشر شد که در ابتدا نام آن «بلوط» بود، اما در پایان، به Java تغییر دادهشد. جاوا، زبان برنامهنویسی همهمنظوره است و با هدف ارائهی زبانی سادهتر از C++ طراحی شد. در سال ۲۰۱۵، جاوا بهعنوان محبوبترین زبان برنامهنویسی دنیا شناخته شد. از آنجایی که Java تحت مالکیت شرکت اوراکل است، به طور فعال و پیوسته در حال پیشرفت و بهبود میباشد.
جاوا چیست؟
جاوا (Java) یکی از زبانهای برنامهنویسی سطح بالا (High-level programming language) میباشد که به صورت شیگرا و چندمنظوره است و تا حدود زیادی به C و ++C شباهت دارد. با این تفاوت که استفاده از جاوا آسانتر است و امکان ساخت برنامههای بسیار قدرتمند با آن وجود دارد. تعریفی که شرکت Sun Microsystems در سال ۲۰۰۰ ارائه دادهاست، به خوبی تمام ویژگیهای این زبان را ذکر کردهاست:
«جاوا یک زبان رایانهای ساده، مناسب شبکه، شیگرا، تفسیرشدنی، فارغ از معماری، مستحکم، امن، قابل حمل، با عملکرد بالا، چندنخی و دینامیک است.»
«جاوا یک زبان رایانهای ساده، مناسب شبکه، شیگرا، تفسیرشدنی، فارغ از معماری، مستحکم، امن، قابل حمل، با عملکرد بالا، چندنخی و دینامیک است.»
نسخههای منتشر شدهی زبان جاوا
در جدول زیر لیست تمام نسخههای منتشر شدهی زبان برنامه نویسی جاوا از آغاز تا کنون را آوردهایم. بد نیست بدانید که نسخههای ۸ و ۱۱ از این زبان دارای پشتیبانی بلند مدت میباشند.
نسخهی جاوا | سال انتشار | ردیف |
JDK 1.0 | ۲۱ ژانویه ۱۹۹۶ | ۱ |
JDK 1.1 | ۱۹ فوریه ۱۹۹۷ | ۲ |
J2SE 1.2 | ۸ دسامبر ۱۹۹۸ | ۳ |
J2SE 1.3 | ۸ مه ۲۰۰۰ | ۴ |
J2SE 1.4 | ۶ فوریه ۲۰۰۲ | ۵ |
J2SE 5.0 | ۳۰ سپتامبر ۲۰۰۴ | ۶ |
Java SE 6 | ۱۱ دسامبر ۲۰۰۶ | ۷ |
Java SE 7 | ژوئیه ۲۰۱۱ | ۸ |
Java SE 8 | ۱۸ مارس ۲۰۱۴ | ۹ |
Java SE 9 | ۲۱ سپتامبر ۲۰۱۷ | ۱۰ |
Java SE 10 | ۲۰ مارس ۲۰۱۸ | ۱۱ |
Java SE 11 | ۲۵ سپتامبر ۲۰۱۸ | ۱۲ |
Java SE 12 | ۱۹ مارس ۲۰۱۹ | ۱۳ |
مزایای زبان برنامه نویسی جاوا
۱- جاوا زبانی ساده
در ابتدا، Java بر اساس زبانهای C و C++ و با حذف برخی ویژگیهای سردرگمکنندهی آنها مدلسازی شد. دلایل سادگی جاوا موارد زیر میباشد:
شباهت بسیار سینتکس Java به C++، باعث شده تا بتوان به راحتی آن را پس از C++ فرا گرفت.
حذف قابلیتهای گیجکنندهای مثل اشارهگرها، بارگذاری بیش از حد عملگرها و پیادهسازی چندبارهی وراثت
امکان بازیافت حافظه توسط Garbage Collector که به طور اتوماتیک آرایهها و اشیای بیاستفاده را حذفمیکند.
شباهت بسیار سینتکس Java به C++، باعث شده تا بتوان به راحتی آن را پس از C++ فرا گرفت.
حذف قابلیتهای گیجکنندهای مثل اشارهگرها، بارگذاری بیش از حد عملگرها و پیادهسازی چندبارهی وراثت
امکان بازیافت حافظه توسط Garbage Collector که به طور اتوماتیک آرایهها و اشیای بیاستفاده را حذفمیکند.
۲- جاوا زبانی مبتنی بر شبکه
به دلیل وجود کتابخانهی وسیع شبکه در Java، امکان کار با پروتکلهای اینترنت (TCP/IP)، انتقال فایل (FTP)، انتقال ابرمتن (HTTP) و همچنین ایجاد اتصالهای شبکه آسانتر شده است.
۳- جاوا زبانی شیگرا
شیگرایی روشی است که با ارائهی قوانین خاصی، توسعهی برنامه و نگهداری آن را سادهتر میکند. در واقع همه چیز در Java یک شی است؛ به این معنا که برنامه بر اساس ترکیبی از شیهای متفاوت که شامل داده و رفتار می باشند، سازماندهی و تشکیل میشود. این ویژگی سبب شده تا توسعهدهندگانی که از این زبان استفاده میکنند، به جای درگیری با زبان برای رفع محدودیتهای یک مسئله، از آن برای حل مسئله استفادهکنند.
۴- جاوا زبانی تفسیر شدنی
منظور از تفسیر، شناسایی معنی دستورالعملها و سپس انتخاب دستورالعملهای خاص پلتفرم برای اجرا است. این ویژگی، سبب شده تا خطایابی برنامههای جاوا راحتتر شود، چرا که اغلب اطلاعات در زمان کامپایل، در محیط اجرا موجودند. همچنین تفسیری بودن Java امکان وقفهی پیوند بین قطعات مختلف برنامهی جاوا تا زمان اجرا را فراهم ساخته و این مسئله موجب افزایش سرعت توسعهی برنامه میشود.
۵- جاوا زبانی امن
با کمک جاوا میتوان برنامههایی عاری از نوع ویروس نوشت، به همین دلیل Java به امنیت خود معروف است. از دلایل این امنیت میتوان به موارد زیر اشاره کرد:
عدم استفادهی مستقیم و صریح از اشارهگرها
اجرا شدن در محیط ماشین مجازی
طرز لود شدن شدن کلاسها؛ Loaderهای کلاس جاوا که بخشی از محیط اجرای آن میباشد، به طور پویا کلاسها را در ماشین مجازی لود میکند. برای این کار، لودکننده کلاسهای محلی را از کلاسهایی که از منابع شبکه وارد شده اند جدا میکند.
تاییدکنندهی بایتکد برای چککردن قسمتهای مختلف کد و عدم ورود کدهای غیر مجازی که میتوانند دسترسی به اشیا را نقض کنند.
مدیر امنیت که تعیین میکند یک کلاس، چه منابعی را میتواند در اختیار بگیرد، مانند خواندن و نوشتن روی دیسکهای داخلی.
عدم استفادهی مستقیم و صریح از اشارهگرها
اجرا شدن در محیط ماشین مجازی
طرز لود شدن شدن کلاسها؛ Loaderهای کلاس جاوا که بخشی از محیط اجرای آن میباشد، به طور پویا کلاسها را در ماشین مجازی لود میکند. برای این کار، لودکننده کلاسهای محلی را از کلاسهایی که از منابع شبکه وارد شده اند جدا میکند.
تاییدکنندهی بایتکد برای چککردن قسمتهای مختلف کد و عدم ورود کدهای غیر مجازی که میتوانند دسترسی به اشیا را نقض کنند.
مدیر امنیت که تعیین میکند یک کلاس، چه منابعی را میتواند در اختیار بگیرد، مانند خواندن و نوشتن روی دیسکهای داخلی.
۶- جاوا زبانی قابل حمل
کدهای جاوا بهراحتی به بایتکد تبدیل میشوند و نیازی به پلتفرم یا طرز کار خاصی ندارند. به همین دلیل Java پرتابل به حساب میآید.
۷- جاوا زبانی دینامیک (پویا)
جاوا یک زبان دینامیک میباشد و از کامپایل پویا استفادهمیکند. لود شدن کلاسها در Java به شکل پویا و درست زمانی که به آنها نیاز است، انجام میشود.
علاوه بر مزایایی که در بالا ذکر کردیم، جاوا به عنوان یک زبانبرنامهنویسی از ویژگیهای خوب دیگری همچون استحکام و قدرتمندی، چند نخی بودن و معماریخنثی برخوردار است.
علاوه بر مزایایی که در بالا ذکر کردیم، جاوا به عنوان یک زبانبرنامهنویسی از ویژگیهای خوب دیگری همچون استحکام و قدرتمندی، چند نخی بودن و معماریخنثی برخوردار است.
معایب زبان برنامه نویسی جاوا
در قسمت قبل راجعبه برتریها و خصوصیات مثبت زبان جاوا صحبتکردیم. اما اگر میخواهید این زبان را بهعنوان یک زبان برنامهنویسی انتخاب کنید، بهتر است با معایب آن نیز آشنا شوید. پیش از استخدام به عنوان برنامهنویس جاوا، دانستن این موارد به شما در تصمیمگیری صحیح بسیار کمک خواهد کرد.
۱- عملکرد پایین
به طور عمومی زبانهایسطح بالا با مشکل عملکرد پایین مواجههستند و دلیل این امر، سطح تجرید به یک ماشین مجازی و مسئلهی کامپایل، میباشد. البته این امر تنها دلیل سرعت پایین جاوا نیست. پیش از این گفتیم که ابزار بازیابی حافظهی (Garbage Collector) جاوا یک ویژگی مفید است. اما با اشغال بیش از ۲۰ درصد از زمان CPU، میتواند منجر به مسائل عملکردی مهمی شود. پیکربندی بد Cache نیز میتواند موجب استفادهی بیش از حد از حافظه و استفادهی بسیار از ابزار بازیابی حافظه شود. گاهی هم برخی بنبستهای نخ موجب میشوند تا کابوس توسعهدهندگان جاوا یعنی خطاهای «خارج از حافظه» (Out of memory) رخ دهد. این وضعیت زمانی اتفاق میافتد که چند نخ سعی میکنند به منابع یکسانی دستیابند.
۲- لایسنس تجاری پولی
شرکت اوراکل اخیراً اعلام کرده است که از ابتدای سال ۲۰۱۹ استفاده از نسخهی JAVA SE8 در محیطهای کسب و کار، تجاری و تولیدی نیازمند پرداخت هزینه خواهد بود. بدین ترتیب باید بر اساس تعداد کاربران و یا پردازندهها، برای دریافت بهروزرسانیها و تمام اصلاحیههای باگ هزینهای پرداختشود.
در حال حاضر نسخهی فعلی جاوا رایگان است و امکان توزیع مجدد آن برای محاسبات با اهداف عمومی وجود دارد. با اعلامیهی جدید شرکت اوراکل و طرح پولی شدن، شرکتها باید میزان استفادهی خود از جاوا را ارزیابی کرده و اگر ارتقا به نسخهی پولی برایشان مقرونبهصرفه نباشد، به دنبال فناوریهای جایگزین بروند.
در حال حاضر نسخهی فعلی جاوا رایگان است و امکان توزیع مجدد آن برای محاسبات با اهداف عمومی وجود دارد. با اعلامیهی جدید شرکت اوراکل و طرح پولی شدن، شرکتها باید میزان استفادهی خود از جاوا را ارزیابی کرده و اگر ارتقا به نسخهی پولی برایشان مقرونبهصرفه نباشد، به دنبال فناوریهای جایگزین بروند.
۳- فاقد شکل و ظاهر یکسان بر روی دسکتاپ
توسعهدهندگان برای ایجاد رابط گرافیکی برنامه (GUI)، از ابزارهای مختلف و مخصوص هر زبان استفاده میکنند. مثلا برای اپلیکیشنهای اندروید نرمافزار «Android Studio» وجود دارد که برای ایجاد اپلیکیشنهایی که ظاهر و حس بومی دارند، استفاده میشود. با این حال وقتی در رابطه با GUI اپلیکیشنهای دسکتاپ صحبت میکنیم، جاوا از شکل و شمایل مشخصی برخوردار نیست.
۴- کدهای پیچیده و طولانی
کدهای جاوا از کلمات بسیاری استفادهمیکنند. شاید این وضعیت برای درک زبان برنامهنویسی، یک مزیت به حساب بیاید، اما جملههای طولانی و بسیار پیچیده باعث میشوند که کدها خوانایی کمتری داشته باشند و نتوان آنها را به سادگی اسکنکرد. بسیاری از زبانهای سطح بالا در تلاش برای تقلید از زبان انگلیسی، باعث شلوغی در کدها شدهاند. در واقع جاوا برای کاهش کدهای غیر قابل درک C++ ایجاد شد تا برنامهنویسان دقیقاً به تایپ آنچه در نظر دارند، بپردازند. همین تغییر باعث شد تا این زبان شفافیت بیشتری برای افراد مبتدی داشته باشد، اما متاسفانه از سوی دیگر فشردگی آن کاهشیافت.
در صورت مقایسهی جاوا با رقیبش پایتون، خواهیمدید که کدهای پایتون نیاز به نقطهویرگول انتهایی ندارند. آنها از «and»»، «or» و «not» به جای عملگرهای «&&»، «||» و «!» در جاوا به عنوان عملگر استفاده میکند. در کل پایتون، تشریفات کمتری همانند آکولاد و پرانتز دارد.
در صورت مقایسهی جاوا با رقیبش پایتون، خواهیمدید که کدهای پایتون نیاز به نقطهویرگول انتهایی ندارند. آنها از «and»»، «or» و «not» به جای عملگرهای «&&»، «||» و «!» در جاوا به عنوان عملگر استفاده میکند. در کل پایتون، تشریفات کمتری همانند آکولاد و پرانتز دارد.
کاربردهای زبان برنامه نویسی جاوا
امروزه جاوا همه جا است و میتوان گفت به یک زبان برنامهنویسی فراگیر تبدیل شدهاست. در دنیای پهناور فناوری و برنامهنویسی، این زبان به دلیل شیگرا بودنش به شهرت زیادی دست پیدا کردهاست. به نقل از شرکت Sun Microsystems سه میلیارد دستگاه از زبان جاوا استفاده میکنند. بسیاری از برنامههای کاربردی و وبسایتها مبتنی بر جاوا هستند. بهعلاوه امروزه کنسولهای بازی و تلفنهای همراه جاوا نیز در دنیای تکنولوژی حضور دارند. از اینرو، شمار آگهیهای استخدام برای موقعیت برنامهنویس جاوا در شرکتهای برنامهنویسی رو به افزایشاست. در زیر برخی دیگر از موارد کاربرد زبان جاوا را آوردهایم:
برنامههای کاربردی تحت وب نظیر Irctc.co.in و…
برنامههای کاربردی رومیزی همچون Acrobat Reader, Media Player, Antivirus و…
برنامههای کاربردی سازمانی از جمله برنامههای کاربردی بانکها
سیستمهای نقطه فروش
اپلیکیشنهای تجاری
اپلیکیشنهای موبایلی
برنامههای ابرداده
برنامههای مالی
کارتهای هوشمند
بازیها
رباتیک
برنامههای کاربردی تحت وب نظیر Irctc.co.in و…
برنامههای کاربردی رومیزی همچون Acrobat Reader, Media Player, Antivirus و…
برنامههای کاربردی سازمانی از جمله برنامههای کاربردی بانکها
سیستمهای نقطه فروش
اپلیکیشنهای تجاری
اپلیکیشنهای موبایلی
برنامههای ابرداده
برنامههای مالی
کارتهای هوشمند
بازیها
رباتیک
راههای یادگیری جاوا
خوشبختانه طی سالهای اخیر آموزش زبان برنامهنویسی جاوا نسبت به قبل، در ایران بسیار فراگیر شدهاست. در گذشته تعداد مراکز آموزشی فعال در این زمینه انگشتشمار بود. در حال حاضر علاقهمندان به یادگیری جاوا میتوانند به راحتی از طریق مجتمعهایآموزشی و فنی، کتبآموزشی موجود در بازار، فایلها و ویدئوهایآموزشی و یا حتی دورههای آنلاین، دانش و مهارت خود را در این زمینه افزایش دهند. در نهایت شرکت در دورههای کارآموزی به آمادگی هرچه بیشتر شما برای استخدام و ورود به جامعهی برنامهنویسان جاوا کمک شایانی خواهد کرد.
ورود به بازارکار به عنوان برنامه نویس جاوا
قبل از هر چیزی باید بگوییم کسانی که جاوا را به خوبی یاد میگیرند، میتوانند هر زبان دیگری مانند C# ، Python و حتی Ruby را نیز بهسادگی بیاموزند. پس میتوان گفت یادگیری جاوا ضرورتی فراتر از یافتن یک شغلاست. توصیه میکنیم برای استخدام شدن به عنوان برنامهنویس جاوا در شرکتهای معتبر از تلاش برای یادگیری دست نکشید و حتی چند سال اول برای کسب تجارب بیشتر رایگان کار کنید! شاید این جمله برای افراد مبتدی که هنوز وارد بازارکار نشدهاند عجیب باشد. اما همین موضوع باعث میشود تا شما به سطحی عالی از اعتماد به نفس در خصوص تواناییهایتان دستیابید. مطمئن باشید هیچ کارفرمایی به راحتی از برنامهنویسان موفق دست نخواهد کشید. امروزه در کشور ما بسیاری از برنامهنویسان جاوا با تجربهی کافی، در حوزههای مختلفی همچون بانکداری، بیمه، دولت الکترونیک و ... مشغول فعالیت هستند.
وضعیت درآمد برنامه نویس جاوا
بر اساس آخرین آمارها و جستجوهای وبسایت معتبر «StackOverflow» از میان ۶۴۰۰۰ برنامهنویس در سال ۲۰۱۸ میانگین حقوق برنامهنویسان جاوا، در سرتاسر دنیا برابر با ۵۲۰۰۰ دلار در سال بوده است. همچنین بر اساس گزارشات وبسایت «jadi » در سال ۱۳۹۶ از میان ۱۹۵۰ برنامهنویس ایرانی، ۱۳۶۵ نفر اعلامکردهاند به زبان جاوا برنامهنویسی میکنند. بدین ترتیب جاوا با ۷۰ درصد محبوبیت، در میان توسعهدهندگان ایرانی نیز محبوبترین زبان بودهاست.
بر اساس میانگین وزنی دستههای مختلف، مشخصشده که میانگین حقوق ماهانهی برنامهنویسان جاوا در ایران در سال ۱۳۹۶ برابر با ۲.۹۳۲.۰۰۰ تومان بوده است.
به نقل از وبسایت «Sourceiran» و در پی مصاحبه با چند شرکت برنامهنویسی، برای استخدام یک برنامهنویس جاوا، حقوق پرداختی بر اساس تجربه، رزومه و قدرت کدنویسی میباشد. سال ۱۳۹۷ در ایران، یک برنامهنویس جاوا که حداقل ۲ الی ۳ سال سابقهکار داشته، از درآمد ماهانهای بین ۳.5 الی ۵ میلیون برخوردار بودهاست.
بر اساس میانگین وزنی دستههای مختلف، مشخصشده که میانگین حقوق ماهانهی برنامهنویسان جاوا در ایران در سال ۱۳۹۶ برابر با ۲.۹۳۲.۰۰۰ تومان بوده است.
به نقل از وبسایت «Sourceiran» و در پی مصاحبه با چند شرکت برنامهنویسی، برای استخدام یک برنامهنویس جاوا، حقوق پرداختی بر اساس تجربه، رزومه و قدرت کدنویسی میباشد. سال ۱۳۹۷ در ایران، یک برنامهنویس جاوا که حداقل ۲ الی ۳ سال سابقهکار داشته، از درآمد ماهانهای بین ۳.5 الی ۵ میلیون برخوردار بودهاست.