درس مدرسه دانشگاه دروغ


#1

خداوکیلی ریاضی (که اینهمه به من گفتن «برنامه نویس باید ریاضیش خیلی خوب باشه») چقدر به دردتون خورده؟
درسها و مطالب فنی چطور؟ (مثلا درس ساختمان داده، سیستمهای عامل و…)
بقیه‌ی درسها و مباحث چطور؟ (تو زندگی)

لطفا سابقه‌ی کاری و زمینه‌ی تختصصیتون رو ذکر کنید. (مثلا انتظار دارم کسی که computer science کار میکنه با ریاضیات کار داشته باشه ولی زیاد برنامه نویسی نکنه)


  • شخصا، ریاضی در حدی برام استفاده داشته که وقتی میخونم «میزان فشار روی این سیستم در ازای افزایش کاربر به شکل نمودار سهمی بالا میرود.» بدونم سهمی چیه. نه تا حالا انتگرال حساب کردم و نه حتی رادیکال. استفاده‌ی روزانه ای از جدول ضرب دارم :neutral_face:
  • درسهای مثلا فنی رشته‌ی من (IT) تا اینجاش که مضخرف محض بود.
  • درسهای دیگه (فیزیک، شیمی، زیست، عربی، تاریخ) برای فان و افزایش اطلاعات عمومیم خوب بود. از اینکه میدونم برام جالبه.(در کنار اینکه خودمم خیلی مطالعه‌ی علمی کردم و میکنم) ولی استفاده‌ای نداشته و نداره واقعا.

حدود ۹سال از شروع برنامه نویسیم میگذره. حدود ۶سال از شروع کار 3D modelingو… (شامل یه مقدار کد نویسی هم میشه) میگذره. حدود ۳ساله کار برنامه نویسی و develop انجام میدم (کاری که ازش پول در بیارم) و زمینه‌های زیادی رو تجربه کردم و توی بعضیهاشون هم کارم خوبه (بگم تخصص دارم دروغ گفتم). از دسکتاپ و وب و شل‌اسکریپت تا برنامه نویسی میکرو کنترلر با C و Basic و Assembly و حتی (بین خودمون بمونه) VB :sweat_smile:
توی همه‌ی این زمینه‌ها حرفه ای نیستم ولی به نظرم لازم بود دامنه‌ی تجربه و کارم زیاد باشه.


پ.ن:
ریاضی خوب بود. تا قبل از اینکه حروف واردش بشن.
و قابل تحمل بود تا زمانی که میشد توش عدد پیدا کرد.
این چیزایی که ما باید «حفظ» کنیم بریم امتحان بدیم خداییش بی انصافیه :disappointed_relieved:


مدرک معتبر
#2

بستگی داره در چه زمینه برنامه مینویسی
اگه برنامه نویس app روزمره هستی قبول دارم جزئیات ریاضی به کار نمیاد ولی ریاضی بیشتر برای پرورش فکر کردن بصورت منطقی که در computer science خیلی به کار میاد
Data Structure و algorithm ها همش درک ریاضی discrete میخواهد
در computer science هم در سطح خیلی تخصصی خیلی ریاضی سنگین نیاز داره مثلا تمامه تئوری های سیستم های توزیع شده به Graph و Group Theory برمیگردن برنامه نویسی functional به Category Theory
و machine learning به آمار و Linear Algebra و probability

با این حال من موافق هستم که بعضی دروس بیخودی خوندیم ایکاش بجای پرورشی و … یک کلاس برنامه نویسی درست داشتیم


#3

شخصا تا حالا هیچ کجا این جریان رو بیان نکردم ولی تصمیم دارم اینجا توی این تاپیک بیارمش :upside_down_face: عذر میخوام اگه شبیه به داستان هندیه :rofl:
بعد از یه مدت زمانی که خودم رو شناختم تقریبا اواخر دوران دبیرستان فقط به این موضوع فکر میکردم که دقیقا من برای چه کاری ساخته شدم! یا به عبارتی بهترین کاری که از دستم بر میاد چیه؟! قبل از کشف این موضوع برای نرفتن به خدمت رفتم دانشگاه رشته نرم افزار رو انتخاب کردم ۲,۳ ترم ازش گذشته بود که متوجه شدم یه چیزی اشکال داره انگار این مسیر من نیست! ولی به خاطر جو موجود در خانواده و جامعه ما و همچنین فضای رسانه ای که مدام داره تاکید میکنه و جا انداخته که بهترین راه سعادت شما در زندگی تحصیلات آکادمیک هستش, مسلما این فضا این قدرت رو داشت که قدرت تصمیم گیری درست رو از من بگیره پس مانع میشد که دانشگاه رو رها کنم و برم به دنبال علایقم تا شاید روی خط اصلی زندگیم قرار بگیرم.
نتیجتا بعد از یه مدت فشار فکری و احساس شدید اتلاف زمان دانشگاه رو رها کردم :grimacing: واقعا شرایط بعدش اصلا برای من خوب نبود و قابل شرح نیست فقط در این اندازه بگم که با مسائلی روبرو شدم که من رو دچار بیماری افسردگی کرد اونم نه از نوع ضعیفش! پس بعد از پشت سر گذاشتن این بازه سخت تصمیم گرفتم یه مدتی مشغول یه کاری بشم (هر کاری فرض کنید رو دنبالش رفتم) چون واقعا دیگه برام فقط اصطلاحا ریکاوریه مهم بود و آرامش فکری تا بتونم راهم رو پیدا کنم. در هر صورت الآن مشغول کارم با اینکه این کار هیچ ارتباطی به من و شخصیت من نداره!
اما در زمان آزادم کتاب میخونم و علایقم رو دنبال میکنم (مثل موسیقی و ورزش و کدزدن و …)
همه ی اینارو گفتم که در نهایت به این برسم که واقعا مدرسه و دانشگاه دروغ نیست ولی قطعا مدل و سیستم آموزشی مشکل داره و راه اشتباهی رو میره اما این فقط یه راه از همه راه هایی که میشه رفت که البته واسه همه آدما جواب نیست از جمله خود من! مساله اساسی اینه که شما چقدر زود از خودتون و هدف تون و راهی که میخواید برید شناخت و پیش نمایش داشته باشید هر چقدر این موضوع در سن کمتر برای شما اتفاق بیفته نتیجه مسلما بهتر خواهد بود حداقل با مشکلاتی که من باهاشون روبرو شدم گلاویز نمیشید


#4

سلام دوست عزیز قبل از هر چیزی پیشنهاد می کنم کلیپ زیر رو ببینید:
نقد سیستم آموزشی - پروفسور میشیو کاکو
راستش من رشته مترجمی زبان انگلیسی پیام نور رو انتخاب کردم (کارشناسی پیوسته)
فقط می تونم بگم واقعا عشقه :grin: حضور در کلاس ها کاملا اختیاری هست و من تا حالا افتخار حضور در کلاس ها رو نداشتم :hugs: برای پاس کردن هر درس, سوالات ۵ دوره اخیر رو می خونم و نمره بسیار بالایی می گیرم! برای هر امتحان حداکثر ۲ ساعت وقت میزارم :sunglasses: خیلی راحت به یادگیری ام میرسم و وقتم رو با پاس کردن درس های بیهوده هدر نمیدم!
موفق باشید


#5

جناب samdvr عزیز فرمایشات شما صحیح هست ولی به نظر من اگر کسی قصد داره روی مباحثی که شما فرمودید و کلاس های دانشگاه وقت بزاره باید توی دانشگاه های مطرح و تاپ دنیا پذیرش بگیره و تحصیل کنه…
من جسارت نمی کنم همه رو نمی گم ولی سطح علمی بعضی (تعداد بسیار کم!) از اساتید دانشگاه بوق… و بوق… به شدت پایین هست. با این افراد برخورد داشتم که میگم…


#6

نه خواهش میکنم متوجه هستم منظوره شما چیه


#7

بنظر من درس های آکادمیکی دورنما و آینده نگرانه هستن مشکلش اینه که خیییلی آینده نگرانه هستن،
مشکل توی سیستم باشه خودمون میتونیم مسیر یادگیریمون رو درست به سرانجام برسونیم ( خوب با آزمون خطاها هم باید کنار اومد وقت گیراند)


#8

موافقم …
نظر منم اینه که دانشگاه به قول معروف فقط برای پیدا کردن خود ادمی هستش … درسته که بیشتر درس ها به درد ادم نمیخوره ولی هر کسی واسه یه چیزی میره دانشگاه برای مثال اقا samdvr تو پاسخ اولشون چیزایی فرمودن که حتی بیشترمون قبول کنیم نمیدونستیم. و کسایی اون چیزا رو که بیشترشون ندونستم چیه دنبال میکنن که واقعا کامپیوترو میخوان … میخوان computer science عالی بشن … ولی بعضی از ادما فقط اینو تو ذهنشون کنده کاری کردن که عاقا مثلا ساختمان داده به چه درد من میخوره یا ریاضی به چه دردی میخوره ولی کسی که برا خودش یه راه مشخص کرده میدونه که این درسا همشون پایه علم کامپیوتر میباشند … و درسته که هنوز سنم کفاف نمیده و تو شرکتی کار نکردم و مهارتشو هم ندارم ولی تا جاییی که میدونم (از مقاله ها) بیشتر (تقریبا همه) شرکت های خارج کشور نمیان بگن مثلا تو با پی اچ پی یه فروشگاه بزنی من استخدامت میکنم (که کار کاملا روتین و تکراری میباشد اکثر مواقع ) همشون میان میگن فلان الگوریتم رو مثلا یه قسمتشو توسعه بده یا فلان باگ این کدو فیکس کن … و لازمه همه این کارا یه پایه قوی هستش از علم کامپیوتر و همه این قضیه های دانشگاه دست تو دست هم میدن و یه دانشجوی قوی میدن بیرون واس همین دانشجو های کشور های جهان اول با دانشجو های کشور مون فرق دارن که هر سال فقط دانشجو میدن بیرون … خلاصه زیاد نوشتم … این نظر شخصی منه … منم 60 درصد به خاطر سربازی میرم دانشگاه و این دلیل منه حالا هر کی دلیل خودشو داره …
ولی قبول میکنم سیستم اموزشیمون درست نیس و همچنین تو امار استک اور فلو هم بیشتر توسعه دهندگان تحصیلات اکادمیک ندارن یا مرتبط با کامپیوتر نیس…
راستی خودمم گیج شدم اخرش که دانشگاه خوبه یا نه :see_no_evil::joy::joy:


#9

پیام نوری ها کلا سر کلاس خیلی کم می رند من ترمی دو بار می رفتم

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

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

ولی دوره مدرسه باز انقدر مشکل نداشتیم که دوره کارشناسی متاسفانه به شدت درس ها قدیمی و منسوخ شده کتاب های سال ۲۰۰۰ تدریس می شد به شدت حجم بالا و همینطور استادی بدون هیچ دانش در زمینه کامپیوتر چون صرفا بلد بود طراحی الگوریتم محاسباتشو بزنه اونم هرچی کتاب داره حتی بدون تغییر عدد در حال تدریس بود

به نظرم درس در ایران تا اول نظری کافییه انقدر یاد بگیری حرف بزنی بقیه بری بیرون کلاس :disappointed_relieved::grin:


#10

اقای توکلی حالا شما تدریس استاد مارو ببینید همون جا اعلام بازنشتگی میکنین … خجالت میکشم قطعه کدشو که عکس گرفتیم بفرستم وگرنه واویلاست


#11

دقیقا طبق فرمایش @samdvr بستگی به زمینه کار داره، تمام مواردی گه شما گفتین به درد نمیخوره، برعکس روزانه مشکلات زیادی رو برای من در کار حل میکنه


#12

@samdvr
مساله اینه که چند درصد از ما کارش «ساخت یه الگوریتم جدید برای جایگزینی شبکه‌های عصبی»ـه؟ در حالی که همه‌ی ما داریم به بدترین روش ممکن، زیرساختهای مورد نیاز این رشته‌ی تخصصی (و خیلی تخصصهای دیگه) رو حفظ میکنیم در حالی که این اطلاعات حتی برای کسی که میخواد به اون سمت بره کافی و دقیق نیست.
البته اینو ذکر کنم که به شخصه توی درک زیرساختهای machine learning مشکل دارم. ریاضیاتش رو نمیفهمم. ولی اصلا باعث نشده توی نوشتن کدهاش مشکل داشته باشم. فقط نمیتونم الگوریتم رو ارتقاع درک کنم و ارتقاع بدم. (کی میتونه؟)


@Trisquel
لازم به ذکره استاد «پایگاه داده» من، مفاهیمی مثل «رشته» و «پشته» رو یه جاهایی توی جزوه و ویدیو برعکس توضیح داده، یه جاهایی درست! بگذریم که کلا ۲-۳تا کوئری sql آخر جزوه بود و بقیش مفاهیم آرایه و گراف و صف و… بود. (پایگاههای داده‌ای که سیستم خاموش شه پاک میشن :grin:)


@husen
با اجازه جمله‌ی شما رو اصلاح میکنم. «دورنما و آینده نگرانه فقط برای یه گروه خاص»
شما ۱۰۰سال هم تجربه‌ی برنامه نویسی داشته باشید، فکر نمیکنم از این مطالب استفاده کنید و کسی که این مطالب رو لازم داره، خیلی تخصصی تر (با حاشیه‌ی کمتر) میتونه از اینترنت یاد بگیره.


@taher
یه مساله‌ای هست. اونهم اینه که اگه کسی دنبال اینها باشه، قبل از دانشگاه بهشون میرسه. (آیا کسی هست که توی دانشگاه برنامه نویسی یاد گرفته باشه بعد تبدیل شده باشه به یه برنامه نویس بدون نیاز به پارتی؟)
اینکه شرکتهای خارجی میان میگن «فلان الگوریتم رو توسعه بده» درسته که یکی از نیازهاشونه ولی به من و شما نمیگن. مربوط به شغل ما نمیشه. مربوط به computer scientist میشه که سالی ۱۰خط کد میزنه اونم اگه مجبور باشه اثبات کنه که حرفش درسته! پس میان computer scientist استخدام میکنن میفرستن اتاق کناری. همونطور که developer استخدام کردن فرستادن توی یه اتاق دیگه برای توسعه‌ی وبسایتی که روی هسته‌ی نرم افزاری من و شما ساخته شده.

من۱۰٪ به خاطر سربازی میرم دانشگاه و ۹۰٪ به خاطر اصرار خانواده :sweat_smile: (به این امید زنده‌ام که وقتش برسه سربازیمو بخرم)


@shahryarjb
با این حرف شما کاملا موافقم درمورد کهنه بودن اطلاعات. طوری قدیمیه که «دنیس ریچی» با استفاده از همینا C رو ساخته :joy: باید حواسمون باشه الآن هیچ برنامه نویسی ریکوئست http هندل نمیکنه بجز کسایی که دارن Nginx رو میسازن.
یکی از اساتید بنده رو خفت کردن :smiley: گفت «چرا نمره‌هات اینجوریه؟ تو که میگی برنامه نویسی. باید خیلی بیشتر از این علاقه داشته باشی و…»
گفتم «شما خودت اینا رو خوندی و یاد گرفتی، تو بازار کار به دردت خورد؟ من الآن چند ساله دارم کار میکنم از کنار این موضوعات هم رد نشدم.»
دمش گرم. گفت «خوب راستشو بخوای به درد خود من نخورد. بعد از دانشگاه رفتم دوره‌ی کارآموزی تا یه چیزی یاد بگیرم.»


@toomaj
بله کاملا مواوفقم. دونستنشون بهتر از ندونستنه. ولی آیا همه‌ی ما اینارو خودمون یاد نگرفتیم؟


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


#13

دونستنشون بهتر از ندونستنه.

حرف من اصلا اینی که شما گفتین نبود، من عرض کردم مشکلات زیادی رو برای من حل میکنه، یعنی بدون دونستن و بکار بردن مواردی که فرمودین اصلا کار من تیمی که درش کار میکنم پیش نمیره


#14

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


#15

در دانشگاه کلی درس غیر ضروری و نامرتبط داریم مثل معارف و … که هیچ ربطی به رشته تحصیلی ما نداره ، اما به عنوان کسی که کارشناسی ارشد هوش مصنوعی می خونه ، بهتون بگم که ریز تمام دروس که خوندیم ، ضروری هست! برنامه نویسی CRUD بله نیاز به خیلی از این مسائل نیست.


#16

بنظر من چیزی که در دانشگاه تدریس میشه کاربردیه اما اصلا برای فعالیت حرفه ای کافی نیست،


#17

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


#18

نه لزوما نیازی نیست با پشتکار خودت میتونی یک اندروید کار عالی باشی


#19

همونطور که @Hamidreza گفت، «برای برنامه نویسی CRUD نیازی به خیلی از این مسائل نیست»
توضیح:
کارهای عمومی مثل ۹۰درصد کار طراحی وبسایت، شامل Create Read Update Delete کردن دیتا توسط پنل کاربری میشه (crud مخفف این کلماته)


من دوست دارم دنیامون رو به ۳ قسمت دسته بندی کنم. (توضیحی که درمورد هر قسمت میدم احتمالا بهترین توضیح نیست ولی زیاد هم اشتباه نیست)

  1. computer scientist
  • کسی که یه زبان برنامه نویسی میسازه. کسی که یه الگوریتم جدید برای رمزنگاری میسازه. کسی که مثل «فیزیکدان نظری» در دنیای کامپیوتره.
  • اکثر کارش با ریاضیات و تئوریه و خیلی کم کد میزنه.
  • کسی که دقیقا میدونه فلان خط کدی که توی این زبان نوشته میشه، مدار منطقیش چطوری ساخته میشه.
  1. programmer
  • کسی که ffmpeg رو ساخته و کلی نرم افزار media player با استفاده ازش دارن ویدیو بخش میکنن برای ما. کسی که opencv رو ساخته و ما باهاش پردازش تصویر میکنیم. کسی که مثل «مهندس مکانیک سیالات» تو دنیای واقعیه.
  • کارش برنامه نویسی تخصصیه و توی یه زمینه‌های خاصی تخصص داره. (مثلا لینوس توروالدز همیشه میگه حتی برای نجات جون خودش هم نمیتونه gui بسازه! فقط تخصصش توی یه زمینست و خیلی هم متخصصه!)
  1. developer
  • کسی که برای end-user کار میکنه. کسی که wordpress رو ساخت. کسی که vlc رو ساخت. کسی که فلان وبسایت خرید و فروش آنلاین رو ساخت. کسی که مثل «طراح صنعتی یک شرکت خودرو سازی» تو دنیای برنامه نویسیه.
  • با خیلی چیزها بلده کار کنه. میتونه کاری کنه که نرم افزارها با هم صحبت کنن.
  • دریایی به عمق یک وجب.

شاید درست باشه اگه بگم مسیر یه تکنولوژی درست از زیر دست این سه نفر میگذره.
اول مهندس کامپیوتر طرحی رو میده مبنی بر «این الگوریتم hash غیر قابل شکستنه» (فیزیکدان نظری میگه اینطوری میشه «سیلندر هیدرولیک درست کرد برای افزایش نیرو»)
بعد برنامه نویس با استفاده از اون، یه نرم افزار/ ماژول/ کتابخونه میسازه. (مکانیک سیالات میاد سیستم ترمز ماشین رو میسازه)
در آخر یه توسعه دهنده، با استفاده از اون، پسوردی که میخواد تو دیتابیس سایتش ذخیره کنه رو hash میکنه. (آخرش یه نفر میاد اینو با هزارتا چیز دیگه به هم وصل میکنه میشه Tesla Model S)

الزاما همه‌ی ما توی یکی از این دسته ها قرار نمیگیریم. خیلیها توی دو یا حتی ممکنه هرسه قسمت کار کنن.
دنیس ریچی C رو ساخت در حالی که یکی از برنامه نویسهای unix بود.
یه نفر ممکنه تئوری یه سیستمی رو بده بعد خودش اون سیستم رو برنامه نویسی کنه و نسخه‌ی end-user هم ارائه بده.

ولی هرکسی معمولا توی یه قسمت علاقه و فعالیت داره.


#20

بعد از 6ترم نرم افزار خوندن … تجربه مشابه با اقای @lucifer رو داشتم …و درخواست معادل کاردانی دادم و زدم بیرون . .

دانشگاه چیزی برای من نداشت … اما تجربه بدی هم نبود…
بعد از دانشگاه … رفتم دنبال علاقم(برنامه نویسی) (تو همون مدت ۳ سال دانشگاه هم برنامه نویسی میکردم تا درس خوندن)
زیاد طول نکشید ک کار پیدا کنم … چون به برنامه نویسی تقریبا مسلط بودم … و همچنان مشغول بکارم …
ریاضیات برای منم بدرد نخور بود تو مدت دانشگاه … توی کارم هم (وب دولوپ) زیاد باهاش درگیر نیستم …
اما ریاضیات و منطقم خوب بود …

و البته بصورت فان و تو اوقات فراغتم گاهی به کد های گیم ها و هوش مصنوعی نگاه میکنم … و واقعا کاربرد ریاضیات رو توش میبینم … کسی ک ریاضیش خوب نباشه واقعا تو این دو حیطه حرفی برای گفتن نخواهد داشت …

اشکال نظام آموزشی از دید من اینه ک … تکیه بر تئوریاتش انقد زیاده ک هرکسی رو زده میکنه…
همون ترکیبات و BFS ,DFS , جبر . معادلات رو وقتی تو الگوریتم و کدنویسی بکار میبرم بشدت شیرین و آسونن … ولی یکی بهم بگه بیا رو کاغذ حلش کن …از وسط نصفش میکنم :neutral_face: