به این مسئله قبلا اشاره کردم که مشکل اینه که به حرف آسونه ولی در عمل کمتر کسی وقتی اول از چنین زبانها و محیطهای ساده و سریع و خوشایندی شروع کنه بعدا حاضر میشه بره با زبانها و مسائل سطح پایین تر سر و کله بزنه.
یعنی عدهء زیادی میان توی این کار و به اصطلاح برنامه نویس میشن، ولی از اول تا آخر فقط دات نت و ویژوال استودیو کار میکنن و با همون یاد میگیرن. همینطور برنامه هایی هم تحویل میدن و پولی هم درمیارن. خب واقعا این افراد حاضرن بعدش به خودشون زحمت بدن؟ واسه چی؟
طرف داره پولش رو درمیاره اسم خودشم گذاشته برنامه نویس (و با این اسم خودش رو در کنار برنامه نویسان واقعی و اصیل قرار میده) باد کولر هم میخوره پول هم درمیاره.
اکثر این افراد هم آدمهای آنچنان باهمت و اصولی کاری نیستن که ازشون انتظار معجزه بره. شیفتهء دانش و فناوری و قدرت های اصیل نیستن و از اول هدف و اولویت اولشون این نبود؛ بلکه پول بوده، بعدش اسم و شخصیت و اعتبار و خودنمایی بوده، کلا آدمهای سطحی ای هستن که به همین چیزهای سطحی دلخوش هستن.
البته نمیشه خیلی هم ازشون ایراد گرفت. درواقع نمیشه اتهام زد. شاید اصلا درست نیست بهشون بگیم سطحی و کم همت. چرا؟ چون خب طرف دوست داره به من چه به کس دیگری چه وقتی میتونه و اینطوری به چیزهایی که میخواد میرسه به کس دیگر چه مربوط. اگر کارش رو هم خوب انجام میده خب کسی چه حقی داره ازش ایراد بگیره؟
البته در اینکه کارهاشون رو خوب انجام بدن شک دارم. فکر نمیکنم کسانی که در این سطح هستن واقعا بتونن همهء کارها رو بقدر کافی خوب انجام بدن. و در یک حداقل، خیلی کارها رو میشد خیلی بهتر انجام داد.
نمونش برنامه های پر از ایراد و باگ و اعصاب خوردکنی و مسائل مسخره که توی وب و دسکتاپ میبینیم. بنده بنا به شغلم با اینطور برنامه ها سر و کار داشتم از سامانه های دانشگاهی که فقط با IE کار میکنن تا همین سیستم املاک کشوری که اونم باز فقط با IE کار میکنه تا برنامهء پروفایل تحت شبکهء املاک تا برنامهء اظهارنامهء مالیاتی و غیره. خب اینا همشون کار میکنن ولی اونقدری که باید کامل و دقیق و اصولی و بدون مشکل نیستن. بعضا مشکلات نسبتا گنده و چیزهای مسخره توشون دیده میشه و مسائل اعصاب خوردکن که بنده تاحالا چندبار دچار اینها شدم و پیگیری کردم. یعنی مواردی هست که آدم میگه یعنی برنامه نویسان اینا چقدر سواد داشتن چقدر پول گرفتن چقدر وقت داشتن چقدر زحمت کشیدن مگه تست نکردن مگه رفع اشکال نمیکنن مگه فیدبک نمیگیرن که این موارد رو درست طراحی یا اصلاح نمیکنن.
تازه اینا فقط ظاهر و اینترفیس این برنامه هاست که ما بنا به شغلمون مجبوریم باهاشون سروکار داشته باشیم و درشون ریز بشیم. حالا پشت صحنه و روی سرور و امنیت و باگ و دردسرهای خودشون چه خبره، من یکی نمیدونم و دنبالش هم نبودم چون وقت و هدفی واسه این کارها نداشتم.
خب حالا من میگم اگر بازهم مشتری های بعضی از این افراد مشکلی با کارهای اینها ندارن و کارشون لابد بقدر کافی خوبه در اون کاربرد و برنامه ها و اهداف، خب مشکلی نیست، کسی نمیگه آقا برو اصولی تر یاد بگیر کامل تر یاد بگیر سی و سی++ یاد بگیر ساختمان داده و پروتکل یاد بگیره و غیره. نه کسی نمیتونه بگه باید!
ولی بحث این باید و اینها نبودم. بلکه بنده فقط خواستم طبقه بندی دانش و توانایی و مهارت برنامه نویسها مشخص بشه و صرفا به یک اسم برنامه نویس و برنامه درست کردن و پول درآوردن، نیایم همهء افراد رو در کنار هم بذاریم.
و اونی که مبتدی هست و تازه وارد، زودتر و راحتتر روشن بشه که بسته به استعداد و علاقه و شرایط و فرصت و پشتکار خودش، چه راهی رو باید چطوری طی بکنه.
تکنسین هم میتونه پول دربیاره و برنامه بنویسه (یا شاید باید بگیم بسازه!).
شاید فرصتهای شغلی خوب و درآمد مناسبی هم داشته باشن.
اما بهرحال تکنسین است.
بجز تکنسین درجه های بالاتری هم هست و کارهای دیگری که متخصص و سطح و توان و دانش خودش رو میخواد.
بحث فرصت شغلی و درآمدش رو هم اصلا ندارم. شاید از نظر اقتصادی اصلا صرف نکنه آدم توی این دور و زمونه اونم توی کشورهایی مثل ما مثلا بخواد بره دانشمند بشه. ولی خب هدف و شرایط همهء افراد که واسه اقتصاد نیست. بعضیا هم عشق و خورگی دارن، بعضیا دنبال توانایی های گسترده هستن، دنبال قدرت بیشتر، دنبال یکجور چیزهای دیگری غیر از پول، دنبال تعالی های دیگری.
اینکه یه عده جوجه دات نت و ویژوال استودیو میان بعضی وقتا جوگیر میشن که نمیدونم یک هفته و یک روز یه برنامه درست میکنن و پول میگیرن و بعد فکر میکنن تمام برنامه نویسی و برنامه نویسان همینه و اونا خیلی زرنگ و دانا و بااستعداد بودن، خب دیگه یخورده آدم رو اذیت میکنه. یعنی این افراد حق ندارن دربارهء علم و فناوری و برنامه نویسان بزرگ واقعی و دانشمندان اظهار نظر کنن و خودشون رو کنار اونها قرار بدن؛ نباید این حیطه و اهداف و ماهیت ها و سطوح دیگر رو مخدوش کنن.
باید مشخص باشه هر آدمی هر کاری چیه و در کجاست در سلسه مراتب.
ما آدم زیاد داریم که حتی سواد هم نداشتن و ندارن اما زرنگ بودن و تلاش کردن و در تجارت و اقتصاد موفق بودن و خیلی پولدار شدن. شاید راحتتر از بزرگترین نوابغ دنیا!
ولی همه چیز که این نیست. هست؟
حالا البته بحث اینکه از چیزهای مثل دات نت و ویژوال استودیو برای شروع یادگیری برنامه نویسی شروع بشه هم خودش یک بحث جداگانه ای است و درش ابهامات و سوالات و ایرادهایی بنظر میاد.
از یک طرف این محیطها جذابه و انگیزه ایجاد میکنه، ولی از طرف دیگر باید دید عوارض و سطحی نگری های دیگری رو بوجود نمیاره و یا منجر به اون نتیجه ای که بنده گفتم نمیشه؟
البته آدم اگر خودش بخواد خودآموز شروع کنه و پیش بره خب به تشخیص و نظر خودش بستگی داره. اگر انگیزه و اراده و شرایطش رو داشته باشه خب بعدا هم میتونه بره دنبال بقیهء چیزها و کامل کردن پایه و اصولش.
ولی اینکه مثلا دوره های تحصیلی و دانشگاهی رو عوض کنن و بجای سی و سی++ و اینها از دات نت و ویژوال استودیو استفاده بشه، خیلی فرق میکنه و موارد خاص خودش رو داره.
اصلا اینا محصولات میکروسافتی و انحصاری هستن و قرار دادن اونها بعنوان پایهء اولیه در محیطهای آموزشی حداقل آکادمیک، مشکل دار بنظر میاد. حالا بحث داره که چرا و مگه چی میشه. بهرحال تاثیر میذاره هم از نظر علمی و هم از نظر شخصیتی و هم از نظر آماری و سیاسی و اقتصادی و غیره. در آینده تاثیرش دیده میشه احتمالا.
اگر برنامه نویسی رو مثل ریاضی فرض کنیم که مثلا در ریاضی اول چیزهای پایه ولی نه خیلی پیچیده مثل ضرب و تقسیم و جمع و غیره رو آموزش میدن، خب در برنامه نویسی هم قاعدتا مثلا الگوریتم و اینها رو باید اول آموزش داد. و فکر نمیکنم برای این هدف، کار کردن با چیزهایی مثل ویژوال استودیو و دات نت لازم و حتی مفید باشه. مثل اینکه در کلاسهای دبستان بیان و از ماشین حساب برای آموزش ریاضی استفاده کنن!!
نه اول طرف باید حساب کردن دستی رو یاد بگیره. بعدها از ماشین حساب استفاده کنه.
حالا ما بنا به اون قاعدهء پیچیده نبودن بیش از حد و سرخورده نکردن و کم نکردن انگیزهء دانش آموزان، میتونیم بگیم که از سی و سی++ (اونم تحت داس!!) استفاده نشه و مثلا بجاش از زبانهای ساده تر و محیطهای خوشایندتری مثل پایتون استفاده بشه و تحت ویندوز باشه و خب اگر جا داشت و موردی نداشت یخورده کار GUI و گرافیک هم توش بکنن؛ شاید اگر استادها بگن و خوب روشن کنن و به دانش آموزان انگیزه بدن، دانش آموز خودش میفهمه و از سطحی نگری و افراط در این ظواهر و تنبلی برای یادگیری مباحث بنیادین و پایه و اصول خودداری میکنه. اون چیزی که معلم و استاد و دبیر میگه واقعا میتونه روی آدم تاثیر بذاره. تاثیر عمیق و طولانی مدت حتی برای یک عمر. حداقل من خودم این تجربه ها رو داشتم. شاید دانش آموز هم باید مستعد باشه. بهرحال هم اونی که مستعد باشه یه راهی رو تا آخرش میره، و بنظرم نمیشه بقیه رو زور کرد، ولی نباید همینطوری هم کامل ول کرد، چون مثل اینکه که بچه رو بدون هیچ تربیت و هشدار و سرزنش و اجبار و تنبیه و تشویق رها کنی و انتظار داشته باشی فقط با حرف زدن و راهنمایی کردن و با استفاده از عقل و ارادهء خودش بچه درست عمل بیاد و دچار هیچ انحراف و خطر جدی و اعتیاد و هزارتا چیز بد دیگه ای نشه. نه اینم واقعگرایانه نیست!
بهرحال بنده در اینکه بالاخره دورهء آموزشی از سی/سی++ یا پایتون شروع بشه شک دارم. مسئله ایست که تاکنون بصورت روشن و قاطعی بر بنده مکشوف نگشته است

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