فست کد جان من بدجوری سرم درد میکنه میشه شماره منو بدی؟:کف:
آخه تو پسر خوبی هستی ولی میتونی از tanavar.ayat و aradrobo بپرسی
Printable View
فست کد جان من بدجوری سرم درد میکنه میشه شماره منو بدی؟:کف:
آخه تو پسر خوبی هستی ولی میتونی از tanavar.ayat و aradrobo بپرسی
با سلام
من دانشجوی ارشد نرمافزار در دانشگاه شهید بهشتی هستم!
این تاپیک به چشمم خورد دیدم مهمترین موضوع در مورد علوم کامپیوتر همیشه شروع برنامه نویسی هست!
اینکه با چه زبانی شروع کنیم!
من در مورد این میخام یه سوال بپرسم!
اگر شما جای یک مدرس بودید با چه زبانی شروع میکردید آموزش برنامه نویسی را به کسانی که اولین بار نام کامپیوتر به گوششان خورده، میدادید؟
پیام بازرگانی میان بحث گرم دوستان!
کاملا بستگی به هدف فرد داره . اگه هدف فقط پول در آوردن باشه اینجا مسئله برنامه سازی هست نه برنامه نویسی ( به نظر من با هم فرق دارن ) و باید راهی رو انتخاب کرد که در سریعترین زمان ممکن بشه برنامه رو ایجاد کرد. که از این نظر چارچوب دات نت تقریبا بیشتر نیاز افراد رو برطرف میکنه. که میشه برای شروع برنامه نویسی هم روش حساب کرد.
اما اگر هدف نوآوری و خلاقیت باشه و میخواهید این توانایی رو داشته باشید که هر جانوری که با صفر و یک کار میکنه رو برنامه ریزی کنید , صد در صد C و ++C رو پیشنهاد میکنم. ولی انصافا زیاد برای افراد مبتدی مناسب نیست .
البته باید بگم vb6 که دوستان خیلی بهش عنایت داشتن هم آنچنان بد نبود . حداقل تا همین چهار سال پیش. و میتونه برای یادگیری خوب باشه چون کلا هدف اولیه بیسیک آسان بودن برای افراد مبتدی بود. سینتاکس بیسیک هم به نظرم آنچنان غیر منطقی یا سخت نیست. آخرین چیز جالبی هم که ازش دیدم این بود که با ساخت و واسط قرار دادن فایل Com میشد رجیسترها رو تغییر داد.
این نتیجه 8 سال باکتری کیبرد خوردن بنده بود در راه برنامه نویسی!
من یک مدرس در دانشگاه هستم!
بهترین زبان پیشنهادی من برای شروع یادگیری مفاهیم علوم کامپیوتر و برنامه نویسی در حال حاضر زبان Python هست!
مهمترین دلیل من، انتخاب Python برای شروع برنامه نویسی در دانشگاههای معتبر دنیا مثل MIT، Standford و Berkley هست!
باید روشن کنید که درمورد حجم صحبت میکنید یا پیچیدگی.
اینا با هم تفاوت دارن.
یه برنامه که حجم کارش خیلی زیاد باشه رو بله یک نفر به تنهایی نمیتونه/صرف نمیکنه انجام بده.
ولی یه نفر به شرط داشتن دانش و استعداد و پشتکار کافی میتونه برنامه های واقعا پیچیده ای رو بسازه به شرطی که حجمش بیش از حد زیاد نباشه.
نمونه برنامه های مفید و جالبی هم که یک نفر به تنهایی بتونه بنویسه بنظرم کم نیست.
من حالا دقت نکردم و الان حضور ذهن ندارم، اما فکر میکنم تاحالا بارها چنین برنامه هایی دیدم. اگر مشخصاتشون رو یادداشت میکردم الان میتونستم براتون لیست کنم.
شاید اشکال کار اینجاست که وقتی صحبت از برنامه های جالب و مفید میشه، بعنوان مثال همش دشوارترین و بزرگترین و معروفترین برنامه هایی مثل فتوشاپ و اتوکد و گیم های آنچنانی و مایا و تری دی مکس و ویندوز و اینها رو میارید.
در دنیای بازمتن هم برنامه های مفیدی که یک نفر نوشته باشه وجود دارن. بعضیا رو هم اول یک نفر نوشته، بعدا که دیدن بدردبخوره دیگران هم رفتن روش کار کردن حالا چه بصورت انفرادی و چه بصورت تیمی.
شما فکر نکنید برنامه فقط اوناست امثال فتوشاپ و اتوکد و غیره.
برنامه هایی که من مد نظرم هست میتونن اصلا GUI نداشته باشن. ممکنه رابط خط فرمان داشته باشن. بسیاری از برنامه های دنیای بازمتن و لینوکس همینطور هستن، ولی در عین حال برنامه های مهم و واقعا مفیدی هستند.
بعدم ببین خیلی از ابداعات اولیه اساسی یا مفید رو کسانی انجام میدن که دانش و توانایی های گسترده دارن.
توی خیلی زمینه ها یک نفر که فقط در یک زمینهء محدودی تخصص داره و فقط به درد جزیی از یک تیم بودن میخوره، نمیتونه پیشرفت و ابداع ایجاد بکنه. چون برای پیشرفت و ابداع نیاز هست یک دید جامع روشن و در عین حال دقیق و همراه با جزییات داشته باشی و خیلی چیزها در خیلی حیطه ها بدونی.
البته این نظر منه!
کاربرد چنین افرادی فقط این نیست که برنامه بنویسن اونم درحد فتوشاپ و اتوکد و مایا و غیره.
یک کاربرد چنین افرادی ایده و نوآوری و نوشتن بیس برنامه ها و ساختارهای جدیده.
البته افرادی هم که تخصص های محدودی دارن میتونن ایده و نوآوری داشته باشن، ولی نه در هر زمینه ای و هر چیزی. برای بعضی چیزها نیاز هست طرف همه چیز دان یا چند چیز دان باشه! در تاریخ علم و فناوری اگر نگاه کنی از این موارد رو پیدا میکنی که مدتها هیچکس نتونسته مسئله ای رو حل کنه یا ابداع و پیشرفت مهمی ایجاد کنه، اما یه روزی یک نفر که دانش و توانایی های چند حیطه ای داشته اومده و با بینش گسترده و جامعی که داشته و با ترکیب دانشش در چند حیطه و فناوری، کار مهم و واقعا مفیدی رو انجام داده.
حالا شما بگو کار گروهی و تیمی!
بله کار گروهی و تیمی خوبه، ولی کار انفرادی هم کاربرد و مزایای خودش رو داره بجاش.
کار تیمی و گروهی مقدمات و شرایط و هزینه های خاص خودش رو هم داره و همیشه به راحتی کار انفرادی نمیشه فراهمش کرد؛ گاهی اصلا امکانش نیست.
من الان بخوام یه برنامهء شخصی واسه خودم بنویسم، باید برم دنبال تیم بگردم؟ حالا یا پول بدم بهشون یا بخوان داوطلب کار کنن. شدنی هست این کار همیشه و برای همه چیز؟
خیلی وقتا بخصوص در کشورهایی مثل کشور خودمون شما اصلا افراد کافی که تخصص ها و دانش و صلاحیت و خصوصیات شخصیتی لازم رو داشته باشن برای تشکیل یک تیم واقعی و کارا، پیدا نمیکنی. پیدا کردن و تشکیل دادن تیم با افراد مناسب همیشه آسان یا شدنی نیست. بعدم ممکنه اصلا نخوای برنامت و ایده و هدفت تا اطلاع ثانوی (یا هیچوقت) در دسترس افراد دیگری قرار بگیره. بعدم ممکنه پول نداشته باشی سرمایه گذار گیر نیاری و هدف و برنامت چیزی نباشه که افراد متبحر کافی انگیزهء کافی برای جلب شدن بهش و همکاری درش داشته باشن.
بقول یکی از کاربران، شما نمیتونی همینطوری به همین راحتی مسائل رو Generalize کنی.
شما یه سری چیزها خوندی، دیدی، کار کردی، فکر نکن دیگه تمومه.
بنده هم خیلی چیزها خوندم و دیدم که شما ندیدی یا درک نکردی/نگرفتی.
شاید باریک بینی لازم رو نداشتی.
هرکس نقش خودش رو داره.
آدم با آدم شرایط با شرایط فرق میکنه.
اونی که خوره هست و شرایط مساعد داره و میره بصورت انفرادی و گسترده کار میکنه هم به جای خودش به درد میخوره و همین آدمها بخشی از علم و فناوری رو پیشرفت دادن.
حالا اگر دید رو محدود کنی خب بحث فرق میکنه. مثلا بگی هدف فقط بحث تجارت و اقتصاد.
بنده هم دنبال بحث تجارت و اقتصادش نبودم هیچوقت (یا حداقل اولویت اولم نبود). حداقل تاحالا. چون هم شرایطم تفاوت میکرد با اکثریت دیگران و هم خوره بودم.
الان هم زیاد برنامهء خاصی ننوشتم، ولی از نظرم واضحه که اگر بازم وقت آزاد کافی داشته باشم میتونم خیلی برنامه های جالب و مفیدی رو برای شخص خودم هم که شده بنویسم.
دیگه در حد یه برنامهء دفترچه تلفن آنلاین واسه خودم که میتونم بنویسم. چرا نمیشه؟
شاید بگی آمادش هست. خب خیلی چیزا هست، ولی بارها پیش اومده در یه زمینه ای سرچ کردم تحقیق کردم چندین و چند برنامه رو به زحمت دانلود و تست کردم که هرکدام یه مشکلاتی داشتن به هر دلیلی از هر نوعی با موفقیت اجرا نشدن یا مشکل داشتن یا خصوصیات مد نظر من رو نداشتن.
مثلا من شاید دفترچه تلفن آماده پیدا کنم ولی در امنیتش شک داشته باشم. شاید اون خصوصیات و قابلیت هایی که خودم میخوام رو نداشته باشه. بخصوص که تخصص در زمینهء امنیت و رمزنگاری دارم.
شاید بخوام بخش دسکتاپ هم داشته باشه. شاید بخوام از یک روش رمزنگاری و امنیت اختصاصی که خودم طراحی میکنم استفاده کنه. من خیلی برنامه ها دیدم که ضعف و باگ داشتن. برنامه و کتابخانه و کد رایگان توی اینترنت زیاد هست اما نقض و ضعف و باگ هم توشون کم پیدا نمیشه (بعضی ها که حفره دارن درحد دروازه فوتبال).
هدف بنده بیشتر توانایی های شخصی برای برنامه ها و کارهای شخصی بوده.
از دانش و توانایی های گسترده ای هم که بدست آوردم استفاده هایی کردم تاحالا.
حداقلش شخصا لذتش رو بردم.
با BASH رو لینوکس برنامه نوشتم بعنوان تایمر آب پز کردن تخم مرغ!!
باور کن همین چیز به ظاهر ساده خیلی به دردم خورد، و یه خصوصیاتی داشت که از برنامه های تایمر گرافیکی هم برام مناسبتر بود؛ مثلا حتی وقتی لاگ آف میکردم هم اجرا میشد. حالا برنامه های GUI که این خصوصیات رو نداشتن و اگر هم میشد برنامه ای با سی یا سی++ یا هرچی نوشت، بهرحال با شل اسکریپت خیلی راحتتر و سریعتر این کار رو انجام دادم و از راه دیگه شاید اصلا وقت و حوصلش رو نداشتم.
با همین دانش و توانایی در خط فرمان و ساختار لینوکس، دوبار به سرور هاست سایت خودم نفوذ کردم.
با این کار در زمینهء امنیت و ساختار سرورهای لینوکس هم دانش و اطمینان بیشتری بدست آوردم و تونستم یکسری تست هایی بکنم، و حداقلش از وضع خراب امنیت شرکت هاستینگ خودم مطلع شدم و اینکه انگار ادمین هاش سواد درست و حسابی ندارن برای این کار.
من این چیزا رو دوست دارم بلد باشم.
ازش پولی درنمیاد (حداقل تاحالا و با این شرایط)، اما بازم دوست دارم به دردم میخوره لذت میبرم راه یادگیری چیزهای بیشتر رو برام باز میکنه ایده های جدیدتر و بیشتری به ذهنم میاره دنیا رو بهتر درک میکنم...
بله اینو که تقریبا همه میدونن زبان برنامه نویسی زیاد هست، ولی عمده و اصلی و اونایی که باهاشون 100% یا حداقل 99% تمام کاربردها رو بتونی بصورت بقدر کافی مناسب/بهینه انجام بدی خیلی کمتره تعدادشون.
شاید تشبیه به زبانهای انسانی بی راه نباشه.
الان ما چند کشور چند زبان انسانی در دنیا داریم؟
آیا کسی نیاز جدی احساس میکنه که تمام زبانهای دنیا یا بخش عمده ای از اونا رو یاد بگیره؟
نه عملا در خیلی موارد همون زبان انگلیسی به تنهایی کفایت میکنه.
و نهایت میری چندتا زبان مهم دیگه مثل آلمانی و فرانسوی و عربی و شاید چینی و ژاپنی (!) رو هم یاد میگیری.
بله اگر میشد همهء زبانهای انسانی روی زمین رو یاد گرفت هم بد نبود و احتمالا خیلی مفید هم بود، ولی اول شدنی نیست، دوم بهینه نیست، صرف نمیکنه نسبت به بازدهی ای که داره.
نمیشه مطلق گرا و ایدئال گرا بود در دنیای واقعی. اینجا همه چیز نسبیه و تعادل و نسبت ها و درصدها و احتمالات حاکمه.
بنابراین ما میایم و موارد عمده که بیشترین کاربرد و تاثیر رو دارن و دست یافتنی هستند انتخاب میکنیم.
حالا بعضیا وضعیت خاص دارن. مثلا یکی ممکنه به هر علتی بره توی یک کشور خاصی اقامت کنه برای مدت طولانی؛ خب این شخص احتمالا به نفعش یا لازم خواهد بود که زبان بومی اون کشور رو یاد بگیره، حتی اگر زبان واقعا ناشناخته ای باشه و متکلمان کمی داشته باشه در دنیا.
ضمنا این زبانهای برنامه نویسی هم تاحدودی مثل قضیهء تعداد زیاد توزیع های لینوکس میمونه!
لزوما اینطور نیست که فکر کنیم به همشون واقعا نیاز بوده و به دردی میخورن و چیز خاصی دارن که زبانهای دیگه در اون زمینه کمبود مهمی دارن.
خب هرکسی ممکنه حتی از روی سرگرمی یا پژوهش، تمرین و آموزش و پروژهء تحصیلی یا حتی از روی یک حماقت و اشتباه شخصی رفته باشه بعضی از چنین چیزهایی رو بوجود آورده باشه.
یک علت اینکه تعداد اینقدر زیاده اینه که خیلی ها میتونن و آزادن که این کار رو انجام بدن.
چقدر بحثو کش می دین
با هرچی عشقتون کشید کار کنید دیگه :عصبانی++:
حرف زدن و پست چند صد متری نوشتم خیلی اسونه کد نشون بدین (یا تلخیص از LNK TVLDZ :لبخندساده:)
پایان :لبخندساده:
کد چی مثلا؟
بعد چطوری چی رو ثابت میکنه؟
و چه ربطی به این بحث داره؟
چرا کسی در مورد جاوا حرف نمیزنه؟ ایا این زبان برای شروع خوبه یانه؟
بعضی از دوستان C# رو معرفی میکنند برای شروع من شنیدم که ماکروسافت C# رو برای مبارزه با چاوا داد بیرون و این دو زبان یه سری شباهت های به هم دارن از همه مهم تر جاوا متن بازه و توی همه ی سیستم عامل ها جواب میده
حالا ایا جاوا برای شروع خوبه؟
به جاوا چند بار اشاره شد و هیچ دلیلی هم برای استفاده نشدنش وجود نداره.
زبان ساده, کامل و خوبیه.
با جاوا خیلی کارها میشه کرد و خیلی کارها هم نمی شه کرد. زبان کاملی نیست. اشاره گر نداره، کد Native تولید نمی کنه، نمی شه برای کرنل برنامه نوشت، از پس برنامه های سیستمی برنمیاد، برای اجرای پروژه های انترپرایز مناسبه، برای اجرای پروژه های معمولی و کوچک (زیر یک میلیون خط) به نظر من مناسب نیست، فاصله دست به کد شدنتون تا خروجی گرفتن، نسبتا زیاده، برنامه نویس های خبره اندکی داره، با دستمزد های بالا، همیشه برای برنامه نویس هاش کار هست، شی گرایی قوی ای داره، حجم کدهای نوشته شده در کارهای مساوی نسبت به زبانهای دیگه نسبتا بالاست، هزینه های برنامه نویسی معمولا بالاتری داره (به دلیل تعداد کم برنامه نویس مسلط به تکنولوژی مورد استفاده شما) ، با دونستننش می تونید روی هر سیستمی برنامه تولید کنید، اوپن سورسه و این یعنی اینکه هرروز در حال گسترشه، چند ده تا تکنولوژی و فریم ورک داره، IDE های بسیار قوی مثل Eclipse و NetBeans داره، مجانی هست، برای قطعات مختلف برنامتون معمولا کد آماده توی نت داره، ...نقل قول:
زبان ساده, کامل و خوبیه.
برای من هم اصلا ساده نبود! این جناب فست کد همه رو با خودش می سنجه می گه آسونه :))
از این دقیقتر نمیشد جاوا رو توصیف کرد.ولی باید هنوز قبول کنیم که توی سه تا کلمه بد توضیح ندادم.
و البته یاد گرفتنش برای من هم آسون نبود.ولی ارزش داشت.
به نظر من به جای این کار یک poll بزاریم تا همه ی اعضا شرکت کنند و ببینیم در آخر بازار کدوم زبون رو میشه به گند کشید.
اسم تاپیک رو که خوندم برام جالب به نظر اومد ولی خب محتوای تاپیک ...
darkness:دوست عزیز بحثت خیلی جالبه،شما الان کامل اسمبلی بلدی ؟ و اینکه ایا میاید برای یک برنامه هزاران خب کد با دستورات اسمبلی میزنید که برنامه سازی کنید ؟ خیلی خوشحال میشم یه پروژه بزرگتون رو که با اسمبلی کد زدید رو ببینم
بحث کرک رو پیش کشیدید،حرفاتون خیلی جالبه،شما با افتخار دارید از کرک و ناامید کردن یه شخص از برنامه نویسی حرف میزنید ؟ (امیدوارم هیچ وقت هیچ وقت توی ایران با این طرز تفکر ما کپی رایت نداشته باشیم وگرنه به جای هرچی دانشگاه و کتابخانه و ... هست باید زندان و دادگاه تاسیس کنیم)
در ضمن خیلی خوبه اینم بدونید که هنوز خیلی چلنج ها هست که بهشون بر نخوردید ( از طرز صحبتتون اینو گفتم اگه اشتباهه بگید اصلاح کنم)چون تا حالا فکر نکنم برای برنامه های دات نت به سراغ obs های خیلی پیچیده و مبهم سازی هایی که نرم افزار های بزرگ دارن استفاده میکنند رفته باشید
فیا به فرض مثال دور زدن token ها (همین مدل ملی که امن افزار زد...!!)
اینو هم خوبه به خاطر داشته باشید توی مساله RCE زبان اسمبلی نیست که حرف اول رو میزنه،بهتره بدونید که داشتن درک کاملی از عملکرد سیستم ها خیلی مهم تره،و مورد بعدی اینکه فکر کنم بهتر باشه قبل اینکه نگاه کنیم اسمبلی توی کرک چه نقشی داره به یه مرحله قبل نگاه کنیم یعنی ابزارتون مثل Diassembler یا Debuger ها
و تا جایی که بنده میدونم اینها به زبان اسمبلی نیستند.مورد دیگه اینکه خیلی ها هستند (کسانی که RCE رو تازه شروع کردند،بدون درک کامل اسمبلی هم کارشون رو میکنند چون هم عملکرد برنامه رو درک میکنند هم به جای سعی برای یادگیری کامل اسمبلی سعی میکنند بیشتر به پرش ها و عملگر ها توجه کنند)
((((((یه مورد دیگه هم اینکه فکر کنم این ضرب المثل درخت هر چه پربار تر افتاده تر رو هنوز خیلی وقت نکردی بهش فکر کنی؟)))))
در مورد اینکه گفتید اگه از مایکروسافت دور بشیم دنیا خاموش میشه ،فکر کنم بهتره یکم دیدتون رو نسبت به اوپن سورس و گستردگی استفاده اون در حال حاضر وسیع تر کنید
در مورد کار تیمی هم همینقدر بس که تو ایران مردم اماده کار تیمی اند !!!!!!!!!!!
امیدوارم حرفام ناراحتتون نکرده باشه صرفا یه نقد ساده و کوچیک ( در حضور بقیه اساتید نقد صحبت جایز نبود اما به هر حال سعی کردم نظرمو راجع نوشته هاتون بگم)
--------------------------------------------------------------------------------------------------------------------
در مورد بحث اصلی تاپیک هم بنده فکر میکنم زبان های دات نت یا پایتون رو برای شروع کار انتخاب کنید
پ.ن:خواستم راجع بحث ویروس نویسی و انالیز بدافزار که مطرح کردید هم بگم اما از حوصله من ( الان با این وضعم :دی و )و جمع بیننده مطلب خارجه
موفق باشید
من کلا فکر نمیکنم کسی که فقط دات نت بلد باشه برنامه نویس کاملی بشه.
یه نمونش رو چند وقته بطور روزمره دارم میبینم.
یه برنامه هست برای املاک به اسم پروفایل.
این برنامش تحت شبکه هست و برای ذخیره و جستجوی فایلهای املاک بکار میره و اینا!
فایلهایی رو هم بطور روزمره از سرور خودش دریافت میکنه.
خب ظاهر و امکاناتش بد نیست، اما چند مورد باگ ریز و درشت داره که تعجب میکنم چطور این برنامه رو که هزاران مشاور املاک استفاده میکنن یه تست درست و حسابی نکردن (یا شاید اصلا اینقدر توانایی نداشتن که تست هوشمندانه بکنن) و این باگها رو ندیدن و برطرف نکردن. شاید هم اینقدر عجله داشتن و بحث RAD رو ترکوندن که باگها رو میدونستن اما برطرف نکردن که وقت تلف نشه!!
از طرف دیگر اگر برنامه نویسی با دات نت اینقدر ساده و سریعه، پس احتمالا باید میتونستن باگها رو هم سریعتر و راحتتر از زبانهای دیگه رفع کنن.
مثلا یک باگی داره که باعث میشه از چند هزارتا فایلی که از سرور خودشون دریافت کردیم، بیش از 500 تای اونا در جستجوی های مشاورین املاک اصلا لیست نشه.
این باگ رو بنده شک کردم و یه تست هوشمند انجام دادم و دیدم وجود داره. همش چند دقیقه بیشتر هم وقت نبرد.
خب ظاهرا این باگ رو خودشون هم نمیدونستن، مشاورین املاک دیگر هم متوجه نشده بودن، بهشون گزارش کردیم گفتن توی نسخهء بعدی میخوان درست کنن.
خلاصه شما با دات نت میتونید برنامه سرهم کنید، اما نمیتونید برنامه نویس بی نقصی بشید.
اینطوری نیست که دات نت همه چیز رو خودش هندل کنه. بهرحال دات نت هم چیزی نیست جز یک زبان برنامه نویسی و یک فریمورک و پلتفرم.
دیگه نمیاد منطق و باگهای برنامه های شما رو هم چک و درست کنه که.
اینا این برنامه رو نوشتن اما باگهای بزرگ و ناشیانه ای توش هست که حتی نتونستن اونا رو کشف کنن، نشون میده که با دات نت میشه برنامه سرهم کرد اما درحد همون ظاهر و کارایی های کلی. دات نت نیازمندی به یک برنامه نویس واقعی رو برطرف نمیکنه. واقعا میشه با این وضع برنامه هایی نوشت برای کاربردهای مهم و جدی؟ دیده نشدن همون 500 تا فایل از بین چندهزارتا فایل خودش چیز کمی نیست؛ یه خسارت جدیه در کار مشاور املاک.
حرف درست رو کیا میزنن؟
اونایی که میگن اول باید برنامه نویس واقعی و خبره ای باشی، بعد بری از امثال دات نت و ویژوال استودیو برای صرفه جویی در وقت و انرژی ارزشمند خودت استفاده کنی.
اما اونایی که از ابتدا تا انتها برنامه نویسی رو با دات نت و ویژوال استودیو یاد میگیرن و کار میکنن، بنده دلایل و شواهد منطقی و روشنی بنظرم میرسه که باید پیشفرض رو بر این بذاریم که به اندازهء برنامه نویسان قدیمی زبانها و محیطهای دیگه برنامه نویس نمیشن درواقع!
جدا باورش خیلی سخته که مثلا منی که این همه با ساختمان داده کار کردم، الگوریتم های پیچیده رو مطالعه کردم، چیزهای پایه ای خوندم، پروتکل ها، فرمتها، مسائل سطح پایین، با زبانهایی مثل سی کار کردم که درش کوچکترین اشتباه سینتاکس یا منطقی دمار از روزگار درمیاره و موجب رفتارها و خطاهای تخیلی میشه که حتی آدم غیرمبتدی هم خیلی وقتا اول این فکر به ذهنش میاد که به صحت عقل رایانه و کامپایلر شک میکنه، بعد با اونی که برنامه نویسی رو با دات نت و ویژوال استودیوی عزیز با دراگ و دراپ و چندتا رابطه و declaration یاد گرفته و 50% کارهای برنامه نویسی رو خودش انجام نمیده و اصلا نمیدونه هم که چی هستن و چطور انجام میشن، در یک سطح از دانش و قدرت برنامه نویسی باشیم!
آقا انصاف خب ما کارهای شاقی کردیم.
چیزهای زیادتری دیدیم، انجام دادیم، فهمیدیم.
بعضیا میگن خب آدم به مرور میفهمه، خودش دنبالش میره.
ولی خب این حرف تاحدی غیرواقعگرایانه است.
آدمهای معدودی هستن که دنبال بیشتر از اونچه برن که واقعا خودشون رو مجبور بهش میبینن.
الان بیشتر مردم هدفشون از برنامه نویسی فقط اینه یک چیزی سرهم کنن و یه پولی به جیب بزنن.
خب واقعیته دیگه. و البته ایراد خاصی هم از این بابت بهشون نمیشه گرفت که چرا اینطور فکر میکنن و اینطوری هستن و چنین هدفی دارن؛ اونم در این مملکت با این اوضاع استثنایی.
البته شروع کردن از زبانهای سطح بالای مدرن در وهلهء اول مشکلی نداره.
ولی دیگه دات نت و ویژوال استودیو که آخه نشد آموزش برنامه نویسی! بگیم آموزش برنامه سرهم کنی بهتره! آموزش دیزان GUI و طراحی و گرافیک بهتره!
تازه بازم من میگم برنامه نویسی که با چیزهای سطح پایین و شاق و زبانهای قدیمی که باید همه کار رو درش خودش انجام بده و چک کنه دست و پنجه نرم نکرده باشه، نمیتونه درحد برنامه نویسی که این کارها رو کرده باشه.
یعنی اگر با پایتون هم رفتی کار کردی، خب حداقل به بدی دات نت و ویژوال استودیو نیست، اما بازم تا سی رو درک و کار نکرده باشی مرد کهن نمیشی (اشاره به حدیث گاو نر میخواهد و مرد کهن). شاید به زور آخرای عمرت تازه به اون درجه برسی.
این رزمی های شائولین رو دیدید؟
چرا اونقدر قوی و کامل هستن؟
چون از پایه کامل همه چیز رو کار میکنن و ریاضت بیشتری میکشن.
شما نمیتونید به سطح اونا برسید. چون اونقدر همه چیز رو و از پایه کار نکردید و نمیدونید و بدست نیاوردید؛ اونقدر زحمت نکشیدید.
خب گفتیم مشکلی با شروع برنامه نویسی از زبانهای سطح بالای مدرن و راحت وجود نداره.
ولی از یک طرف این مسئله هست که کمتر کسی که با اینا شروع کنه بعدا میره و زبانهایی مثل سی و کار سطح پایین رو هم بقدر کافی مطالعه و کار میکنه!
چون واقعا کار سختیه و انگیزه پیدا کردن براش کار هرکسی نیست.
ما هم که یک مقدار سی کار کردیم چون اون زمان اصلا نمیدونستیم پایتون و VB چیه و همچین چیزهایی وجود دارن.
بعدش توی دانشگاه یه استاد داشتیم که از سی تعریف کرد و گفت قویترین برنامه نویسهای دنیا سی کار بودن، این بود که من شیفتهء سی شدم و رفتم توی کارش (کتاب جعفرنژاد قمی رو کامل خوندم و کار کردم و نمرهء امتحان سی رو هم 19 گرفتم که براش یک پنجم اون کتاب کافی بود).
یعنی این یک مسئلهء روانشناسی و رفتارهای انسانیه تا صرفا یک تصمیم فنی.
الان اصلا یه جایی بنظرم چند وقت پیش میخوندم که نوشته بودن تعداد کسانی که بتونن و حاضر باشن برنامه نویسی سیستمی و سطح پایین کار کنن روز به روز کمتر شده و این خودش داره یه کمبود و مشکلی ایجاد میکنه. مثلا تعداد کسانی که بتونن و حاضر باشن روی کرنل لینوکس کار کنن و اون رو زنده نگه دارن، توسعه بدن، بروز کنن.
چرا؟ خب یک دلیلش اینه که امروزه این همه زبان و ابزار و محیط راحت و سریع و جذاب برای برنامه نویسی اپلیکیشن وجود داره که بیشتر افراد رو شیفتهء خودشون میکنن. دیگه کمتر کسی هست که رغبت داشته باشه برنامه نویسی سطح پایین و سیستمی رو با اون دشواری و کندی و نداشتن جذابیت ظاهری، ترجیح بده.
خداییش هم خب کارایی هایی که آدم میتونه از برنامه نویسی اپلیکیشن بگیره زیاد و جذاب هستن. فقط بحث زیبایی و جذابیت ظاهری نیست.
یعنی حتی منم که خوره بودم دیدم اگر برم توی بحث برنامه نویسی سطح بالا، چیز بیشتری عایدم میشه به نسبت وقت و انرژی ای که باید صرف کنم.
منتها من دانش و مهارت پایه برای برنامه نویسی سطح پایین و سیستمی رو هم دارم و همیشه سعی کردم بدست بیارم، چون میدونستم اونم واسه خودش یه قدرت و اساسه و ممکنه یک وقتی نیاز بشه و همچنین در برنامه نویسی سطح بالا هم بدرد میخوره.
فقط همین قدر بگم توسط چهارتن از بهترین کرکرهایی که به شخصه دیدم تحت آموزشم(هر crackme یی که به این 4 نفر بدین 2 ساعت بعد پچش رو پس میگیرین)
که همشون این چلنج هارو رد کردن
من یاد گرفتم پیچیده ترین چیز ها بعد یه مدت تمرین مثل آب خوردن میشن که به اونجاشم میرسم.
حتی اگر پیچیده ترین کد روی زمین رو به من بدن ترس به خودم راه نمیدم چون هر کاری هم که کنن بازم قابل تحلیل و شکستنه.
همین smart assembly که خیلی ها استفاده میکنن و فکر میکنن کرک نمیشه.
این چهار نفر مثل آب خوردن درصورت استفاده از آخرین ورژن smart assembly برنامه رو راحت پچ میکنن و آموزشش رو گذاشتن یه جایی(نمیتونم بگم فردا پس فردا دوباره به هم اخطار میدن).
خراب کردن خیلی آسون تر از درست کردن یادتون باشه.
تعداد کرکر ها بمانمد که گروه گروه وارد دنیای مجازی میشن و تشنه ی crackme های پیچیده ترن.
عطش کرکر های حرفه ای رو فقط crackme های خیلی خیلی پیچیده خاموش میکنه بنابر این ترسی برای اونا وجود نداره که کرک میشه یا نمیشه.
یه جمله ی معروف هست که میگه
"کرکرها پشت کدها گیر نخواهند کرد :چشمک: یا راه را خواهند دید یا راهی خواهند ساخت"
با کمی تغییر :لبخند:
کلا منو از حرف زدن راجب کرک تحریم کردن.
ولی بازم بگم چینی ها دوتا دیباگر قوی نوشتن یکی به assembly x86(بازم از گفتن اسمش....)
و یکی دیگه به C++ QT (بازم از گفتن اسمش....) که البته چند برنامه نویس روسی و آلمانی و فرانسوی توش همکاری کردن.(که قابل توسعه هست و سایت مرجع هم براش قرار خواهد گرفت)
از نظر من بخشی از حرفاتون درست و بخشیش غلطه.
من الان مشغول تحلیل برخی مسایل امنیتی هستم.
تواین تحلیل ها متوجه چیزهایی شدم که شخص بدون بلد بودن اسمبلی محاله بفهمه.
کرکر ها خودشون به چندین دسته تقسیم میشن چیزی که بهش هیچ وقت توجه نشده همینه.
تکنیک هاشون باهم فرق داره(به شدت هم فرق داره نه که در حد چند تا متد ساده).
ولی درکل همه ی کرکر ها سعی میکنن دربند تقسیم بندی ها نباشن و همه ی تکنیک های همدیگه رو یاد بگیرن و به هم یاد بدن.
یک کلام
ضرب المثل برای همه صادق نیست.
شما فقط یه لحظه xbox one یا xbox 360 رو بزار کنار ببین چی میشه.(واسه گیمر ها که دیگه ....)
خراب کردن ی چیزی از ساختنش خیلی خیلی راحت تره
الان کشور های پیشرفته دیگه کمتر ب امنیت برنامه هاشون فکر می کنن چون قانون کپی رایت خوبی دارن + فرهنگ مردمشون
نمونش Ubisoft صد ساله سیستم قفل گزاریشم عوض نکرده
هر دفعه بازی ای میده بیرون 1 ساعت بعد کرک می شه
ولی هیچ کس از کرک استفاده نمی کنه همه نسخه اورجینال می خرن (البته بجز ایران و چند تا کشور در پیت ک براشون اهمیتی نداره)
کرک کردن و هک کردن ک الان ایرانیا بیشتر از زمینه های دیگه توش استاد شدن مخصوصا هک کردن سایتای بیچاره امریکایی کار اصلا خوبی نیست
اینجا هم انجمن کرک نیست برین خدا روزی تونو ی جای دیگه بده
دیگه بحث کرک و هک رو راه نندازین برین اشیانه :عصبانی++:
برای برنامه نویسی اپلیکیشن سی شارپ و جاوا و امثالش کلا بدرد نمی خوره
کاری ب قابلیت هاش ندارم مشکل اصلی اینه ک این زبان ها خیلی اسونن :لبخند:
اگه ب کدهای برنامه نویسان دات نت دقت کنید می بینید ک هم از نظر پرفرمنس و هم ساختار برنامه کلا چیز خوبی نمی نویسن
در واقع تو حالت منیجد فقط اسکریپت می نویسی چهار تا کلمه که هرکدوم ی کاری انجام می دن
ولی کسایی ک درکی از اسمبل دارن و با زبان های Native برنامه می نویسن معمولا اهسته تر کد می نویسن و بیشتر فکر می کنن و کد اصولی تحویل می دن
(تو زبان های ساده تر و منیجد شما فقط باید انگشتارو بزارید رو کیبورد و ب مانیتور نگاه کنید ک چی می نویسد )
سخت بودن این زبان ها برنامه نویس رو با هر بار برنامه نوشتن قوی تر می کنه (این تجربه شخصی خودم بود با 1.5 سال سی شارپ و 2 سال سی++ کار کردن )
این وسط این ماکروسافتم داره همه رو از راه بدر می کنه
دات نت رو ک بد جوری حمایت می کنه
ب سی++ هم ک بدجوری گند زده و توقع داره سی++ کارا بیان منیجد سی++ :شکلک سبزه:
متاسفانه تو ایران هم اکثرا دارن از Native قافل می شن ب علت هنگیدن دانشجوها :لبخند:
درصورتی ک سی++ داره بیشتر از قبل جایگاهشو پیدامی کنه
تمام بازی های مطرح جهان از انجین تا گیم پلی کلا با سی++ یا شایدم سی نوشتن
انریل 4 قراره زبان اسکریپتی شو بندازه دور و دیگه کلا سی++ بشه
ی برنامه درست حسابی پیدا نمی کنید ک با سی شارپ یا پایتون یا پاسکال یا جاوا باشه
همین ک مشین مجازی جاوا و کامپایلر سی شارپ و .. رو با سی++ نوشتن بس نیست
یادمه از پسر امه ام پرسیدم واس چی سی شارپ می خونید می گفت اول سی امده بعد سی++ بعد سی شارپ سی شارپ هم کامل تره و هم جدیدتره :قهقهه:
نگا استادا چی می کنن تو کلشون بابا هر گردی گردو نیست :عصبانی++:
آنچنانم درست نیست
فقط برو ببین چقدر مجازات داره.
چی چی فرهنگ خوب و کنار گذاشتن امنیت؟
شما برو تو کانادا یه بازی کرک شده بفروش یا بخر میفهمی چه بلایی سرت میاد
اتفاقا ubsoft هم چندین بار قفلشرو عوض کرد یه بار تو assin.. II یه بارم تو assin.. brother hood
ساختن ی برنامه یا بازی طی چند سال سخت تره یا دستکاری کردن برنامه طی 1 ساعت
دیگه هم بحث کرکو نیار
دعوت نامه اولیا می دما:قهقهه:
حتما باید off بدی ؟
اینو که دیگه بچه ی 6ساله هم میدونه.
در عوض این همه پست بی محتوا سعی کن به جای مسخره کردن دیگران یه چیز بنویسی طرف اومد خوند یه چیزی به اطلاعاتش اضافه بشه.
درضمن بازی داریم تا بازی.
همین الانشم اینقدر بازی داریم که حتی اسمش بین 100نفرم پخش نشده.
بازم دستکاری کردن داریم تا دسکاری کردن.
خوشحال میشم اسم اون 4 نفر بدونم (Nick name و اسم اصلی این دوستان رو )
گفتید من بعد یکم تمرین میتونم سخت ترین چلنج ها رو حل کنم،پس میتونم به شما بگم صرفا دارید یک مساله که بهتون یاددادن رو توی شرایط مختلف امتحان میکنید،بدون داشتن ایده خاصی از انجام کاراتون
ناراحت نشید اما فکر نمیکنید یکم زوده خودتون رو با کرکر هایی که خودشون رو پیر این کار کردن مقایسه کنید ( به خاطر این جمله که گفتید عطش فقط با حل CM های پیچیده حل میشه)
هر نرم افزاری کرک میشه اما به چه شکل ؟ مگه Core Impact نبود ؟ چه قدر طول کشید تا کرک بدن ( بماند که کرک های جالبی اخر عرضه شد تا بالاخره یک پچ به صورت خریداری شده عرضه شد :))
در مورد دیباگر گفتید ، شما از اون ابزار های چینی استفاده میکنید یا Olly و immunity ؟
تحلیل مسایل امنیتی ؟ در چه حیطه ؟ اینو یه توزیع بدید بدونم تو کدوم حیطه امنیتی دارید فعالیت میکنید شاید بشه از اونجا نمونه داد
در مورد اون ضرب المثل ، گفتید صادق نیست !!!؟؟
جالبه ولی توی جوامع در حال حاضر به این قبول نداشتن میگن غرور کاذب،چه بسا بسیاری بودن که با حل دوتا مسئله RCE و تشویق کسانی که اصلا از این علم اطلاعی نداشتن احساس کردن قدرتمند ترین شخص در این ضمینه هستند(توهین نشه ولی من فقط این حرف شما رو تحلیل کردم)
و در مورد کنسول های بازی ، یعنی از نظر شما کنسول نباشه دنیا خاموش میشه !!!؟؟؟
واقعا جالبه
متاسفانه نمیتونم به بیشتر سوالاتون پاسخ بدم به جز چندتاش.
نخیر بنده ایده های خیلی جالبی هم ارایه کردم و چندین بار شده که روش های من توسط این هکران پیر like شده.
راجب کنسول گیم بنده یه مثال زدم همین الانشم ما مدیون مایکروسافتیم.
درمورد ضرب المثل این یه حقیقته همیشه استثنا وجود داره.
من فقط رو crackme کار نمیکنم.نرم افزارم(کله گنده نه معمولی) کرک میکنم که فردا یه کی اینجوری گفت مدرک داشته باشم.گرچه فعلا موفق نشدم.
در این رابطه بگم
که کرکر ها در حال حاضر دارن رویه فروم مرجع کار میکنن.وقتی تکمیل بشه شاخ ترین نرم افزار کره ی خاکی بیشتر از 30 دقیقه هم دووم نمیاره.
ما الان تو گیم SKIDROW رو داریم ولی تو قسمت های دیگه گروه خاصی فعالیت نمیکنه ولی وقتی برعکس بشه دیگه همه چی عوض میشه.
از طرفی کشوری مثل ایران که توش کرکر ها به دلیل یه سری مشکلات نمیتونن به این گروها بپیوندن خودش بحثیه.
سیستم فیلترینگم یکی از این سدهاست.سرعت اینترنت یکی دیگشه.
طرز صحبتتون واقعا جالبه
پست هاتون رو که دیدم نگاه به سنتون کردم خیلی خوشحال شدم،که تو این سن شروع به کار کردید و حدس زدم نگاه و دیدتون نسبت به هم سن و سال هاتون فرق داشته باشه
اما وقتی پست هاتون رو خوندم چیز دیگه ای دستگیرم شد،شما هم دارید همون روند رو طی میکنید منتها در حیطه کاری دیگه(هم سن هاتون در گیم شما در مسئله RCE )و زیاد هستن این هم سن ها که با انجام یک کار(مثلا گرفتن دسترسی ساده از یک سایت و دیفیس اون)خودشون رو بزرگ اون علم میدونند و دیگه خدا رو بنده نیستند
امیدوارم دیدتون رو عوض کنید و سعی کنید تفکرتون رو عوض کنید و این مطمئنا خیلی بهتر خواهد بود و جای پیشرفت بیشتر به شما میده و میتونید تو فضا سایبر خیلی بهتر وبیشتر فعالیت کنید(نه اینکه بعد چند سال گم بشید)
من سعی میکنم دیگه ریپلی نکنم تو این تاپیک
موفق باشید
:قهقهه:
همه همینو میگن.
ولی اجازه بدین راه من اشتباه بشه.(چه بهتر حد اقلش از شر من خلاص میشین و از تعداد آدم های مسخره ای مثل من کم میشه)و خودمم میخوام همین طور بشه.
من اونقدر به کسایی که آموزشم میدن اعتماد دارم که دیگه جای بحثی نیست.
آقا جو گیر نشدم که دیگه فکر کنم خدای یه چیزی ام.
اتفاقا خیلی مونده اون چیزی که شما فکر میکنین بشم.
ولی 5 سال بعد بالاخره تموم میشه.(یعنی منم میشم یه کرکر پیر که تشنه ی crackme یه پیچیدست)
دیگه هیچی نشه حد اقلش میتونم پکر های مزخرفو آنپک کنم.
پروتکتور های معمولی رو کنار بزنم و...
و کمیت زمان رو در نظر بگیرین.
نمیشه گفت که به قدرتم اضافه نمیکنه.
اضافه میکنه ولی بسته به میزانه تلاشم.
یکی دوست داره با علمش بمب اتم درست کنه یکی دوست داره سرماخوردگی رو درمان کنه.
و اینجا منم که تصمیم میگیرم برم تو جبهه ی بدها یا جبهه ی خوب ها.
با عرض سلام
دوستان قراره یک زبان برنامه نویسی به دوستمون معرفی کنیم قرار نیست که حرفه های یکدیگر را خدشه ار کنیم
اینقدر پستاتون عال بود که حس خوندنشون رو تو چندتای اول از دست دادم
و اما شما باید ببینید به چه موردی علاقه دارید
برنامه نویسی سخت افزار،شی گرا ،مال ویندوز،مال ios،مال اندرویدو..........
بعد برید دنبال کامپایلر های هرکدوم
حالا شما به چی رشته ای دقیقا علاقه دارید
در ضمن بنده اصلا اسمبلی و سی پلاس پلاس را پیشنهاد نمی کنم بخصوص اسمبلی رو
این حرف هم اشتباهه.نقل قول:
ی برنامه درست حسابی پیدا نمی کنید ک با سی شارپ یا پایتون یا پاسکال یا جاوا باشه
به عنوان مثال برنامه فتوشاپ ورژن یک با چی نوشته شده؟ با پاسکال! یکمی هم توش سی قاطی داره. امسال سورسش رو منتشر کرد.
برنامه های بسیار قوی ای با دلفی نوشته شدن، که با یک سرچ ساده می تونید پیداش کنید.
برنامه های قوی دیگه ای هم با وی بی نوشته شدن.
تقریبا همه چیز برمی گرده به توان و دانش برنامه نویسش.
ولی من خودم دلفی و سی پلاس پلاس و کیوت و پایتون و جاوا رو تایید می کنم!
با عرض سلام
دلفی:متاسفانه یا خوشبختانه نسل دلفی کاران توی ایران داره منقرض میشهنقل قول:
لی من خودم دلفی و سی پلاس پلاس و کیوت و پایتون و جاوا رو تایید می کنم!
سی++:اخه تا وقتی سی شارپ هست چرا سی پلاس پلاس
کیوت و پایتون:نمی دونم بر چه اساسی این حرف را زدید یادگیری پایتون رو به عنوان یک زبان برای شروع غلطه چون زبان .........
جاوا هم ادم رئ پیر میکونه و ایشون رو کلا از یادگیری منصرف می کنه
بهترین گزینه سی شارپ
اشتباه محض
همه ی زبون ها برای خودشون چیزین.
درضمن C++ به راحتی C# رو کنار میزنه.
پس چرا unreal engin 4 رو با C++ نوشتن؟
وین 8 رو هم با c,C++,assembly x86 نوشتن
درضمن برای دلفی بگم اصلا بگیریم منقرض بشه.
مگه دلیله؟
java هم زبون خوبیه و اگر علاقه داشته باشین گزینه ی مناسبی هست(نه همیشه)
برنامهء درست و حسابی؟
دقیقا یعنی چی؟
چه معیاری داره؟
یه برنامه ای مثل yum در لینوکس با پایتون نوشته شده.
یه برنامهء خط فرمانه برای مدیریت و نصب بسته های برنامه ها و اینها.
شاید میشه گفت یک برنامهء یوتیلیتی سیستم عامل. ولی واقعا مهم و جدی.
شاید حجم زیادی هم نداره.
ولی من نمیتونم بگم اینا برنامه های درست و حسابی نیستن.
بالاخره این زبانها هم نقش بسیار مفیدی در دنیا بازی میکنن.
برنامه های زیادی رو میشه باهاشون نوشت و در وقت و انرژی ارزشمند انسان و خصوصا برنامه نویسان صرفه جویی چشمگیری کرد.
حداقل اینطور برنامه ها رو میشه باهاشون نوشت.
عاقلانه هست که هر برنامه ای با زبانهای سی و سی++ نوشته بشه؟
وقتی که مثلا با پایتون در یک سوم اون زمان، و با ریسک و حفره های امنیتی کمتر، با خوانایی و قابلیت نگهداری و گسترش و تغییرات خیلی راحتتر و سریعتر میشه اونا رو نوشت.
تازه با پایتون به گمانم برنامه های خیلی بزرگتر و پیچیده تری هم نوشتن.
یه سایتی بود چند نمونه از اینطور برنامه ها رو لیست کرده بود.
مثلا بینش یه مورد داشت که چیزی شبیه اتوکد بود!!
حالا درسته که امکانات و سرعتش بعیده حتی نزدیک اتوکد اتودسک بوده باشه، ولی همونش هم فکر میکنم بقدر کافی بزرگ و جالب بود و قابلیت های این زبانها و برنامه نویسان خوب اونها رو نشون میداد.
فقط از نظر بحث یادگیری من میگم هرچی از پایه باشه و آدم ورزیده بشه بهتره.
اونم بیشتر درمورد محیطهایی که خیلی چیزها رو خودکار، ویژوال، و Declarative کردن.
که اوج همهء اینها رو فکر میکنم در دات نت و ویژوال استودیو میکروسافت شاهد هستیم.
وگرنه مثلا یک کسی که کار و حوزهء فعالیتش چیز دیگس (مثلا یک دانشمند فیزیک یا چیز دیگه) یا همون پایتون و جاوا هم برنامه هایی رو که نیازش هست جواب میده، دلیل زیادی نداره بره سی و سی++ یاد بگیره و جزییات فنی رایانه رو. اصولا یکی از دلایل ایجاد این زبانها همین بوده.
ولی اونی که میخواد برنامه نویس خفنی بشه، یعنی تخصص و رشتش اینه و میخواد بی نقص باشه، بنظر بنده با امثال محصولات میکروسافت که برنامه نویسی رو تبدیل به اسباب بازی بازی کردن، مشکل بتونه به این هدف برسه.
درواقع اینها هم نه اینکه فقط برای اسباب بازی بازی باشن، اما خیل عظیمی از افرادی که وارد برنامه نویسی میشن در اون سطحی نیستن که بتونیم اونا رو خیلی فراتر از این بدونیم. چون اینا بینش و قدرت و پایهء واقعی برنامه نویسی رو ندارن، اما میتونن با این ابزارها/محیطها/زبانها خیلی برنامه ها رو سرهم کنن. درواقع این لزوما اشکالی هم نداره اگر نوشتن یکسری برنامه های واقعی به واسطهء این ابزارها حتی توسط بچه های 8 ساله هم قابل انجام بشن، اما مهم و چیزی که باید بهش توجه داشت اینه که سطح و محدودهء دانش و توانایی این افراد محدوده و نمیتونن در هر شرایطی هرکاری انجام بدن و هر نوع برنامه ای رو با کیفیت قابل قبول درست کنن.
شاید بتونیم این قضیه رو با دوتا مکانیک اتومبیل مقایسه کنیم.
یکی فقط بلده قطعه عوض کنه و کلیشه ای یکسری دستورالعمل رو حفظ کرده و پیروی میکنه و با دوتا دستگاه دیباگ میزنه اشکال یابی میکنه و احتمالا مقداری هم حدس و آزمون و خطا در کارش هست و در نهایت دید جامع و دقیقی نداره و از طرز کار درونی هیچ سیستم اتومبیل سردرنمیاره، یکی دیگه دانش و بینش واقعی داره نسبت به اینکه سیستمهای اتومبیل واقعا در درونشون چی میگذره و چطور کار میکنن و مشکلات چرا و چطور بوجود میان.
طبیعتا این دوتا آدم رو نمیشه یکسان فرض کرد.
ولی اون آدم اولی هم میتونه خیلی کارها رو با همون روتین و کلیشه و حفظیات بدون درک راه بندازه.
اگه اینطوری بخوای در نظر بگیری، تعداد کسانی که واقعاً C++ کار میکنند هم خیلی کمتر از دلفی کاران است(لااقل در ایران که اینگونه است). شاید این حرف من رو مضحک بدانید. تا حدی هم به شما حق میدم. به نظر من C++ در ایران بیشتر در زمینه کنکور و دانشگاه کارایی دارد تا در پروژه های واقعی. این که کلی آدم پیدا بشه که فقط از یک زبان برای بررسی تست کنکور استفاده کنند که نشد محبوبیت زبان در بین مهندسان نرم افزار. مگه از این همه متقاضیان کنکور و دانشگاه چند تا برنامه نویس درست و حسابی C++ در میاد. من رتبه دو رقمی کنکور را هم دیده ام که C++ بالای 80 درصد زده بود ولی در عمل هیچ! شما فقط نباید که کمیت اهمیت بدی دوست عزیز!نقل قول:
دلفی:متاسفانه یا خوشبختانه نسل دلفی کاران توی ایران داره منقرض میشه
آخه C# چه ربطی به C++ داره. یادمه که آقای عادلی نیا هم در کتاب کنکورشون نوشته بودند که C# نسل بعدی C++ است. و همان موقع بود که با مغز رفتم توی دیوار. ایندو ربطی به هم ندارند و فقط از لحاظ سینتکس شباهت زیادی دارند. همین!نقل قول:
سی++:اخه تا وقتی سی شارپ هست چرا سی پلاس پلاس
اینطور هم نیست. جاوا جزو زبانهای نسل چهارم است و گستره بسیار زیادی دارد. اگر با فریم ورکهای آن کار کرده باشید بهتر منظور من را متوجه خواهید شد. به عنوان مثال یقین دارم که هیچ فریم ورکی را برای ساخت برنامه های Enterprise بهتر از Oracle ADF نخواهید یافت.نقل قول:
جاوا هم ادم رئ پیر میکونه و ایشون رو کلا از یادگیری منصرف می کنه
بهترین برای چه کاری؟ اینکه بگیم که مثلاً فلان زبون بهتره یک حرف کاملاً غیر منطقی و غیر فنی است. ابتدا باید حوزه کاری کاملاً مشخص شود و بعد باید بررسی کرد که در فلان حوزه کاری کدام زبان برنامه نویسی بهتر است. می دانم که این جو زدگی از دانشگاههای ایران شروع شده که به جای اینکه به دانشجو دید فنی بدن فقط جو الکی رو القا می کنند. البته از این استادان بی سوادی که من در طول این چند سال دیده ام بیشتر از این هم توقع ندارم.نقل قول:
بهترین گزینه سی شارپ
این دیگه چیه؟!!!نقل قول:
دلفی:متاسفانه یا خوشبختانه نسل دلفی کاران توی ایران داره منقرض میشه
سی++:اخه تا وقتی سی شارپ هست چرا سی پلاس پلاس
کیوت و پایتون:نمی دونم بر چه اساسی این حرف را زدید یادگیری پایتون رو به عنوان یک زبان برای شروع غلطه چون زبان .........
جاوا هم ادم رئ پیر میکونه و ایشون رو کلا از یادگیری منصرف می کنه
بهترین گزینه سی شارپ
اولا که من برای یادگیری در پست های قبل گفتم چی خوبه و این ها رو در کل در مقایسه با قدرت گفتم،
ثانیا برای حرفهاتون دلیل می تونید بیارید؟
دلفی در ایران مورد اجحاف قرار گرفته. می پذیرم. ولی فوق العاده قدرتمند هست. مخصوصا با نسخ امسال و پارسال که ارائه شد. به هر کی می گی دلفی یاد دلفی 7 می افته و با اون مقایسه می کنه! اگرچه در سال خودش ماکروسافت رو خیلی ترسوند. توصیه می کنم به XE4 یک نگاهی بندازید.
تا وقتی سی شارپ هست ... !!!!!! فکر کنم این صحبت حاصل موضع گیری باشه. یا شاید نمی دونستید که صحبت من در مورد قدرت زبان بود.
بقیش رو هم روی همین جساب می گذارم.
سی شارپ زبانیه که نمی دونم چرا با این که 3 بار بهش مراجعه کردم هر بار بیشتر حالم ازش به هم خورده. شاید سلیقه شخصی من باشه. نمی دونم.
با جاوا که کار می کنی آدم یاد بدهکاری هاش می افته ولی خیلی اصولی هست و یواش یواش خوشت میاد و عاشقش می شی.
سی پلاس پلاس رو کجای دلم بذارم آخه؟! فقط بهش فحش می دم! آچار فرانسه ای هست که فقط متخصصش می فهمتش. خیلی خیلی قویه.
باز تاکید کنم، اینها نظرات شخصی بنده هست. دعوا هم ندارم :گیج:
ولی در خصوص بررسی یادگیری باید حرف زده بشه تا مرتبط به تاپیک باشه.
الان این که اسمبلی چقدر برای کرک قدرت داره داستان اینجا نیست.
شما با اسمبلی یک پورت باز کنید و باهاش یک Packet به یک وب سرویس بفرستید و خروجیش رو روی نمودار نمایش بدید. اگر زیر 3 روز کار برد من دربست مخلص اون آدم می شم.
هر زبانی را بهر کاری ساختند.
صرف نظر از قسمت آموزش (توصیه = پاسکال، در درجه دوم سی) هر کس باید ببینه چی می خواد، بعد بره دنبال اون کار.
من دی بی می خوام می رم دنبال دلفی.
این هوک (و نه هک) می خواد می ره دنبال سی پلاس پلاس.
اون کرک می خواد می ره دنبال اسمبلی.
بحث بی فایده نکنید دوستان. با شاهد مثال صحبت کنبد. موضوع تاپیک مشخصه. برای موضوعات جنبی، همون طور که برای ویروس ایجاد شد، تاپیک جدا بزنید.
بنده مدیر نیستم و مدیر بازی رو هم دوست ندارم. انتظار دارم وقتی میام این پستها رو می خونم در رابطه با موضوعش باشه و وقتم رو تلف نکنم.
شده مثل fb که اسم صفحه مثلا هست انجمن برنامه نویسان پلاس پلاس، بعد توش از خاطرات شمال ممد آقا و خشک شدن دریاچه و ترول های پدر خشمگین مطلب می گذارن.
موفق باشید!
بنظرم ما میتونیم برنامه نویسان رو مثل چیزی که در رشته های دیگر هست به سه دسته تقسیم کنیم:
- تکنسین
- مهندس
- دانشمند
- اون مکانیک که فقط کلیشه حفظ کرده و تنها با قطعه عوض کردن سر و کار داره میشه تکنسین.
- مهندس کسی است که قابلیتش بیشتر از این حده. حداقل میدونه مثلا سیستم ترمز چطوری کار میکنه، موتور چطوری کار میکنه، و میتونه یه ترفندها و کارهایی فراتر از قطعه عوض کردن بزنه، میتونه خلاقیت و ایده های خارج از آموخته های پایه داشته باشه و کارهایی بکنه برای خودش. طرز کار و اصول کلی و ساختمان چیزها رو میدونه.
- دانشمند کسیه که دانش عمیق داره از هرچیزی در حیطهء تخصصش. یعنی از دونستن طرز کار کلی و حفظ بودن و استفاده کردن از چند فرمول کلیشه ای که نمیتونه چطوری از کجا اومدن فراتر. مثلا میدونه چرا مخلوط هوا و بنزین اول باید فشرده بشه بعد منفجر بشه، و اصول علمی و فرمولهای حاکم برش رو درک میکنه. مهندس هم ممکنه یک چیز کلی از این شنیده باشه و بدونه، ولی فقط حفظ کرده و دانش و درک واقعی از اصول علمی حاکم برش نداره.
هرکدام از اینا نقش و اهمیت خودشون رو دارن.
میشه گفت بسیاری از کسانی که با دات نت و ویژوال استودیو کار میکنن درحد تکنسین هستن (در زمینهء تخصص برنامه نویسی).
ولی مهندسان هم میتونن با این ابزارها کار کنن و مهندس درست و حسابی هم داریم که با این ابزارها کار میکنن.
کسی که بخواد با دات نت و ویژوال استودیو برنامه نویس بشه، فراتر رفتنش از سطح تکنسین با مشکل مواجه است و حداقلش بهینه نیست، چون خیلی چیزها رو نمیبینه و نمیدونه و برخورد و تجربهء مستقیم نداره خودش.
راستی محدودهء دانشمند و مهندس با هم همپوشانی هم داره.
یعنی همزمان آدم میتونه هم دانشمند باشه و هم مهندس.
ولی هر مهندسی دانشمند اون رشته نیست.
حالا این افراد هرکدام یک جاهایی بیشتر به درد میخورن.
یک جاهایی هست مهندس کارش حتی از دانشمند بهتره و حتی دانشمنده ممکنه نتونه کار رو کامل و درست و به موقع انجام بده، چون مهندس در این زمینه تجربه و مهارت و حتی دانش های خاص خودش رو بیشتر داره. یعنی دانش چگونگی پیاده سازی و طرز استفاده از علوم و فناوریها رو.
ولی بخش اساسی و بزرگی از همین دانش و علوم رو دانشمندان بوجود آوردن و میارن و بدون هدایت اونا ممکن نیست.
همون تکنسین هم میتونه بخش زیادی از کارهای روتین و عادی مردم و زندگی روزمره رو راه بندازه! ولی مسلما نه همه چیز و همهء نیازها رو.
دوستان برنامهنویس یه ذره ام به زبون فارسی اهمیت بدین آخه اینا چیه: ضمینه٬ پسر امه ... :لبخند:
میون کلامتون از بین C و ++C یادگیری کدومش اولویت یادگیری داره و اینکه سی پلاس پلاس پوشش میده زبان C را یا نه. همپوشانی اینها در چه حد هست.
ممنون
C++ تمام امکانات C رو در خودش داره، که شی گرایی رو هم بهش اضافه کرده، یه بهبود هایی هم در اون صورت گرفته
من اصلا یادگیری زبان C رو به شما پیشنهاد نمی کنم
با اینکه خیلی از کتاب ها از این روش غلط استفاده می کنن، اما این درست نیست که در ابتدا ذهن خواننده کتاب با مفاهیم برنامه نویسی قدیمی ساخت یافته درگیر بشه و عادت کنه
و بعد ازش انتظار داشته باشیم یک دفعه تغییر رویه بده ، و به شی گرایی سوئیچ کنه
برای یادگیری سی ++ کتاب رابرت لی فور فو العادس
این چیزا تبیعیه کمکم ک برنامه می نویصی همه جا رو سفر و یک می بینی دیگه این چیزا ثرت نمیشه که :لبخند:نقل قول:
دوستان برنامهنویس یه ذره ام به زبون فارسی اهمیت بدین آخه اینا چیه: ضمینه٬ پسر امه ... :لبخند:
میون کلامتون از بین C و ++C یادگیری کدومش اولویت یادگیری داره و اینکه سی پلاس پلاس پوشش میده زبان C را یا نه. همپوشانی اینها در چه حد هست.
همون سی++ رو یاد بگیر
سی++ همیشه مظلوم بوده
هم از طرفه سطح پایینی هایی مثل سی و هم از طرف سطح بالایی هایی مثل سی شارپ مورد تجاوز، تمسخر و .. واقع میشه:ناراحت::لبخند:
ممنون
اینا یعنی بازم سی سطخ پایین تر از ++C هست؟ مگه نمیگین ++C همون C هست منتها کامل تر + شی گرایی٬ پس چطور سی میتونه سطح پایین تر باشه وقتی سی پلاس پلاس هم همه اون ویژگیها و دسترسی ها را داره.
بعدم یه سوال دیگه الان سی مثلا مهجور تر نشده و اینکه کم کم به سمت بازنشستگی رفته باشه؟ که بجاش همه برن ++C و چند سال دیگه کلن سی پلاس پلاس جایگزینش شه؟ با همون قدرت اولیه داره ادامه میده و برنامه نویس جدید جذب میکنه؟
با عرض سلام
(بهتر بود برای این حرفتون به قول دوستمون مثال یا دلیلی می اوردید)نقل قول:
بنظرم ما میتونیم برنامه نویسان رو مثل چیزی که در رشته های دیگر هست به سه دسته تقسیم کنیم:
- تکنسین
- مهندس
- دانشمند
فکر میکنم خودتون جواب این سوال که بهترین زبان برنامه نویسه برای شروع را دادید(البته این برداشت منه)
قبول دارید هر ادمی که می خواد تکنسین یا مهندس بشه باید درجات قبلی را تا حی پبیماید
شما میگید کسی که با ویژوال استودیو کار میکنه همون تکنسینه پس کسی که می خواهد مهندس یا دانشمند بشه باید یکم تکنسین هم باشه
پس بهتره برای شروع از ویژوال استودیو شروع کنه
ولی حرف اولم بستگی داره ایشون بخواد تو چه زمینه ای وارد شه
با تشکر
C++ ویزگی هایی مثل template یا multiple inheritance داره که به علت قدرت و پیچیدگی زیادشون هیچ زبون دیگه ای به پاش نمیرسه.برای همین نمیتونه خیلی راحت با مثلا assembly ارتباط برقرار کنه.(دقت کنید گفتم خیلی راحت.یعنی هنوز راحته ولی خیلی نه)نقل قول:
پس چطور سی میتونه سطح پایین تر باشه؟
http://www.cplusplus.com/forum/general/70179/
http://www.cplusplus.com/forum/general/75347/
http://stackoverflow.com/questions/4...y-use-c-over-c
لینک comment ه اول رو هم بخون
آمار دقیقا عکس این موضوع رو نشون میده.نقل قول:
و اینکه کم کم به سمت بازنشستگی رفته باشه؟
به نظر بنده این بحث همچنان در این تاپیک و در تاپیک های مشابه ادامه پیدا خواهد کرد.
سوالی که پاسخی بسیار ساده دارد.
برای هر مسئله باید راه حل مناسب را پیدا کرد. برای هر کاری زبان برنامه نویسی مناسبی طراحی شده است.
اما پاسخ ما به این سوال معمولا یکی از موارد زیر است:
1- یک ابزار یا فریم ورک یا IDE یا زبان برنامه نویسی را برای همه مسائل پیشنهاد می دهیم و از آن به سختی دفاع می کنیم.
2- به دنبال آچارفرانسه در دنیای نرم افزار هستیم و می خواهیم تنها از یک وسیله برای ساخت هر نرم افزاری استفاده کنیم در حالی که C++ برای آموزش مناسب نیست، پاسکال راه حل مناسبی برای وب نیست، پایتان برای تولید نرم افرار کاربردی مناسب نیست، بیسیک برای برنامه نویسی سیستمی مناسب نیست، جاوا برای Small business مناسب نیست.
اما ریشه مشکل در این است که ما جماعت برنامه نویس، نمی خواهیم زحمت آموختن و بروز کردن اطلاعات خود را بپذیرم. و همچنان و با تعصب نادرست از دانسته های گذشته در که اکثر مواقع بروز نیستند دفاع می کنیم.
همانطور که بار ها بیان شده، آموختن و بروز کردن اطلاعات جزای از این حرفه است و هیچ وقت به پایان نمی رسد پس بهتر است راه حلی برای افزایش سرعت یادگیری خود پیدا کنیم. یا تغییر شغل دهیم.
به این مسئله قبلا اشاره کردم که مشکل اینه که به حرف آسونه ولی در عمل کمتر کسی وقتی اول از چنین زبانها و محیطهای ساده و سریع و خوشایندی شروع کنه بعدا حاضر میشه بره با زبانها و مسائل سطح پایین تر سر و کله بزنه.
یعنی عدهء زیادی میان توی این کار و به اصطلاح برنامه نویس میشن، ولی از اول تا آخر فقط دات نت و ویژوال استودیو کار میکنن و با همون یاد میگیرن. همینطور برنامه هایی هم تحویل میدن و پولی هم درمیارن. خب واقعا این افراد حاضرن بعدش به خودشون زحمت بدن؟ واسه چی؟
طرف داره پولش رو درمیاره اسم خودشم گذاشته برنامه نویس (و با این اسم خودش رو در کنار برنامه نویسان واقعی و اصیل قرار میده) باد کولر هم میخوره پول هم درمیاره.
اکثر این افراد هم آدمهای آنچنان باهمت و اصولی کاری نیستن که ازشون انتظار معجزه بره. شیفتهء دانش و فناوری و قدرت های اصیل نیستن و از اول هدف و اولویت اولشون این نبود؛ بلکه پول بوده، بعدش اسم و شخصیت و اعتبار و خودنمایی بوده، کلا آدمهای سطحی ای هستن که به همین چیزهای سطحی دلخوش هستن.
البته نمیشه خیلی هم ازشون ایراد گرفت. درواقع نمیشه اتهام زد. شاید اصلا درست نیست بهشون بگیم سطحی و کم همت. چرا؟ چون خب طرف دوست داره به من چه به کس دیگری چه وقتی میتونه و اینطوری به چیزهایی که میخواد میرسه به کس دیگر چه مربوط. اگر کارش رو هم خوب انجام میده خب کسی چه حقی داره ازش ایراد بگیره؟
البته در اینکه کارهاشون رو خوب انجام بدن شک دارم. فکر نمیکنم کسانی که در این سطح هستن واقعا بتونن همهء کارها رو بقدر کافی خوب انجام بدن. و در یک حداقل، خیلی کارها رو میشد خیلی بهتر انجام داد.
نمونش برنامه های پر از ایراد و باگ و اعصاب خوردکنی و مسائل مسخره که توی وب و دسکتاپ میبینیم. بنده بنا به شغلم با اینطور برنامه ها سر و کار داشتم از سامانه های دانشگاهی که فقط با IE کار میکنن تا همین سیستم املاک کشوری که اونم باز فقط با IE کار میکنه تا برنامهء پروفایل تحت شبکهء املاک تا برنامهء اظهارنامهء مالیاتی و غیره. خب اینا همشون کار میکنن ولی اونقدری که باید کامل و دقیق و اصولی و بدون مشکل نیستن. بعضا مشکلات نسبتا گنده و چیزهای مسخره توشون دیده میشه و مسائل اعصاب خوردکن که بنده تاحالا چندبار دچار اینها شدم و پیگیری کردم. یعنی مواردی هست که آدم میگه یعنی برنامه نویسان اینا چقدر سواد داشتن چقدر پول گرفتن چقدر وقت داشتن چقدر زحمت کشیدن مگه تست نکردن مگه رفع اشکال نمیکنن مگه فیدبک نمیگیرن که این موارد رو درست طراحی یا اصلاح نمیکنن.
تازه اینا فقط ظاهر و اینترفیس این برنامه هاست که ما بنا به شغلمون مجبوریم باهاشون سروکار داشته باشیم و درشون ریز بشیم. حالا پشت صحنه و روی سرور و امنیت و باگ و دردسرهای خودشون چه خبره، من یکی نمیدونم و دنبالش هم نبودم چون وقت و هدفی واسه این کارها نداشتم.
خب حالا من میگم اگر بازهم مشتری های بعضی از این افراد مشکلی با کارهای اینها ندارن و کارشون لابد بقدر کافی خوبه در اون کاربرد و برنامه ها و اهداف، خب مشکلی نیست، کسی نمیگه آقا برو اصولی تر یاد بگیر کامل تر یاد بگیر سی و سی++ یاد بگیر ساختمان داده و پروتکل یاد بگیره و غیره. نه کسی نمیتونه بگه باید!
ولی بحث این باید و اینها نبودم. بلکه بنده فقط خواستم طبقه بندی دانش و توانایی و مهارت برنامه نویسها مشخص بشه و صرفا به یک اسم برنامه نویس و برنامه درست کردن و پول درآوردن، نیایم همهء افراد رو در کنار هم بذاریم.
و اونی که مبتدی هست و تازه وارد، زودتر و راحتتر روشن بشه که بسته به استعداد و علاقه و شرایط و فرصت و پشتکار خودش، چه راهی رو باید چطوری طی بکنه.
تکنسین هم میتونه پول دربیاره و برنامه بنویسه (یا شاید باید بگیم بسازه!).
شاید فرصتهای شغلی خوب و درآمد مناسبی هم داشته باشن.
اما بهرحال تکنسین است.
بجز تکنسین درجه های بالاتری هم هست و کارهای دیگری که متخصص و سطح و توان و دانش خودش رو میخواد.
بحث فرصت شغلی و درآمدش رو هم اصلا ندارم. شاید از نظر اقتصادی اصلا صرف نکنه آدم توی این دور و زمونه اونم توی کشورهایی مثل ما مثلا بخواد بره دانشمند بشه. ولی خب هدف و شرایط همهء افراد که واسه اقتصاد نیست. بعضیا هم عشق و خورگی دارن، بعضیا دنبال توانایی های گسترده هستن، دنبال قدرت بیشتر، دنبال یکجور چیزهای دیگری غیر از پول، دنبال تعالی های دیگری.
اینکه یه عده جوجه دات نت و ویژوال استودیو میان بعضی وقتا جوگیر میشن که نمیدونم یک هفته و یک روز یه برنامه درست میکنن و پول میگیرن و بعد فکر میکنن تمام برنامه نویسی و برنامه نویسان همینه و اونا خیلی زرنگ و دانا و بااستعداد بودن، خب دیگه یخورده آدم رو اذیت میکنه. یعنی این افراد حق ندارن دربارهء علم و فناوری و برنامه نویسان بزرگ واقعی و دانشمندان اظهار نظر کنن و خودشون رو کنار اونها قرار بدن؛ نباید این حیطه و اهداف و ماهیت ها و سطوح دیگر رو مخدوش کنن.
باید مشخص باشه هر آدمی هر کاری چیه و در کجاست در سلسه مراتب.
ما آدم زیاد داریم که حتی سواد هم نداشتن و ندارن اما زرنگ بودن و تلاش کردن و در تجارت و اقتصاد موفق بودن و خیلی پولدار شدن. شاید راحتتر از بزرگترین نوابغ دنیا!
ولی همه چیز که این نیست. هست؟
حالا البته بحث اینکه از چیزهای مثل دات نت و ویژوال استودیو برای شروع یادگیری برنامه نویسی شروع بشه هم خودش یک بحث جداگانه ای است و درش ابهامات و سوالات و ایرادهایی بنظر میاد.
از یک طرف این محیطها جذابه و انگیزه ایجاد میکنه، ولی از طرف دیگر باید دید عوارض و سطحی نگری های دیگری رو بوجود نمیاره و یا منجر به اون نتیجه ای که بنده گفتم نمیشه؟
البته آدم اگر خودش بخواد خودآموز شروع کنه و پیش بره خب به تشخیص و نظر خودش بستگی داره. اگر انگیزه و اراده و شرایطش رو داشته باشه خب بعدا هم میتونه بره دنبال بقیهء چیزها و کامل کردن پایه و اصولش.
ولی اینکه مثلا دوره های تحصیلی و دانشگاهی رو عوض کنن و بجای سی و سی++ و اینها از دات نت و ویژوال استودیو استفاده بشه، خیلی فرق میکنه و موارد خاص خودش رو داره.
اصلا اینا محصولات میکروسافتی و انحصاری هستن و قرار دادن اونها بعنوان پایهء اولیه در محیطهای آموزشی حداقل آکادمیک، مشکل دار بنظر میاد. حالا بحث داره که چرا و مگه چی میشه. بهرحال تاثیر میذاره هم از نظر علمی و هم از نظر شخصیتی و هم از نظر آماری و سیاسی و اقتصادی و غیره. در آینده تاثیرش دیده میشه احتمالا.
اگر برنامه نویسی رو مثل ریاضی فرض کنیم که مثلا در ریاضی اول چیزهای پایه ولی نه خیلی پیچیده مثل ضرب و تقسیم و جمع و غیره رو آموزش میدن، خب در برنامه نویسی هم قاعدتا مثلا الگوریتم و اینها رو باید اول آموزش داد. و فکر نمیکنم برای این هدف، کار کردن با چیزهایی مثل ویژوال استودیو و دات نت لازم و حتی مفید باشه. مثل اینکه در کلاسهای دبستان بیان و از ماشین حساب برای آموزش ریاضی استفاده کنن!!
نه اول طرف باید حساب کردن دستی رو یاد بگیره. بعدها از ماشین حساب استفاده کنه.
حالا ما بنا به اون قاعدهء پیچیده نبودن بیش از حد و سرخورده نکردن و کم نکردن انگیزهء دانش آموزان، میتونیم بگیم که از سی و سی++ (اونم تحت داس!!) استفاده نشه و مثلا بجاش از زبانهای ساده تر و محیطهای خوشایندتری مثل پایتون استفاده بشه و تحت ویندوز باشه و خب اگر جا داشت و موردی نداشت یخورده کار GUI و گرافیک هم توش بکنن؛ شاید اگر استادها بگن و خوب روشن کنن و به دانش آموزان انگیزه بدن، دانش آموز خودش میفهمه و از سطحی نگری و افراط در این ظواهر و تنبلی برای یادگیری مباحث بنیادین و پایه و اصول خودداری میکنه. اون چیزی که معلم و استاد و دبیر میگه واقعا میتونه روی آدم تاثیر بذاره. تاثیر عمیق و طولانی مدت حتی برای یک عمر. حداقل من خودم این تجربه ها رو داشتم. شاید دانش آموز هم باید مستعد باشه. بهرحال هم اونی که مستعد باشه یه راهی رو تا آخرش میره، و بنظرم نمیشه بقیه رو زور کرد، ولی نباید همینطوری هم کامل ول کرد، چون مثل اینکه که بچه رو بدون هیچ تربیت و هشدار و سرزنش و اجبار و تنبیه و تشویق رها کنی و انتظار داشته باشی فقط با حرف زدن و راهنمایی کردن و با استفاده از عقل و ارادهء خودش بچه درست عمل بیاد و دچار هیچ انحراف و خطر جدی و اعتیاد و هزارتا چیز بد دیگه ای نشه. نه اینم واقعگرایانه نیست!
بهرحال بنده در اینکه بالاخره دورهء آموزشی از سی/سی++ یا پایتون شروع بشه شک دارم. مسئله ایست که تاکنون بصورت روشن و قاطعی بر بنده مکشوف نگشته است :لبخند:
فقط میدونم من چون اول با سی کار کردم خوب ورزیده و با اراده شدم و یادگیری چیزهای دیگر برام ساده تر و سریع تر شد.
البته دروغ نگم اول اولش یک مقداری با بیسیک روی کمودور 64 کار کرده بودم!! یعنی از نظر الگوریتم با یک زبان سطح بالا تجربهء قبلی داشتم. ولی اون یه چیزی تفریحی و غیراصولی بود بدون هیچ الگو و سرفصل خاصی. اون زمان سنم زیاد نبود. ولی علاقهء خوبی داشتم.
بعدم فکر میکنم واقعا سخته که آدم بخواد بعد از یادگیری و کار کردن با یک محیط جذاب و راحت و سریع بره دنبال یاد گرفتن چیزهای سختتر.
ولی در اینم زیاد مطمئن نیستم.
من خودم مثلا اسمبلی رو مدتها بعد رفتم یاد گرفتم. البته یک مقدار در سطح پایه و آشنایی کلی. چون کاربرد بیشتری برام نداشت.
ولی از طرفی هم چون قبلا سی کار کرده بودم اسمبلی هم برام خیلی سخت نبود و ارتباط میان اسمبلی با زبانها و مسائل سطح بالاتر رو بهتر درک میکردم و مسائل جذابی در این ارتباط به ذهنم میرسید. مثلا اینکه چطور ساختار زبانهایی مثل سی و فرایند کامپایل و فایلهای اجرایی به اسمبلی ارتباط مستقیم دارن.
با پایتون هم میشه اپلیکیشن نوشت، منتها نه هر اپلیکیشن با هر شرایطی رو.
مثلا اگر بخوایم اپلیکیشن انحصاری باشه و یا به هر علت دیگری از سورس و الگوریتم یا دیتاهای درونی اون محافظت کنیم، خب پایتون بنظرم اصلا گزینهء مناسبی نیست؛ بلکه باید از یک زبان کامپایل شونده به زبان ماشین، مثل سی++ استفاده کنیم. البته در این زمینه حتی دات نت هم مناسب نیست!
بعدم باز موارد دیگری ممکنه باشن که پایتون براشون مناسب نیست. مثلا مواردی که پرفورمنس بالا نیاز داریم.
و بعدم مسئلهء غنی بودن و در دسترسی راحت و آماده بکار بودن امکانات جانبی اون زبان مثل کتابخانه های مختلف گرافیک و گیم و مالتی مدیا و غیره. مثلا فرضا روی ویندوز اگر بخوایم کار کنیم فکر نمیکنم پایتون از این نظر بتونه بر سی++ یا سی شارپ یا حتی دلفی به هیچ وجه ترجیح داده بشه. توی زبانها و محیطهای دیگه شما مشکل زیادی با اینها ندارید و همه چیز تقریبا آماده و سردسته و به مشکلی نمیخورید، اما توی پایتون حالا یه چیزی نداشته باشی گیر میکنی باید بری تحقیق کنی کمک بگیری دانلود کنی تست کنی و هزارجور مشکل و دردسر جانبی ممکنه پیش بیاد. من نظیر این مشکلات رو حتی با Qt روی ویندوز تجربه کردم و دمار از روزگارم درآمد (ولی بالاخره تاحد نیازم حلش کردم که باعث افزایش قدرت و اعتمادبنفسم شد).