آموزش جاوا یکی از نقاط عطف زندگی من و احتمالا بسیاری از کسانیست که روزی به سراغ آن رفتهاند. مسیری که با گذشت سالها همچنان برایم جذاب است و به من برای یادگیری بیشتر و آموختن تجربیاتم به دیگران اشتیاق و شور میدهد.
من سپهر نامدار هستم و بیش از ۱۱ سال سابقه کار حرفه ای در زمینه برنامه نویسی دارم. در حال حاضر نیز در شرکت SHODO کشور فرانسه فعالیت میکنم. بخش مهمی از شغل من همکاری با تیمهای نرم افزاری است تا به صاحبان مشاغل کمک کنیم محصولاتی با کیفیت و با طول عمر بالا تولید کرده و به بازار عرضه کنند.
در طول ۱۱ سال گذشته با شرکتهای اروپایی زیادی در زمینههای مختلف همکاری کردم که بعضی از آنها مثل +Societe General, Orange, ING, Canal بزرگ و شناخته شده بودند و برخی دیگر در اشلهای کوچکتر مثل استارت آپ Ceetiz فعالیت میکردند. من همچنین در کنار برنامه نویسی به تدریس در دانشگاه (ESGI) پاریس مشغول هستم و از تدریس و تعامل با دانشجوها لذت میبرم .
علاقمندیهای من در حوزه برنامه نویسی به مسائلی مربوط است که وابستگی خاصی نسبت به یک تکنولوژی خاص ندارند مانند Software Craftsmanship, Agile, معماری نرم افزار و Domain Driven Design (DDD) و اعتقاد دارم موفقیت یک محصول نرم افزاری به متدلوژی هایی بستگی دارد که در زمان توسعه آن استفاده میشود و نه تکنولوژی هایی که در ساخت آن مورد استفاده قرار میگیرد.
شرکت در کنفرانسهای معتبر ایرانی و خارجی و به اشتراک گذاشتن دانش و تجربیاتم با دیگران یکی از علایق من است. برای مثال یکی از بنیان گذاران انجمن DDD ایران هستم و سال گذشته ۲ کارگاه در رویداد جهانی DDD Europe برگزار کردم.
در طی 10 سال گذشته که در شرکتهای فرانسوی و اروپایی مشغول به برنامه نویسی و توسعه نرم افزار بودم، زبان جاوا و قدرت آن همیشه برای من فرصتهای جذابی ایجاد کرده و در این مقاله دوست دارم در مورد تجربیاتم از کار با جاوا صحبت کنم. با من در ادامه همراه باشید.
قبل از ورود به دنیا برنامه نویسی جاوا باید سواد علم برنامه نویسی را کسب کرده باشید و بدانید برنامه نویسی چیست و چه زمینه ای از آن مناسب شماست . لقمان آوند در دوره الفبای برنامه نویسی این مهارت را به شما آموزش داده است. همین حالا به صفحه مربوطه مراجعه کنید و از مشاوره رایگان مشاوران استفاده کنید.
چرا برنامه نویس جاوا شدم؟
زمانی که دانشجو بودم با زبانهای زیادی آشنا شدم و اولین برخورد من با جاوا زمانی بود که یکی از اساتیدم برای انجام پروژه کار آموزی این زبان را به من پیشنهاد کرد . در نظر من یادگیری ساختار این زبان نسبت به زبانهای دیگری که دیده بودم سادهتر بود و کدهایم را راحتتر میفهمیدم و برای دیگران توضیح میدادم. وقتی با جاوا برنامه نویسی میکردم کمتر سوال میپرسیدم و میتوانستم راحتتر با مشکلاتم دست و پنجه نرم کنم و بهقدری مجذوب این زبان شده بودم که دوستانم در دانشگاه به من لقب Java Boy داده بودند.
اولین تجربه حرفه ای من با جاوا زمانی بود که برای طی کردن دوره کارآموزی دانشگاه و به مدت 5 ماه با شرکت مخابرات فرانسه (France Telecom) همکاری کردم.
هدف این دوره ایجاد یک سرور اینترنتی بود که نوشتهها را به صدا تبدیل میکرد و با کمک آن، هر دستگاهی که دسترسی به اینترنت داشت میتوانست نوشتهها را بخواند. یکی از کاربردهای این سرویس این بود که به افراد نابینا کمک میکرد با کامپیوتر شخصی خود کار کنند. پس از این پروژه موفق و توانمند شدن در حوزه جاوا بود که توانستم در شرکت Capgemini شروع به کار کرده و مسیر حرفهای خود را به کمک این زبان شگفتانگیز شروع کنم.
قابلیتهای زبان برنامه نویسی جاوا
ویژگیها و چالشهای زبان جاوا شما را وارد یک مسیر یادگیری طولانی اما جذاب میکند که سرانجام آن، حرفهای شدن و یافتن لذتی عمیق و واقعی در برنامهنویسی است. طی سالها تجربه کار با جاوا و با توجه به شناختی که از این زبان پیدا کردهام، برجستهترین ویژگیهای جاوا عبارتاند از:
داشتن ماشین مجازی
شعار جاوا این است که یک بار بنویس و همه جا اجرا کن (Write once, run anywhere (WORA)). ماشین مجازی جاوا (Java Virtual Machine (JVM)) این امکان را به شما میدهد تا برنامههای نوشته شده به این زبان را روی سیستمهای مختلف مانند لینوکس, ویندوز و مکینتاش به صورت یکسان اجرا کنید. امروزه تمام زبانهای برنامه نویسی که بر مبنای JVM ساخته شدند مانند Scala و Groovy از این قابلیت بهره میبرند.
همچنین قابلیت آشغال جمع کن (Garbage Collector) در JVM ها این امکان را به برنامه نویس میدهد که نگران استفاده برنامه از حافظه کوتاه مدت سیستمی که روی آن در حال اجراست نباشد و این Garbage Collector است که وظیفه پاک سازی حافظه را بر عهده میگیرد و این امر، برنامه نویسی را بسیار ساده میکند.
پشتیبانی قوی
از سال ۲۰۱۰ با حمایت Oracle پیشرفت و به روز رسانی سیستم جاوا جان تازه ای گرفت و ویژگیهای هیجان انگیزی به این زبان اضافه شد. مهمترین این ویژگیها در ورژن ۸ جاوا و با ورود پارادایم برنامه نویسی فانکشنال به بازار عرضه شد و این زبان برنامه نویسی را که قبل از آن فقط از پارادایم شی گرا پشتیبانی میکرد، تبدیل به یک زبان برنامه نویسی هیبرید کرد.
کامیونیتی و Documentation قدرتمند
یکی از مهمترین ویژگیهای یک زبان برای انتخاب، کامیونیتی و مستندسازی هاییست که برای آن شکل میگیرد و یادگیری و رفع اشکال برای برنامه نویسان و استفاده کنندگان از زبان را ساده میکند.
برنامه نویسی شی گرا
به عنوان یک مدرس همیشه به دانشجوهایم پیشنهاد میکنم به جای یادگیری زبان, مفاهیم و Concept پشت آن را یاد بگیرند تا در استفاده از زبانهای مختلف دچار مشکل نشوند و بتوانند به راحتی بین زبانهای مختلف مهاجرت کنند. بنابراین برای یادگیری بهتر این مفاهیم بهتر است در ابتدای مسیر یادگیری سراغ زبانهایی برویم که این مفاهیم را به طور کامل پشتیبانی میکنند.
بهعنوان مثال برای یادگیری پارادایم فانکشنال، زبان جاوا گزینه مناسبی نیست زیرا پشتیبانی کاملی از این پارادایم ندارد و بهتر است از زبان هایی مثل Haskell یا Clojure شروع به یادگیری کنیم. اما برای یادگیری برنامه نویسی شی گرا مسلما اولین پیشنهاد من به شما زبان برنامه نویسی جاوا است زیرا تمام جزئیات مورد نیاز شما برای یادگیری این پارادایم در زبان جاوا وجود دارد و یادگیری شیگرایی برای شما راحتتر و ملموستر خواهد بود.
بازار کار عالی
کافیست یک جستجوی ساده در اینترنت انجام دهید یا به سایتهای کاریابی جهانی مثل LinkedIn مراجعه کنید تا متوجه شوید تا چه اندازه کمبود مهندس نرم افزار آشنا به جاوا در جهان وجود دارد. اگر این زبان برنامه نویسی و مفاهیم برنامه نویسی شی گرا را به طور حرفه ای یاد بگیرید بدون شک در هر نقطه از دنیا امکان مهاجرت به همراه یک حقوق عالی برای شما وجود دارد.
ابزارهای قدرتمند برای کد نویسی و Refactoring
برای تبدیل شدن به یک برنامهنویس موفق باید با مفاهیم کد تمیز و تکنیکهای refactoring آشنا باشید. شرکتهای تولید کننده محیطهای توسعه کد مثل JetBrains با ارائه محصولاتی مثل IntelliJ Idea که از زبان برنامه نویسی جاوا حمایت میکند، به شما کمک میکنند تا کد با کیفیت و تمیزتری بنویسید.
مسیر یادگیری جاوا
زبان برنامه نویسی جاوا ساختار سادهای دارد اما مفاهیم پشت آن مانند پارادایم شیگرایی، فانکشنال و دستوری بسیار مهم هستند. نکات دیگر بسیار مهمی نیز مثل Refactoring و نوشتن کد تمیز وجود دارد که شما بدون آنها هرگز نمیتوانید خود را یک برنامهنویس حرفهای معرفی کنید.
به این موارد الگوهای معماری و الگوهای طراحی را نیز باید اضافه کرد تا بتوانیم به صورت کامل از امکانات این زبان برنامه نویسی استفاده کنیم. شاید برای کسی که اول راه است این مسیر کمی ترسناک به نظر بیاید اما تمام این مفاهیم به مرور زمان و با آموزش صحیح و کسب تجربه دست یافتنی هستند.
آینده جاوا روشن است؟
نزدیک ۲۰ سال است که این زبان برنامه نویسی همیشه مورد توجه جامعه برنامه نویسی بین المللی قرار گرفته و با توجه به نیازی که در دنیای امروز به برنامه نویسان جاوا وجود دارد و تعداد فوق العاده زیاد دستگاهها و برنامه هایی که با جاوا نوشته شدهاند، جواب دادن به این سوال ساده و مبرهن است.
در کنار این نکات، حمایت شرکت قدرتمند Oracle و به روز رسانی مرتب این زبان برنامه نویسی هیچ شکی برای آینده روشن جاوا باقی نمیگذارد. پس اگر بهدنبال یک زبان عالی در دنیای نرم افزار و برنامه نویسی هستید جاوا یکی از بهترین گزینههای شماست.
میتوان با جاوا وب سایت ساخت؟
برای جواب دادن به این سوال باید به سراغ فریمورکهای جاوا برویم. فریم ورک قدرتمند Spring به شما این امکان را میدهد تا با صرف انرژی و زمان کم قسمت Back-End یک سایت را از امنیت گرفته تا کار با پایگاههای داده مدیریت کنید. حتی قسمت Front-End سایت نیز توسط این فریم ورکها پشتیبانی میشود اما زبانها و ابزارهای بهتری در حوزه JavaScript وجود دارد که بهتر است سراغ آنها بروید. پس اگر به برنامه نویسی وب علاقه دارید یکی از بهترین گزینهها برای شروع یادگیری برنامه نویسی جاوا است.
با جاوا میتوان اپلیکیشن موبایل ساخت؟
جاوا ابزار قدرتمندی برای برنامه نویسی اندروید در اختیار کاربران قرار میدهد. شما میتونید با یاد گرفتن جاوا قدم بزرگی در یادگیری زبان Kotlin بردارید که آن هم یک زبان برنامه نویسی بر مبنای JVM است و به شما امکان ساختن اپلیکیشن موبایل برای اندروید را میدهد. همانطور که میدانید Google زبان برنامه نویسی Kotlin را به صورت پیش فرض برای گوشیهای اندروید پشتیبانی میکند.
چرا باید Java یاد بگیرم؟
این زبان بسیار قدرتمند در برنامهنویسی اندروید و توسعه نرمافزارها به کار میرود.
جاوا یکی از زبانهای ترند دنیا است و نقش مهمی در توسعه وب به صورت حرفهای دارد.
این زبان در بخش Back-End کاربرد دارد و امکان کسب درآمد بیشتر را برای شما فراهم میکند.
همچنین امکان کسب درآمد دلاری و دریافت پروژه از سایتهای خارجی را برای شما فراهم است.
یادگیری جاوا برای علاقهمندان به مهاجرت از طریق برنامهنویسی یک امتیاز ویژه محسوب میشود.
بزرگترین شرکتهای آنلاین دنیا مثل گوگل، اینستاگرام, آمازون, Uber، Netflix و غیره از Java استفاده میکنند.
مخاطبین دوره چه کسانی هستند؟
علاقه مندان به کسب مشاغل مهم و پردرآمد در ایران و خارج از کشور.
افرادی که میخواهند در حوزه موبایل و توسعه وب فعالیت داشته باشند.
کسانی که برای اولین بار قصد ورود به دنیای برنامه نویسی را دارند و میخواهند یک سرمایه گذاری بلند مدت داشته باشند.
همه افرادی که قصد دارند در سالهای پیشرو یکی از مهرههای حیاتی بازار کار فناوری و مشاغل غیر سنتی باشند.
کسانی که در حال افزایش سطح توانمندی خود به جهت مهاجرت شغلی یا تحصیلی هستند.
پیش نیازهای زبان برنامه نویسی Java
شرکت در این دوره پیش نیاز خاصی ندارد. کافی است با جستجو در اینترنت آشنا باشید.
سطح زبان انگلیسی بهتر است به گونه ای باشد که در صورت بروز مشکل بتوانید به انگلیسی در گوگل جستجو کنید و به منابع بیشتر دسترسی داشته باشید.
شما به سیستم و لپ تاپ حرفه ای نیاز ندارید و یک سیستم معمولی که قابلیت نصب نرم افزارهای مربوطه را داشته باشد میتواند نیاز شما را در این مرحله برآورده کند.
آماده شروع یادگیری جاوا هستی؟
منابع زیادی برای یادگیری جاوا در اینترنت وجود دارد اما این زبان برنامه نویسی با توجه به گستردگی مفهومی که پشت خود دارد نیازمند وجود یک همراه و مربی است که بتواند در این مسیر پر پیچ و خم به شما کمک کند.
دوره متخصص جاوا را در سون لرن به صورت کامل از سطح مبتدی تا پیشرفته برگزار میکنم. برای اطلاع از جزییات و نحوه ثبتنام، صفحه دوره متخصص جاوا را مشاهده نمایید.
۷ دیدگاه
فردین غلام زاده دیزجی۰۸ مرداد ۱۴۰۱، ۰۶:۲۰
سوال اول : آیا امکانش وجود داره که هم java EE و هم Java ME به صورت حرفه ای فعالیت کنیم یعنی هم وب کار کنیم و هم موبایل
سوال دوم : چرا دوره جاوا ادامه پیدا نمیکنه و به صورت ناقص تا اواسط Java 8 بیشتر مباحث بروز جاوا مونده ؟؟؟
نازنین کریمی مقدم۰۹ مرداد ۱۴۰۱، ۰۸:۴۱
درود
دوره هر هفته (یکشنبه ها) بروز رسانی میشه و جلساتی منتشر میشه.
دوره فعلی Java SE هست که اگر بخواید سمت Back End جاوا برید باید Java SE رو بلد باشید که بعدش هم برید سمت Java EE و Spring .
و اگر هم هدفتون سمت برنامه نویسی اندروید با جاواست، باید Java SE رو یاد بگیرید که البته توی دوره اندروید این در حد نیاز آموزش داده شده که خب امروزه بیشتر شرکتها برای <a href="https://7learn.com/blog/what-is-programming" rel="noopener" target="_blank">برنامه نویسی</a> اندروید از کاتلین استفاده میکنند.
ولی دوره متخصص Java سون لرن بیشتر یه دوره مهندسی نرم افزار هست که شما یاد میگیرید اصولی و کلین کد بزنید و هم با OOP و هم تا حدودی Function programming آشنا میشید.
یادگیری هردو با هم اصلا پیشنهاد نمیشه، چون هر کدوم دنیای بزرگی دارند.
برای اطلاعات بیشتر خواهشا با بخش پشتیبانی تلفنی یا فروش در ارتباط باشید و زیر مقالات کامنت اسپم ندید.
پوریا شفیعی۰۷ دی ۱۴۰۰، ۱۲:۲۸
ممنون مهندس نامدار
هر چند این روزا با جاوا کد نمیزنم ولی زبانی که باهاش روزی برنامه نویسی رو شروع کردم و مفاهیم رو یاد گرفتم جاوا بوده و فکر میکنم همین تصمیم باعث شده خیلی راحت بین زبانهای مختلف سوییچ کنم .
از قدرت زبان جاوا هم هر چقدر بگیم کم گفتیم و بی دلیل نیست که خیلی از کتابهای مهندسی نرم افزار هم از این زبان برای رسوندن مفاهیمشون به برنامه نویسان استفاده کردن
۰۵ دی ۱۴۰۰، ۱۳:۴۳
سلام
ممنون از پاسخ شما
آیا این نظر شخصی شماست یا اینکه این پاسخ از طرف آقای سپهر نامدار نوشته شده است؟
با توجه به تجربه ایشون من انتظار جواب کاملتری رو دارم...
۰۴ دی ۱۴۰۰، ۱۵:۱۶
سلام
بین دو کتابخانه swing و javafx شما کدوم رو پیشنهاد میکنید؟ آیا اوراکل دیگه javafx رو توسعه نمیده؟
من قبلا یه سایت شخصی با JSP طراحی و اپلود کردم البته مشکلات بسیاری داشتم و همه رو حل کردم ولی در نهایت به این نتیجه رسیدم که جاوا برای طراحی سایت مناسب نیست. نظر شما چیه؟
با تشکر
نازنین کریمی مقدم۰۵ دی ۱۴۰۰، ۰۵:۴۸
درود
از اونجایی که fx برای رفع مشکلات سویینگ به وجود اومد و بین این دوتا بهتون پیشنهادش میکنم. fx بهتره از سویینگه، چون امکاناتی داره که برنامه نویسی رو آسون میکنه و تاجایی که اطلاع دارم اوراکل هنوز ازش پشتیبانی میکنه و این سویینگه که دیگه توسعه داده نمیشه.
بله حق با شماست. جاوا بدرد بک اند میخوره، اما نه یک سایت شخصی (جاوا بیشتر بدرد بک اند سیستمهای پیچیده مثل ادیتورهای آنلاین و.... میخوره) برای وب سایت توصیه میکنم با جاوا اسکریپت یا php کار کنید تا متوجه بشید چقدر دستتون بازتره.
سپهر نامدار۰۸ دی ۱۴۰۰، ۱۳:۲۶
JSP, Swing و fx تکنولوژیهای منسوخ شده ای هستن. بهتون پیشنهاد میکنم برای فرانت اند تحت وب به سمت تکنولوژیهای جاوا اسکریپت برین.
Fx برای حل چند مشکل سویینگ بوجود اومده و هر ۲ تحت پشتیبانی کامل کامیونیتی جاوا هستن و در دسترس در خود JDK.
اگر به دنبال طراحی یک نرم افزار دسکتاپ هستین که روی هر سیستمی به راحتی اجرا میشه و نیاز به رابط کاربری دارید به شما سویینگ و fx رو پیشنهاد میکنم.