کدامیک از ما با سواد تریم؟

در هر اجتماعی، آدم های مختلف با توانایی های متفاوتی وجود دارند و هیچ دو نفری مثل هم فکر نمی کنند و دارای توانایی های یکسان نیستند. آدم ها را می توان در اجتماع های مختلف بر اساس معیارهای خاصی دسته بندی نمود. این معیارها بستگی به اجتماعی دارد که شخص مورد نظر در آن قرار دارد. البته آدم ها در اجتماع های مختلفی حضور دارند و در هر اجتماع یک رفتار مشخص و توانایی خاص خود را نشان می دهند. ممکن است من در محیط کار آدم موفقی باشم اما در محیط خانواده ام بسیار ناموفق ظاهر شوم.
اجتماع کوچکی مثل یک دانشگاه را در نظر بگیرید، باز هم کوچکتر از آن دانشجویان یک رشته خاص مثلاً دانشجویان رشته نرم افزار را در نظر بگیرید. جدا از انگیزه های مختلفی که این افراد برای انتخاب این رشته و ورود به دانشگاه داشته اند، هر کدام از این دانشجویان دارای توانایی ها و ضعف های خاص خودشان هستند. به صورت معمول در چنین اجتماعی برتری از آن کسی است که از سواد بالاتری برخوردار باشد. متاسفانه سواد در محیط های آکادمیک ما تعریف مشخصی ندارد تا بتوان بر اساس آن اشخاص را طبقه بندی کرد.
من از تجربه و شناخت خودم شروع می کنم. یکسری از همکلاسی ها و هم رشته ای های من فقط در درس های خاصی قوی هستند، یکسری دیگر در درس های پایه مثل ریاضی و فیزیک قوی هستند، یکسری در درس های تخصصی توانایی دارند، تعداد بسیار محدودی از نظر عملی چیزی برای گفتن دارند و بلاخره دسته ای هم به قول خودمان از مرحله پرت هستند و از درس ها چیز خاصی نمی فهمند. شاید تعداد بسیار کمی، هم در دروس پایه و هم در دروس تخصصی و عملی قوی باشند. من در رشته خودم (بر اساس تجربه ای که داشتم) کسی را سراغ ندارم که از همه توانایی های ذکر شده در بالا برخوردار باشد و از نظر عملی نیز وافعاً حرفه ای باشد.
به عنوان مثال من نمی توانم یک معادله بسیار سخت دیفرانسیل را حل کنم اما می توانم به بهترین نحو لایه دسترسی به داده ها در یک نرم افزار تجاری را پیاده سازی کنم. من نمی توانم 240 صفحه اندیشه اسلامی حفظ کنم و 20 بگیرم اما می توانم یک سیستم نرم افزاری هرچند کوچک را تحلیل و پیاده سازی کنم. همکلاسی من می تواند سخت ترین مسائل آمار و احتمالات مهندسی را حل کند اما نمی تواند معماری چند لایه نرم افزاری را درک کند و یا حتی چند خط کد ساده بنویسد. او توانایی حل مسائل ریاضی را دارد اما قدرت درک مسائل واقعی را ندارد و بسیاری از مفاهیم شیء گرایی برای او جزوی از کابوس های زندگی اش به حساب می آیند.
مدرس درس طراحی الگوریتم ما می تواند سخت ترین مسائل این درس را با منطق ریاضی ثابت کند اما قدرت تحلیل مسائل ساده نرم افزاری را ندارد و در بیشتر موارد در نوشتن الگوریتم به یک زبان برنامه نویسی مشکل دارد. دوست من می تواند یک وب سایت را به سریع ترین و زیباترین  شکل ممکن با PHP طراحی کند ولی نمی تواند مسائل شیء گرایی و مهندسی نرم افزار را درک کند.
این مثال هایی که گفتم را من واقعاً تجربه کردم. حالا سئوالی که چند وقت است ذهن من را مشغول کرده این است که واقعاً کدامیک از ما با سوادتریم؟ شاید جواب این سئوال به تعریف واژه «سواد» بستگی داشته باشد. اما می خواهم نظر شما را بدانم، کدامیک از ما با سوادتریم؟

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

یافتن کار نیمه وقت و کسب تجربه در زمینه نرم افزار – قسمت سوم

قسمت سوم : انجام پروژه های نرم افزاری برای کسب تجربه و احیاناً درآمد در زمینه نرم افزار برای دانشجویان این رشته

همانطور که در این مطلب اشاره کردم، یکی از راه های کسب تجربه در زمینه رشته نرم افزار، وارد شدن در بازار کار و انجام پروژه های نرم افزاری است. انجام پروژه در زمینه نرم افزار می تواند به هر نحوی باشد. ما در اینجا نمی خواهیم در مورد روش های انجام پروژه و ابزارهایی که ممکن است به کار بگیرند تا یک پروژه ی نرم افزاری را به ثمر برسانند صحبت کنیم، بلکه بحث ما در مورد چگونگی این کار با امکانات و شرایط یک دانشجوی رشته نرم افزار خواهد بود.

انجام پروژه های نرم افزاری در دوران دانشجویی

شاید یکی از در دسترس ترین راه های کسب تجربه و درآمد در زمینه نرم افزار، همین انجام پروژه برای اشخاص، شرکت ها و یا سازمان های مختلف باشد. به دلیل تعدد و در دسترس بودن ابزارها و گران نبودن آن ها (البته در ایران) نسبت به رشته های تخصصی دیگر، برخی افراد کار کردن در زمینه نرم افزار و انجام پروژه را در مقابل صنایع دیگر راحت تر می پندارند. البته در برخی مواقع هم همین طور هست. اما پروژه های نرم افزاری به علت ذات ناملموس آن ها، مشکلات و دردسرهایی دارند که یک دانشجوی کم تجربه نمی تواند در ابتدای کار آن ها را حدس بزند و راه چاره ای برای حل آن ها بیندیشد. البته اگر دانشجو بتواند پروژه هایی را در زمان دانشجویی خود به ثمر برساند، در آینده روی موقعیت شغلی او بسیار تاثیر خواهد داشت.

روال انجام یک پروژه ی نرم افزاری به این صورت است که شما به عنوان یک پیمانکار پروژه ای را دریافت می کنید و آن را در زمان معینی با توجه به پارامترها و مشخصاتی که کارفرما برای شما تعیین نموده، به انجام می رسانید. در اینجا، تشخیص باکیفیت بودن یا نبودن خروجی پروژه بر عهده کارفرما خواهد بود و شما اصولاً نمی توانید دخالتی در تعیین مشخصات نرم افزار داشته باشید. در واقع شما نرم افزاری می سازید که بتواند نیازهای کارفرما را تامین نماید و خروجی های مطلوب او را تولید کند.

به یاد داشته باشید که مشکلات و دردسرهایی که ممکن است یک پروژه با خود به همراه داشته باشد هیچ گاه همان ابتدای کار خود را نشان نمی دهند. با گذشت زمان، هنگامی که پروژه را آغاز کردید و به علت بی تجربگی اشتباهی از شما سر زد یا در تخمین قیمت و زمان به مشکل برخوردید، آن وقت پشیمانی دیگر سودی برای شما نخواهد داشت. از مشکلاتی که در پروژه های نرم افزاری وجود دارند می توان به چند مورد زیر اشاره نمود :

  • عدم شناخت کافی کارفرما از ماهیت پروژه های نرم افزاری : در اکثر موارد، کارفرمایی که می خواهد یک پروژه نرم افزاری را سفارش دهد، از ماهیت پروژه های نرم افزاری بی اطلاع است. وضع شما وقتی وخیم تر می شود که کارفرما یا کسانی که قرار است با نرم افزار شما کار کنند، سواد کامپیوتری هم نداشته باشند.
  • عدم شناخت دقیق کارفرما از پروژه ای که می خواهد سفارش دهد : ممکن است خود کارفرما نیز تعریف دقیقی از کاری که می خواهد این نرم افزار برایش انجام بدهد، نداشته باشد. باز هم اگر کارفرما با برنامه های کامپیوتری آشنا نباشد وضع شما وخیم تر از قبل خواهد شد!
  • تخمین اشتباه قیمت و زمان در ابتدای پروژه : حتی اگر بر اساس معیارهای مهندسی نرم افزار، موقعیت و مشخصات پروژه هم دست یه تخمین قیمت و زمان زده باشید، باز هم امکان اشتباه برای یک دانشجوی بی تجربه وجود دارد.
  • امکان عدم همکاری کارفرما با شما : امکان دارد در اواسط انجام پروژه کارفرما به هر دلیلی پشیمان شود و دیگر قصد همکاری با شما را نداشته باشد. در این حالت اگر قرارداد سفت و محکمی نبسته باشید مطمئن باشید که ضررهایی جبران ناپذیری را متحمل خواهید شد. به علت بی تجربگی دانشجویان احتمال سوء استفاده از طرف کارفرمایان بسیار زیاد است.
  • عدم شناخت کافی شما در مورد پروژه : همه تقصیرها و بی سوادی ها را نمی توان به گردن کارفرمایان انداخت. امکان دارد پروژه ای که شما قرار است آن را انجام دهید دارای پیچیدگی هایی باشد که شما نتوانید با دانش خود آن را به انجام برسانید. امکان دارد در بحث تکنیکی قضیه کم بیاورید، در این موقیعت یا مجبورید اعتبار خود را از دست بدهید و وسط کار پروژه را رها کنید و یا مجبورید با قیمتی حتی گرانتر پروژه را به کس دیگری محول کنید. در هر صورت شما ضرر خواهید کرد.
  • استرس شدید و ریسک زیاد : البته ممکن است در پروژه های کوچک استرس نداشته باشید و به در انجام آن به مشکل زیادی برخورد نکنید. اما وقتی سیستمی که قرار است پیاده کنید جدید و کمی پیچیده باشد، آن هنگام است که استرس و ریسک های پروژه خود را نشان می دهند. استرس زیاد برای یک دانشجو غیر قابل تحمل است و امکان لطمه زدن به تحصیل و بخش های دیگر زندگی او وجود دارد.

البته من قصد نداشتم که فقط از بدی های این روش بگویم. بدون شک روش انجام پروژه مزایای بسیاری دارد که شما بهتر از من از آن ها اطلاع دارید. در این روش نسبت به روش های دیگر اصولاً دستمزد شما بالاتر است، اما به مراتب ریسک های آن نیز بیشتر خواهد بود. به نظرم بهتر است قبل از گرفتن هر پروژه ای ابتدا امکان سنجی کنید; یعنی ببینید آیا می توانید با دانش خود و با استفاده از ابزارهای موجود این پروژه را انجام دهید؟ شخصیت کارفرما را حتماً در نظر بگیرید، اگر کارفرما خودش هم از چیزی که می خواهد برایش بسازید تعریف درستی ندارد به هیچ وجه پروژه را قبول نکنید.

همیشه زمان و قیمت پروژه را دست بالا بگیرید و قبل از شروع پروژه یک قرارداد محکم با کارفرما ببندید تا احتمال سوء استفاده را به حداقل برسانید. در قراردادتان حتماً بندهایی قرار دهید که اگر کارفرما در وسط کار پشیمان شد باید خسارت بدهد. حتماً قرارداد را در دو نسخه تهیه کنید و یکی را با مهر و امضای کارفرما نزد خود نگه دارید تا اگر احیاناً پول شما را ندادند یا از نرم افزارتان سوء استفاده کردند شما مدرکی در دست داشته باشید.

به نظرم بهتر است دانشجویانی مثل خودم که پشتیبانی مالی به خصوصی ندارند و کم تجربه هستند از پروژه های بسیار کوچک شروع کنند و همان ها را به بهترین نحو انجام دهند تا بعداً به عنوان رزومه و نمونه کار ارائه کنند.

برای تکمیل بحث پیشنهاد می کنم این مطلب از وبلاگ یادداشت های نرم افزاری رادمان را حتماً مطالعه کنید.

پ.ن : در مطالبی که با عنوان «یافتن کار نیمه وقت و کسب تجربه در زمینه نرم افزار» ارسال می شوند، با دیدی متفاوت به مسئله کار کردن در دوران دانشجویی و نحوه کسب تجربه در زمینه نرم افزار برای دانشجویان این رشته خواهیم پرداخت. کامنت هایی که دوستان لطف می کنند و در زیر هر مطلب ارسال می کنند، تکمیل کننده بحث های ما خواهد بود. اگر شما هم اطلاعات سودمندی در زمینه مباحث ما دارید از من و خوانندگان وبلاگ دریغ نفرمایید و زیر پست نظر خودتان را بیان کنید.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

کمی (درد دل) در مورد رشته نرم افزار

قبلاً اگر یادتان باشد، عنوان این وبلاگ «نوشته های یک دانشجوی نرم افزار» بود. با اینکه خیلی وقت است عنوان وبلاگم را تغییر دادم اما خیلی از دوستانی که قبلاً به این وبلاگ لینک دادند، همان عنوان قبلی را در عنوان لینک من دارند. حال اگر کسی از وبلاگ این دوستان روی لینک من کلیک کند با وبلاگی روبرو خواهد شد که مطالب به در بخوری در مورد «رشته تحصیلی نرم افزار» ندارد. هرچند که خیلی وقت پیش مطالبی در مورد رشته نرم افزار و مهندسی نرم افزار نوشتم اما احساس می کنم کسی که دنبال اطلاعاتی در مورد «رشته نرم افزار» است خیلی بیشتر از این ها از نوشته های یک دانشجوی نرم افزار انتظار دارد. کمبود مطالب مناسب در مورد این رشته در سطح وبلاگستان فارسی نیز بر علت های بالا اضافه شد تا من وظیفه ی خود بدانم که در این مورد بیشتر بنویسم و رشته تحصیلی که در ایران بسیار مورد بی اعتنایی قرار گرفته (البته نه از نظر تعداد داوطلبان، بلکه از نظر کیفی) است را هرچه مناسب تر معرفی کنم و در مورد مشکلات و خوبی های آن صحبت کنم.

با مقدمه ای که در بالا ذکر کردم می خواهم در این مطلب کمی در مورد رشته تحصیلی محبوبم «مهندسی نرم افزار» صحبت کنم. این روزها اگر کسی از شما بپرسد «در چه رشته ای درس می خوانی؟!» و شما در جواب آن ها بگویید «کامپیوتر» ، مطمئن باشید طرف با پوزخندی خواهد گفت : «آخه کامپیوتر هم شده رشته، پسر 10 ساله من هم بلده با کامپیوتر خیلی کارا بکنه، مخ کامپیوتره!»… باور کنید این گقتگو کاملاً واقعیست و من آن را تجربه کرده ام. البته هر کس از من این سئوال را می کند من در جوابش می گویم «نرم افزار» نه «کامپیوتر»، حداقل اینطوری جمله های بعدی پیش نخواهد آمد چون طرف فرق نرم افزار را با کامپیوتر نمی داند. البته این طرز فکرها تا حدودی هم بی ربط نیست، وقتی یک لیسانس نرم افزار یا سخت افزار نمی تواند حتی یک ویندوز نصب کند یا چند قطعه را سوار کیس کند، نمی توان بیشتر از این انتظاری داشت. این مشکل هم بر می گردد به نظام آموزشی ما و البته به دانشجویان این رشته که بعضی وقت ها واقعاً کم سواد اند. سواد، پاس کردن واحدهای درسی نیست، سواد نمره بالا گرفتن در درس های ریاضی مهندسی و اندیشه اسلامی نیست، سواد در این رشته تخصص، آگاهی و به روز بودن است.

از طرز فکر افراد در مورد این رشته بگذریم چون این امر در ماهیت رشته نرم افزار خدشه ای ایجاد نمی کند و تقریباً در مقابل مشکلات دیگر مسئله ی مهمی نیست. یکی از مشکلات دیگری که در این رشته تحصیلی وجود دارد که البته در بسیاری از رشته های دانشگاهی دیگر هم وجود دارد اما در این رشته کمی بیشتر خود را نشان می دهد، داوطلبان بسیار زیادی است که بدون توجه به زوایای مختلف رشته نرم افزار، آینده شغلی و توانایی های آن، این رشته را برای تحصیل در دانشگاه انتخاب می کنند. البته به نظرم این مسئله در سال های اخیر کمتر شده و رشته های جدیدتر جایگزین آن شده اند و دیگر رشته نرم افزار از مد افتاد. باور کنید خیلی ها به خاطر مد جامعه سراغ یک رشته خاص می روند. این گونه افراد پس از گذراندن دو-سه ترم واقعاً پشیمان و سرخورده می شوند و هر جا که صحبتی از انتخاب رشته می شود از این رشته بد می گویند تا عدم موفقیت خود را توجیه کنند. به هر حال چه بخواهیم چه نخواهیم این دسته از افراد طیف وسیعی از دانشجویان رشته نرم افزار را تشکیل می دهند. سعی می کنم در نوشته های بعدی در مورد انواع افرادی که رشته نرم افزار را به عنوان رشته تحصیلی خود انتخاب می کنند بیشتر صحبت کنم تا به یک نتیجه ی مناسب برسیم.

بزرگترین مشکلی که رشته نرم افزار در محیط های آکادمیک کشور ما با آن روبرو است، سیستم آموزشی بسیار نا مناسب و نا کارآمد ماست. همان طور که می دانید رشته نرم افزار نسبت به رشته های علمی دیگر پیشرفت های سریع تر و بیش تری دارد. هر روز یک فناوری جدید معرفی می شود و نیاز به آموزش به روز در این رشته بسیار حیاتی است. این در حالی است که در کشور ما واحدهای درسی را بر اساس 10 سال قبل تنظیم کرده اند و دروس تخصصی ما با الگوهای 20 سال قبل تدریس می شوند. دانش اساتید این رشته همانی است که مثلاً در 7-8 سال قبل مدرک خود را گرفته اند و در این مدت هیچ چیز جدیدی به آن اضافه نکرده اند. البته حق هم دارند، به قول یکی از همین اساتید، بعد از گرفتن مدرک دو سال سربازی و پس از آن هم که گرفتار مشکلات ازدواج و مسئولیت زندگی شدند که اصلاً وقت به روز کردن دانش خود را نداشته و نخواهند داشت! این وضعیت وقتی وخیم تر می شود که بدانید مدیران رده بالا، سازمان های آموزش عالی و آموزش و پرورش نیز در همان 10-20 سال گذشته سیر می کنند و اقدامات نامناسبی انجام می دهند تا هر روز وضع این رشته تحصیلی مهم از دیروز بدتر شود. یکی از کارهای مهمی که در این زمینه انجام دادند، حذف پاسکال در دوره هنرستان و جایگزین نمودن آن با ویژوال بیسیک بوده است!!

به هر حال تا اینجا را داشته باشید تا در آینده بیشتر در مورد این موضوعات بحث کنیم. فقط در نظر داشته باشید که اگر می خواهید رشته نرم افزار را به عنوان رشته تحصیلی خود در دانشگاه برگزینید کمی بیشتر در مورد آن تحقیق کنید و اگر می خواهید در این رشته موفق باشید باید اطلاعات و دانش خود را به روز نگه دارید و خود را برای موقعیت های بسیار سخت آماده کنید.

پ.ن : معذرت میخوام که این مطلب موضوعات پراکنده ای دارد، این را در حد یک درد دل کوچک قبول کنید.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :