ورود

View Full Version : چرا ما نکرده ایم و نمیکنیم؟



eshpilen
چهارشنبه 18 آبان 1390, 09:41 صبح
بارها دیدم در تاپیک های مختلفی صحبت میشه از اینکه چرا ما نرم افزارهای بزرگ و پیشرفته درست نمیکنم، چرا نرم افزارهامون نهایت به نرم افزار حسابداری و دیتابیسی محدوده و غیره. خلاصه خیلی نرم افزارها رو درست نکردیم. یا بقول بنده چیزی اختراع نکردیم.
و همینطور در زمینه های دیگر علم و فناوری اصولا.

من میپرسم آیا اصلا توان این کار رو داریم؟
دانش مورد نیاز، و مهارت و همتش رو.
اصلا ما کی و چطور میخوایم این کارها رو یاد بگیریم که بعد بتونیم روی چنین نرم افزارهایی هم کار کنیم؟

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

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

ما که چیزهایی رو که محدودتر و ساده تر و حتی خیلی وقتا وظایف طبیعی برنامه نویس هستن از سر باز میکنیم، بنابراین مسلما اون موقع هم معجزه نخواهیم کرد.

آدم اگر اراده نداشته باشه یه کار کوچکتر رو درست و کامل انجام بده، چطور میخواد کار بزرگتر رو انجام بده؟

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

منظورم از کوچکی و بزرگی کار لزوما حجم نیست و به ظاهرش هم نیست، منظورم کارهایی هست که اساسا علمی و پیچیده هستن و با مسائل گسترده ای سروکار دارن.

باید حداقل دوتا کار کوچک تر رو کامل کنیم تا دانش و مهارت و اعتمادبنفس لازم برای کارهای بزرگتر رو بدست بیاریم یا نه؟
تازه یادگیری تئوریک قبل از این مرحله هست. مدتها فقط باید مطالعه و تحلیل کرد. حجم واقعا زیادی از مطالعه نیاز هست و طبیعتا زمان زیادی میبره.

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

eshpilen
چهارشنبه 18 آبان 1390, 10:00 صبح
بیشتر افراد مدعی که بنده دیدم یا حتی برنامه نویسانی که از نظر عموم حرفه ای بحساب میان، معتقد بودن که برنامه نویسی بیشتر تجربی هست تا تئوریک.
بنده فکر میکنم این بخاطر نوع پروژه هایی هست که این افراد روش کار کردن. پروژه هایی که چندان از نوع علمی نبودن. وگرنه علم رایانه و برنامه نویسی سراسر پر است از الگوریتم های پیچیده، کاملا علمی، آمیخته با ریاضیات (و بعضی ها اساسا و عمدتا بر مبنای ریاضیات پیشرفته) و غیره.
ویکیپدیا و منابع دیگر، حتی خیلی سایتها و وبلاگهای خارجی، پر است از این موارد. درحالیکه بیشتر افراد این مطالب را یا اصلا چندان مشاهده نمیکنند یا فکر میکنند فقط تئوری و فرمالیته است و چندان کاربرد عملی ای، حداقل برای برنامه نویسی، ندارند.

در کارهای عادی و استانداردی که ما انجام میدیم نیازی به درگیری با این قبیل موارد نیست چون اونها رو قبلا کسان دیگری برای ما حل و پیاده سازی کردن و از نظر فنی برای ما سطح پایین بحساب میان. ما صرفا از اینترفیس ها، کتابخانه ها، فریمورک ها، و امکانات سطح بالای دیگری که برای استفاده از اونها در دسترسمون گذاشته شدن استفاده میکنیم. خب طبیعتا این کار سختی نیست و نیاز به دانش خاصی در اون زمینه ها نداره. مثلا ما چکار داریم که فرمت JPEG یا MPEG چطور دیتا رو فشرده میکنن؟ با چه الگوریتمی؟ بر اساس چه محاسباتی؟ چه رابطه ای با ریاضیات دارن؟ ما فقط از API های سطح بالا برای کار کردن با این فرمت ها استفاده میکنیم.

ولی وقتی وارد کارهای خاص تر و پیچیده تری بشیم که طبیعتا به این سادگی نمیشه با استفاده از چند API و کتابخانه و فریمورک همه چیزشون رو سرهم کرد، اونوقته که نقش دانش علمی و تئوری به سرعت برجسته میشه. درک و طراحی الگوریتم های علمی، ریاضیات، تفکر و روش علمی محض.

بنظر شما مثلا میشه به این سادگی فتوشاپ ساخت؟ میشه اوتوکد ساخت؟ میشه الگوریتم اختراع کرد؟ میشه پروتکل ارتباطی یا امنیتی پیشرفته ای طراحی کرد؟ میشه الگوریتم ها و فرمتهای جدید فشرده سازی و تصویری و صوتی و ویدئویی طراحی کرد؟
اصولا فکر نمیکنم بیشتر این کارها در بیش از چند کشور معدود انجام بشن!

همینطور در تمام زمینه های علمی و فناوری های دیگر هم این قضیه برقرار است.

ببخشید، ولی اینکه ما نکرده ایم و نمیکنیم، بعلت عدم توانایی علمی واقعی است.

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

البته ما میتوانیم خیلی بیشتر پیشرفت کنیم.
و یک فرد هم میتواند به هرجایی که میخواهد برسد (حداقل در رشتهء ما خیلی بیشتر از رشته های دیگر امکانپذیر است).
اما برای توانستن باید اول خواست و عملا تلاش کرد و باید این تلاش با دید و روش صحیح (روش علمی) باشد.
و در نهایت باید واقعیت گرا باشیم.
فکر نمیکنم ما بصورت یک کشور ایزوله با منابع محدود خودمان بتوانیم به تنهایی همه کار را خودمان انجام دهیم.
یعنی باید دنبال راه و سیستم دیگری باشیم که معقول و عملی باشد.

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

shahramlp
چهارشنبه 18 آبان 1390, 10:37 صبح
سلام خدمت eshpilen جان خوشحالم دوباره میبینمت چون از آخرین پستت که من خودم توش اخطار گرفتم مثل اینکه اکانتت مسدود شده بود فقط خواستم بگم که انجمن بدون شما لطفی نداشت و خوشحالم که دوباره برگشتین.در مورد مطلبت هم اینکه اونا اصلا" خط فکریشون با ما فرق داره ما به یه چیزای دیگه فکر میکنیم اونا به یه چیزای دیگه همه ی ما نوجوون بودیم یه روزی و میدونیم توی اون سن و سال خودمون ودوستانمون به چی فکر میکردیم که اینجا نمیشه اون فکرارو بیان کرد و البته این چیزا به خاطر محدودیت هاست ولی چند وقط پیش بود توی نارنجی خوندم که یک پسر بچه ی 13 ساله آمریکایی وقتی داشت توی پارک قدم میزد به درختا نیگا میکنه و با خودش میگه این برگا الکی اینطرف اونطرف نرفتن میشینه فکر میکنه میبینه بله بر طبق دنباله ی فیبوناچی رشد میکنن و میاد پنل های خورشیدی رو مثل برگ درختا میچینه و 50% انرژی بیشتر جذب میکنه پس میبینید که فرق ما فقط فرهنگی هست نه چیز دیگه حالا خودمون انصافا" بگیم وقتی همسن اون بودیم به چی فکر میکردیم؟البته این فقط یه مثال از ملیونها مثال بود و تا زمانی که.......(به علت دلایل فراوانی سانسور شد) ما همینیم(البته من خودمو استثنا نکردم خودم هم مثل بقیه هستم).

amin1softco
چهارشنبه 18 آبان 1390, 18:18 عصر
به نظر من ما مردم ایران یکمی به تک روی علاقه داریم یکمی هم به قول این دوستمون فکرمون تو ... به جای کار و در آخر دغدغه های زیادی داریم
ولی بزرگترین مشکل ایران ضعف سیستم آموزشیه مخصوصاً آموزش عالی , ارزش های اجتماعی نادرست و تبعیض طبقاتی (منظورم دستمال به دستان ورزیله که تو همه کاری با تخصص یا بی تخصص دخالت می کنند) برای این شرایط کسی هم که یک چیزی سرش می شه خیلی سریع از ایران مهاجرت می کنه