اگر مروری گذرا بر کامنت بازدید کنندگان وبلاگ داشته باشیم ، پرسشی که بیش از همه ، از سوی دوستان مطرح شده این هست که چه مسیری را برای آینده شغلی یا تحصیلی خود ترسیم کنیم و چکونه این مسیر را بپیماییم؟
در این پست که بویژه در پاسخ به آخرین پرسش در این زمینه از سوی یکی از کارشناسان نرم افزار که پس از مدتی شغل خود را رها کرده و به مناسبت انجام امور مادری ، مدتی از کار و تحصیل فاصله گرفته ؛ نوشته می شود ، سعی دارم تا راهکاری عملی و واقعی برای این عزیزان ارائه دهم و امید دارم مفید واقع گردد.
یکی از انتقادهای موجود به نظام آموزشی کشور و بویژه در دوره تحصیلات دانشگاهی ، عدم ارتباط بین صنایع و دانشگاهیان عنوان می شود که مکررا نیز مورد تاکید قرار می گیرد و البته در این سالها تلاش شده تا به انحاء مختلف ، این فاصله کاهش یاید و این کار با پذیرش طرحهای تحقیقاتی از سوی دانشگاهها به کارفرمایی بخش خصوصی و یا صنایع وابسته به دولت ، رونقی هر چند کمرنگ به خود گرفته است.
اما در زمینه علوم مربوط به فن آوری اطلاعات ، اعم از سخت افزار و یا نرم افزار ، و بویژه نرم افزار ، آنچه بیش از سایر انتقادات ، قابلیت پرداختن دارد ، موضوع عدم تناسب میان دروس و محتوای درسی نظام دانشگاهی با واقعیتها ، نیازها و پیشرفتهای روز این رشته های دانشگاهی است.
در همین راستا ، عدم اطلاع دقیق اساتید گروههای آموزشی ، بویژه حرفه ای نبودن ایشان در حوزه آموزشی خود (بدلیل اشتغال دائم به امر آموزش و عدم انجام پروژه های کاربردی حرفه ای و ….) به این امر دامن زده و از سویی تحول در حوزه مورد بحث را با کندی مواجه ساخته و از سوی دیگر باعث شده حتی اساتیدی که تلاش داشته اند با نو آوریهای شخصی و مطرح کردن فن آوریهای جدید در لابه لای سرفصلهای آموزشی مصوب ، بدلیل عدم آشنایی دقیق با نیاز بازار و صنایع و گاهی حرفه ای نبودن در حوزه مورد نظر ، از روشهای غیر علمی استفاده نموده و یا راهکارهایی را برای هدایت دانشجویان بکار گیرند که گرچه از نظر ایشان در مقایسه با نظام سنتی حاکم بر دانشگاهها بسیاز خلاقانه و به روز بوده لکن هنوز با واقعیات و نیازهای واقعی جامعه در این حوزه فاصله ای بسیار آشکار دارد.
بعنوان نمونه ، در بسیاری از دانشگاههای کشور ، اساتید اقدام به معرفی محیطهایی همچون ویژوال بیسیک و یا سی شارپ و ترغیب دانشجویان به یادگیری آنها نموده و گاهی نیز در غالب پروژه های دانشجویی آنها را در مسیر یادگیری آنها قرار می دهند.
در تمامی موارد فوق ؛ نگاه به دانشجو ، و بعنوان نمونه ، نگاه به دانشجوی نرم افزار ، نگاه به شکل یک برنامه نویس و بهتر است بگوییم کد نویس است.در حالیکه امروزه ، یک کارشناس نرم افزار ، بیش از آنکه نیازمند یادگیری و تجربه محیطهای متنوع کد نویسی باشد ، و یا خود را درگیر یادگیری زبان خاصی از زبانهای برنامه سازی نماید ، نیازمند داشتن دانشی عمیق در تحلیل نیازهای ارائه شده ، طراحی راه حل مناسب ، و در نهایت داشتن دانش کافی برای انتخاب محیط مناسب جهت توسعه نرم افزاری است که بتواند بعنوان یک راه حل به نیاز پاسخ گوید.
کمتر کارشناس نرم افزاری را دیده ام که حتی با داشتن چند سال سابقه کاری ، بتواند در برخورد با نیاز مشتریانش ، تحلیلی دقیق ارائه دهد و یا حتی بتواند ، محیط مناسب توسعه ، چه از نظر برنامه سازی ، و چه بانک اطلاعاتی مناسب و یا روشهای پیاده سازی را مقایسه نموده و در نهایت ، روش مناسب را انتخاب و توصیه نماید.
بدیهی است در صورتیکه بتوانیم در برخورد با هر نیاز ، تحلیلی درست ارائه دهیم ، بر اساس آن می توان (البته در صورت داشتن دانش کافی) اقدام به انتخاب پلاتفرم و محیط توسعه و همچنین بانک اطلاعاتی مناسب نمود.
و پس از انجام موارد فوق ، با توجه به منابع بسیار فراوان آموزشی ، کتابها ، سایتهای اینترنتی و….. که عمدتا نیز ساختاری خودآموزی دارند ، هر کارشناسی حتی با کمترین تجربه در برنامه نویسی ، براحتی خواهد توانست ، محیط انتخاب شده را فراگرفته و نهایتا محصول نرم افزاری مورد نیاز را تهیه نماید.
بنابر این به نظر می رسد علاوه بر دروس رایج دانشگاهی در رشته هایی مانند نرم افزار ، باید دروس دیگری نیز قرار گیرند که اولا با نیازهای واقعی جامعه تناسب داشته و ثانیا به مقایسه روشهای مختلف برنامه سازی و زبانهای مختلف و بانکهای اطلاعاتی محتلف و …. به بیانی کاملا واقعی و عملیاتی بپردازند.
پرسش بعد ، آنست که اگر شما سالها از دریافت مدرک کارشناسی تان گذشته باشد ، و اکنون تمایل به ادامه آن داشته باشید ، چه باید کرد؟
به نظر من ، از ابتدا باید تکلیف خود را روشن کنید که آیا علاقمندی شما به تحصیل است و یا کار و افزایش مهارتهای شغلی در زمینه تحصیلی؟
گرچه توصیه می کنم حتی اگر تمایل به ادامه تحصیل نیز داشته باشید ، دست کم مدتی را به افزایش مهارتهای خود بر اساس توصیه های زیر بپردازید و سپس با توشه ای از تجربیات واقعی و چشمانی باز تر به ادامه تحصیل بپردازید تا پس از ادامه تحصیل و احیانا پیوستن به جامعه اساتید و مربیان ، علیرغم اغلب مربیان و اساتید ، بتوانید دانشجویانی کارآمد تربیت نمایید و هم با داشتن دیدی دقیقتر از جامعه امروزی ، منابع درآمدی و شغلی بهتری برای خود فراهم آورید.
اما یکی از بهترین و موثرترین راههای افزایش مهارتهای شغلی ، در حوزه نرم افزار ، انتخاب یک پروژه کوچک و انجام آن بطور کامل متناسب با نیازهای واقعی بازار است.
بعبارت دیگر ، به اطراف خود دقیق تر نگاه کنید.زمانیکه در خیابان در حال قدم زدن هستید و از مقابل فروشگاهها و سازمانها عبور می کنید ، و یا گاهی برای تجدید دیدار به شرکت و یا سازمان دوستان خود مراجعه می کنید و …. همه جا دقیق ببینید.در میان دیده های خود ، حتما متوجه خواهید شد که بسیار امور هستند که می توان با استفاده از یک راه حل نرم افزاری ساده ، به انجام امور سرعت بیشتری داد ، دقت را افزایش داد و نهایتا منجر به تسهیل امور جاری شد.
چند ایده از این ایده ها را در دفترچه ای یادداشت نمایید.پس از چند هفته ، دفترچه ای خواهید داشت که حاوی تعداد زیادی ایده برای تولید نرم افزارهای متنوع خواهد بود.از میان آنها ، ایده ای را انتخاب نمایید که از نظر پیچیدگی ، دارای کمترین پیچیدگی باشد ، بعنوان نمونه دارای فرمهای ورود اطلاعات کمتری باشد و….
هنگام انتخاب ایده کوچکتر ، بین ایده های کوچک ، ایده ای را انتخاب نمایید که لذت بیشتری را از انجام آن می برید.مثلا در میان ایده ها شاید پروژه ای وجود دارد که اجرای آن رفاه بیشتری ایجاد می کند و اگر شما از نظر شخصیتی از ایجاد رفاه برای دیگران لذت می برید ، این موضوع یک پارامتر برای ترجیح دادن آن ایده می تواند باشد.
اما علاوه بر موارد فوق ، دقت کنید پروژه انتخاب شده حتما شامل موارد زیر باشد:
۱- حداقل دارای یک یا دو فرم وروداطلاعات باشد.
۲- حداقل دارای یک یا دو گزارش پارامتریک باشد.
۳- حتما چند کاربره باشد.
پس از انتخاب ایده ، مدتی را برای مقایسه محیطهای مختلف برنامه سازی برای اجرای بهتر آن پروژه را ، مطالعه کنید.محیطهایی مانند دلفی و ویژوال استودیو محیطهایی نسبتا مناسب هستند که می توانید در فهرست مقایسه قرار دهید.یک مطالعه جامع انجام دهید تا بتوانید به تجربه کاملی در نحوه انتخاب محیط توسعه و زبان برنامه سازی در برخورد با پروژه های مختلف دست یازید.سرعت و کارایی نرم افزار تولید شده در کدامیک بیشتر است؟ کدامیک از تنوع کنترلها و کامپاننتهای بیشتری برخوردار است؟ کدامیک در برخورد با داده های فارسی مشکلات کمتری دارد؟ حجم پرونده اجرایی تولید شده توسط هرکدام ، چه اندازه است و محصول کدامیک فضای کمتری را در حافظه رایانه اشغال می کند؟
زمان تولید نرم افزار انتخاب شده با کدامیک کمتر است؟ و…………
پس از یافتن فهرستی مقایسه ای ، می توانید بر اساس زمانی که تمایل دارید طی آن ، پروژه به پایان برسد ، محیط مناسب را انتخاب نمایید.سپس ، مرحله فوق را برای انتخاب بانک اطلاعاتی مناسب انجام دهید.محیط اکسس ، سیکوئل سرور و…. چند محیط رایج را انتخاب کنید و مطالعه جامعی را در مورد آنها از نظر آیتمهای مهم در انتخاب بعنوان بانک اطلاعاتی مناسب برای توسعه نرم افزار را فهرست نموده و در هر آیتم آنها را با یکدیگر مقایسه کنید.
سرانجام بر اساس مطالعه فوق ، بانک اطلاعاتی مناسب برای پروژه انتخاب شده را برگزینید.
اکنون زمان یادگیری است.و همزمان با یادگیری و مرحله به مرحله ، پروژه را تولید نمایید.
یک تجربه کوچک اما کارآمد.اگر مراحل گفته شده را بخوبی انجام داده باشید ، و هر اندازه وسعت مطالعات شما بیشتر باشد ، راه خود برای آینده شغلی یا تحصیلی را بهتر و روشن تر می بینید.
موفق باشید.






