برنامه نویسی جاوا را از کجا شروع کنیم ؟ چگونه یک برنامه نویس خوب جاوا شویم ؟ مسیر راه یادگیری جاوا چیست ؟ هر روز استفاده از سایتها و برنامههای موبایل و سایر نرمافزار ها در دنیا بیشتر میشود. هرچقدر که در دنیای امروزی نرمافزارها بیشتر مورد توجه واقع میشوند به همان اندازه هم صنعت تولید نرمافزار رشد میکند و نیاز به برنامه نویسی بیشتر میشود.
با توجه به این نکته که سرعت رشد نرمافزارها بسیار سریع است باید از ابزارهایی برای تولید نرمافزار استفاده شود که هم دارای ساختار و قالب مناسب باشد و هم بتوان به سرعت و با کمترین هزینه و زمان آن را تغییر داد و اصلاحاتی که نیاز است را بر روی نرمافزار پیادهسازی کرد.
همین امر باعث شده است که هر روز زبانهای برنامه نویسی و تکنولوژی های برنامه نویسی جدیدتری بروز کند و برخی از این زبانها و تکنولوژی ها مورد توجه برنامه نویسان قرار میگیرند و برخی دیگر در انزوا مانده و از بین می روند. زبان جاوا هم یکی از این زبانها است که سالیان سال است مورد توجه برنامه نویسان قرار گرفته است و از محبوبیت بسیار زیادی برخوردار است. که در این مطلب این زبان را معرفی کرده و در مورد شروع برنامه نویسی و پیشرفت در این زبان برنامه نویسی و مسیر یادگیری این زبان نکاتی را آماده کردهایم تا بتوانید با کمک این نکات مسیر درستی را برای یادگیری این زبان پیش بگیرید و سریعتر به نتیجه برسید.
جاوا یک زبان برنامه نویسی سیستمی سطح بالا است که میتوان با کمک آن برنامههای مختلف در پلتفرم(سکو)های مختلف تولید کرد. این زبان در سال 1995 در شرکت Sun ساخته شده است. این زبان ابتدا برای استفاده در تلویزیونهای کابلی ساخته شده بود ولی به مرور به یک زبان همه منظوره تبدیل شد. یکی از قابلیت این زبان که در آن زمان خیلی مهم بود این بود که بر روی همه سیستم عامل ها قابل اجرا بود. نام این زبان ابتدا Oak(بلوط) و بعداً به نام (Green) نامگذاری شد.
اما در نهایت نام جاوا برای آن در نظر گرفته شد. Java نام یکی از جزایر اندونزی است که محصول اصلی آن قهوه است. به همین خاطر است که نماد این زبان یک فنجان قهوه است.زبان جاوا به علت استفاده از ماشین مجازی به گونهای است که در محیطی که ماشین مجازی اش نصب شده باشد قابل اجرا است و مهم نیست چه سیستم عاملی باشد و یا حتی دستگاهی مانند مودم یا پرینتر باشد.جاوا از زمان تولید تا به حال در محیط های مختلف دسکتاپ و وب و موبایل و شبکه و زیرساخت مورد توجه بوده و استفاده شده است.
برای یادگیری زبان جاوا دانش عمومی در مورد کامپیوتر لازم است. یعنی کسی که سعی دارد زبان جاوا را یاد بگیرد باید بداند کامپیوتر چیست چه کارهایی میتوان با آن انجام داد، برنامه چیست؟ همچنین بهتر است که برای یادگیری و پیشرفت سریعتر این زبان با سیستم عامل و کاربرد آن آشنا باشد. حال مهم نیست چه سیستم عاملی میتواند مک باشد یا ویندوز یا هرچیز دیگری. از موارد دیگری که میتوان به عنوان پیش نیاز برای یادگیری جاوا نام برد توانایی حل مساله به صورت گام به گام است.
حال سؤالی که ممکن است پیش بیاید این است که حل مساله چیست و چه ربطی به برنامه نویسی دارد؟ در پاسخ باید بگوییم که شاید بتوان گفت که کل برنامه نویسی یعنی تولید کردن راه حلی کامپیوتری برای مسائل مختلف است. حال اگر فردی قدرت بیشتری برای حل کردن مسائل به صورت گام به گام داشته باشد میتواند سریعتر برنامه نویسی و مخصوصاً برنامه نویسی جاوا را یاد گرفته و پیشرفت کند.
همانطور که در بخش پیش نیاز ها گفته شد اینکه با کامپیوتر آشنا باشید و دانش عمومی کامپیوتر را داشته باشید خیلی راحتتر هستید و سریعتر نتیجه میگیرید. معمولا(نه همیشه) کسانی که در رشته کامپیوتر و رشتههای مربوط به آن تحصیل کردهاند و یا بیشتر با کامپیوتر درگیر بوده اند طبیعتاً آشنایی بیشتری با این محیط ها دارند و راحتتر میتوانند مطالب را درک کنند. البته این یک قانون کلی نیست و برنامه نویس های موفق بسیار زیادی وجود دارند که تحصیلات دیگری داشتهاند و فقط با شوق و علاقه به دنبال مباحث برنامه نویسی جاوا رفتهاند و در حال حاضر منبع درآمد آنها برنامه نویسی جاوا بوده و درآمد خوبی هم دارند و در این فیلد موفق عمل کرده اند.
افرادی که میخواهند یک زبان برنامه نویسی یاد بگیرند باید خصوصیات اخلاقی خاصی داشته باشند و یا این خصوصیات را درخود رشد بدهند. زیرا یادگیری برنامه نویسی کار خیلی سختی نیست ولی کار سادهای هم نیست. بنابراین فردی که میخواهد یک زبانی مثل جاوا را یاد بگیرد باید اراده ای داشته باشد که تا حد اقل چند ماه به صورت مرتب تمرین کند و با مشکلات دست و پنجه نرم کند. همچنین یادگیری برنامه نویسی نیازمند صبر و حوصله زیادی است. زیرا اکثر زمان یک برنامه نویس به رفع کردن خطاها و مشکلات به وجود آمده در برنامه میگذرد.
حال اگر شخص یادگیرنده در هنگام خطاهای به وجود آمده سریع از کوره در برود و عصبانی شود نمیتواند در برنامه نویسی پیشرفت کند. از خصوصیات دیگر کسی که در حال یادگیری جاوا است کنجکاو بودن و جستجوگر بودن است. زیرا هیچ کتاب یا دوره یا منبعی همه اطلاعات در مورد زبان جاوا را به صورت کامل پوشش نداده است پس کسی که قصد یادگیری دارد باید به دنبال مسائل و مفاهیم جدید باشد. همچنین دنیای برنامه نویسی جاوا دنیای پویایی است و هر روز اتفاقات جدیدی در آن رخ میدهد پس اگر بخواهید به درستی یاد بگیرید باید روحیه جستجوگری و پویایی را در خود گسترش بدهید.
با اینکه اکثر کسانی که در علوم کامپیوتری دستی داشتهاند و حتی خالقان زبانهای برنامه نویسی دستی بر ریاضیات داشتهاند ولی برای کارهای امروزی میتوانید کار خود را بدون اینکه در ریاضیات قوی باشید شروع کنید. البته ممکن است که در برخی موارد و نوشتن برنامههایی به جز سایتهای اینترنتی و برنامههای معمول امروزی نیاز به ریاضیات داشته باشید که میتوانید بعداً یاد بگیرید. برای مثال در برنامه نویسی بازی و پردازش تصویر و یا برنامه نویسی هوش مصنوعی نیاز به بعضی مفاهیم ریاضی هست که میتوانید بعد از یادگیری برنامه نویسی آنها را نیز بیاموزید.
امروزه یاد گرفتن زبان انگلیسی برای هر علمی لازم است و برای برنامه نویسی واجب. زیرا که اگر بخواهید منتظر باشید که مطالب انگلیسی را دوستان به فارسی ترجمه کنند و در قالب کتاب و یا سایت به شما عرضه کنند باید به شما بگویم که هیچ وقت دانش شما بروز نخواهد بود. زیرا منابع و مطالب بسیار زیادی هر روزه در دنیا به زبان انگلیسی منتشر میشود که شما باید آنها را مطالعه کنید. همچنین اکثر ترجمههای فارسی به گونهای است که اگر یک بار مطالعه کنید ترجیح خواهید داد که مطلب به زبان اصلی را به هر زحمتی که شده بخوانید ولی ترجمه فارسی را بیخیال شود. در مورد سطح دانش زبان هم به صورت کلی اینکه شما زبان انگلیسی را حداقل در حدی بلد باشید که بتوانید مطالب را مطالعه کرده و متوجه شوید کفایت میکند حال اگر مطالب ویدیویی و صوتی را نیز متوجه شوید که عالی است.
جاوا زبانی است که قوانین شی گرایی را به صورت کامل رعایت کرده است و تأکید دارد که برنامه نویسان نیز این قوانین را به درستی رعایت کنند. حال اگر شما قبلاً با زبانی کار میکرده اید که استفاده از قوانین شی گرایی را به اختیار برنامه نویس گذاشته باشد مانند PHP و یا C++ قصد دارید که زبان جاوا را انتخاب کنید باید به این نکته دقت داشته باشید که اول شی گرایی خود را قوی کنید و مفاهیم رو یاد بگیرید. اگر از زبانی از زبانهای خانواده C قصد داشته باشید سوییچ کنید روی جاوا کارتون خیلی راحتتر خواهد بود. زیرا که سینتکس جاوا خیلی به C,C++, C#, … شباهت دارد.
تفاوتی که جاوا با زبانهای دیگر دارد این است که شی گرایی را به صورت کامل رعایت میکند. این زبان به صورت زبان ماشین کامپایل نمیشود و به صورت کدهای ماشین مجازی کامپایل میشود که میتوان آن را در محیط های مختلف اجرا کرد. از تفاوتهای دیگر وجود کتابخانههای متعدد و متنوع برای جاوا است که هم به صورت داخلی آنها را دارد و هم میتوان از کتابخانههای بیشتر به صورت خارجی استفاده کرد. اگر بخواهیم تفاوت جاوا با زبانهای دیگر را بیان کنیم باید جاوا را با یک یک زبانهای برنامه نویسی مقایسه کنیم و تفاوت را بدانیم ولی برای مثال تفاوت جاوا با پایتون این است که پایتون برای یادگیری سادهتر است چون سینتکس سادهتری دارد. جاوا یک زبان کامپایلری است ولی پایتون مفسری است برای نوشتن یک برنامه باید در جاوا تعداد خطوط بیشتری نسبت به پایتون نوشته شود.
برای یادگیری میتوانید از مقالات، کتابها و ویدیوها و یا حتی کلاسهای حضوری استفاده کنید. بستگی به شخصیت شما و روحیه شما میتوانید با هر ترکیبی که مایل باشید یادگیری را شروع کنید. فقط برای اینکه یادگیری مؤثر باشد باید به صورت دائمی و پیوسته تمرین کنید. دائم در حال تمرین کردن باشید و یادگیری. برای تثبیت یادگیری در فروم ها و انجمنها شرکت کنید و سؤال بپرسید و سؤالات را پاسخ دهید. برای خودتان پروژه تعریف کنید و آن را انجام دهید. برای بهتر شدن کد نویسی میتوانید انواع پروژه ها را در سایتهایی مانند github دریافت کنید و بررسی و مطالعه کنید.
امروزه شاید بتوان گفت که یکی از بخشهایی که از زبان جاوا بسیار استفاده میشود در برنامه نویسی اندروید است. از زمان تولد سیستم عامل اندروید جاوا به عنوان زبان برنامه نویسی برای تولید برنامه برای این سیستم عامل ارائه شده است و هنوز هم یکی از بهترین زبان برای تولید برنامه برای سیتسم عامل اندروید است. سیستم عامل اندروید هم یکی از پراستفاده ترین سیستم عامل های موبایل ها و تلویزیونها و ابزارهای هوشمند می باشد. ولی این تنها کاربرد جاوا نیست. امروزه جاوا به عنوان یکی از زبانهای backend وب سایتها و برنامههای موبایلی استفاده میشود. همچنین در تولید زیرساخت های بسیاری از زبان جاوا استفاده شده است.
جواب کاملاً مثبت است. سن جاوا بیشتر از 25 سال است ولی هنوز قدیمی نشده زیرا که به صورت مرتب این زبان آپدیت میشود. جاوا هنوز جزو بهترین و محبوبترین زبانهای برنامه نویسی دنیا است. جاوا یک زبان بسیار قدرتمند است که حتی با ظهور زبانهای جدیدتر کاربرد خودش را دارد. شاید جاوا برای نوشتن برنامه به سادگی پایتون یا روبی نباشد ولی هنوز در بسیاری از دانشگاهها برای آموزش برنامه نویسی از جاو استفاده میشود. همچنین شرکت های بزرگ بسیاری مانند eBay و Uber از این زبان برای کسب و کار خود استفاده می کنند. یکی از کاربرد های جاوا استفاده گسترده از آن در اینترنت اشیاء و محاسبات ابری (cloud computing) است.
در ایران بیشتر بازار کار یا در حوزه وب خلاصه شده است و یا موبایل. در حوزه برنامه نویسی موبایل بازار جاوا بسیار خوب است. زیرا همانطور که گفته شد جاوا زبان اصلی برای اندروید می باشد. برای برنامه نویسی وب رقبای جاوا بیشتر از موبایل هستند برای مثال در ایران تکنولوژی های دات نت و پایتون شاید بیشتر از جاوا استفاده شوند. ولی برای بسیاری از زیرساخت های نظامی و بانکی هنوز از جاوا استفاده می شود.
در ایران بیشتر بازار کار یا در حوزه وب خلاصه شده است و یا موبایل. در حوزه برنامه نویسی موبایل بازار جاوا بسیار خوب است. زیرا همانطور که گفته شد جاوا زبان اصلی برای اندروید می باشد. برای برنامه نویسی وب رقبای جاوا بیشتر از موبایل هستند برای مثال در ایران تکنولوژی های دات نت و پایتون شاید بیشتر از جاوا استفاده شوند. ولی برای بسیاری از زیرساخت های نظامی و بانکی هنوز از جاوا استفاده می شود.
خب با توجه به توضیحاتی که داده شد برای ورود سریعتر به بازار کار میتوان برنامه نویسی اندروید را به عنوان هدف انتخاب کرد و جاوا را باهدف یادگیری برنامه نویسی اندروید مطالعه کرد.
در حوزه موبایل شما در درجه اول باید برنامه نویسی جاوا را بلد باشید و سپس به سراغ سیستم عامل اندروید رفته و مفاهیم تولید برنامه برای سیستم عامل اندروید و کار با آن را یاد بگیرید. مفاهیمی مانند intent, activity, view, …. همچنین در این میان باید کمی با زبان نشانه گذاری xml هم آشنا باشید تا بتوانید واسط کاربری اندروید را طراحی کنید. در قدم آخر به کتابخانههایی که برای سیستم عامل اندروید ارائه شده است مراجعه کنید و آنها را یاد بگیرید.
در حوزه وب قدیمی ترین راه این است که از تکنولوژی jsp برای پیادهسازی وب سایتها استفاده کنیم. برای این کار بعد از یادگیری زبان جاوا باید با ابزارهای ارتباطی با دیتابیس ها مانند jdbc آشنا شویم. بعد از آن برای طراحی صفحات باید با زبان HTMLو CSS آشنا باشیم در نهایت با استفاده از تکنولوژی jsp صفحات را با بخش backend که با زبان جاوا نوشته شده است ارتباط می دهیم. البته این روش قدیمی به خاطر مشکلات و پیچیدگی های برنامه نویسی کمتر استفاده می شود. در حوزه وب میتوان از فریمورک های ارائه شده برای وب مانند Spring, play استفاده کرد. که برای هرکدام از این فریمورک ها شما باید زبان جاوا را بلد باشید و همچنین بتوانید صفحات وب را طراحی کنید. حال بعد از آن باید به سراغ فریمورک مورد نظر رفته و آن را یاد بگیرید.
یادگیری زبان جاوا مزایای بسیار زیادی دارد و می توانید با آن پیشرفت بسیار زیادی کنید. اگر واقعا قصد دارید که این زبان را یاد بگیرید هر چه زودتر شروع کنید و پیش بروید و از حاشیه هایی که شما را از هدف اصلی دور می کند سرسختانه دوری کنید. مطمئن باشید که نتیجه تلاش خودتان را خواهید یافت.
بنیانگذار توسینسو و برنامه نویس
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود