آموزش جاوا یکی از نقاط عطف زندگی من و احتمالا بسیاری از کسانیست که روزی به سراغ آن رفتهاند. مسیری که با گذشت سالها همچنان برایم جذاب است و به من برای یادگیری بیشتر و آموختن تجربیاتم به دیگران اشتیاق و شور میدهد.
من سپهر نامدار هستم و بیش از ۱۱ سال سابقه کار حرفه ای در زمینه برنامه نویسی دارم. در حال حاضر نیز در شرکت 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 پیشرفت و به روز رسانی سیستم جاوا جان تازه ای گرفت و ویژگیهای هیجان انگیزی به این زبان اضافه شد. مهمترین این ویژگیها در ورژن ۸ جاوا و با ورود پارادایم برنامه نویسی فانکشنال به بازار عرضه شد و این زبان برنامه نویسی را که قبل از آن فقط از پارادایم شی گرا پشتیبانی میکرد، تبدیل به یک زبان برنامه نویسی هیبرید کرد.
یکی از مهمترین ویژگیهای یک زبان برای انتخاب، کامیونیتی و مستندسازی هاییست که برای آن شکل میگیرد و یادگیری و رفع اشکال برای برنامه نویسان و استفاده کنندگان از زبان را ساده میکند.
به عنوان یک مدرس همیشه به دانشجوهایم پیشنهاد میکنم به جای یادگیری زبان, مفاهیم و Concept پشت آن را یاد بگیرند تا در استفاده از زبانهای مختلف دچار مشکل نشوند و بتوانند به راحتی بین زبانهای مختلف مهاجرت کنند. بنابراین برای یادگیری بهتر این مفاهیم بهتر است در ابتدای مسیر یادگیری سراغ زبانهایی برویم که این مفاهیم را به طور کامل پشتیبانی میکنند.
بهعنوان مثال برای یادگیری پارادایم فانکشنال، زبان جاوا گزینه مناسبی نیست زیرا پشتیبانی کاملی از این پارادایم ندارد و بهتر است از زبان هایی مثل Haskell یا Clojure شروع به یادگیری کنیم. اما برای یادگیری برنامه نویسی شی گرا مسلما اولین پیشنهاد من به شما زبان برنامه نویسی جاوا است زیرا تمام جزئیات مورد نیاز شما برای یادگیری این پارادایم در زبان جاوا وجود دارد و یادگیری شیگرایی برای شما راحتتر و ملموستر خواهد بود.
کافیست یک جستجوی ساده در اینترنت انجام دهید یا به سایتهای کاریابی جهانی مثل LinkedIn مراجعه کنید تا متوجه شوید تا چه اندازه کمبود مهندس نرم افزار آشنا به جاوا در جهان وجود دارد. اگر این زبان برنامه نویسی و مفاهیم برنامه نویسی شی گرا را به طور حرفه ای یاد بگیرید بدون شک در هر نقطه از دنیا امکان مهاجرت به همراه یک حقوق عالی برای شما وجود دارد.
برای تبدیل شدن به یک برنامهنویس موفق باید با مفاهیم کد تمیز و تکنیکهای refactoring آشنا باشید. شرکتهای تولید کننده محیطهای توسعه کد مثل JetBrains با ارائه محصولاتی مثل IntelliJ Idea که از زبان برنامه نویسی جاوا حمایت میکند، به شما کمک میکنند تا کد با کیفیت و تمیزتری بنویسید.
زبان برنامه نویسی جاوا ساختار سادهای دارد اما مفاهیم پشت آن مانند پارادایم شیگرایی، فانکشنال و دستوری بسیار مهم هستند. نکات دیگر بسیار مهمی نیز مثل Refactoring و نوشتن کد تمیز وجود دارد که شما بدون آنها هرگز نمیتوانید خود را یک برنامهنویس حرفهای معرفی کنید.
به این موارد الگوهای معماری و الگوهای طراحی را نیز باید اضافه کرد تا بتوانیم به صورت کامل از امکانات این زبان برنامه نویسی استفاده کنیم. شاید برای کسی که اول راه است این مسیر کمی ترسناک به نظر بیاید اما تمام این مفاهیم به مرور زمان و با آموزش صحیح و کسب تجربه دست یافتنی هستند.
نزدیک ۲۰ سال است که این زبان برنامه نویسی همیشه مورد توجه جامعه برنامه نویسی بین المللی قرار گرفته و با توجه به نیازی که در دنیای امروز به برنامه نویسان جاوا وجود دارد و تعداد فوق العاده زیاد دستگاهها و برنامه هایی که با جاوا نوشته شدهاند، جواب دادن به این سوال ساده و مبرهن است.
در کنار این نکات، حمایت شرکت قدرتمند Oracle و به روز رسانی مرتب این زبان برنامه نویسی هیچ شکی برای آینده روشن جاوا باقی نمیگذارد. پس اگر بهدنبال یک زبان عالی در دنیای نرم افزار و برنامه نویسی هستید جاوا یکی از بهترین گزینههای شماست.
برای جواب دادن به این سوال باید به سراغ فریمورکهای جاوا برویم. فریم ورک قدرتمند Spring به شما این امکان را میدهد تا با صرف انرژی و زمان کم قسمت Back-End یک سایت را از امنیت گرفته تا کار با پایگاههای داده مدیریت کنید. حتی قسمت Front-End سایت نیز توسط این فریم ورکها پشتیبانی میشود اما زبانها و ابزارهای بهتری در حوزه JavaScript وجود دارد که بهتر است سراغ آنها بروید. پس اگر به برنامه نویسی وب علاقه دارید یکی از بهترین گزینهها برای شروع یادگیری برنامه نویسی جاوا است.
جاوا ابزار قدرتمندی برای برنامه نویسی اندروید در اختیار کاربران قرار میدهد. شما میتونید با یاد گرفتن جاوا قدم بزرگی در یادگیری زبان Kotlin بردارید که آن هم یک زبان برنامه نویسی بر مبنای JVM است و به شما امکان ساختن اپلیکیشن موبایل برای اندروید را میدهد. همانطور که میدانید Google زبان برنامه نویسی Kotlin را به صورت پیش فرض برای گوشیهای اندروید پشتیبانی میکند.
منابع زیادی برای یادگیری جاوا در اینترنت وجود دارد اما این زبان برنامه نویسی با توجه به گستردگی مفهومی که پشت خود دارد نیازمند وجود یک همراه و مربی است که بتواند در این مسیر پر پیچ و خم به شما کمک کند.
دوره متخصص جاوا را در سون لرن به صورت کامل از سطح مبتدی تا پیشرفته برگزار میکنم. برای اطلاع از جزییات و نحوه ثبتنام، صفحه دوره متخصص جاوا را مشاهده نمایید.
سوال دوم : چرا دوره جاوا ادامه پیدا نمیکنه و به صورت ناقص تا اواسط Java 8 بیشتر مباحث بروز جاوا مونده ؟؟؟
دوره هر هفته (یکشنبه ها) بروز رسانی میشه و جلساتی منتشر میشه.
دوره فعلی Java SE هست که اگر بخواید سمت Back End جاوا برید باید Java SE رو بلد باشید که بعدش هم برید سمت Java EE و Spring .
و اگر هم هدفتون سمت برنامه نویسی اندروید با جاواست، باید Java SE رو یاد بگیرید که البته توی دوره اندروید این در حد نیاز آموزش داده شده که خب امروزه بیشتر شرکت ها برای برنامه نویسی اندروید از کاتلین استفاده میکنند.
ولی دوره متخصص Java سون لرن بیشتر یه دوره مهندسی نرم افزار هست که شما یاد میگیرید اصولی و کلین کد بزنید و هم با OOP و هم تا حدودی Function programming آشنا میشید.
یادگیری هردو با هم اصلا پیشنهاد نمیشه، چون هر کدوم دنیای بزرگی دارند.
برای اطلاعات بیشتر خواهشا با بخش پشتیبانی تلفنی یا فروش در ارتباط باشید و زیر مقالات کامنت اسپم ندید.