View Full Version : بحث کیفیت و کمیت در یادگیری برنامه نویسی
میلاد قاضی پور
چهارشنبه 04 آبان 1390, 14:41 عصر
سلام . چقدر به کیفیت یادگیری تکنولوژی ها و زبانهایی که باهاشون کار میکنید اهمیت میدید؟
آیا همینکه یادبگیرید یه پروژه ی نسبتا بزرگ رو انجام بدید شروع به یادگیری زبانهای جدید تر میکنید یا اینکه ترجیح میدید در یه زمینه به حدی برسید که توان اداره ی یک کلاس با دانشجوهای دارای سطح علمی متوسط و بیشتر رو داشته باشید ؟
ترجیح میدید مثلا تمام مفاهیم سی ++ رو یادبگیرید یا اینکه از هرکدوم از زبانهایی که می آموزید فقط نمره ی 10 رو بگیرید .
به نظر شما بهتره نهایتا چند زبان و تکنولوژی رو آموخت به طوریکه در تمام موارد تسلط لازم رو دارا بوده باشیم؟
من خودم تنها بلدم پروژه های وبسایت و ویندوز اپلیکیشن و جی کوئری و لینک و چند تا دیگه رو کار کنم اونهم بطوریکه همش موقع کدنویسی حس میکنم اگه یه استاد بالا سرم بود به اسپاگتی هام پوزخندی میزد و احتمالا میگفت هرکی از جاش بلند شده اسمشو گذاشته برنامه نویس. نه تاحالا از دلگیتها استفاده کردم و نه حتی اقتضایی برای استفاده از اینترفیس ها و کلاسهای تضمین شده و ... دیدم . پروژه هایی بوده که بیشتر از 600 ساعت روشون "به صورت مفید" وقت گذاشتم اما فکر نکردم که لازمه از این موارد استفاده ای بشه .
شعار من همیشه این بوده که نیازی به یادگیری بیشتر نیست بلکه باید از آنچه که میدونیم به بهترین شکل استفاده کنیم .حالا نظر شما چیه ؟
مهران رسا
چهارشنبه 04 آبان 1390, 18:09 عصر
به نظر من تا زمانیکه در ایران هستی همه این موارد با پول در تعاقب هستند. وقتی از نظر مالی تامین نباشی، حق داری به جای وقت تلف کردن برای یادگیری چیزهایی که شاید هیچ وقت به دردت نخورن ، تمرکزت رو روی کاری که پول توش هست بذاری.
میلاد قاضی پور
چهارشنبه 04 آبان 1390, 19:35 عصر
به نظر من تا زمانیکه در ایران هستی همه این موارد با پول در تعاقب هستند. وقتی از نظر مالی تامین نباشی، حق داری به جای وقت تلف کردن برای یادگیری چیزهایی که شاید هیچ وقت به دردت نخورن ، تمرکزت رو روی کاری که پول توش هست بذاری.
درسته اینم یک جنبه ی قضیه هست .ولی خب اکثر ماها هنوز جوونیم و از آینده بی خبر. ممکنه یه روز درهر نقطه ای از کره زمین زندگی کنیم و برنامه نویسی کنیم .در کل همیشه برام سوأل بوده که هیچوقت ممکنه که از یه برنامه نویس انتظار بره کاملا به مفاهیم مربوطه به رشته خودش کاملا اشراف داشته باشه یا اینکه آشنایی با چندین زبان به اندازه ای که بتونه با همکاری جناب گوگل وظایف محوله رو انجام بده کفایت میکنه.
m.soleimani
چهارشنبه 04 آبان 1390, 20:09 عصر
سلام . چقدر به کیفیت یادگیری تکنولوژی ها و زبانهایی که باهاشون کار میکنید اهمیت میدید؟
آیا همینکه یادبگیرید یه پروژه ی نسبتا بزرگ رو انجام بدید شروع به یادگیری زبانهای جدید تر میکنید یا اینکه ترجیح میدید در یه زمینه به حدی برسید که توان اداره ی یک کلاس با دانشجوهای دارای سطح علمی متوسط و بیشتر رو داشته باشید ؟
ترجیح میدید مثلا تمام مفاهیم سی ++ رو یادبگیرید یا اینکه از هرکدوم از زبانهایی که می آموزید فقط نمره ی 10 رو بگیرید .
به نظر شما بهتره نهایتا چند زبان و تکنولوژی رو آموخت به طوریکه در تمام موارد تسلط لازم رو دارا بوده باشیم؟
من خودم تنها بلدم پروژه های وبسایت و ویندوز اپلیکیشن و جی کوئری و لینک و چند تا دیگه رو کار کنم اونهم بطوریکه همش موقع کدنویسی حس میکنم اگه یه استاد بالا سرم بود به اسپاگتی هام پوزخندی میزد و احتمالا میگفت هرکی از جاش بلند شده اسمشو گذاشته برنامه نویس. نه تاحالا از دلگیتها استفاده کردم و نه حتی اقتضایی برای استفاده از اینترفیس ها و کلاسهای تضمین شده و ... دیدم . پروژه هایی بوده که بیشتر از 600 ساعت روشون "به صورت مفید" وقت گذاشتم اما فکر نکردم که لازمه از این موارد استفاده ای بشه .
شعار من همیشه این بوده که نیازی به یادگیری بیشتر نیست بلکه باید از آنچه که میدونیم به بهترین شکل استفاده کنیم .حالا نظر شما چیه ؟
درسته اینم یک جنبه ی قضیه هست .ولی خب اکثر ماها هنوز جوونیم و از آینده بی خبر. ممکنه یه روز درهر نقطه ای از کره زمین زندگی کنیم و برنامه نویسی کنیم .در کل همیشه برام سوأل بوده که هیچوقت ممکنه که از یه برنامه نویس انتظار بره کاملا به مفاهیم مربوطه به رشته خودش کاملا اشراف داشته باشه یا اینکه آشنایی با چندین زبان به اندازه ای که بتونه با همکاری جناب گوگل وظایف محوله رو انجام بده کفایت میکنه.
تو پروژههایی که خودت دست گرفتی یا خودت مدیریت میکنی مشکلی پیش نخواهد اومد ولی اگر با یه شرکت معتبر قرارداد امضا کرده باشی و سطح کدنویسیت تو حدی باشه که مداوم نیاز داشته باشی به گوگل مراجعه کنی؛ به مشکل بر میخوری چون توی شرکت از شما انتظار میره که مشکلات رو برطرف کنی نه این که خودت هم یه مشکل بشی و به مشکلات قبلی اضافه بشی.
البته دونستن یه زبان به بهترین شکل به نظر من بهتر از این هست که شما چندتا زبان رو به صورت ناقص بدونی چون در حالت اول شما یه متخصص هستی و در حالت دوم شما یه برنامه نویس تجربی یا بهتر بگم گذری هستی.
در مورد مواردی هم که گفتی تا الان استفاده نکردی و فکر میکردی که نیازی بهشون نیست کافیه که یه مرتبه یکی از برنامههایی رو که نوشتی بزاری جلوت و سعی کنی استاندارهای لازم رو براش اعمال کنی و بعد از پایان کار به هر دو نگاه کنی تا متوجه بشی که روشهای استاندارد و حرفهای بی دلیل به وجود نیومدن هر روش برای رفع یکی از نیازها و کمبودهای برنامه نویسی ابداع شده که قبل از من و شما یه سری کد نویس و برنامه نویس حرفهای باهاش مشکل داشتن.
شاد و پیروز باشید./
Hooman.Prog
چهارشنبه 04 آبان 1390, 21:29 عصر
به نظر شما بهتره نهایتا چند زبان و تکنولوژی رو آموخت به طوریکه در تمام موارد تسلط لازم رو دارا بوده باشیم؟
بنظر بنده اگر در قالب یه تیم کار کنید که وظیفهء خاص هر نفر یه چیزه یا پروژه های خیلی استاندارد و کلیشه ای انجام بدید، متخصص بودن در یک زبان میتونه بقدر کافی کارایی داشته باشه، اما اگر بخواید انفرادی فعالیت کنید و کارهای متنوع و کاملی انجام بدید، بخصوص برنامه های خاص و چند حیطه ای، اونوقته که نیاز به چند زبان و فناوری پیش میاد.
با یک زبان و فناوری نمیشه همه جا همه کار کرد.
و برای بنده بعنوان یک خوره بسیار دردآور میبود اگر میتونستم فقط یک زبان و فناوری رو یاد بگیرم. ولی خوشبختانه وقتش رو داشتم و تونستم فناوریها و زبانهای مختلفی رو یاد بگیرم.
البته از نظر شغلی این کار میتونه کاملا به ضررم تموم شده باشه. چون سالها بیشتر مطالعه کردم، درحالیکه اگر دنبال نیاز بازار و فرصتهای شغلی رفته بودم با نصف این وقت و انرژی الان میتونستم در یک زمینهء تخصص مورد نیاز تجاری کاملا با تجربه و متخصص باشم. ولی عوضش الان پایهء قوی و گسترده ای دارم که اگر فرصت تجربه و کار رو پیدا کنم میتونه فوق العاده بهم کمک کنه.
نه تاحالا از دلگیتها استفاده کردم و نه حتی اقتضایی برای استفاده از اینترفیس ها و کلاسهای تضمین شده و ... دیدم . پروژه هایی بوده که بیشتر از 600 ساعت روشون "به صورت مفید" وقت گذاشتم اما فکر نکردم که لازمه از این موارد استفاده ای بشه .
بنظر بنده الگوریتم از همه چیز مهمتر و موثرتره. چون اگر نتونی در یه موردی الگوریتم رو درک یا طراحی کنی مشکل اساسی داری، و بعد از الگوریتم بقیهء چیزها اونطوری نیست که آدم توش بمونه، چون هیچ چیزی نمیتونه از الگوریتم مسائل پیچیده پیچیده تر باشه.
اینایی هم که میگید درجای خودش نیاز میشه و میشه با سرعت و راحتی خوبی یاد گرفت و استفاده کرد. یه برنامه نویس اصلا نباید از اینطور چیزها بترسه. چیزهای خیلی وحشتناک تری در این رشته وجود دارن!!
mr-adler
چهارشنبه 04 آبان 1390, 22:54 عصر
سلام
با اجازه...
چیزهای خیلی وحشتناک تری در این رشته وجود دارن!!
....:متعجب:
البته دونستن یه زبان به بهترین شکل به نظر من بهتر از این هست که شما چندتا زبان رو به صورت ناقص بدونی چون در حالت اول شما یه متخصص هستی و در حالت دوم شما یه برنامه نویس تجربی یا بهتر بگم گذری هستی.
نظرم من همینه.مورد خوبیه (خیلی خوب:چشمک:)...
بنظر بنده اگر در قالب یه تیم کار کنید که وظیفهء خاص هر نفر یه چیزه یا پروژه های خیلی استاندارد و کلیشه ای انجام بدید، متخصص بودن در یک زبان میتونه بقدر کافی کارایی داشته باشه، اما اگر بخواید انفرادی فعالیت کنید و کارهای متنوع و کاملی انجام بدید، بخصوص برنامه های خاص و چند حیطه ای، اونوقته که نیاز به چند زبان و فناوری پیش میاد.
اما مورد بهتر اینه که چند نفر باشند و با هم گروهی کنید.اینجوری عالی میشه.در واقع از توانایی های هم استفاده میکنیدو اخرش میشه حرف شما یعنی استفاده از چند فناوری هم زمان اما با نمره 18 نه 10 .
پستتون رو کامل نخوندم شاید منظورتون یه چیز دیگه بود به هر حال اینهم نظرات ما بود...
موفق باشی
مهران رسا
چهارشنبه 04 آبان 1390, 23:35 عصر
ولی اگر با یه شرکت معتبر قرارداد امضا کرده باشی و سطح کدنویسیت تو حدی باشه که مداوم نیاز داشته باشی به گوگل مراجعه کنی؛ به مشکل بر میخوری
این مورد باید بیشتر مورد بررسی قرار بگیره. باید دید نیاز به گوگل کردن از چه نظر هست؟ برای مثال، اینکه در مورد Socket Programming هیچی ندونید، با اینکه بدونید Socket Programming چیه اما ندونید فلان متد از فلان کلاس کارش چی هست کاملاً متفاته. در مورد اول، حق با شماست و در یک محیط کاری رسمی برنامه نویس رو دچار مشکل میکنه. اما مورد دوم کاملاً طبیعی هست و اصلاً نباید از یک برنامه نویس انتظار داشت در مورد هر چیز ریز و درشتی اطلاع داشته باشه.
m.soleimani
چهارشنبه 04 آبان 1390, 23:55 عصر
این مورد باید بیشتر مورد بررسی قرار بگیره. باید دید نیاز به گوگل کردن از چه نظر هست؟ برای مثال، اینکه در مورد Socket Programming هیچی ندونید، با اینکه بدونید Socket Programming چیه اما ندونید فلان متد از فلان کلاس کارش چی هست کاملاً متفاته. در مورد اول، حق با شماست و در یک محیط کاری رسمی برنامه نویس رو دچار مشکل میکنه. اما مورد دوم کاملاً طبیعی هست و اصلاً نباید از یک برنامه نویس انتظار داشت در مورد هر چیز ریز و درشتی اطلاع داشته باشه.
شما وقتی توی یه شرکت برنامه نویسی معتبر کار میکنید قبلش بهشون اثبات شده که شما کارتون رو بلد هستین؛ ولی اگر قصد ورود داشته باشید یا آزمون ورودی شما زیاد سخت گیرانه نبوده در آینده به شما آسیب خواهد رسوند چون زمان کدنویسی توی شرکت شما باید سرعت عمل و کیفیت رو با هم ارائه کنید در غیر این صورت از برنامه زمان بندی عقب میمونید و وقت دیگران رو هم هدر خواهید داد که البته مدیران پروژه به راحتی از سر این موضوع نخواهند گذشت. البته افرادی که به برنامه نویسی به صورت شغل دائم خودشون نگاه میکنن « دید حرفهای دارن » با یه مطالعه چند ساعته این ضعف رو برطرف میکنن و خیلی زودتر از اون که کسی شاکی بشه خودشون رو به جمع میرسونن./
JaguarXF
پنج شنبه 05 آبان 1390, 03:03 صبح
سلام . چقدر به کیفیت یادگیری تکنولوژی ها و زبانهایی که باهاشون کار میکنید اهمیت میدید؟
آیا همینکه یادبگیرید یه پروژه ی نسبتا بزرگ رو انجام بدید شروع به یادگیری زبانهای جدید تر میکنید یا اینکه ترجیح میدید در یه زمینه به حدی برسید که توان اداره ی یک کلاس با دانشجوهای دارای سطح علمی متوسط و بیشتر رو داشته باشید ؟
ترجیح میدید مثلا تمام مفاهیم سی ++ رو یادبگیرید یا اینکه از هرکدوم از زبانهایی که می آموزید فقط نمره ی 10 رو بگیرید .
به نظر شما بهتره نهایتا چند زبان و تکنولوژی رو آموخت به طوریکه در تمام موارد تسلط لازم رو دارا بوده باشیم؟
من خودم تنها بلدم پروژه های وبسایت و ویندوز اپلیکیشن و جی کوئری و لینک و چند تا دیگه رو کار کنم اونهم بطوریکه همش موقع کدنویسی حس میکنم اگه یه استاد بالا سرم بود به اسپاگتی هام پوزخندی میزد و احتمالا میگفت هرکی از جاش بلند شده اسمشو گذاشته برنامه نویس. نه تاحالا از دلگیتها استفاده کردم و نه حتی اقتضایی برای استفاده از اینترفیس ها و کلاسهای تضمین شده و ... دیدم . پروژه هایی بوده که بیشتر از 600 ساعت روشون "به صورت مفید" وقت گذاشتم اما فکر نکردم که لازمه از این موارد استفاده ای بشه .
شعار من همیشه این بوده که نیازی به یادگیری بیشتر نیست بلکه باید از آنچه که میدونیم به بهترین شکل استفاده کنیم .حالا نظر شما چیه ؟
شاید یک تست ساده برای این کار این باشه: یکی از برنامه هات رو در نظر بگیر که نوشته ای برای مشتری. من که نمیدونم چی هستند پروژه هات اما فرض کن مثلا پٰروژه اداره کتابخانه مسجد محله رو نوشته باشی. حالا اگر بیایند بگویند میخواهیم همین برنامه ات رو در کلیه کتابخانه های ایران و پاکستان و ترکیه و عربستان استفاده کنیم . بیا و قرارداد امضا کن ...آیا جرات قرارداد امضا کردنش رو داری یا نه ؟ اگر نداری یعنی سطح برنامه ات پایینه . پس باید ببینی نقاط ضعف برنامه چی بوده و مطالعه و سوادت رو افزایش بدهی دراون سمت .
به تجربه به من ثابت شده اگر برنامه ای در سطح انترپرایز بخواد نوشته بشه خود بخود بهترین تکنیکهای نرم افزاری رو مجبوری داخلش پیاده سازی کنی وگرنه پروژه شکست میخوره. حتی نه فقط اون بلکه ممکنه خیلی زبان های برنامه نویسی هم به این نتیجه برسی که برای این کار جوابگو نیست.
نکته دیگر هم اینکه دانش و سواد یک طرف هست . طرف دیگر هم توانایی حل مساله هستش. شرکت بزرگ این براش از هر چیزی مهم تره و توانایی Think outside the box برای حل مساله.
میلاد قاضی پور
پنج شنبه 05 آبان 1390, 10:18 صبح
فکر کنم متفق القول همه نظرشون اینه که روی تخصص بیشتر سرمایه گذاری بشه تا تعدد بدون تخصص . نظر کلی من هم همین هست اما دلیل من اینه که وقتی یک زبان رو یادمیگیریم اغلب مفاهیم اصلی در اکثر زبانها یکی هست . مثلا یادگیری ارث بری در دات نت باعث میشه در سایر زبانهای شی گرا بنیه ی قوی ای برای یادگیری وجود داشته باشه . من خودم با سیشارپ شروع کردم ولی مثلا وقتی داشتم جاوا اسکریپت یاد میگرفتم در زمینه ی استک و هیپ مخم چندان کشش نداشت و نمیتونستم درک کنم . اما بعدا که توی سیشارپ مجبور شدم این مسائل رو درک کنم باعث شد وقتی در هر کتابی کلمه پشته به چشمم خورد درک کنم که چی میخونم .
m.soleimani
پنج شنبه 05 آبان 1390, 11:38 صبح
فکر کنم متفق القول همه نظرشون اینه که روی تخصص بیشتر سرمایه گذاری بشه تا تعدد بدون تخصص . نظر کلی من هم همین هست اما دلیل من اینه که وقتی یک زبان رو یادمیگیریم اغلب مفاهیم اصلی در اکثر زبانها یکی هست . مثلا یادگیری ارث بری در دات نت باعث میشه در سایر زبانهای شی گرا بنیه ی قوی ای برای یادگیری وجود داشته باشه . من خودم با سیشارپ شروع کردم ولی مثلا وقتی داشتم جاوا اسکریپت یاد میگرفتم در زمینه ی استک و هیپ مخم چندان کشش نداشت و نمیتونستم درک کنم . اما بعدا که توی سیشارپ مجبور شدم این مسائل رو درک کنم باعث شد وقتی در هر کتابی کلمه پشته به چشمم خورد درک کنم که چی میخونم .
در مورد مفاهیم به این شکل هست ولی در زمان پیاده سازی به مشکل بر خواهی خورد چون از رویه قبلی و شاید منسوخ شده زبانی که قبلن یادش گرفتی قصد داری انجامش بدی یا برعکس شما یه رویه پیشرفته رو توی زبان جدیدی که یادش گرفتی دیدی که امکان پیاده سازیش بدون دردسر توی زبان قدیمی نیست. پس شما به جای یادگیری چندتا زبان بیا و برای هر نیازت توی یه زبان به خوبی پیش برو؛ برای مثال :
C# + Asp.Net + javascript + Sql
که هم از نظر نحو برنامه نویسی به هم نزدیک هستن و به خوبی با هم سازگار هستن و هم این که شما رو توی تمام زمینههای مورد نیاز بازار کار حمایت میکنن. و البته این ترکیب با زبانهایی که کارایی مناسب و مشابه به اینا انجام میدن قابل تغییر هست ولی یه جور کلییت داره که باید بهش فکر کنی. فکر کنم منظور از یادگیری چند زبان برنامه نویسی همین هست نه این که شما بیای و بیسیک، سیشارپ، سی، سی++ و جاوا رو یاد بگیری که همه شما رو کمک میکنن برای نوشتن برنامه؛ باید زبانهایی رو یاد بگیری که هر کدوم برای کار جداگانهای طراحی شدن و سختی و راحتی در این انتخاب به صورت سلیقهای هست.
شاد و پیروز باشید./
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.