مقدمه
در سری مقالات مربوط به Java قصد دارم تا آموزش در این زمینه بیشتر از پیش به روش انتقال تجربه و دانش ارتقا پیدا کند. در حال حاضر به عنوان مدیر فنی و البته همچنان برنامهنویس مشغول به کار هستم. می توانید برای ارتباط با من از jimmyheller@ در توییتر استفاده کنید. بسیاری از مطالب را برای اینکه ساده سازی کنم خلاصه و تنها به صورت سطحی به آنها اشاره می کنم تا چالش جدیدتری ایجاد نکنم. ممکن است شما یک جاوا کار حرفهای باشید، پس خوشحال خواهم شد تا نظرات شما را هم در این مقالات اعمال کنم.
در این مقاله به این خواهم پرداخت که چرا با گذشت زمان بسیار زیادی که Java به عنوان یک زبان بسیار مهم در برنامهنویسی مطرح شده، هنوزتعداد برنامه نویسهای Java بسیار کمتر از نیاز میباشد. برای این کار ابتدا شکل و نحوه آموزش افراد را بررسی خواهم کرد و سپس راه حلی جهت بهتر شدن اوضاع ارائه خواهم کرد.
سیستم آموزش در Java
به صورت مستند شده Java در دو ویرایش (بیشتر از این است اما فعلا با همین دو تا راضی شوید) ارائه میشود، JavaSE و JavaEE که بخش اول تمامی اجزای مورد نیاز برای برنامه نویسی در زبان جاوا را دارا می باشد. اما حقیقتا با یادگیری آن تنها میدانید که زبان برنامه نویسی جاوا چگونه کار می کند و چگونه در آن باید کدها نوشته شوند. بسیاری از مبتدیان همان ابتدای کار این زبان را رها میکنند چرا که باید قبول کنیم زبان آسانی نیست. اما نکته مهمتر اینجاست که حتی با یادگرفتن JavaSE هم شما تنها نیمی از راه را رفتهاید. بخش بسیار مهم کار و در واقع به قول قدیمیها پول، در JavaEE میباشد. این بخش که جدیدا قرار شده تا JEE نامیده شود، مجموعهای از تمام قوانین، چارچوب (؟) ها و اصطلاحا specification هایی است که یک برنامه نویس جاوا باید بداند و از آن ها استفاده کند. در خصوص اینکه چگونه از آن ها باید استفاده کنیم بعدتر توضیح خواهم داد.
آموزش Java در ایران
خوشبختانه در سالهای اخیر آموزش Java در ایران بسیار فراگیر شده است. به خاطر دارم که سال 90 وقتی اولین کلاس خودم را برگزار می کردم هنوز کلاسهای برگزار شده در تهران به تعداد انگشتهای دست نمیرسید. اما امروز حتی کلاسهای آنلاین و ویدئویی نیز برگزار می شود که این خود مایه مباهات است.
اما قسمت بد ماجرا آنجاست که تمام دانش آموختههای جاوا تنها همان بخش JavaSE را آموختهاند. دورههای پیشرفتهای هم که در حال حاضر برگزار میشوند افراد را برای محیط کار آماده نمیکنند.
منظور از آمادگی تنها دانش و تکنولوژیها نیست، بلکه بسیاری از موارد غیر درسی و معنوی در این موضوع دخیل میباشد.
آماده نبودن برای بازارکار
همانطور که گفتم در تمامی دورههایی که تا به حال برگزار شدهاند بیشتر بر وجه ارائه کردن دانش به دانشجویان تاکید شده اما هرگز به آنها استفاده کاربردی و یا توضیح شرایط بازار کار داده نمیشود. از همین جهت تمامی این افراد با چند مصاحبه اول خود سرخورده و در نتیجه انگیزه تلاش برای ادامه را از دست میدهند.
در یکی دو سال گذشته بیشتر افرادی که برای استخدام به من مراجعه میکردند به آموزشی که در کلاس مورد نظر خود دیده بودند بسیار میبالیدند، اما با چند سوال ساده میتوانستم موجه شوم که او بیشتر از کلاس خود تلاش نکرده و تنها در حال تکرار موارد کلاس خود میباشد.
این موضوع ناشی از آن است که اصولا در کلاسها اساتید تذکری مبنی بر اینکه آنچه در این کلاس میآموزید تمام علم نیست، نمیدهند. طبیعتا دانشجو نیز برای یافتن مطالب بیشتر نیاز به راهنمایی دارد که این راهنمایی هم صورت نگرفته.
به همین دلیل در جامعه برنامهنویسی مواجه هستیم با تعداد زیادی از افرادی که جاوا را آموختهاند، اما در هنگام مصاحبه ناتوان هستند. چرا که مصاحبه کننده از یک فضای حرفهای و در واقع در راستای نیاز کاری خود طرح سوال میکند اما فرد مصاحبه شونده برای این محیط آموزشی ندیده است.
آفت دیگر کلاسهای آموزشی به وجود آوردن حس غرور در دانشجویان میباشد که متاسفانه این بدترین نوع آموزش میباشد. بعد از پایان دوره فرد یادگیرنده، تصور دارد که هیچ موضوع دیگری نیست که او نیاز به یادگیری داشته باشد. به همین دلیل همه مسایل را از بالا به پایین می بیند که خب نتیجه آن هم مشخص خواهد بود.
مسایل مالی
اما همه موارد بالا شاید آنقدر در نتیجه تاثیر نداشته باشند که عامل مالی تاثیر داشته باشد. با توجه به شرایط مالی کشور تمامی دانش آموختههای دانشگاههای کشور با یک نا امیدی اولیه فارغ التحصیل میشوند. همه آنها تصوری از بازار کار واقعی ندارند و دوست دارند تا در اولین کار خود با حقوق مناسبی شروع به کار کنند اما غافل از اینکه مانند آنها و با سطح دانش آنها کم نیست. من به عنوان یک برنامه نویس دو سال اول کار خود را تقریبا رایگان کار کردم تا بتوانم تجربه کسب کنم. بعد از این مدت هم با حقوق نازلی ادامه کار دادم و در سالهای بعد هرچقدر که تجربه و توان فنیام زیادتر میشد، توان چانهزنی من نیز به همین ترتیب افزایش پیدا میکرد. اما این موضوع باعث میشد تا من همیشه اعتماد به نفس خوبی در خصوص تواناییهای خودم داشته باشم.
خیلی از افرادی که برای مصاحبه به شرکت ما آمدند، بعد از مراحل فنی (با اینکه به آنها اعلام کردم که از لحاظ فنی شاید چندان تجربهای نداشته باشند) در خصوص حقوق و مسایل مالی شدیدا محافظه کار و غیرقابل مذاکره نشان دادند. البته که این موضوع ربطی به آموزشهای جاوا نداشته و باید فرهنگ تلاش و ممارست در کشور تقویت شود.
مشکل کار با باتجربهها
پاراگرافهای قبلی در خصوص افرادی بود که به تازگی آموزش دیدهاند اما در کشور ما کم نیستند افرادی که دانش و تجربه کافی برای احراز یک پست برنامه نویس Java را داشته باشند. چه بسا در حال حاضر کشور ما در حوزههای مهمی مانند بیمه، بانکداری، دولت الکترونیک و .... مدیون این افراد باشند. پس مشکل کار کجاست؟
آنها سر کار هستند!!!
بله، در شرایط فعلی برنامه نویس خوب مشغول به کار است و کارفرما هم به راحتی او را از دست نخواهد بود و گاها مواردی در شرکتهای کوچکتر بوده است که افراد فنی از مدیرمالی نیز حقوق بیشتری دریافت کردهاند!
راه حل مشکل
طبق معمول راه حل مشکل در آموزش میباشد و لاغیر! تمامی اساتید و افرادی که در این حوزه فعالیت میکنند به خوبی میدانند که فضای کسب و کار امروز به چه شکل میباشد. درست است که تعداد جای خالی افراد در شرکتها در حال حاضر مناسب میباشد اما هنوز هم تعداد افراد متخصصی که بتوانند کارفرمایان را جهت دریافت شغل مورد نظر ترغیب کنند کم است. افرادی هم که در این قسمت موفق شوند آنقدر مبلغ بالایی درخواست میدهند که تقریبا باید از استخدام آنها صرف نظر کرد. پس باید بتوانیم با آموزش در هر دو قسمت تعادل مناسب را ایجاد کنیم. دانش خوب به همراه توقع مناسب از وضعیت مالی، شاید بتواند راه حل مناسبی باشد.