ورود

View Full Version : آیا یادگیری python برای یک برنامه نویس C#.net مفیده ؟



mhs5862
شنبه 28 خرداد 1390, 12:07 عصر
سلام ، من یه برنامه نویس C#.net هستم که تا به امروز چیزی از python نشنیده بودم و بعد که کمی با این زبون آشنا شدم حالا نمیدونم یادگیری این زبون برای من مفید است یا نه ممنون میشم اگه کسی راهنمایی کنه.

eshpilen
شنبه 28 خرداد 1390, 12:35 عصر
بستگی داره هدفت چی باشه. اگر فقط شغل و درآمد میخوای همون C#.net کافیه و یادگیری پایتون اصلا صرف نداره.

r00tkit
شنبه 28 خرداد 1390, 13:58 عصر
بستگی داره هدفت چی باشه. اگر فقط شغل و درآمد میخوای همون C#.net کافیه و یادگیری پایتون اصلا صرف نداره.
چی می گی ؟ یاد گیری پایتون برای هر کی لازمه ( به هر کی با هر زبانی دید خوبی به برنامه نویسی می ده )

mhs5862 (http://barnamenevis.org/member.php?191201-mhs5862) هر موقع وقت کردی کتابی مقاله ای از پایتون بخون خیلی راحت هستش و زود یاد می گیری و در کارم مواقعی پیش می یاد که با پایتون به راحتی کارت رو انجام می دی
برای خود من یاد گیری پایتون واجب هستش ( خیلی از ابزار های امنیتی برای اسکریپ نویسیشون از پایتون استفاده می کنن مثل IDA-pro و Immunity Debugge و cuckoo و...... )
درکل یاد بگیری ضرر نمی کنی هر چقدر هم کم

OSTADINA
شنبه 28 خرداد 1390, 14:18 عصر
مطمئن باش پایتون یادبگیری C# رو میذاری کنار !!!! ( در این حد ! )

eshpilen
شنبه 28 خرداد 1390, 14:20 عصر
چی می گی ؟ یاد گیری پایتون برای هر کی لازمه ( به هر کی با هر زبانی دید خوبی به برنامه نویسی می ده )

آخه بعضی چیزا پولش بیشتره :لبخند:

code_baz
شنبه 28 خرداد 1390, 21:25 عصر
پایتون خیلی وقفا کارت رو سریعتر از c# راه میندازه و برای هر برنامه نویسی ابزار به درد بخوریه
از این گذشته میتونی از ironpython (http://www.google.com/search?q=ironpython&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) هم استفاده کنی

eshpilen
شنبه 28 خرداد 1390, 22:07 عصر
یه زمانی اینقدر پایتونیست ها دربارهء پایتون تبلیغات کردن و خب شواهد قابل توجهی هم برای ادعاهاشون بود که تصمیم گرفتم بالاخره پایتون رو یاد بگیرم و ببینم چیه که اینقدر ازش تعریف میکنن. اصلا دوست نداشتم از چنین تحول و زبان انقلابی و کارایی عقب بمونم!
خب باید بگم زبان جالبی بود و بدردبخوره. ولی اونطوری که تبلیغات راجع بهش میشد جادویی نبود. یعنی از تبلیغات تصور میکردی زبانی برای همه کار و همه جا هست و میتونه جای زبانهای دیگر رو بگیره. حتی در مقاله ای که در رفرنس رسمی خودش اومده بود خلاف این رو گفته بود و بنده این مقاله رو به همین خاطر ترجمه کردم که بگم بابا خود طرفها اینقدر ادعا ندارن در این زمینه که شما ادعا میکنید: http://barnamenevis.org/showthread.php?222365
بهرحال برنامه نویسی مثل یک جعبهء ابزاره. هرچی ابزار و تنوع توش بیشتر باشه بهتره. نه اینکه بگم خیلی شلوغش کنیم، اما چون آچار برقی داری دلیل نمیشه آچار دستی توش نباشه و بدرد نخوره. بعضی جاها آچار دستی راه دست تره یا حتی تنها گزینهء ممکنه.
خب البته اینکه میگم بیشتر واسه کسانی هست که میخوان بتونن در محدودهء وسیعی کار کنن. و معمولا هدفشون فقط یک شغل و درآمد نیست. چون با داشتن تخصص و توانایی کار در محدودهء کوچکتری هم میشه شغل و درآمد خوب داشت. اصولا اگر بخواید زیاد پراکنده کار کنید و زبانهای زیادتری رو یاد بگیرید مسلما دیرتر به بازدهی تجاری میرسید. چون راه طولانی تر و سخت تری هست. برای هدف تجاری باید اولویت بندی کرد و یکی یا حداکثر دوتا زبان برنامه نویسی و یک سیستم عامل رو انتخاب و روش تمرکز کرد و به سرعت موارد تجاری متداول اون حیطه رو یاد گرفت.

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

serj1975
شنبه 04 تیر 1390, 12:57 عصر
شما #C کار میکنید ولی در چه زمینه ای؟ اگر Web کار میکنی با یادگیری Python و سپس کار با Django واقعا شکه میشی. اگر Windows Forms کار میکنی، tkinter شاید خیلی چیز زیادی بهت نده. اگه میخوای کارهای Administration انجام بدی و یک کد سریع بنویسی که کار مشخصی برات انجام بده Python خیلی مناسبتره و خوشحال هم میشه از اینکه مجبور نیستی PowerShell و یا VBScript کار کنی. اگر Visual Studio IDE را خیلی دوست داری، مطمئن باش که در هنگام کار با Python حتی شبیه اون را هم پیدا نمیکنی ولی برای اینکه Python کار کنی بقدری این زبان راحت و ساده است که حتی میتوانی از Notepad++ استفاده کنی.
در مقایسه Python چون یک زبان Dynamic Scripting است که برای خیلی از کارهای سریع مناسب است. از امکانات خوب آن Readability و PyDoc است، خوصصیاتی که باعث شده Google برای پروژه هاش از Python استفاده کنه.
ولی برای بعضی از کارها هم اصلا مناسب نیست، مثلا اگر خواستین یک Compiler و یا Device Driver بنویسید بهتره که از C , یا C++ استفاده کنید.
یکی هم اینکه Python زبان محبوب و منتخب Hacker ها است

r00tkit
سه شنبه 07 تیر 1390, 11:51 صبح
مثلا اگر خواستین یک Compiler و یا Device Driver بنویسید بهتره که از C , یا C++ استفاده کنید

بهتره! یه جوری نوشتی انگار با پایتون هم می شه Driver نوشت ! توی همین C++ هم کلی بحث برای نوشتن هستش

serj1975
یک شنبه 12 تیر 1390, 16:31 عصر
چیزی که در موردش بحثه اینه که خیلی جاها بعنوان جایگزینی برای C معرفی شده است ، البته قصد جسارت نشه من اصلا در مورد System Programming کاری انجام ندادم. ولی حداقل چیزی که خوندم و مقایسه ای که دیدم اینه که کاملا بجای C قابل استفاده است (البته بحث سرعت مطرح است). یه نگاهی به کتاب زیر بندازید

GRAY HAT PYTHON
Python Programming for Hackers and Reverse Engineers
by Justin Seitz

eshpilen
یک شنبه 12 تیر 1390, 19:52 عصر
چیزی که در موردش بحثه اینه که خیلی جاها بعنوان جایگزینی برای C معرفی شده است ، البته قصد جسارت نشه من اصلا در مورد System Programming کاری انجام ندادم. ولی حداقل چیزی که خوندم و مقایسه ای که دیدم اینه که کاملا بجای C قابل استفاده است (البته بحث سرعت مطرح است). یه نگاهی به کتاب زیر بندازید

GRAY HAT PYTHON
Python Programming for Hackers and Reverse Engineers
by Justin Seitz
تاجاییکه بنده تاکنون متوجه شدم و استنباط کردم، کاربرد پایتون بجای سی درمورد نوشتن نرم افزارهای امنیتی و هک و مهندسی معکوس و اینطور چیزهاست، نه همه نوع برنامه نویسی سیستمی. یه زبان اسکریپتی چطور میخواد جایگزین یه برنامه سیستمی باشه؟! این مسئله هم از نظر پرفورمنس و هم از نظر سطح زبان و نحوهء اجرا جور درنمیاد. یعنی معمولا با پایتون برنامه ای نمینویسن که کار یه برنامهء سیستمی رو که خودش سرویس میده انجام بده. بلکه برنامه هایی مینویسن که با جزییات سطح پایین با اهداف مهندسی معکوس و هک و تست امنیت و غیره کار میکنن. و نشانه ای بر این ادعا اینکه نرم افزارهای اسکنر و تحلیل امنیتی متعدد و معروفی وجود دارن که با پایتون نوشته شدن. و اما اینکه چرا نوشتن این برنامه ها اینقدر خوراک پایتون هست خودش بحثی هست و برای بنده هم کم و بیش سواله.

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

eshpilen
یک شنبه 12 تیر 1390, 20:09 عصر
البته فکر میکنم در گذشته از Perl هم برای همینطور کارها استفاده میشده. ولی بعد که پایتون آمد خیلی ها رو به پایتون آوردن. مسلما پایتون جدیدتره و ساختار و سینتاکس بهتری داره. احتمالا کدنویسی در پایتون در مقابل پرل لذت و خوانایی و سرعت و راحتی خاصی داره.
بنظرم بدیهی هست که اسکریپتی بودن در اینطور کارها یک مزیته. چون در اینطور برنامه ها مدام نیاز به تغییرات جزیی و کلی در کد هست و اگر از یک زبان اسکریپتی استفاده بشه کار اعمال تغییرات و اجرا و تست سریع اونها خیلی راحتتره. سرعت حداکثری در اینطور برنامه ها اکثرا ضروری نیست، اما توانایی کار در سطح پایین و سرعت کدنویسی و تغییر و تست اون اهمیت زیادی داره. درمورد یک زبان کامپایل شونده هر بار کامپایل شدن بخاطر کوچکترین تغییرات در کد، در مجموع زمان زیادی رو تلف میکنه. ضمن اینکه گاهی ممکنه کد رو تغییر بدن اما کامپایل از زیر دست در بره، ولی در یک زبان اسکریپتی وقتی کد رو تغییر دادی و سیو کردی این تغییرات فورا در سراسر برنامه و اجرا منعکس میشن.
علت دیگر فکر میکنم این باشه که با این زبانها میشه روی جزییاتی مثل بایت و بیت براحتی و سرعت کار کرد. مسلما در کارهای ذکر شده نیاز اساسی و گسترده به اینطور عملیات سطح پایین هست. علت دیگر هم شاید اینکه در پایتون میشه از کتابخانه های سی استفاده کرد و با ساختمان داده های سی کار کرد.
و اما مسئلهء دیگر اینه که اصولا زبانهای اسکریپتی قدرتمند و مجهز و معروف دیگری که بخوان جایگزین مناسبی برای این دو زبان در اینطور کاربردها باشن وجود نداشته و نداره.
البته اینها استنباط و حدسهای بنده بودن تا اینجا. نمیدونم درست هستن یا نه. بهرحال این مسئله رو در فروم تخصصی پایتون (http://www.pylearn.com/fa/forum/) هم مطرح خواهم کرد.