Mohammad Vand Jalili https://www.vandjalili.ir Diagnosis of Cancer and Brain Tumors Sat, 25 Jun 2022 09:01:10 +0000 fa-IR hourly 1 https://wordpress.org/?v=6.5.2 https://www.vandjalili.ir/wp-content/uploads/2022/06/cropped-a-i-artificial-intelligence-logo-EC5FBC89DC-seeklogo.com_-32x32.png Mohammad Vand Jalili https://www.vandjalili.ir 32 32 زبان برنامه نویسی پایتون (Python) چیست؟ https://www.vandjalili.ir/%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-python-%da%86%db%8c%d8%b3%d8%aa%d8%9f/ https://www.vandjalili.ir/%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-python-%da%86%db%8c%d8%b3%d8%aa%d8%9f/#comments Sun, 12 Jun 2022 08:45:00 +0000 https://www.vandjalili.ir/?p=1118

«زبان برنامه نویسی پایتون» (Python Programming Language)، زبانی با یادگیری آسان محسوب می‌شود و از همین رو بسیاری از برنامه‌نویس‌های تازه‌کار آن را به عنوان اولین زبان برنامه‌نویسی خود برمی‌گزینند، زیرا پایتون به عنوان یک «زبان همه‌منظوره» (General-Purpose Language) ساخته و توسعه داده شده و محدود به توسعه نوع خاصی از نرم‌افزارها نیست. به بیان دیگر، می‌توان از آن برای هر کاری، از «تحلیل داده» (Data Analysis) گرفته تا ساخت بازی‌های کامپیوتری استفاده کرد. بنابراین، یادگیری پایتون بسیار حائز اهمیت است.

 فهرست مطالب – رفرنس مطالب سایت فرادرس می باشد …

 زبان برنامه نویسی پایتون چیست؟

 دلایل محبوبیت پایتون چه هستند؟

 ویژگی‌های پایتون

 مزایا و معایب زبان برنامه‌نویسی پایتون چه هستند؟

 کاربردهای پایتون چیست؟

 چه نسخه‌ای از پایتون را باید استفاده کرد؟

 راه‌اندازی محیط پایتون چگونه است؟

 جنگو چیست؟

 پایتون چه تفاوتی با دیگر زبان‌ها دارد؟

 شش پروژه برنامه‌نویسی برای مبتدیان

 وضعیت اشتغال برای برنامه‌نویسان پایتون چگونه است؟

 بازار کار پایتون چگونه است؟

 چه تعداد برنامه‌نویس پایتون در جهان هست و بازار کار آن چگونه است؟

 مزایای یادگیری پایتون

 یادگیری پایتون

 نتیجه‌گیری

همچنین، پایتون در میان جوامع علمی از محبوبیت فوق‌العاده‌ای برخوردار است، زیرا از آن برای محاسبه معادلات پیچیده و تحلیل‌های داده استفاده می‌شود. در ادامه به طور دقیق‌تر به چیستی این زبان، دلایل محبوبیت، ویژگی‌ها، مزایا و معایب، کاربردها، نسخه‌های گوناگون و چگونگی انتخاب از میان آن‌ها، روش راه‌اندازی محیط پایتون، چیستی «جنگو» (Django)، تفاوت‌های پایتون با دیگر زبان‌های برنامه‌نویسی، جمعیت برنامه‌نویس‌های پایتون در جهان، وضعیت اشتغال برنامه‌نویس‌های پایتون در ایران، شش پروژه برنامه‌نویسی پایتون برای مبتدیان، مزایای یادگیری و روش یادگیری این زبان پرداخته خواهد شد.

زبان برنامه‌نویسی پایتون از صفر تا صد

زبان برنامه نویسی پایتون چیست؟

به بیان فنی، «پایتون» (Python) یک زبان برنامه‌نویسی «شی‌گرا» (Object-Oriented) و «سطح بالا» (High-Level) با «معناشناسی» (Semantic) پویای یکپارچه شده برای وب و ساخت و توسعه «نرم‌افزارهای کاربردی» (Application software) است. این زبان برنامه‌نویسی در زمینه «توسعه سریع نرم‌افزارهای کاربردی» (Rapid Application Development) دارای جذابیت بالایی محسوب می‌شود زیرا دارای «انواع پویا» (Dynamic Types) و «انقیاددهنده پویا» (Dynamic Binding) است.

پایتون، زبان برنامه‌نویسی نسبتا ساده‌ای محسوب می‌شود که یادگیری آن به دلیل دارا بودن «نحو» یکتایی که بر قابلیت خوانایی تمرکز و تاکید دارد آسان است. خواندن و ترجمه کدهای نوشته شده به زبان برنامه نویسی پایتون نسبت به دیگر زبان‌ها برای «توسعه‌دهندگان» (Developers) ساده‌تر محسوب می‌شود. این موضوع به نوبه خود هزینه‌های نگهداری و توسعه برنامه‌های نوشته شده به این زبان را کاهش می‌دهد زیرا امکان همکاری تیم‌ها بدون مواجهه با موانع زبانی و وجود تجربیات کاری متفاوت در میان اعضای تیم را به دست می‌دهد.

علاوه بر این، زبان برنامه نویسی پایتون از «ماژول‌ها» (modules) و «بسته‌ها» (packages) استفاده می‌کند، بدین معنا که برنامه‌های این زبان قابل طراحی به سبک «ماژولار» (modular) هستند و کدهای نوشته شده در یک پروژه در پروژه‌های گوناگون دیگر نیز قابل استفاده مجدد محسوب می‌شوند. هنگامی که کاربری ماژول یا بسته مورد نیاز خود را توسعه داد، خودش یا دیگر علاقمندان (در صورتی که کد در اختیار عموم قرار بگیرد) می‌توانند آن را برای استفاده در دیگر پروژه‌ها گسترش دهند. «ایمپورت» (Import) و «اکسپورت» (Export) کردن این ماژول‌ها نیز کار آسانی است.

زبان برنامه نویسی پایتون

یکی از قابل توجه‌ترین مزایای زبان برنامه نویسی پایتون آن است که «کتابخانه» (Library) و «مفسر استاندارد» (Standard Interpreter) آن، هم به صورت «دودویی» (binary) و هم «منبع» (source) به رایگان در دسترس همگان قرار دارند. در پایتون هیچ انحصاری وجود ندارد، زیرا همه ابزارهای لازم برای آن در کلیه «پلتفرم‌های اصلی» (Main Platforms) موجود هستند. بنابراین، پایتون برای توسعه‌دهندگانی که نمی‌خواهند دغدغه هزینه‌های بالای توسعه را داشته باشند گزینه‌ای جذاب به شمار می‌آید.

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

دلایل محبوبیت پایتون چه هستند؟

دلایل محبوبیت پایتون

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

۱. غول‌های فناوری دنیا این زبان را دوست دارند: «گوگل» (Google)، «یوتیوب» (YouTube)، «فیس‌بوک» (Facebook)، «ناسا» (NASA)، «دراپ‌باکس» (Dropbox)، «یاهو» (Yahoo)، «موزیلا» (Mozilla)، «کورا» (Quora)، «اینستاگرام» (Instagram)، «ردیت» (Reddit) و IBM تنها برخی از نام‌های بزرگ فناوری به شمار می‌آیند که از زبان برنامه نویسی پایتون به طور گسترده برای اهداف گوناگون استفاده می‌کنند و به طور مستمر به دنبال استخدام مهندس‌های پایتون هستند. (آمارهای ارائه شده در نمودارهای آتی مربوط به سال ۲۰۱۸ است.)

سایز شرکت‌های استفاده کننده از هر زبان برنامه‌نویسی

گوگل از زبان برنامه نویسی پایتون برای هر کاری از پیاده‌سازی الگوریتم‌های «هوش مصنوعی» (Artificial Intelligence) گرفته تا «موتور اجرای برنامه گوگل» (App Engine Cloud) استفاده می‌کند. این در حالیست که ۹۹/۹٪ کد دراپ‌باکس شامل «بک‌اند سرور» (server backend)، کلاینت دسکتاپ، «منطق کنترل‌گر وب‌سایت» (website controller logic)، «بَک‌اند رابط برنامه‌نویسی کاربردی» (API backend) و ابزارهای تحلیلی آن به زبان برنامه نویسی پایتون نوشته شده‌اند.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-1&w=760&h=140&t=string&bg=fffff3&hover=ffffcb&rows=3&cid=2511,14,1&wr=cat_python,score_2,score_2

۲. به طور گسترده در یادگیری ماشین مورد استفاده قرار می‌گیرد: با رشد علم داده، محبوبیت زبان برنامه نویسی پایتون به عنوان یک زبان علمی اوج گرفت. کتابخانه‌های «یادگیری ماشین» (Machine Learning) بسیار زیادی به زبان برنامه نویسی پایتون نوشته شده‌اند. در عین حال، ابزارهای زیادی نیز با فراهم آوردن امکان استفاده از زبان برنامه نویسی پایتون، انجام پروژه‌های یادگیری ماشین را آسان‌تر می‌سازند.

نقش‌های کاری توسعه‌دهندگان پایتون

۳. مناسب بودن برای مبتدی‌ها:  زبان برنامه نویسی پایتون انتخاب خیلی خوبی برای برنامه‌نویس‌های مبتدی محسوب می‌شود زیرا ساده است و نحو انعطاف‌پذیری دارد. با زبان برنامه نویسی پایتون، می‌توان به سرعت و سادگی برنامه‌های قابل استفاده‌ای ساخت. احساس دستاورد داشتن سریع فاکتور بسیار مهمی در یادگیری برنامه‌نویسی است.

پایتون برای افراد مبتدی

۴. پایتون می‌تواند تنها زبان مورد نیاز کاربر باشد: از آنجا که پایتون یک زبان برنامه‌نویسی همه منظوره است، کاربر می‌تواند تقریبا برای کلیه پروژه‌ها از آن استفاده کند. مطابق گزارش «Skill Up 2018: Developer Skills»، پایتون زبان برنامه‌نویسی اسکریپتی است که به همه از «کارشناسان تست نفوذ» (pentesters) گرفته تا مهندسان «دواُپس» (DevOps engineers) درجه قابل توجهی از کنترل کردن را می‌دهد و آن‌ها را قادر به حل مسائل گوناگون می‌سازد. می‌توان از زبان برنامه نویسی پایتون برای ساخت وب‌سایت‌ها، توسعه «واسط گرافیکی کاربر» (GUI | Graphical User Interface) و تحلیل داده استفاده کرد. این یعنی پایتون قابلیت‌های زبان‌های برنامه‌نویسی گوناگون را در یکجا گرد هم آورده و در واقع آنچه خوبان همه دارند زبان برنامه نویسی پایتون به تنهایی دارد و بنابراین می‌تواند تنها زبانی باشد که یک برنامه‌نویس برای کلیه وظایف لازم در حین توسعه به آن نیاز دارد.

ویژگی‌های پایتون

زبان برنامه نویسی پایتون را اغلب می‌توان با زبان «پِرل» (Perl)، «روبی» (Ruby)، «پی‌اچ‌پی» (PHP) و «جاوا» (Java) مقایسه کرد. این موضوع به دلیل قدرت فوق‌العاده پایتون به عنوان یک زبان «شی‌گرا» است. زبان برنامه نویسی پایتون همچنین دارای ویژگی‌های شایان توجهی دیگری است که آن را به زبانی جذاب برای توسعه‌دهندگان مبدل می‌کند. برخی از این ویژگی‌ها در ادامه بیان شده‌اند.

  • زبان برنامه نویسی پایتون از «نحو» (syntax) ظریفی استفاده می‌کند که موجب می‌شود خوانایی برنامه‌های نوشته شده به این زبان بالا باشد. این امر به آن دلیل به وقوع می‌پیوندد که زبان برنامه نویسی پایتون به جای نزدیک بودن به زبانی که کامپیوترها برای خواندن و تفسیر کد استفاده می‌کنند، یک زبان سطح بالا محسوب می‌شود که به زبان انسان نزدیک است (به گونه‌ای که انسان‌ها کلمات را در زبان انگلیسی می‌نویسند نزدیک است). برای مثال، دستور «print» آنچه را به آن داده شود – در زمان اجرا – نمایش می‌دهد.
  • پایتون زبانی ساده و استفاده از آن آسان است، بدین معنا که بالا آوردن برنامه‌ها و اجرای آن‌ها راحت خواهد بود. به همین دلیل است که پایتون زبانی ایده‌آل برای ساخت پیش‌نمونه (پروتوتایپ | prototype) و دیگر وظایف برنامه‌نویسی اد-هاک (اد-هوک | Ad-Hoc) محسوب می‌شود. این ویژگی برای تعمیر و نگهداری نرم‌افزار نیز بسیار مفید است.
  • زبان برنامه نویسی پایتون با «کتابخانه‌های استاندارد پایتون»، پشتیبانی قابل توجهی را برای انواع وظایف برنامه‌نویسی مانند «همگام‌سازی» (syncing) با مرورگرهای وب، جست‌و‌جو از طریق متن و ویرایش فایل‌ها ارائه می‌کند. در اکثر زبان‌های برنامه‌نویسی دیگر، نیاز به ساخت این محتوا از پایه است.
  • این زبان دارای یک حالت تعاملی است که تست کردن نرم‌افزار برای تکه‌های کوتاه کد را آسان می‌سازد. حتی یک محیط توسعه یکپارچه نیز برای زبان پایتون و همراه با آن ارائه می‌شود (این ویرایشگر کد به زبان پایتون نوشته شده و همراه با بسته پایتون در سیستم‌عامل ویندوز و مک نصب می‌شود). محیط توسعه، راه‌اندازی را بسیار آسان‌تر و سریع‌تر می‌سازد.
  • زبان برنامه نویسی پایتون را می‌توان با افزودن ماژول‌های جدید توسعه داد، حتی اگر این ماژول‌ها در زبان های C یا C++ کامپایل شده باشند. بهتر آنکه این ماژول‌ها را می‌توان پس از ساخت به عنوان «میان‌بُرها» (shortcuts) در پروژه‌های آتی مورد استفاده قرار دارد.
  • پایتون در یک برنامه کاربردی قابل «توکار» (Embedding) شدن است. این امر یک رابط قابل برنامه‌نویسی برای کاربران آن نرم‌افزار کاربردی فراهم می‌کند. این ویژگی در شرایطی که کاربر برنامه‌ای برای آموزش کدنویسی می‌سازد و یا در پروژه‌هایی که نیاز به کار با پایتون در ترمینال است بسیار مفید محسوب می‌شود.
  • زبان برنامه نویسی پایتون با گستره وسیعی از کامپیوترها و سیستم‌های عامل مانند گنو/لینوکس، ویندوز، MacOS، بسیاری از برندهای یونیکس، OS/2 و بسیاری از دیگر گزینه‌ها سازگار است. علاوه بر این، پایتون از رابط مشابهی در کلیه این پلتفرم‌ها استفاده می‌کند و این یعنی جا‌به‌جایی بین آن‌ها برای کاربر آسان خواهد بود.
  • پایتون واقعا رایگان است زیرا دانلود یا استفاده از آن هیچ هزینه‌ای ندارد و هیچ هزینه پروانه‌ای (licensing fees) برای آن وجود ندارد. همچنین، این زبان به طور آزادانه‌ای قابل ویرایش و بازتوزیع است، زیرا علارغم آنکه «حق نشر» (کپی رایت | Copyright) دارد، همراه با پروانه‌های متن‌باز ارائه می‌شود.
https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-2&w=800&h=285&t=related&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%E2%80%8C%D9%87%D8%A7%DB%8C%20%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF%DB%8C:&col=4&cid=2967,1919,2294,1299&wr=cat_low_python,cat_python,cat_low_python,cat_low_python

مزایا و معایب زبان برنامه‌نویسی پایتون چه هستند؟

مزایا و معایب پایتون

شرکت‌های نرم‌افزاری، پایتون را به این دلیل می‌پسندند که دارای ویژگی‌های متنوع و در عین حال نیازمند نوشتن کدهای کم‌تری است. نزدیک به ۱۴٪ برنامه‌نویسان از این زبان روی سیستم‌عامل‌هایی مانند یونیکس، لینوکس، ویندوز و Mac OS استفاده می‌کنند. برنامه‌نویس‌های شرکت‌های بزرگ از پایتون به دلیل ویژگی‌های گوناگون از جمله موارد زیر بهره می‌برند:

  • تعاملی (Interactive)
  • مفسری
  • ماژولار (Modular)
  • پویا
  • شی‌گرا
  • قابل حمل (Portable)
  • سطح بالا
  • توسعه‌پذیر در ++C و C

در ادامه مزایا و معایب بهره‌گیری از این زبان به طور مشروح بیان شده است.

مزایای پایتون

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

کتابخانه‌های پشتیبان گسترده

کتابخانه‌های پایتون

پایتون دارای کتابخانه‌های استاندارد بسیاری در زمینه‌های گوناگون مانند عملیات روی رشته‌ها، اینترنت، ابزارهای وب سرویس، رابط‌های سیستم‌عامل و پروتکل‌ها است. اغلب وظایف برنامه‌نویسی که زیاد مورد استفاده قرار می‌گیرند در پایتون اسکریپت‌نویسی شده‌اند تا تعداد خطوط کد مورد نیاز برای نوشتن یک برنامه کاهش پیدا کند.

یکپارچگی ویژگی‌ها

پایتون «Enterprise Application Integration» را یکپارچه می‌سازد و توسعه سرویس‌های وب را با فراخوانی مولفه‌های COM یا COBRA افزایش می‌دهد. این زبان دارای توانایی‌های کنترلی قدرتمندی است، زیرا قابلیت فراخوانی مستقیم توسط C++ ،C یا جاوا با «جایتون» (Jython) را دارد. پایتون همچنین می‌تواند XML و دیگر «زبان‌های نشانه‌گذاری» (Markup Language) را پردازش کند تا روی سیستم‌عامل‌های مدرن از طریق بایت کد مشابهی اجرا شوند.

بهبود بهره‌وری برنامه‌نویس‌ها

زبان برنامه‌نویسی پایتون دارای کتابخانه‌های پشتیبان گسترده و طراحی شی‌گرای تمیزی است که بهره‌وری برنامه‌نویس‌ها را به نسبت کار با زبان‌هایی مانند VB، «پِرل» (Perl)، جاوا، C++ ،C و C# دو تا ده برابر می‌کند.

بهره‌وری

فرآیندهای یکپارچه‌سازی قدرتمند، «چارچوب تست واحد» (Unit Testing Framework) و توانایی‌های کنترل بهبود یافته‌ای که پایتون دارد، موجب افزایش سرعت و بهره‌وری برنامه‌های کاربردی می‌شود.

معایب پایتون

پایتون دارای مزیت‌های بسیار زیاد و متنوعی است و برنامه‌نویسان این زبان را نسبت به دیگر زبان‌ها به دلیل سادگی یادگیری و کد نویسی ترجیح می‌دهند. اگرچه این زبان هنوز جایگاه خود را در برخی حوزه‌های پردازش کامپیوتری مانند «Enterprise Development Shops» به دست نیاورده است. بنابراین، ممکن است پایتون قادر به حل برخی از راهکارهای سازمانی نبوده و با محدودیت‌هایی مواجه باشد که برخی از آن‌ها در ادامه ذکر شده‌اند.

دشواری در استفاده از دیگر زبان‌ها

عاشقان پایتون که با ویژگی‌ها و کتابخانه‌های گسترده این زبان اُنس گرفته‌اند ممکن است در کار یا یادگیری دیگر زبان‌های برنامه‌نویسی دچار مشکل شوند. متخصصان پایتون ممکن است اعلان مقادیر یا نوع متغیرها و الزام به افزودن آکولاد یا «نقطه ویرگول» (semi colons) در بخش‌هایی از کد را دشوار و بی‌دلیل بپندارند (چون انجام چنین کارهایی در پایتون نیاز نیست).

ضعیف در پردازش موبایل

پایتون جایگاه خود را در بسیاری از سکوهای دسکتاپ و سرور به دست آورده و تثبیت کرده، اما در پردازش موبایل ضعیف به نظر می‌رسد. به همین دلیل است که برنامه‌های کاربردی موبایل کمی با استفاده از آن ساخته می‌شوند. از جمله برنامه‌های موبایل ساخته شده با پایتون می‌توان به Carbonnelle اشاره کرد.

کاهش سرعت

پایتون به جای استفاده از کامپایلر با بهره‌گیری از یک مفسر اجرا می‌شود و این امر می‌تواند موجب کاهش سرعت آن شود. از سوی دیگر، پایتون برای بسیاری از کاربردهای وب سریع به شمار می‌آید.

خطاهای زمان اجرا (Runtime Errors)

زبان پایتون به طور پویایی تایپ می‌شود، بنابراین دارای محدودیت‌های طراحی زیادی است که توسط برخی توسعه‌دهندگان این زبان (+) بیان شده‌اند. حتی مشاهده شده که این زبان نیاز به زمان تست بیشتری دارد و هنگامی که برنامه‌ها در نهایت اجرا می‌شوند خطاهایی بروز می‌کنند.

لایه‌های دسترسی پایگاه داده توسعه نیافته

در مقایسه با دیگر فناوری‌های محبوب مانند JDBC و ODBC، لایه دسترسی به پایگاه داده پایتون اندکی تحت توسعه و ابتدایی به نظر می‌رسد و از همین رو قابل اعمال بر کسب‌و‌کارهایی نیست که نیاز به تعامل‌های روان برای داده‌های میراثی پیچیده دارند.

کاربردهای پایتون چیست؟

پایتون یک زبان برنامه‌نویسی همه منظوره است. به عبارت دیگر، می‌توان از پایتون تقریبا برای همه کار استفاده کرد. نکته حائز اهمیت آن است که پایتون یک «زبان تفسیری» (interpreted language) به شمار می‌آید، بدین معنا که کد نوشته شده به این زبان در زمان اجرا واقعا به فرمت قابل خواندن برای کامپیوتر ترجمه نمی‌شود. این در حالی است که اغلب زبان‌های برنامه‌نویسی این تبدیل را حتی پیش از اجرا انجام می‌دهند. این نوع از زبان با عنوان «زبان اسکریپت‌نویسی» (scripting language) نیز نامیده می‌شود زیرا هدف از ساخت آن در ابتدا برای استفاده در پروژه‌های کوچک بوده.

مفهوم «زبان اسکریپت‌نویسی» از بدو پیدایش آن به شکل قابل توجهی تغییر کرده، زیرا پایتون برای نوشتن نرم‌افزارهای کاربردی و تجاری بزرگ به جای پروژه‌های کوچک مورد استفاده قرار می‌گیرد. استفاده از پایتون در پروژه‌های گوناگون با افزایش محبوبیت آن رشد قابل توجهی کرده است. بسیاری از برنامه‌های کاربردی و پلتفرم‌های تحت وب از پایتون استفاده می‌کنند، از این جمله می‌توان به «موتور جست‌و‌جوی گوگل» (Google’s Search Engine)، «یوتیوب» (YouTube) و سیستم‌های تراکنش مبتنی بر وب «بازار بورس نیویورک» (New York Stock Exchange | NYSE) اشاره کرد. برکسی پوشیده نیست که زبان برنامه‌نویسی که برای سیستم بازار بورس مورد استفاده قرار می‌گیرد باید بسیار قدرتمند باشد.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-3&w=760&h=140&t=string&bg=fff3ff&hover=ffcbff&rows=3&cid=2560,2556,1170&wr=cat_2_python,cat_low_python,cat_python

«ناسا» (NASA) نیز از پایتون برای برنامه‌نویسی تجهیزات و ماشین‌آلات فضایی خود بهره می‌برد. فوق‌العاده است، نه؟ پایتون همچنین برای پردازش متن، نمایش اعداد یا تصاویر، حل معادلات علمی و ذخیره‌سازی داده مورد استفاده قرار می‌گیرد. به بیان کوتاه، این زبان در پشت صحنه برای پردازش عناصر زیادی که کاربر ممکن است نیاز داشته باشد یا در دستگاه خود با آن مواجه شود – از جمله دستگاه‌های موبایل- مورد استفاده قرار می‌گیرد. پایتون در دامنه‌های وسیعی کاربرد دارد. در ادامه برخی از این موارد بیان می‌شوند.

توسعه وب و اینترنت

پایتون قابلیت‌های زیادی را برای توسعه وب فراهم می‌کند که از این جمله می‌توان به مواردی که در ادامه آمده اشاره کرد.

  • چارچوب‌هایی مانند «جنگو» (Django)، «پیرامید» (Pyramid) و «چری‌پای» (CherryPy)
  • «میکرو چارچوب‌ها» (Micro-frameworks) مانند «فلسک» (Flask) و «باتل» (Bottle)
  • سیستم‌های مدیریت محتوای پیشرفته مانند «پلون» (Plone) و «جنگو سی‌ام‌اس» (django CMS).

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

  • HTML و XML
  • JSON
  • پردازش ایمیل
  • پشتیبانی از FTP، IMAP و دیگر پروتکل‌های اینترنتی
  • «رابط سوکت» (Socket Interface) با استفاده آسان

و دیگر بسته‌های قدرتمندی که برای توسعه وب قابل استفاده‌اند از جمله موارد زیر:

  • Requests: یک کتابخانه قدرتمند برای کلاینت HTTP
  • BeautifulSoup: یک پارسر HTML است که انواع HTML‌های عجیب و غریب را مدیریت می‌کند.
  • Feedparser: برای parsing خوراک‌های RSS/Atom
  • Paramiko: پیاده‌سازی پروتکل SSH2
  • Twisted Python: چارچوبی برای برنامه‌نویسی شبکه ناهمگام

(برای آشنایی بیشتر با کاربردهای Requests و BeautifulSoup مطالعه مطلب «وب اسکرپینگ (Web Scraping) با پایتون و کتابخانه Beautiful Soup — راهنمای جامع» توصیه می‌شود.)

پردازش‌های علمی و عددی

یادگیری ماشین با پایتون

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

  • SciPy: مجموعه‌ای از بسته‌های ریاضیاتی، علمی و مهندسی است.
  • Pandas: یک کتابخانه تحلیل داده و مدل‌سازی است.
  • IPython: یک «شِل» (Shell) تعاملی قدرتمند است که امکان ویرایش و ثبت آسان جلسات کاری را فراهم و از بصری‌سازی و پردازش موازی پشتیبانی می‌کند.

آموزش

پایتون زبان مناسب آموزش

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

واسط‌های گرافیکی کاربر دسکتاپ

کتابخانه واسط گرافیکی کاربر TkInter در بیشتر توزیع‌های دودویی پایتون وجود دارد. برخی از ابزارهایی که در همین راستا در سکوهای گوناگون به طور مجزا موجود هستند عبارتند از:

  • wxWidgets
  • Kivy برای نوشتن برنامه‌های کاربردی «چند لمسی» (multitouch)
  • Qt با pyqt و pyside

جعبه ابزارهای ویژه پلتفرم‌های خاص نیز برای پایتون موجود هستند که از این جمله می‌توان به موارد زیر اشاره کرد.

  • +GTK
  • اغلب کلاس‌های بنیاد مایکروسافت از طریق افزونه‌های win 32

توسعه نرم‌افزار

پایتون اغلب به عنوان یک زبان پشتیبان توسط توسعه‌دهندگان نرم‌افزار برای ساخت، کنترل و مدیریت، تست و کارهای دیگر مورد نیاز در فرآیند تولید و نگهداری نرم‌افزار مورد استفاده قرار می‌گیرد. برخی از قابلیت‌های پایتون در همین راستا عبارتند از:

  • SCons برای ساخت کنترل
  • Buildbot و  Apache Gump برای تست و کامپایل خودکار مداوم
  • Roundup یا Trac برای ردیابی باگ و مدیریت پروژه

کاربردهای تجاری

  • پایتون برای ساخت سیستم‌های «برنامه‌ریزی منابع سازمانی» (Enterprise Resource Planning | ERP) مورد استفاده قرار می‌گیرد.
  • Odoo یک نرم‌افزار مدیریت همه در یک (all-in-one) نوشته شده به زبان پایتون است که یک مجموعه کامل از برنامه‌های کاربردی مدیریت کسب‌و‌کار به شمار می‌آیند.

چه نسخه‌ای از پایتون را باید استفاده کرد؟

دو نسخه اصلی از پایتون وجود دارد که انتخاب از میان آن‌ها ممکن است کار را برای افراد مبتدی و برنامه‌نویسان تازه‌کار کمی گیج‌کننده کند. دو نسخه پایتون ۲ و ۳ هستند. خبر خوب آن است که در زمینه «نحو» (Syntax) این زبان‌ها باید گفت که بسیار مشابه هستند و توسعه هر دو نسخه قابل قبول است.

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

پایتون نسخه ۲ یا ۳

پایتون نسخه ۲.۷ تا ۳.۴ (از جمله ۳.۲) همچنان به طور فعالی تعمیر و نگهداری می‌شوند. این مساله در صورت نیاز به کمک یا مواجهه با مشکل حائز اهمیت است. نسخه ۲.۷، به دلیل اینکه مدت زیادی از انتشار آن می‌گذرد دارای بیشترین پشتیبانی از کتابخانه‌های شخص ثالث است. بسیاری از افراد با در نظر گرفتن کتابخانه‌های هر نسخه، در صورتی که کتابخانه مورد نظرشان به نسخه‌های جدید پایتون پورت نشده باشد، از همان نسخه‌های قدیمی استفاده می‌کنند.

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

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

راه‌اندازی محیط پایتون چگونه است؟

راه‌اندازی پایتون

یکی از مهم‌ترین موضوعات هنگام کار کردن با هر زبان برنامه‌نویسی «راه‌اندازی» (setup) یک «محیط توسعه» (Development Environment) برای آن است که امکان اجرای کدهای نوشته شده به آن زبان را می‌دهد. بدون این محیط توسعه، کاربر هرگز قادر به بررسی اینکه کدی که نوشته کار می‌کند یا نه و آیا دارای خطا است یا خیر، نخواهد بود.

برای زبان برنامه نویسی پایتون، به چیزی با عنوان «مفسر» (interpreter) نیز نیاز است که کد را تبدیل به آنچه می‌کند که برای کامپیوتر قابل خواندن و اجرا است (و در واقع کل برنامه نوشته شده را می‌سازد). برای تبدیل کد، ابتدا باید از «شِل پایتون» (Python shell) استفاده کرد که اغلب مفسر را از طریق چیزی که خط «بَنگ» (bang) نامیده می‌شود فراخوانی می‌کند.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-4&w=800&h=285&t=related&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%E2%80%8C%D9%87%D8%A7%DB%8C%20%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF%DB%8C:&col=4&cid=2046,1919,352,2185&wr=cat_low_python,cat_2_python,cat_2_python,cat_python

همانطور که برای ساخت یک برنامه کاربری یا فایل دو راه وجود دارد، برای این کار نیز دو روش موجود است. می‌توان برنامه را با یک «ویرایش‌گر متن» (text editor) ساده مانند WordPad یا ++Notepad ساخت. همچنین، می‌توان برنامه را با استفاده از شل پایتون آماده کرد. مزایا و معایبی برای هر روش وجود دارد که در ادامه تشریح خواهند شد.

شل پایتون در مقایسه با فایل متنی

«شِل» (Shell) برنامه یا ابزاری است که برای تعامل با سیستم قابل استفاده محسوب می‌شود. برای مثال، شِل سیستم‌عامل ویندوز با بهره‌گیری از «ترمینال» یا خط فرمان برای نوشتن «فرمان‌ها» (commands) و «آرگومان‌ها» (arguments) قابل استفاده است. با بهره‌گیری از زبان برنامه نویسی پایتون، کارها کمی متفاوت‌تر از شِل سیستم‌عامل پیش می‌رود. شِل پایتون برای تعامل با مفسری مورد استفاده قرار می‌گیرد که کد را به فرم قابل درک کامپیوتر به آن می‌خوراند.

شل پایتون

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

هنگامی که کد در یک فایل متنی نوشته می‌شود، هیچ یک از موارد بیان شده به وقوع نمی‌پیوندد تا مستندات به یک مفسر خورانده شوند. اگر پایتون روی کامپیوتر کاربر نصب باشد، می‌توان مفسر را با استفاده از خط فرمان فراخوانی کرد، اما این گام پس از آنکه کد نوشته شد انجام می‌شود. این امر، کشف خطاها در کد را دشوارتر می‌کند و همچنین اگر مفسر با مساله‌ای مواجه شود خسته کننده خواهد شد زیرا ممکن است در صورت استفاده از شِل خطاها آنگونه که هستند ظاهر نشوند. هنوز هم توسعه‌دهندگان بسیاری ترجیح می‌دهند از ابزارهای ویرایشگر متن استفاده کنند به دلیل آنکه ساده و استفاده از آن‌ها آسان است. ویرایشگرهای متن با کارکردهای افزوده‌ای مانند «++Notepad» وجود دارند که هدف اصلی ساخت آن‌ها برنامه‌نویسی و توسعه نرم‌افزار بوده است.

بهترین راه برای آغاز

فراگیران پیش از آنکه کاری با زبان برنامه‌نویسی انجام دهند، نیاز به پیکربندی محیط توسعه دارند. اکنون، به چگونگی راه‌اندازی پایتون و مفسری که می‌تواند برنامه‌های سفارشی کاربر را اجرا کند پرداخته خواهد شد. پایتون در سیستم‌عامل «مَک» (Mac) و بسیاری از توزیع‌های «لینوکس» (Linux) از پیش نصب شده است. اگرچه، امکان دارد نیاز به دانلود یک نسخه به روز شده از آن با توجه به قدمت سیستم‌عامل نصب شده روی سیستم کاربر وجود داشته باشد.

نکته: نسخه پایتون نصب شده روی سیستم را می‌توان به سادگی با باز کردن ترمینال و اجرای دستور زیر بررسی کرد:

python -V

کپی

کاربرانی که سیستم‌عامل ویندوز را روی سیستم خود نصب دارند، می‌توانند نرم‌افزار پایتون را از مسیر بیان شده در بخش بعدی دانلود کنند.

چگونگی دریافت پایتون

برای افرادی که نیاز به نصب پایتون دارند، بهترین راه وب‌سایت رسمی آن (+) است. در این وب‌سایت می‌توان نسخه‌ای از پایتون که مناسب سیستم‌عامل نصب شده روی سیستم کاربر است (۳۲ یا ۶۳ بیت) را نصب کرد. راهکار نصب پایتون در سه پلتفرم معروف و محبوب دسکتاپ در ادامه آمده است.

  • مَک: اغلب کامپیوترهای Mac OS X پایتون نسخه ۲ را به صورت نصب شده دارند که برای استفاده بسیار مناسب است. بهترین راه برای نصب آخرین نسخه استفاده از «سیستم مدیریت بسته» (package management system) رایگان و متن‌باز «Homebrew» (+) برای فعال‌سازی و مدیریت آن‌ها است. دستورالعمل‌های چگونگی استفاده از آن در اینجا (+) موجود است.
  • لینوکس: پایتون در اغلب توزیع‌های لینوکس وجود دارد. کاربران باید نسخه کنونی نصب شده روی سیستم خود را بررسی کرده و در صورت نیاز آن را با استفاده از مدیر بسته نصب شده روی سیستم عامل خود ارتقا دهند.
  • ویندوز: کافی است پایتون از PSF دانلود شود.

نکته: کاربرانی که از ویندوز استفاده می‌کنند، باید اطمینان حاصل کنند که گزینه افزودن Python.exe به مسیر سیستم را در طول نصب بزنند. این کار را می‌توان با انتخاب گزینه «Add python.exe to path» انجام داد و سپس هارد درایو اصلی را به عنوان محل نصب انتخاب کرد.

جنگو چیست؟

«جنگو» (Django) یک چارچوب برنامه‌های کاربردی وب متن باز نوشته شده به زبان برنامه نویسی پایتون است. این چارچوب چیزی بیش از یک مجموعه از ماژول‌ها که توسعه را آسان‌تر می‌کنند نیست. این ماژول‌ها با هم گروه‌بندی شده‌اند و به کاربر امکان ساخت برنامه‌های کاربردی یا وب‌سایت‌ها را از یک منبع موجود به جای نوشتن آن‌ها از پایه می‌دهند.

چارچوب جنگو برای پایتون

این همان روشی است که توسعه‌دهندگان می‌توانند با بهره‌گیری از آن وب‌سایت‌های (حتی انواع ساده آن‌ها که توسط یک نفر ساخته شده) دارای کارکردهای پیشرفته مانند «پشتیبانی از احراز هویت» (authentication support)، «پنل مدیریت» (Management Panel) و «پنل مدیر» (Admin Panel)، «فرم‌های تماس» (contact forms)، «جعبه نظرات» (comment boxes)، «پشتیبانی از بارگذاری فایل» (file upload support) و بسیاری از دیگر موارد را بسازند. به بیان دیگر، اگر کاربر قصد داشته باشد یک وب‌سایت را از پایه بسازد، باید کلیه این مولفه‌ها را ساخته و توسعه دهد. در عوض، با استفاده از یک چارچوب، این مولفه‌ها به صورت ساخته شده وجود دارند و تنها نیاز به پیکربندی آن‌ها به شکل مناسب برای وب‌سایت کاربر است.

سایت رسمی پروژه پایتون (+)، جنگو چنین معرفی می‌کند: «چارچوب وب پایتون سطح بالا که توسعه سریع، تمیز و طراحی عمل‌گرا را امکان‌پذیر می‌سازد. این چارچوب توسط توسعه‌دهندگان با تجربه ساخته شده و به حل بسیاری از مشکلات توسعه وب کمک می‌کند، بنابراین کاربر می‌تواند برنامه خود را بدون نیاز به اختراع چرخ بسازد. این چارچوب رایگان و متن‌باز است».

جنگو مجموعه بزرگی از ماژول‌های قابل استفاده در پروژه‌های گوناگون را ارائه می‌دهد. چارچوب‌ها در درجه اول با این هدف ایجاد شدند تا در وقت توسعه‌دهندگان صرفه‌جویی شود و جنگو نیز از این قاعده مستثنی نیست. ممکن است برای بسیاری از افراد جالب توجه باشد که جنگو با در نظر داشتن «توسعه‌دهندگان فِرانت‌اند» (front-end developers) ساخته شده است. «جنگو یک زبان قالب است که طراحی شده تا افرادی که با HTML کار می‌کنند، مانند طراحان یا توسعه‌دهندگان Front-end در کار با آن راحت باشند و به سادگی آن را بیاموزند. با این وجود، جنگو انعطاف‌پذیر و بسیار توسعه‌پذیر است و به توسعه‌دهندگان امکان افزودن زبان قالب را در صورت نیاز می‌دهد». افرادی که قصد کار با زبان برنامه نویسی پایتون را دارند، به ویژه برای برنامه‌های کاربردی وب یا طراحی وب، باید جنگو را به خاطر بسپارند. این چارچوب قطعا به کار خواهد آمد.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-5&w=760&h=140&t=string&bg=f3ffff&hover=cbffff&rows=3&cid=14,1048,2862&wr=score,cat_low_python,cat_low_python

CherryPy نیز یک چارچوب برنامه کاربردی وب شی‌گرای مبتنی بر پایتون است که برای کار عالی محسوب می‌شود. اگرچه، این چارچوب با در نظر داشتن سادگی مطلق طراحی شده. CherryPy چارچوبی است که کاربران پس از آنکه مقداری تجربه در کار با زبان برنامه نویسی پایتون به دست آوردند باید در آن به اکتشاف بپردازند.

پایتون چه تفاوتی با دیگر زبان‌ها دارد؟

پایتون در مقایسه با سایر زبان‌ها

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

زبان‌های گوناگون در کنار پایتون

«پی‌اچ‌پی» (PHP) یک زبان اسکریپت‌نویسی سرور است که در درجه اول برای ساخت وب‌سایت‌های پویا و تعاملی مورد استفاده قرار می‌گیرد. PHP بهترین زبان برای ساخت محتوای HTML است و برای ساخت هر چیزی از یک بلاگ ساده گرفته تا یک وب‌سایت بزرگ به سبک شرکت‌های بزرگ قابل استفاده خواهد بود.

«پایتون» (Python) یک زبان برنامه‌نویسی سطح بالا، شی‌گرا و همه منظوره است که بسیار قابل تطبیق به شمار می‌آید و تقریبا برای هر کاری می‌توان از آن استفاده کرد. این زبان به طور متداولی برای توسعه کاربردهای وب و موبایل، «خزنده‌های وب» (web crawlers)، «اندیس‌گذارها» (indexers)، «دیمِن» (Daemon) و «برنامه‌های کاربردی دارای واسط گرافیکی کاربر دسکتاپ» (Desktop GUI Apps) مورد استفاده قرار می‌گیرد.

«روبی» (Ruby) یک زبان سطح بالا و شی‌گرا است که برای کار با برنامه‌های کاربردی وب و «موجودیت‌های داده» (data entities) مورد استفاده قرار می‌گیرد. این زبان برای تمرکز زُدایی از وظایف «پُرس‌و‌جو» (query) ایجاد شده است. روبی برای سیستم انواع پویای آن مشهور است که بررسی نوع را در طول زمان اجرا انجام می‌دهد. این زبان همچنین دارای ویژگی مدیریت حافظه خودکار است.

نکته: دلیل «سطح بالا» گفتن به یک زبان آن است که نحو و دستورات آن به زبان انسانی نزدیک‌تر از زبان کامپیوتر است. عبارت سطح بالا در ابتدا برای تشریح زبان‌هایی به کار می‌رفت که وابسته به انواع مشخصی از کامپیوترها نبودند.

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

چه کسانی از PHP استفاده می‌کنند؟

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

  • گوگل
  • ناسا
  • یودمی (Udemy)
  • ویکی‌پدیا
  • فیس‌بوک

چه کسانی از پایتون استفاده می‌کنند؟

شرکت‌های استفاده کننده از زبان پایتون

به طور خلاصه، زبان برنامه نویسی پایتون برای تاکید بر بهره‌وری، خوانایی و سهولت استفاده طراحی شده است. برندهایی که از زبان برنامه نویسی پایتون برای تولیدات خود بهره می‌برند شامل موارد زیر می‌شوند.

  • یوتیوب
  • گوگل
  • یاهو! مپ (Yahoo! Map)
  • شاپ‌زیلا (Shopzilla)
  • اولتراسیک (Ultraseek)

چه کسانی از روبی استفاده می‌کنند؟

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

  • توییتر (Twitter)
  • هولو «Hulu»
  • ایندی‌گوگو (Indiegogo)
  • گروپون (Groupon)

کدام زبان برنامه‌نویسی برای یادگیری بهترین است؟

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

هیچ پاسخ درست و غلطی وجود ندارد!

همچنین، چارچوب‌هایی برای هر یک از این زبان‌ها وجود دارد که توسعه با آن‌ها را آسان‌تر می‌سازد. PHP دارای چندین سیستم مدیریت محتوا مانند «وُردپرس» (WordPress)، «دروپال» (Drupal) و «جوملا» (Joomla) است. پایتون از جنگو (Django) و CherryPy بهره می‌برد. در نهایت، روبی دارای ریلز (Rails) یا روبی آن ریلز (Ruby on Rails) است.

شش پروژه برنامه‌نویسی برای مبتدیان

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

۱. « Hello World»

تقریبا همه افراد با تمرین «Hello World» آشنایی دارند. این کد در آغاز یادگیری همه زبان‌های برنامه‌نویسی وجود دارد. هدف در اینجا آن است که یک پیام ورودی کوچک در خروجی ارائه شود تا کاربر بتواند خود را به دنیای برنامه‌نویسی معرفی کند. در زبان برنامه نویسی پایتون، این کار فوق‌العاده ساده است. همه آنچه کاربر در این راستا نیاز دارد باز کردن مفسر و تایپ دستورات زیر است:

print("Hello World")
print("My name is") #add your name after the word "is" obviously

کپی

اگر همه چیز خوب پیش برود، کاربر باید چیزی مانند آنچه در زیر آمده را مشاهده کند.

> python3 #to call upon Python on MAC OS X use this command, for Windows use "python"
Python 3.5.1 (default, Jan 14 2016, 06:54:11)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World")
>>> print("My name is Bob")
Hello World
My name is Bob

به وضوح مشخص است که دستور print برای نمایش محتوا روی صفحه به کار رفته. این دستور را باید به خاطر سپرد زیرا اغلب مورد استفاده قرار می‌گیرد. متنی که بعد از نماد # قرار می‌گیرد یک دستور است. نظرات در زمان اجرا ظاهر نمی‌شوند و در عوض برای توسعه‌دهندگانی که با کد کار می‌کنند معنادار محسوب می‌شوند. نظری که در کد بالا قرار گرفته دستورالعملی برای افزودن نام کاربر به پیام فراهم می‌کند. اغلب نظرات، برچسب‌ها یا توصیف‌های کوتاهی پیرامون یک تکه از کد ارائه می‌کنند، بنابراین خواننده کد می‌تواند به سادگی متوجه شود که آن بخش از کد چه کاری انجام می‌دهد.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-6&w=800&h=285&t=related&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%E2%80%8C%D9%87%D8%A7%DB%8C%20%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF%DB%8C:&col=4&cid=1535,2511,1170,1125&wr=cat_low_python,score,cat_2_python,cat_low_python

۲. انجام محاسبات

در ادامه محاسبات ساده‌ای اجرا و نتیجه آن مشاهده خواهد شد. کد زیر برای انجام عمل جمع وارد خواهد شد.

7 + 2

کپی

پس از نوشتن معادله بالا و فشردن دکمه «enter»، چیزی شبیه زیر باید قابل مشاهده باشد.

>>> 7 + 2
9

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

۳. ساخت اولین رشته

یک «رشته» (string) یک توالی از کاراکترها است که توسط کامپیوتر قابل پردازش هستند. رشته معمولا برای انجام دستکاری‌های بعدی ذخیره می‌شود. می‌توان از «”» یا «’» برای مشخص کردن یک رشته استفاده کرد. هیچ تفاوتی بین استفاده از «”» و «’» وجود ندارد. «گفتاوردها» (quotations | کوتیشن‌ها) تنها بدین منظور مورد استفاده قرار می‌گیرند که به پایتون بفهمانند آنچه میان آن‌ها قرار گرفته یک رشته است. اکنون یک نام به صورت رشته با استفاده از کدی که در ادامه می‌آید ذخیره می‌شود.

>>> "Bob"

کپی

'Bob'

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

>>> "Hello there " + "my name is " + "Bob"

کپی

'Hello there my name is Bob'

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

>>> "Bob" * 4

کپی

'BobBobBobBob'

انجام چنین کاری ممکن است در این وهله ساده‌لوحانه به نظر برسد چون چنین کاری در جهان واقعی معمولا انجام نمی‌شود. اگرچه، چنین دستکاری‌هایی هنگام کار روی پروژه‌های بزرگی که رشته‌های زیادی دارند در پایتون بسیار مفید واقع خواهد شد. برای مشاهده یک رشته با حروف بزرگ – به جای استفاده از Caps Lock – می‌توان از دستور زیر استفاده کرد.

>>> "Bob".upper()

کپی

'BOB'

۴. بازگرداندن طول یک عبارت یا کلمه

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

>>> len("BobIsTheGreatestEver")

کپی

20

همچنین می‌توان طول (سایز) همه لیست را با استفاده از دستور مشابهی محاسبه کرد.

>>> players = ['bryan', 'john', 'chris']
>>> len(players)
3

۵. ذخیره‌سازی متغیرها

هر ورودی در لیست «players» یک متغیر نامیده می‌شود. متغیرها کاری فراتر از اینکه نام یا عنوانی برای یک مجموعه مشخص از مقادیر باشند انجام نمی‌دهند و بنابراین می‌توان آن‌ها را ذخیره و هر زمان نیاز بود فراخوانی کرد. برای مثال، متغیر راهنمای بالا یعنی «players» برای ذخیره‌سازی نام بازیکنان استفاده خواهد شد. اکنون متغیر دیگری با استفاده از کد زیر ساخته خواهد شد.

>>> movie = "Terminator"

کپی

در اینجا متغیر «movie» و محتوای ذخیره شده در آن «Terminator» است. چیزی که پیرامون متغیرها باید به آن توجه کرد این است که مفسر چیزی را پس از ذخیره‌سازی اطلاعات باز نمی‌گرداند. بنابراین این پرسش ممکن است برای برخی پیش بیاید که از کجا می‌توان اطمینان داشت که متغیرها واقعا ذخیره شده‌اند. این موضوع را می‌توان با وارد کردن «movie» در مفسر و فشردن دکمه enter بررسی کرد. این کار باید موجب شود که داده ذخیره شده داخل متغیر بازگردانده شود. مثال عملی این مورد در ادامه آماده است.

>>> movie

کپی

'Terminator'

برای تغییر مقدار ذخیره شده در یک متغیر می‌توان به صورت زیر عمل کرد.

>>> movie = "Cinderella"
>>> movie

کپی

'Cinderella'

۶. مقایسه

یکی از کارهای واقعا مفیدی که می‌توان با استفاده از زبان‌های برنامه‌نویسی انجام داد مقایسه مجموعه‌های داده است. این کار در زبان برنامه نویسی پایتون به شکل زیر صورت می‌پذیرد.

>>> 7 > 2

کپی

True
>>> 9 < 1

کپی

False
>>> 6 > 2 * 4

کپی

False
>>> 3 == 3

کپی

True
>>> 5 != 2

کپی

True

نکته قابل توجه استفاده از دو علامت مساوی (==) برای بررسی این موضوع است که آیا مجموعه‌های داده مساوی هستند؟ همواره برای مقایسه برابری دو مقدار باید از علامت (==) استفاده شود. به همین دلیل است که یک علامت «=» برای تخصیص مقدار به یک متغیر مورد استفاده قرار می‌گیرد. علاوه بر این، برای بررسی اینکه دو مقدار مساوی نیستند، می‌توان از «=!» استفاده کرد.

وضعیت اشتغال برای برنامه‌نویسان پایتون چگونه است؟

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

برنامه‌نویس‌های پایتون
  • در ایران فعال‌ترین شرکت‌هایی که برنامه‌نویس‌های پایتون در آن مشغول به کار هستند در شهرهای تهران، مشهد، اصفهان، کرج، شیراز و تبریز قرار دارند.
  • حقوق دریافتی کارکنان بسته به عامل‌های گوناگون از اداره کار تا بالغ بر دوازده میلیون تومان است.
  • از جمله عوامل تاثیرگذار بر حقوق دریافتی می‌توان به سابقه کار و پروژه‌هایی که فرد در آن‌ها فعال بوده (تجربه)، جایگاه شغلی، آشنایی با فریم‌ورک‌ها و ابزارهای مورد نیاز در پروژه اشاره کرد.
  • برای اشتغال در زمینه زبان برنامه نویسی پایتون داشتن مهارت بسیار مهم‌تر از مدرک است. پیش از این برخی از شرکت‌ها برای استخدام نیروهای خود به داشتن مدرک تحصیلی در حوزه‌های مرتبط اهمیت به سزایی می‌دادند و حتی فقدان مدرک از شرایط رد متقاضیان محسوب می‌شد. ولیکن در حال حاضر مدرک‌گرایی جایگاه خود را به مهارت‌محوری بخشیده است. در همین راستا مطالعه مطلب «مدرک بی مهارت یا مهارت بی مدرک؛ دانشگاه یا آموزش آنلاین» توصیه می‌شود.
  • انواع مشاغلی که برنامه‌نویسان پایتون می‌توانند در آن به کار بپردازند تمام وقت، نیمه وقت، پروژه‌ای، قراردادی، خوداشتغالی و دیگر موارد است.
  • مواردی مانند ساعات و قوانین کاری، مستقل از قوانین مصوب اداره کار بسیار بستگی به قوانین سازمان ارائه‌دهنده فرصت شغلی و مذاکرات برنامه‌نویس با سازمان دارد. برخی از سازمان‌ها دارای ساعات کار انعطاف‌پذیر هستند و برخی دیگر قواعد خاصی در زمینه تولید و نگهداری کدها دارند.
  • این در حالیست که مطابق نظرسنجی توسعه‌دهندگان انجام شده توسط «استک اورفلو» (StackOverflow) در سال ۲۰۱۸، پایتون فناوری با بیشترین متقاضی در این سال است (بدین معنا که سازمان‌های زیادی به استخدام برنامه‌نویس‌های پایتون پرداخته‌اند). زبان برنامه نویسی پایتون همچنین جایگاه هفتم را در میان زبان‌های برنامه‌نویسی متداول دنیا به دست آورده.
  • درآمد برنامه‌نویسان پایتون در میان ۱۰ زبان پر درآمد در آمریکا اول بوده و پس از آن روبی و جاوا قرار دارند. همچنین، زبان برنامه نویسی پایتون جایگاه سوم را برای بیشترین آگهی‌های شغلی منتشر شده به دست آورده است.

دیگر راه برای تشخیص پیشرفت زبان برنامه نویسی پایتون مشاهده شاخص محبوبیت زبان‌های برنامه‌نویسی (PYPL | PopularitY of Programming Language) است که فرکانس جست‌و‌جوی راهنماهای (tutorials) زبان‌های برنامه‌نویسی گوناگون در گوگل را در نشان می‌دهد. بر اساس این آمار، در سال ۲۰۱۸، پایتون به جایگاه اول صعود کرده و به محبوب‌ترین زبان برنامه‌نویسی برای یادگیری مبدل شده است.

بازار کار پایتون چگونه است؟

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

چه تعداد برنامه‌نویس پایتون در جهان هست و بازار کار آن چگونه است؟

استخدام برنامه‌نویس پایتون

بیان اینکه زبان برنامه نویسی پایتون محبوب‌ترین انتخاب در میان مهندسان نرم‌افزار محسوب می‌شود آسان است. اما چگونه می‌توان مصداق این محبوبیت را در ارقام و اعداد دید؟ مطابق مطالعات جمعیت‌شناسی توسعه‌دهندگان جهانی سال ۲۰۱۸ (Global Developer Population and Demographic Study 2018)، در حال حاضر ۲۳ میلیون توسعه‌دهنده در جهان وجود دارد. انتظار می‌رود این عدد تا ۲۷/۷ میلیون تا سال ۲۰۲۳ رشد کند. هیچ اطلاعات دقیقی پیرامون جمعیت برنامه‌نویس‌های پایتون در سراسر جهان وجود ندارد زیرا این عدد به طور مداوم در حال رشد است. اگرچه، بر اساس مطالعات TIOBE، توسعه‌دهندگان پایتون ۵/۷۶۱٪ از توسعه‌دهندگان در اقصی نقاط جهان را تشکیل می‌دهند. هم‌زمان، «نتایج نظرسنجی توسعه‌دهندگان سال ۲۰۱۷» حاکی از آن است که ۱۸٪ از توسعه‌دهندگان پایتون در ایالات متحده آمریکا متمرکز هستند و در اغلب موارد روی پروژه‌های خود به طور مستقل کار می‌کنند. این داده‌ها اثبات می‌کند که این روزها پیدا کردن توسعه‌دهندگان پایتون در آمریکا کاری دشوار است زیرا تعداد توسعه‌دهندگان کم و محدود است و اغلب آن‌ها در حال حاضر مشغول به کار هستند.

مزایای یادگیری پایتون

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

زبان برنامه نویسی پایتون به طور گسترده‌ای توسط شرکت‌های بزرگی مانند گوگل، پینترست، اینستاگرام، دیزنی، یاهو!، نوکیا، IBM و بسیاری از دیگر شرکت‌ها مورد استفاده قرار می‌گیرد. «رزبری پای» (Raspberry Pi) که یک مینی کامپیوتر بسیار محبوب است نیز بر زبان برنامه نویسی پایتون به عنوان زبان اصلی تکیه دارد. احتمالا بیان این نکات برخی افراد را متعجب کند و به طرح این پرسش وادارد که بیان این موارد چه اهمیتی دارد؟ پاسخ این پرسش آن است که هنگامی که فردی پایتون می‌آموزد، هیچ وقت با کمبودی در به کارگیری مهارت‌های خود مواجه نخواهد شد. لازم به ذکر نیست که وقتی بسیاری از شرکت‌های بزرگ بر استفاده از یک زبان تکیه و تاکید دارند، یادگیرندگان آن می‌توانند پول خوبی به دست آورند.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-7&w=760&h=140&t=string&bg=fffff3&hover=ffffcb&rows=3&cid=1919,264,1727&wr=score,cat_2_python,cat_low_python

یادگیری پایتون

دیگر مزایای یادگیری این زبان عبارتند از:

  1. زبان برنامه نویسی پایتون قابل استفاده برای ساخت و توسعه «پیش‌نمونه‌ها» (prototypes) به طور سریع است زیرا کار با آن و خواندن کدهای نوشته شده به این زبان آسان است.
  2. اغلب پلتفرم‌های «اتوماسیون» (automation)، «داده‌کاوی» (data mining) و «کلان داده» (مِه داده | Big Data) بر پایتون تکیه دارند. این امر بدان دلیل است که زبان برنامه نویسی پایتون زبانی ایده‌آل برای کار کردن برای وظایف همه منظوره است.
  3. خواندن کدهای پایتون آسان است، حتی اگر فرد یک برنامه‌نویس ماهر نیز نباشد. هر کسی می‌تواند کار با زبان پایتون را آغاز کند، این امر تنها نیازمند کمی صبوری و تمرین است. علاوه بر آن، این موضوع موجب می‌شود تا زبان برنامه نویسی پایتون برای پروژه‌های دارای چند برنامه‌نویس و تیم‌های توسعه بزرگ مورد استفاده قرار بگیرد.
  4. زبان برنامه نویسی پایتون از «جنگو» (Django) که یک چارچوب نرم‌افزاری تحت وب آزاد و «متن‌باز» (open source) است قدرت می‌گیرد. چارچوب‌ها – مانند «روبی آن ریلز» (Ruby on Rails) – برای ساده کردن فرآیندهای توسعه قابل استفاده هستند.
  5. این زبان به لطف متن‌باز بودن و جامعه توسعه‌دهندگان آن، دارای پایه پشتیبانی بسیار قوی است. میلیون‌ها نفر از توسعه‌دهندگان همفکر  به طور روزانه با این زبان کار می‌کنند و کارکردهای هسته‌ای آن را بهبود می‌بخشند. آخرین نسخه از پایتون همچنان در حال دریافت بهبودها و به روز رسانی‌هایی در گذر زمان است. این راهکار فوق‌العاده‌ای برای شبکه‌سازی با دیگر توسعه‌دهندگان است.

یادگیری پایتون

یادگیری پایتون

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

آموزش‌های ویدئویی پایتون از مقدماتی تا پیشرفته

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

– آموزش نحوه نصب و راه‌اندازی پایتون

آموزش نحوه نصب و راه‌اندازی پایتون

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

– آموزش برنامه‌نویسی پایتون – مقدماتی

آموزش مقدماتی زبان برنامه نویسی پایتون

در این آموزش ویدئویی که مدت آن ۱۸ ساعت و ۳۲ دقیقه است و تاکنون بالغ بر ۴۸۶۲ دانشجو آن را تهیه کرده‌اند کلیه مباحثی که افراد برای شروع کار با پایتون و نوشتن برنامه به این زبان نیاز دارند مورد بررسی قرار گرفته است. در دوره آموزشی مقدماتی پایتون ابتدا معرفی این زبان، چرایی استفاده از آن، تاریخچه، ویژگی‌ها، نسخه‌های انتشار یافته و کاربرد آن بیان شده. سپس نحوه نصب و راه‌اندازی شرح داده شده و به مبحث متغیرها و داده‌ها، معرفی عملگرها (Operator) و عملوندها (Operand)، چگونگی ذخیره‌سازی برنامه‌ها و انواع خطاها در پایتون پرداخته شده است. سپس ساختمان داده‌ها در پایتون شامل مباحث دنباله و رشته، لیست‌ها، ماتریس‌ها، تاپل‌ها، دیکشنری و مجموعه‌ها مورد بررسی قرار گرفته است. عبارات شرطی و کنترلی، توابع در پایتون، شی گرایی و کتابخانه‌های پایتون از دیگر مباحثی هستند که به طور کامل در این دوره مورد بررسی قرار گرفته‌اند. مشاهده این دوره آموزشی به کلیه افرادی که در آغاز راه یادگیری پایتون قرار دارند توصیه می‌شود.

– آموزش ساختمان داده در پایتون (رایگان)

آموزش ساختمان داده در پایتون

در این آموزش ۴۱ دقیقه‌ای که به رایگان در وب‌سایت فرادرس موجود است مبحث ساختمان داده‌ها تشریح شده. از جمله مباحث مورد بررسی در این آموزش می‌توان به تعریف ساختمان داده در پایتون و فواید آن، دنباله، رشته‌ها، تعریف و فراخوانی یک دنباله، متدها در دنباله‌ها و لیست‌ها اشاره کرد.

– آموزش معرفی و تعریف آرایه‌ها در تکمیلی پایتون

آموزش معرفی و تعریف آرایه‌ها در تکمیلی پایتون

در این آموزش ۳۳ دقیقه‌ای که به رایگان توسط فرادرس منتشر شده، آموزش‌هایی جهت تکمیل و بهینه‌سازی مباحث مطرح شده در پایتون مقدماتی ارائه شده‌اند. در این آموزش مباحث مربوط به آرایه‌ها مورد بررسی قرار گرفته است.

– آموزش تکمیلی برنامه‌نویسی پایتون

معرفی بسته NumPy

در این دوره که مدت آن ۴ ساعت و ۴۶ دقیقه است و تاکنون بیش از ۲۴۲۰ دانشجو آن را تهیه کرده‌اند، مباحث تکمیلی زبان برنامه‌نویسی پایتون (در تکمیل دوره مقدماتی) شامل معرفی و تعریف آرایه‌ها در پایتون، معرفی بسته NumPy، معرفی توابع پرکاربرد در زمینه کار با اعداد و نحوه رسم نمودارها در پایتون همراه با برخی مباحث دیگر به طور کامل تشریح شده است.

– آموزش برنامه‌نویسی پایتون – ضمایم و جمع‌بندی (رایگان)

آموزش برنامه‌نویسی پایتون - ضمایم و جمع‌بندی (رایگان)

در این آموزش ۴۰ دقیقه‌ای که به صورت رایگان در وب‌سایت فرادرس موجود است جمع‌بندی بر مباحث مقدماتی و تکمیلی پایتون انجام شده. از جمله موضوعات مورد بررسی در این آموزش ویدئویی می‌توان به مبحث فایل‌ها در پایتون، معرفی چند نوار ابزار (toolbar) پایتون و تغییرات انجام شده در نسخه‌های جدید این زبان اشاره کرد.

آموزش‌های ویدئویی یادگیری ماشین

در ادامه آموزش‌های ویدئویی یادگیری ماشین با پایتون در سطوح و زمینه‌های گوناگون معرفی شده‌اند.

– آموزش مقدمه‌ای در رابطه با یادگیری ماشین با پایتون (Python) (رایگان)

مقدمه‌ای بر یادگیری ماشین

یادگیری ماشین و زبان برنامه‌نویسی پایتون هر یک به طور مجزا از موضوعات داغ روز هستند. استفاده از پایتون جهت انجام پیاده‌سازی‌های مربوط به یادگیری ماشین از مباحثی است که امروزه توجه افراد بسیار زیادی را به خود جلب کرده است. در این آموزش ۱۶ دقیقه‌ای که به طور رایگان در وب‌سایت فرادرس قرار گرفته، مقدمه‌ای در رابطه با یادگیری ماشین شامل چیستی آن، کاربردهای فعلی، خطرات هوش مصنوعی و آشنایی با Jupyter Notebook ارائه شده است.

– آموزش کار با پیش‌پردازش‌ها در یادگیری ماشین با پایتون (Python) (رایگان)

پیش‌پردازش داده‌ها با پایتون

در این آموزش ۷۵ دقیقه‌ای که به صورت رایگان در وب‌سایت فرادرس قرار گرفته، مباحث مرتبط با پیش‌پردازش داده‌ها شامل کار با مجموعه داده کشورها، «مقادیر ناموجود» (Missing Values)، داده‌های تکراری و نحوه الحاق دو دیتافریم به یکدیگر تشریح شده است. سپس، Dummy variables ،Cross Tabulation، «جدول محوری» (Pivot Table)، نرمال کردن داده‌ها و «داده‌های پرت» (Outliers) شرح داده شده‌اند.

– آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)

آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)

در این دوره آموزش ویدئویی که به مدت ۱۰ ساعت است و تاکنون بیش از ۱۳۷۰ دانشجو آن را تهیه کرده‌اند ضمن ارائه مباحث مقدماتی پیرامون یادگیری ماشین و معرفی Jupyter Notebook، بسته NumPy به طور کامل تشریح شده است. سپس، کتابخانه Pandas معرفی و مباحث مرتبط با آن شامل انواع ساختارهای داده، نحوه ایجاد سری‌ها و دیتافریم‌ها، ایندکس‌ها و مقادیر، ویرایش دیتافریم‌ها، ریست کردن، تغییر نام و مرتب کردن ایندکس‌ها و اعمال تابع روی دیتافریم بررسی شده‌اند. در ادامه نحوه بصری‌سازی داده‌ها در پایتون و کتابخانه matplotlib به طور کامل همراه با جزئیات تشریح شده است. از دیگر موضوعاتی که در آموزش ویدئویی یادگیری ماشین با پایتون به زبان فارسی به آن پرداخته شده می‌توان به مباحث مقدماتی آمار، روش‌های پیش‌پردازش داده‌ها، «یادگیری نظارت شده» (Supervised Learning) و انواع روش‌های دسته‌بندی، رگرسیون و ارزیابی مدل، «یادگیری نظارت نشده» (Unsupervised Learning) و انواع روش‌های خوشه‌بندی و مفاهیم و روش‌های کاهش ابعاد اشاره کرد.

آموزش‌های ویدئویی پایتون برای توسعه وب

همانطور که پیش از این بیان شد پایتون از جمله زبان‌هایی است که از آن برای توسعه وب استفاده می‌شود. در ادامه آموزش مرتبط با این حوزه معرفی می‌شود.

– آموزش جنگو (Django) – فریم‌ورک تحت وب با پایتون (Python)

آموزش جنگو (Django) - فریمورک تحت وب با پایتون (Python)

فریم‌ورک جنگو که پیش‌تر توضیح داده شد، معمولا توسط اغلب توسعه‌دهندگان وب که از پایتون بهره می‌برند مورد استفاده قرار می‌گیرد. در آموزش ویدئویی جنگو که مدت آن ۸ ساعت ۱۵ دقیقه است و تاکنون ۵۳۱ دانشجو آن را تهیه کرده‌اند، از دو رویکرد پروژه‌محور و سرفصل‌محور استفاده شده است و در واقع پس از تحلیل و بررسی مباحث، یک پروژه از صفر تا صد بر اساس آموزش‌های ارائه شده انجام می‌شود. از جمله مباحث ارائه شده در این آموزش می‌توان به نصب و آماده‌سازی، پایگاه داده و مدل‌ها، URL‌ها، قالب‌ها و Views اشاره کرد. همچنین یک پروژه کتابخانه از صفر تا صد انجام و ضمن آن چیستی «گیت» (Git) و نحوه کار با این «سیستم کنترل نسخه» (version-control system) تشریح شده است.

آموزش‌های ویدئویی بازی‌سازی با پایتون

چنانچه پیش‌تر بیان شد، پایتون یک زبان همه منظوره است که از آن برای کارهای گوناگون از محاسبات علمی و تحلیل داده گرفته تا توسعه وب و بازی‌سازی استفاده می‌شود. در ادامه آموزش ویدئویی به زبان فارسی پیرامون بازی‌سازی با پایتون معرفی می‌شود.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-8&w=800&h=285&t=related&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%E2%80%8C%D9%87%D8%A7%DB%8C%20%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF%DB%8C:&col=4&cid=2209,1442,1322,1&wr=cat_2_python,cat_python,cat_low_python,score

– آموزش بازی‌سازی در پایتون با کتابخانه Pygame

آموزش بازی‌سازی در پایتون با کتابخانه Pygame

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

آموزش‌های ویدئویی برنامه‌نویسی پایتون در سیستم‌های اطلاعات جغرافیایی

«سیستم اطلاعات جغرافیایی» (Geographic Information System | GIS) سیستمی است که برای ثبت، ذخیره‌سازی، دستکاری، تحلیل، مدیریت و ارائه داده‌های «فضایی» (Spatial) یا «جغرافیایی» (Geographic Data) مورد استفاده قرار می‌گیرد. نرم‌افزارهای کاربردی GIS ابزارهایی هستند که به کاربر امکان ساخت کوئری‌های تعاملی (جست‌و‌جوهای ساخته شده به وسیله کاربر)، تحلیل اطلاعات جغرافیایی، ویرایش داده‌ها در نقشه‌ها و ارائه نتایج این عملیات را می‌دهند. از زبان برنامه‌نویسی پایتون می‌توان برای خلق، توسعه بخشی و دستکاری سیستم‌های GIS بهره برد. در ادامه دوره‌های آموزشی ارائه شده پیرامون استفاده از پایتون در حوزه سیستم‌های GIS معرفی می‌شوند.

– آموزش برنامه‌نویسی پایتون در سیستم اطلاعات جغرافیایی (GIS)

آموزش برنامه‌نویسی پایتون در سیستم اطلاعات جغرافیایی (GIS)

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

– آموزش مهم ترین دستورهای زبان پایتون (رایگان)

آموزش مهم ترین دستورهای زبان پایتون (رایگان)

این آموزش رایگان ۲۸ دقیقه‌ای، بخشی از آموزش برنامه‌نویسی پایتون در سیستم اطلاعات جغرافیایی (GIS) است که در آن برخی از مباحث مهم پایتون بیان شده‌اند. از جمله موضوعات ارائه شده در این آموزش می‌توان به عملگرهای ریاضی، مقایسه‌ای، منطقی، شرطی، عملیات ریاضی، برخی دستورات پایتون و توابع شرطی اشاره کرد.

سایر آموزش‌های ویدئویی پایتون

از دیگر آموزش‌های ویدئویی به زبان فارسی پیرامون زبان برنامه‌نویسی پایتون می‌توان به آموزش «الگوهای طراحی» (Design Patterns) اشاره کرد.

– آموزش الگوهای طراحی (Design Patterns) در پایتون (Python)

آموزش الگوهای طراحی (Design Patterns) در پایتون (Python)

این آموزش ۱۲ ساعت و ۲۶ دقیقه‌ای که تاکنون بیش از ۳۴۰ دانشجو آن را تهیه کرده‌اند بر موضوع ارائه «الگوهای طراحی» (Design Patterns) برای مشکل‌های موجود در برنامه‌نویسی به زبان پایتون متمرکز شده است. از جمله مباحث ارائه شده در این مطلب می‌توان به مفاهیم «الگوی طراحی» (Design Patterns)، نصب محیط برنامه‌نویسی Atom، «الگوی طراحی یگانه» (Singleton Design Pattern) شامل مفهوم، روش پیاده‌سازی در پایتون، کاربردها در Lazy initialization، الگوی Monostate و پیاده‌سازی آن در پایتون، الگوی طراحی کارخانه (Factory Design Pattern) شامل معرفی، مزایا، انواع و روش‌های پیاده‌سازی، «الگوی طراحی نما» (Facade Design Pattern)، الگوی طراحی پروکسی (Proxy Design Pattern)، الگوی طراحی مشاهده کننده (Observer Design Pattern)، الگوی طراحی فرمان (Command Design Pattern)، الگوی طراحی روش قالب (Template Method Design Pattern)، الگوی طراحی مدل – نمایش – کنترلر (Model-View-Controller Design Pattern) و الگوی طراحی وضعیت (State Design Pattern) اشاره کرد. این دوره برای رشته‌های مهندسی کامپیوتر و مهندسی برق و کلیه علاقمندان به زبان برنامه‌نویسی پایتون مفید است.

نتیجه‌گیری

در این مطلب چیستی زبان برنامه‌نویسی پایتون، دلایل محبوبیت آن، ویژگی‌ها، مزایا و معایب، کاربردها، نسخه‌های گوناگون و چگونگی انتخاب از میان آن‌ها، روش راه‌اندازی محیط پایتون، چیستی «جنگو» (Django)، تفاوت‌های پایتون با زبان‌های روبی و پی‌اچ‌پی، جمعیت برنامه‌نویس‌های پایتون در جهان، وضعیت اشتغال برنامه‌نویس‌های پایتون در ایران، شش پروژه برنامه‌نویسی پایتون برای مبتدیان، مزایای یادگیری و روش یادگیری این زبان پرداخته شد. همانطور که مشهود است، پایتون زبانی دارای نحو ساده اما قدرت و ویژگی‌های بسیار زیاد محسوب می‌شود و در حوزه‌های گوناگون مورد استفاده قرار می‌گیرد. زبان برنامه‌نویسی پایتون مستحکم است و نگهداری و خطایابی کدهای نوشته شده به این زبان به شکل خیلی خوبی قابل انجام هستند.

اگر مطلب بالا برای شما مفید بوده، آموزش‌های زیر نیز به شما پیشنهاد می‌شود:

^^

مطلبی که در بالا مطالعه کردید بخشی از مجموعه مطالب «آموزش رایگان پایتون» است. در ادامه، می‌توانید فهرست این مطالب را ببینید:

]]>
https://www.vandjalili.ir/%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-python-%da%86%db%8c%d8%b3%d8%aa%d8%9f/feed/ 1
چگونه یک هکر حرفه ای شویم.. https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d9%87%da%a9%d8%b1-%d8%ad%d8%b1%d9%81%d9%87-%d8%a7%db%8c-%d8%b4%d9%88%db%8c%d9%85/ https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d9%87%da%a9%d8%b1-%d8%ad%d8%b1%d9%81%d9%87-%d8%a7%db%8c-%d8%b4%d9%88%db%8c%d9%85/#respond Sun, 12 Jun 2022 07:33:42 +0000 https://www.vandjalili.ir/?p=1115 یکی از متداولترین سوالات کاربران کامپیوتری این است که چگونه میتوانیم یک هکر حرفه ای شویم؟ برای پاسخ به این سوال ابتدا باید معنی کلمه Hack را بفهمیم سپس به سراغ مراحل هکر شدن برویم، در گذشته نه چندان دور (10 هزار سال قبل از میلاد مسیح) هک به معنای سود بردن از یک روش هوشمندانه برای حل مشکلات کامپیوتری بود اما در حال حاضر منظور از کلمه هک نفوذ به یک سیستم رایانه ای میباشد.

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

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

فرایند هکر شدن چقدر زمان میبرد؟

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

از کجا شروع کنیم؟

چگونه هکر شویم

اولین علمی که باید در آن غوطه ور شوید یادگیری مبانی و پایه شبکه است این یادگیری شامل درک کامل از نحوه عملکرد دستگاه های مختلف شبکه مثل مسیر یاب و سویچ و فایروال و … و همچنین فهم کامل عملکرد انواع پروتکلهای شبکه مثل TCP/IP میباشد. در یک کلام اگر از نحوه کارکرد یک شبکه و پروتکلهای درون آن اطلاعی نداشته باشید به هیچ وجه نمیتوانید یک هکر شوید چراکه اکثر کارهای که باید انجام دهید بر روی بستر شبکه انجام میشوند.

یکی از منابع عالی برای یادگیری علم شبکه کتاب Network + Microsoft Press میباشد. شما میتوانید این کتاب را به زبان فارسی و یا انگلیسی تهیه کنید.

دومین گام در هکر شدن:

پس از مسلط شدن به مبانی و مباحث پایه شبکه باید با ساختار انواع سیستم عامل ها آشنا شوید. این سیستم عامل ها شامل لینوکس و ویندوز و اندروید میباشد. آشنایی با ساختار و نحوه کار کرد سیستم عامل ها را نباید دسته کم بگیرید چراکه نقطه شروع و پایان کار شما همین سیستم عامل ها میباشند. حتما باید بتوانید با لینوکس به صورت Command Line کار کنید چراکه محیط گرافیکی لینوکس چیزی را از لینوکس به شما نخواهد فهماند.

بهترین منابع برای یادگیری لینوکس و ویندوز، سعی و خطا میباشد. البته میتوانید از کتاب Beginning Linux Command Line Apress هم شروع کنید. برای یادگیری ویندوز هم به دنبال کتاب Install and Configure Windows 10 در مدرک MCSE بگردید.

سومین گام در هکر شدن:

چگونه میتوان یک هکر شد

پس از گذراندن دو گام قبل نوبت به یادگیری مفاهیم پایه امنیت میرسد، این مفاهیم شامل مفاهیم کلی امنیت و شناخت و بررسی ریسکها و زیرساختار ها و ارتباطات و روشها و استاندارهای Cryotography و … میباشد. بهترین منبع برای یادگیری مفاهیم مذکور کتاب Security + است.

گام چهارم ورود به دنیای هک:

حال شما میتوانید وارد دنیای هکر ها شوید چرا که مفاهیم مورد نیاز را به خوبی یاد گرفته اید. در این گام شما باید با ابزارها و اسکریپت های مربوط به هک آشنا شوید. بهترین منبع در این بخش یادگیری CEH و CHFI میباشد. البته گزینه دیگری نیز وجود دارد آنهم یادگیری سیستم عامل کالی یا دوره Offencive Security است.

گام پنجم دنیای هک بی پایان است

پس از گذراندن مراحل قبل بهتر است شروع به یادگیری زبان برنامه نویسی پایتون کنید چراکه خیلی از ابزار های هک با زبان پایتون نوشته شده اند و زبان پایتون کمک شایانی را در این مسیر به شما خواهد نمود. البته پایتون تنها زبانی نمیباشد که شما باید آنرا یاد بگیرید بلکه باید با زبانهای C و C++ و C# و PHP و Perl و … نیز باید آشنا شوید تا بتوانید درک کاملی را از ساختار برنامه ها و وبسایت ها بدست آورید.

نقشه حرفه ایی ورود به هک

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

سیستم مناسب برای هک یا برنامه نویسی

برای استارت آموزش هکر شدن با ما همراه باشید.

در این مقاله به پاسخ سوالات زیر خواهید رسید:

  • هک را از کجا شروع کنم؟
  • چگونگی تبدیل شدن به یک هکر اخلاقی؟
  • آیا من می توانم هکر شوم؟
  • زمان لازم برای هکر شدن چقدر است؟
  • رشته های لازم برای هکر شدن چیست؟
  • پیش نیاز های اولیه هکر شدن چیست؟
  • بعد از آموزش نقشه راه هکر شدن می توانم به درآمد برسم؟
  • آیا در ایران می توانم با علم هک کار کنم و درآمد داشته باشم؟
  • دوره هایی که برای هکر شدن نیاز است، چیست؟
  • زبان های برنامه نویسی برای هکر شدن که نیاز است چیست؟
  • و…

نقشه راه ورود به دنیای هک و امنیت در ایران

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

هک چیست؟ هکر کیست؟

هک در دنیای کامپیوتری به جستجو برای پیدا کردن حفره‌های امنیتی یک سیستم و سعی در نفوذ آن است و در ویکی پدیا آمده است که رخنه یا هک به معنی سود بردن از یک روش سریع و هوشمندانه برای حل یک مشکل در رایانه می‌باشد.

در گفتگوهای امروزی هک به معنی نفوذ به یک سیستم رایانه‌ای است.

هکر (Hacker) یا نفوذگر به کسی گفته می شود که از بررسی کردن جزئیات مختلف سیستم های کامپیوتری که قابلیت برنامه ریزی دارند لذت می برد و می تواند با مهارت های که دارد به این سیستم ها نفوذ کند و به آن ها دستور دهد چه کارهای را انجام دهند.

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

بهترین زبان برنامه نویسی برای هک و امنیت

هکر اخلاقی (Ethical Hacking)

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

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

اصطلاحات رایج در هک و امنیت

انواع هکر

انواع هکرها

هکر کلاه سفید

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

شرکت ها و موئسسات دولتی، هکران کلاه سفید را به عنوان تحلیلگران امنیت اطلاعات ، محققان امنیت سایبری ، متخصصان امنیتی ، آزمایش کنندگان نفوذ و غیره استخدام می کنند.

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

نفوذگران کلاه سفید نفوذ می کنند تا:

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

معرفی پلیس فتا

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

هکر کلاه خاکستری

هکرهای کلاه خاکستری در جایی بین هکرهای کلاه سفید و کلاه سیاه قرار می گیرند. اهداف هکرهای کلاه خاکستری غالباً خوب است، اما آنها همیشه با تکنیک هک کردن خود مسیر اخلاقی را طی نمی کنند.

به عنوان مثال، ممکن است به وب سایت، برنامه یا سیستم های شما نفوذ کنند تا بدون رضایت شما به دنبال آسیب پذیری ها باشند. اما آنها معمولاً سعی نمی کنند صدمه ای وارد کنند.

هکرهای کلاه خاکستری توجه مالک را به آسیب پذیری های موجود جلب می کنند. آنها اغلب همان حملات سایبری کلاه سفید را در سرورها و وب سایت های یک شرکت یا دولت انجام می دهند.

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

هکر کلاه سیاه

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

چگونه هکر شویم ؟

نصب سیستم عامل لینوکس

اولین گام تسلط بر روی یکی از سیستم عامل‌های یونیکس می‌باشد. بدون داشتن اطلاعات کافی از سیستم‌ عامل های یونیکس قادر نخواهید بود یک هکر خوبی شوید.
از محبوب‌ترین این سیستم عامل‌ها می‌توان به سیستم عامل لینوکس و نسخه کالی آن اشاره کرد که این نسخه قدرتمند به منظور هک و نفوذ به وجود آمده است.

پس در مرحله اول لازم است که لینوکس کالی را روی هارد اصلی و یا روی یک مجازی ساز مانند WMWARE نصب کرده یا آن را از روی فلش اجرا نمائید.

یادگیری برخی از زبان­‌های برنامه ­نویسی

اچ تی ام ال (HTML):
HTML از زبان‌های اصلی هر وبسایت است و هر آنچه که در وب سایت‌ها مشاهده می‌کنید با این زبان برنامه نویسی ساخته شده‌اند. گام بعدی برای هکر شدن، داشتن تسلط کافی به زبان HTML و آشنایی با اصول اولیه آن می‌باشد.

آشنایی با این زبان می‌تواند به شما در تشخیص نقاط ضعف در وب‌سایت‌ها کمک کند.

عبارت HTML ( اچ تی ام ال ) مخفف Hyper Text Markup Language به معنی زبان نشانه گذاری فوق متن است. Html زبان استاندارد طراحی صفحات وب است و کليه کدهای صفحه اعم از طرف سرور و طرف مشتری در نهايت به کدهای HTML تبديل شده و توسط مرورگر نمايش داده می شوند.

html5

برنامه نویس کیست؟

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

هکر خوب

یک هکر خوب و حرفه‌ ای باید تسلط لازم به چندین زبان برنامه‌نویسی را داشته باشد که در ادامه آن‌ ها را به شما معرفی خواهیم کرد.

پایتون: زبان برنامه نویسی پایتون به دلیل ساده بودن نسبت به سایر زبان‌های برنامه نویسی مناسب‌ ترین گزینه برای شروع کردن یادگیری است و به دلیل نزدیک بودن توابع و دستورات پایتون به زبان محاوره‌ای، چنانچه به زبان انگلیسی آشنا باشید براحتی می توانید این زبان را یاد بگیرید، همچنین استفاده از این زبان برای پروژه‌های بزرگ بسیار انعطاف پذیر و مناسب است.

جاوا: زبان جاوا نسبت به پایتون پیچیده‌تر است، کاربردهای بیشتری دارد، اما گزینه مناسبی برای یادگیری به عنوان نخستین زبان نمی‌باشد.

جاوااسکریپت: جاوا اسکریپت شباهت زیادی به زبان پایتون دارد زیرا هر دو زبان مبتنی بر C و بسیار کاربرپسند هستند. Javascript “زبان اصلی برنامه نویسی وب” و بهتر از پایتون است، بنابراین اگر قصد دارید یک هکر حرفه‌ای شوید توصیه می‌کنیم از Javascript شروع کنید.

PHP: در اکثر وبسایت‌ها از زبان PHP استفاده شده و یکی از مهم‌ترین زبان‌هایی است که یادگیری آن کمک موثری به هکرها خواهد کرد، PHP یک زبان برنامه نویسی متن باز و سمت سرور است به همین دلیل فراگیری آن برای هکرها بسیار حائز اهمیت است.

C: زبان C یک زبان بسیار مهم است و بیشتر سیستم عامل‌های لینوکس، ویندوز، OS X و اندروید به این زبان نوشته شده است، به همین دلیل یادگیری و تسط کامل بر این زبان از اهمیت بالایی برخوردار است.

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

شروع با هک اخلاقی

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

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

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

پس لازم است راه و چاه را بلد باشید!

درآمد از هک و امنیت

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

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

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

درآمد از هک و امنیت

در کشور ما ایران نیز اکثر ارگان های دولتی نیاز به متخصصین امنیت (هکر های کلاه سفید) دارند. از جمله این ارگان ها میتوان به مرکز ماهر،پلیس فتا،مرکز کاشف،مراکز آپا و… اشاره کرد.

همچنین شرکت های خصوصی زیادی نیز وجود دارند که به دنبال متخصصی امنیت با تجربه هستند.

پس بعد از فرا گرفتن کامل مطالب و کسب تجربه کافی شما میتوانید در هر جای دنیا که باشید به شغلی پردرآمد برسید.

تخلفات در خرید اینترنتی را چگونه به پلیس فتا گزارش کنیم؟

گواهینامه های مناسب و لازم برای هکر شدن

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

متاسفانه هنوز هم برخی ارگان ها هستند که مدرک گرا می باشند و به جای علم شما، به مدرک شما اهمیت می دهند.

برای همین لازم است تا به تعدادی از این مدارک مهم اشاره کنیم.

گواهینامه Certified Ethical Hacker یا CEH بدون شک میتواند یک گزینه مناسب باشد. CEH گواهینامه ای است که بیشتر هکرهای اخلاقی به دنبال کسب آن می باشند.

به غیر از CEH، چندین گواهینامه دیگر نیز وجود دارد که مهارت شما را به عنوان یک هکر اخلاقی اثبات می کند.

گواهینامه SANS GIAC
ارزیابی آسیب پذیری ها (Certified Vulnerability Assessor)
هکر اخلاقی حرفه ای (Certified Professional Ethical Hacker)
مهندسی تست نفوذ (Certified Penetration Testing Engineer)
و…

در ادامه مقاله چگونگی تبدیل شدن به یک هکر می رسیم به بخش مهارت ها، که اصلی ترین مرحله کار می باشد.

در ادامه مهارت های لازم و کافی رو به صورت مرحله به مرحله برای شما آماده کردیم. تنها بحثی که ممکن است برای شما به وجود بیاید، بحث منابع است.

مهارت های لازم برای هکر شدن

مهارت های لازم برای هکر شدن

مرحله اول آشنایی با مفاهیم اولیه.

Network Plus
CEH

مرحله دوم آشنایی با خط فرمان های سیستم عامل ها.

Linux Commands
Windows Commands
LPIC 1 & 2

مرحله سوم آشنایی با فریمورک های نفوذ و پنتست.

Metasploit Basic
Metasploit Advanced

مرحله چهارم آشنایی با آسیب پذیری های تحت وب.

Basic of Web Penetration Testing
Advanced of Web Penetration Testing
Penetration Testing with Kali
SQL Programming & PHP/ASP Syntax
Entitty framework & .Net Core

مرحله پنجم طریقه جمع آوری اطلاعات از سطح اینترنت.

InfoGathering & OSINT
Google Hacking & Web Mapping
Social Engeenering & Man Spoofing

مرحله ششم کرک اکانت و جمع آوری اکانت.

Account Leech & Cracking

مرحله هفتم آشنایی با رمزنگاری ها و تست ضعف رمزنگاری.

Cryptography Pentesting

مرحله هشتم تکنیک های نفوذ به شبکه های زیرساختی و بیسیم.

Network & Wireless Hacking

مرحله نهم تکنیک های نفوذ و دور زدن مکانیزم های برنامه های کاربردی.

Android & iOS Penetration Testing

مرحله دهم تست نفوذ با زبان پایتون.

Python for Penetration Testing

مرحله یازدهم آشنایی یا زبان پاورشل و پتانسیل آن.

Powershell for Penetration Testing

مرحله دوازدهم تکنیک های مبهم سازی ر برنامه نویسی و رمزنگاری.

Obfuscation Methods
Encryption & Packers

مرحله سیزدهم تکنیک های ارتقاء سطح دسترسی.

Privilage Ecalation

مرحله چهاردهم تکنیک های نگهداری دسترسی و بکدور.

Persistence Methods

مرحله پانزدهم تکنیک های ضد ردیابی دسترسی.

Anti Forensic Methods

مرحله شانزدهم برنامه نویسی زبان C و سوکت نویسی.

C & Network Programming

مرحله هفدهم برنامه نویسی زبان روبی و جاوا اسکریپت.

Ruby & JavaScript Programming

مرحله هجدهم برنامه نویسی .VBScript & ActionScript

ActionScript & VBScript Programming

مرحله نوزدهم برنامه نویسی زبان ماشین.

Assembly Programming

مرحله بیستم آشنایی با ساختار فایل فرمت ها و ماژول های کرنل.

Operating System File Format
WinAPI & LinAPI Syntax

مرحله بیست و یکم برنامه نویسی .COM & DCOM

COM and DCOM Programming

مرحله بیست و دوم تحلیل ساختار فایروال های نرم افزاری و سخت افزاری.

Hardware & Software Firewall Analysis

مرحله بیست و سوم مهندسی معکوس هر برنامه ای و تکنیکی.

Advanced Reverse Engineering

مرحله بیست و چهارم اکسپلویت نویسی و دور زدن مکانیزم های دفاعی.

Advanced Exploit Development

مرحله بیست و پنجم ساختن بکدورهای روت کیت و بوت کیت.

Bootkit & Rootkit Analysis

مرحله بیست و ششم اکسپلویت نویسی سیستم عامل های گوشی ها.

Android & iOS Exploit Development

مرحله بیست و هفتم تکنیک های حملات به ماهواره ها و شنود آنها.

Satellite Attacking

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

]]>
https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d9%87%da%a9%d8%b1-%d8%ad%d8%b1%d9%81%d9%87-%d8%a7%db%8c-%d8%b4%d9%88%db%8c%d9%85/feed/ 0
چگونه در خانه یک فریلنسر شویم؟ https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%d8%af%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%db%8c%da%a9-%d9%81%d8%b1%db%8c%d9%84%d9%86%d8%b3%d8%b1-%d8%b4%d9%88%db%8c%d9%85%d8%9f/ https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%d8%af%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%db%8c%da%a9-%d9%81%d8%b1%db%8c%d9%84%d9%86%d8%b3%d8%b1-%d8%b4%d9%88%db%8c%d9%85%d8%9f/#respond Sun, 12 Jun 2022 07:15:31 +0000 https://www.vandjalili.ir/?p=1110 در دنیای امروز و به لطف گسترش تکنولوژی، نام مشاغلی را می‌شنویم که آدم را بیشتر یاد کیک و شیرینی‌های خوشمزه می‌اندازند. البته از حق نگذریم؛ در برخی از مواقع درآمدهای شیرین و دندان‌گیر این مشاغل کم از شیرینی یک برش کیک لذیذ ندارد.

به عبارتی هلویی هستند که به دهان می‌گذارید و دیگر هیچ!

امروز هرجا که صحبت از کار و درآمد باشد؛ دست کم یک نفر به فریلنسری اشاره می‌کند. شما هم یا می‌دانید قضیه از چه قرار است یا به نشانه تأیید سری تکان می‌دهید. هرچه باشد؛ در دنیایی که همه‌چیز را می‌توان از گوگل پرسید؛ لابد اظهار بی‌اطلاعی کردن اصلا کار درستی نیست!

شاید همین موضوع شما را به اینجا کشانده باشد…

از کار کردن برای سیستم‌هایی که سنخیتی با روحیات شما ندارند؛ خسته شدید! فریلنسینگ حرفه‌ای است که شما را شیفته خود می‌کند و کلید حل بسیاری از مشکلات است؛ اما این شما هستید که قفل و کلید را می‌سازید.

دنبال اطلاعات دست‌اولی درباره این حرفه هستید؟

این واژه ذهن شما را درگیر کرده‌است؟

بنابراین بهتر است به سراغ اصل مطلب برویم. هرچه باشد؛ از هرچه بگذریم سخن پول بهتر است. در ادامه هرآنچه که باید درباره دورکاری بدانید را با شما درمیان می‌گذارم.

فریلنسر
فریلنسر

تاریخچه فریلنسری

اگر بگویم فریلنسری خیلی قبل‌تر از اینترنت وجود داشته‌است؛ چه می‌گوئید؟

اولین‌باری که این کلمه به کار برده‌شد؛ قیافه حاضران از ما هم دیدنی‌تر بود. نخستین بار توماس ان براون (Thomas N. Brown) نویسنده ایرلندی-آمریکایی، در سال ۱۸۰۹ در کتاب زندگی و دوران هیو میلر (The Life and Time of Hugh Miller) از این کلمه استفاده کرد. سر والتر اسکات (Sir Walter Scott) رمان‌نویس تاریخ‌نگار انگلیسی نیز در رمان معروف خود آیوانهو (Ivanhoe) از این کلمه استفاده کرد.

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

کلمه Freelance از دو ریشه مجزا تشکیل شده‌است. Free یک ریشه آلمانی به معنای «دوست داشتن» است. در حالی که Lance ریشه یک کلمه کهن فرانسوی به معنای «مرخص کردن» است. تعابیر متفاوتی از این کلمه در اینترنت وجود دارد؛ برخی این واژه را در ارتباط با مفهوم آزادی یا شادی نیر تعبیر کرده‌اند.

به‌هرحال معنای این کلمه در گذر زمان دستخوش تغییرات زیادی شده‌است. این روزها این کلمه هویت جدیدی پیدا کرده‌است و به عنوان فعل، اسم و صفت به کار برده می‌شود. دیکشنری کمبریج در تعریف این واژه می‌نویسد: «کسی که به‌جای آنکه کارمند یک شرکت باشد؛ روی پروژه‌های متفاوت شرکت‌های مختلف کار می‌کند». نخستین‌بارفیزیک‌دان و مهندس آمریکایی فرانک ام نیلز (Frank M. Niles) در اواخر سال ۱۹۷۰ که بیکاری در شهرهای حاشیه‌ای به شدت بالا گرفته بود؛ کار در منزل را به عنوان راهکاری مناسب معرفی کرد. به‌تدریج فریلنسرها در دنیای مجازی گرد هم آمدند و فعالیت‌های خود را پررنگ‌تر از همیشه پیش بردند.

تاریخ یکی از جذاب‌ترین قسمت‌های هر شغلی است. شاید انتظار نداشتید که فریلنسری تاریخچه طول و درازی داشته‌باشد؛ اما می‌بینید که نیازهای بشر همواره ثابت است؛ آنچه که تغییر می‌کند ابزار دستیابی به مقصود است. حال که حسابی با تاریخچه فریلنسینگ آشنا شدید؛ بهتر است بیشتر با این حرفه آشنا شوید.

دورکاری
دورکاری

فریلنسرکیست؟

فریلنسر کسی است که با کمال افتخار ریاست خود را برمی‌گزیند. بله در این شغل شما رئیس، کارمند، حسابدار، منشی، مسئول امور مالی و اداری در کسب‌وکار خود هستید.

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

فریلنسر یک انسان منعطف، خلاق و توانمند است که مهارت‌های خود را برای انجام پروژه‌های مورد نظر به‌کار می‌گیرد.

روی هم‌رفته فریلنسرها، دورکارها یا آزادکارهای افرادی هستند که به شکل کاملا مستقل از مهارت‌های خود درآمدزایی می‌کنند. ممکن است؛ فردی این کار را به عنوان شغل اصلی خود در نظر بگیرد؛ اما این امکان نیز وجود دارد که فرد در کنار شغل ثابت خود، پروژه‌های دورکاری را نیز بپذیرد.

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

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

آ
آ

چرا فریلنسری؟

از خودتان بپرسید چرا این حرفه را انتخاب می‌کنید. شاید هنوز اطلاعات شما کامل نشده‌است. پیشنهاد می‌کنم زودتر بخش‌های پایین‌تر را نخوانید و بیایید قدم به قدم پیش برویم. سوالاتی که به ذهنتان می‌رسد را یادداشت کنید؛ انتهای مقاله پاسخ بسیاری از آنها را می‌یابید.

حالا برمی‌گردیم سر سوال: چرا فریلنسری؟

· آیا فقط به دنبال درآمد بیشتر در کنار شغل اصلی خود هستید؟

· آیا این سبک زندگی را برای خود می‌پسندید و ترجیح می‌دهید این کار را به عنوان شغل اصلی خود انتخاب کنید؟

· یا به عنوان یک شغل موقت به این حرفه می‌نگرید؟

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

احتمالا متوجه هستید که انتخاب این شغل در کنار سبک جذاب و آزادی عمل در اختیار شما می‌گذارد؛ چالش‌هایی را نیز به همراه دارد. آیا آماده رویارویی با این چالش‌ها هستید؟

آماده ورود به دنیای فریلنسری شوید

قبل از اینکه عجولانه تصمیم بگیرید و به قولی از هول حلیم در دیگ بیفتد؛ بهتر است واقع‌بین باشید. باید کاملا آماده ورود به یک دنیای جدید شوید. در غیر این‌صورت پس از مدتی از کار دل‌زده می‌شوید و قید دورکار بودن را می‌زنید.

قبل از شروع کار باید بدانید؛ شما با پذیرفتن این شغل اول از همه به خودتان متعهد می‌شوید؛ باور کنید که این تعهد از بسیاری از جهات سخت‌تر از متعهد شدن به یک رئیس خرده‌گیر است. بنابراین بهتر است با درنظر گرفتن این نکات، برای استخدام خودتان تصمیم‌گیری کنید.

اگر بدانید چرا می‌خواهید یک فریلنسر باشید؛ دلیل شما، ستاره قطبی زندگی شما می‌شود و همواره مسیر را برای شما روشن می‌کند. در این حالت با هر بادی تغییر مسیر نمی‌دهید و با تمام قوا درراستای تبدیل شدن به یک دورکار موفق می‌تازید. اما حالا که بحث تاخت و تاز به‌میان آمد، باید بپرسم سوار بر چه اسبی می‌تازید؟ اصلا تخصص شما چیست؟!

چگونه فریلنسر شویم
چگونه فریلنسر شویم

تهیه فهرستی از مهارت‌ها؛

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

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

نکته مهم اینجاست که مهارت شما می‌تواند عجیب‌وغریب‌ترین عادت فردی شما باشد یا پیچیده‌ترین دانشی که تابه حال آموخته‌اید؟ ممکن است در برگزاری مراسم‌ها نظیر نداشته‌باشد. در این صورت بهتر است به دنبال پذیرش پروژه‌هایی باشید که به دنبال فردی خلاق و مدیر در اجرای همایش‌ها و رویدادها هستند!

شاید الان ایده‌ای به ذهن شما خطور نکند؛ توصیه می‌کنم یک دفتر یادداشت همراه خود داشته‌باشید و تمام ایده‌ها و نظراتی که از دیگران می‌شنوید را یادداشت کنید. شاید شما از نگاه یک دوست یک عکاس عالی باشید و از این مهارت بی‌اطلاع باشید. حالا این مهارت‌ها را چطور به دیگران نشان می‌دهید؟

ایجاد یک پروفایل شخصی؛

اگر از قبل در این زمینه فعالیت داشتید؛ حتما نمونه‌هایی برای ارائه در دست دارید. در غیر این‌صورت هم ناامید نشوید؛ زودتر از آنچه که تصور می‌کنید نمونه‌های زیادی به دست می‌آوردید.

اما قرار است با این نمونه‌ها چه کنید؟ یک سایت شخصی بسازید. شوکه نشوید؛ یک وبلاگ هم شروع بسیار خوبی است. نمونه کارها یا شرحی از مهارت‌های خود را در وبلاگ بنویسد. کارفرمایان بعدها از این فضا برای شناخت بیشتر شما استفاده می‌کنند. از همین ابتدا حرفه‌ای عمل کنید. حرفه‌ای باشید یعنی پروژه‌هایی را انتخاب کنید که مهارت شما را شکل می‌دهند.

دورکاری
دورکاری

مهارت خود را تقویت کنید.

مطمئنا نمی‌خواهید در شروع کار فریلنسینگ پروژه‌های متعددی را به صورت همزمان قبول کنید!؟ این کار به هیچ‌عنوان عاقلانه نیست. اگر قرار است فریلنسر باشد؛ باید بهترین فرد در زمینه کاری خود باشد. این اتفاق هم یک شبه نمی‌افتد.

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

به عنوان مثال من یک محتوانویس هستم؛ در این حوزه سفارش‌ها و پروژه‌های متعددی به من پیشنهاد می‌شود؛ در بسیاری از موارد این پیشنهاد وسوسه‌کننده هستند و باور کنید؛ گاهی مقاومت دشوار می‌شود؛ اما با این وجود ترجیح می‌دهم؛ پروژه‌هایی را بپذیرم که مهارت شخصی مرا در مسیر رویاهایم بهبود می‌بخشد.

از نظر من این‌کار یک سرمایه‌گذاری هوشمندانه است. درآمد کسب کن و در عین حال بنیاد هویت برند شخصی خود را بنا کن!

احتمالا حالا تصور می‌کنید؛ کاملا آماده شده‌اید. هیجان و انگیزه شما قابل تحسین است؛ اما هنوز وقت آن نرسیده که دست به کار شوید. برای فریلنسر شدن باید عوض شوید!

خصوصیات یک فریلنسر

درست است که هیچ‌کس ذاتا فریلنس به دنیا نمی‌آید. حداقل تا چند ده سال دیگر! اما برای ورود به این حرفه باید خصوصیاتی را در خود تقویت کنید.

به زبان ساده فریلنسری آدم خودش را می‌خواهد. می‌خواهید آدم این کار بشوید؛ بسم الله…

تغییر کنید؛

بله به زبان آوردن و در این مورد خاص نوشتن این کلمه، راحت است. اما اگر از همان ابتدای مقاله متوجه شدید که چرا می‌خواهید دورکار شوید؛ تغییر چندان هم دشوار نخواهدبود.

بیایید روراست باشیم؛ آدم‌ها مجموعه‌ای از عادات ریز و درشت هستند. برای فریلنسر شدن باید خود را اهلی کنید. رئیس شما هستید؛ با کارمند خود بیش از اندازه دوست نشوید؛ برای او حدود تعیین کنید.

به عنوان مثال این نکات را در نظر بگیرید:

ساعت کاری داشته‌باشید؛

درست است که دورکاری یا آزادکاری به معنی آقای خود بودن است. اما آقا شدن به همین سادگی‌ها نیست. زمان مشخصی برای انجام پروژه‌ها در نظر بگیرید.

بله لازم نیست؛ صبح زود از خواب بیدار شوید؛ هرچند خیلی‌ها ترجیح می‌دهند کار را از صبح زود شروع کنند. انتخاب با شما است. اما بدون برنامه، کار به جایی نمی‌برید.

فریلنسینگ
فریلنسینگ

برنامه‌ریزی کنید.

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

تجربه نویسنده: هرگز کار را به دقایق آخر موکول نکنید! کیفیت کار اعتبار شما است. حتی اگر مجبور شوید؛ زمان بیشتری جهت انجام پروژه تقاضا کنید و کمی از مبلغ دریافتی خود بکاهید؛ این کار را انجام دهید. هویت برند شما در گرو کیفیت کاری است که ارائه می‌دهید. واقعا می‌خواهید با یک تحویل دقیقه نودی همه چیز را به خطر بیندازید؟! گمان نمی‌کنم… با انتخاب پروژه‌ای که شیفته آن هستید، هرگز کار را به لحظات آخر موکول نخواهیدکرد.

برای دل خود کار کنید؛

بسیاری از ما فریلنسر می‌شویم تا دنیای خود را بسازیم. در این دنیا حداقل چیزی که می‌توانیم خلق کنیم فضایی است که آرامش را به ما هدیه می‌کند.

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

گلیم خود را متر کنید؛

برای فریلنسر شدن باید مثل یک سرمایه‌گذار در بازار بورس عمل کنید. زمان و مهارت سرمایه شما است. حساب پشتیبان، اعتباری است که به واسطه رضایت کارفرمایان کسب می‌کنید. حالا حاضرید ریسک کنید؟!

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

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

فریلنسر موفق
فریلنسر موفق

رمز تبدیل شدن به یک فریلنسر موفق

فریلنس بودن یک سوی ماجرا است و فریلنسر موفق شدن سوی دیگر آن. برای موفق شدن در این حرفه در کنار خاک خوردن که اصل اولیه تمام حرفه‌های عالم هستی است؛ باید اصولی را در نظر بگیرید.

روزمه کافی نیست؛ برند باشید؛

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

منظورم این نیست که کلا بی‌خیال رزومه شوید؛ نه اما به روزمه اکتفا نکنید. به یک برند نیاز دارید که حرفی برای گفتن داشته باشد.

چطور می‌خواهید نشان دهید که مهارت‌های شما چگونه در انجام پروژه‌ها به یاری شما خواهندآمد؟ این سوالی است که رزومه‌ها قادر به پاسخگویی به آن نیستند. اگر رزومه شما درست مانند هزاران روزمه‌ای است که تا به حال مشاهده کردید؛ دست نگه دارید؛ چه چیزی شما را متمایز می‌کند؟!

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

از تمام پلتفرم‌ها کمک بگیرید. در تمام شبکه‌های اجتماعی حضور داشته باشید. ایده‌ها و فعالیت‌های خود را با دیگران به اشتراک بگذارید. صفحه لینکدین و یوتیوب خود را همین امروز راه‌اندازی کنید.

در اولین فرصت وب‌سایت یا وبلاگ شخصی خود را راه‌اندازی کنید. در این پلتفرم‌ها نمونه‌کارهای خود را قرار دهید. بهترین خود باشید. کارفرمایان و کاربران با ورود به هر یک صفحات شما در فضای مجازی به خانه شما آمده‌اند؛ مهمان‌نواز باشید؛ بهترین فضا را برای آنها ایجاد کنید.

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

برند سازی از نظر من یعنی: تمام ویژگی‌های بارز شخصیت خود را به بهترین شکل ممکن در معرض نمایش بگذارید. در برند شما پروژه‌ها با سبک شما انجام می‌شود. کسی را دعوت نکرده‌اید؛ افراد شما را انتخاب می‌کنند دقیقا به خاطر چیزی که هستید.

بنابراین ایده‌ها و تفکرات خود را دست کم نگیرید. بی‌مهابا خود را معرفی کنید. اما آیا می‌دانید باید خود را به چه کسانی معرفی کنید؟

کار فریلنسری
کار فریلنسری

مخاطبان خود را شناسایی کنید

ساختن برند بدون شناختن مخاطب کار بیهوده‌ای است. شما باید بدانید کدام جنبه‌های فردی و حرفه‌ای شما برای مخاطبان جذاب است. مخاطبان خود را گلچین کنید.

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

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

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

تعیین نرخ

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

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

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

فریلنسر
فریلنسر

بد نیست برای شروع مجانی بنویسید!

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

از نظر من اگر رؤیای همکاری با تجارتی را در سر دارید؛ دست به کار شوید و یک پروژه رایگان به آنها هدیه دهید. البته لازم به گفتن نیست که باید سنگ تمام بگذارید تا توجه تجارت مورد نظر را جلب کنید. اما کجا خود را معرفی می‌کنید؟

یافتن پلتفرم مناسب

در کنار برند سازی، تبلیغات در شبکه های مجازی و ایجاد وب‌سایت، نیاز به یک فضای حرفه‌ای برای مشاهده سفارش‌ها و پروژه‌های مرتبط با حوزه فعالیت خود دارید. پونیشا و کارلیب از جمله سایت‌هایی هستند که این فضا را در اختیار شما قرار می‌دهند. در پونیشا سفارش از سوی کارفرمایان ثبت شده و متقاضیان پیشنهادهای خود را برای پذیرش سفارش ارسال می‌کنند.

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

کار از راه دور
کار از راه دور

مزایای فریلنسری

انتخاب این شغل کاملا به روحیات و سبک شخصیتی شما بستگی دارد. اگر فریلنسری شغل رویایی شما است بهتر است با مزایای این حرفه آشنا شوید تا از تصور خود در این شغل لذت ببرید:

حرف، حرف شما است؛

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

درآمد خود را با کسی شریک نمی‌شوید؛

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

کار مستقل
کار مستقل

به سرعت مشغول به کار شوید؛

فریلنسری از جمله معدود مشاغلی است که نیازی به صرف زمان زیادی برای ورود به آن نخواهید داشت. درواقع در پایان این مقاله می‌توانید این شغل را شروع کنید و اولین مشتری خود را پیدا کنید.

بی‌نیاز از سرمایه اولیه؛

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

افزایش میزان تقاضا؛

امروزه تعداد کسب‌وکارهایی که به دنبال استخدام نیروی دورکار هستند؛ همواره در حال افزایش است. افزایش تقاضا به این معناست که باید مهارت خود را تقویت کنید. فریلنسرهایی که قابل اعتماد هستند و کار با کیفیت‌تری را تحویل می‌دهند؛ همواره گوی سبقت را از دیگران می‌ربایند.

خبری از کاغذ بازی‌های اداری نیست؛

مرخصی می‌خواهید؛ به رئیس بگویید. امروز قادر نیستید پروژه جدید را بپذیرد؛ هیچ مشکل نیست. استراحت کنید. نیازی به کسب اجازه و نامه‌نگاری‌های متعارف ادارات ندارید. از این گذشته اگر باید کاری را انجام دهید به سرعت دست به کار می‌شوید و نیازی به تهیه یک فایل بلند بالا برای توجیه مدیریت نخواهیدداشت.

حال که با مزایای این حرفه آشنا شدید؛ باید بدانید که هیچ گلی بدون خار نمی‌شود. در ادامه معایب این حرفه را نیز با شما در میان می‌گذارم.

مشکلات فریلنسری
مشکلات فریلنسری

معایب فریلنسری

در کنار مزایا چشمگیر این شغل معایبی نیز در صحنه حضور دارند. قبل از تصمیم‌گیری بهتر است با معایب این کار نیز آشنا شوید.

زمان گیر بودن پروسه یافتن مشتری

در آغاز یافتن مشتری ساده نخواهدبود. بنابراین درآمد بسیار ناچیزی خواهید‌داشت. در مواردی حتی مجبور می‌شوید؛ پروژه‌ای را رایگان انجام دهید تا اعتبار خود را افزایش دهید.

شما رئیس خود هستید؛

یکی از بزرگ‌ترین مزایای کار کردن برای یک فرد دیگر این است که درآمد ثابتی دارید. از آسمان سنگ هم که ببارد از آسمان سنگ هم که ببارد؛ او باید حقوق شما را بدهد. اما در این کار خبری از حقوق ثابت و مزایایی از قبیل بیمه، پاداش، حقوق و بازنگشتی نیست. شما اگر کارفرمای خوبی باشید هزینه‌ای برای بیمه خود در نظر می‌گیرید.

شما مسئول هستید؛

در فریلنسری شما باید تمام زوایای پروژه را به تنهایی انجام دهید. مسئولیت تحویل دادن به موقع پروژه و جلب رضایت مشتری با شما است.

امنیت مالی ندارید؛

برای این کار درآمد ثابتی ندارید. از این گذشته تعداد روزهای مرتبط با مهارت شما همواره یکسان نیست. ممکن است مدت‌ها هیچ پروژه‌ای به دست شما نرسد. بنابراین فریلنسری کار با ثباتی نیست؛ مگر آنکه مشتریان ثابت و مخاطبان برند خود را پیدا کنید.

چالش مدیریت انتظارات متفاوت؛

مدیریت همزمان چندین پروژه چالش بزرگی خواهدبود. هر یک از کارفرمایان انتظارات متفاوتی دارند. بنابراین بهتر است هرگز بیشتر از توان خود پروژه نگیرید.

کنترل زمان از دست می‌رود؛

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

عدم پرداخت هزینه انجام پروژه؛

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

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

مدیریت برنامه
مدیریت برنامه

پیشگیری از کسری بودجه

یکی از نگرانی‌های موجود در زمینه شغل فریلنسینگ عدم ثبات‌مالی و امنیت شغلی است. شما به عنوان فریلنسر باید مراقب خود باشید. این نکته‌ای است که کمتر به آن اشاره می‌شود. اما باید سرمایه‌گذاری را در اولویت قرار دهید. بخشی از درآمد خود را برای پرداخت حق بیمه خویش‌فرما در نظر بگیرید.

بخشی از درآمد خود را در کسب‌وکارها، سهام و استارت‌آپ‌ها سرمایه‌گذاری کنید. شما باید درآمد دیگری نیز برای خود دست و پا کنید، تا با فراغ بال در مسیر تبدیل شدن به یک فریلنسر موفق گام بردارید.

همواره سعی کنید مبلغی را به عنوان پس‌انداز برای گذران یک زندگی ساده به مدت سه ماه کنار بگذارید. به این ترتیب عدم پرداخت دستمزد یا راکد شدن بازار، زندگی شما را مختل نمی‌کند. به خصوص اگر همواره تابع قوانین مالی خود باشید.

مالیات فریلنسری

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

با این وجود بهتر است به عنوان یک کسب‌وکار خودگردان در راستای تنظیم اظهارنامه مالیاتی با یک حسابدار مشورت کنید. او راهنمایی‌های لازم را در اختیار شما قرار می‌دهد.

زمانی که از خانه کار می‌کنید باید خود را به عنوان یک کسب‌وکار مستقل و مجزا معرفی کنید. همواره بیشتر اقدامات لازم در راستای پرداخت مالیات را انجام دهید تا دورنمای درستی از درآمد و بودجه خود داشته‌باشید.

فریلنس
فریلنس

فریلنس بودن یا نبودن!

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

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

]]>
https://www.vandjalili.ir/%da%86%da%af%d9%88%d9%86%d9%87-%d8%af%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%db%8c%da%a9-%d9%81%d8%b1%db%8c%d9%84%d9%86%d8%b3%d8%b1-%d8%b4%d9%88%db%8c%d9%85%d8%9f/feed/ 0
یادگیری ماشین (Machine Learning) چیست؟ https://www.vandjalili.ir/%db%8c%d8%a7%d8%af%da%af%db%8c%d8%b1%db%8c-%d9%85%d8%a7%d8%b4%db%8c%d9%86-machine-learning-%da%86%db%8c%d8%b3%d8%aa%d8%9f/ https://www.vandjalili.ir/%db%8c%d8%a7%d8%af%da%af%db%8c%d8%b1%db%8c-%d9%85%d8%a7%d8%b4%db%8c%d9%86-machine-learning-%da%86%db%8c%d8%b3%d8%aa%d8%9f/#comments Fri, 28 Feb 2020 04:40:09 +0000 https://pxltheme.com/wp/bolby?p=249 در علم یادگیری ماشین (Machine Learning)، به موضوع طراحی ماشین‌هایی پرداخته می‌شود که با استفاده از مثال‌های داده شده به آن‌ها و تجربیات خودشان، بیاموزند. در واقع، در این علم تلاش می‌شود تا با بهره‌گیری از الگوریتم‌ها، یک ماشین به شکلی طراحی شود که بدون آنکه صراحتا برنامه‌ریزی و تک تک اقدامات به آن دیکته شود بتواند بیاموزد و عمل کند. در یادگیری ماشین، به جای برنامه‌نویسی همه چیز، داده‌ها به یک الگوریتم عمومی داده می‌شوند و این الگوریتم است که براساس داده‌هایی که به آن داده شده منطق خود را می‌سازد. یادگیری ماشین روش‌های گوناگونی دارد که از آن جمله می‌توان به یادگیری نظارت شده، نظارت نشده و  یادگیری تقویتی اشاره کرد. الگوریتم‌های مورد استفاده در یادگیری ماشین جزو این سه دسته هستند.

 فهرست مطالب این نوشته

 مثال‌هایی از یادگیری ماشین

 نیازهای یادگیری ماشین

 انواع یادگیری ماشین

 یادگیری تقویتی

 ریاضیات هوشمندی

الگوریتم دسته‌بندی مثالی برای مطلب بیان شده است. این الگوریتم می‌تواند داده‌ها را در گروه‌های (دسته‌های) مختلف قرار دهد. الگوریتم دسته‌بندی که برای بازشناسی الفبای دست‌خط استفاده می‌شود را می‌توان برای دسته‌بندی ایمیل‌ها به هرزنامه و غیر هرزنامه نیز استفاده کرد.

تام میشل (Tom M. Mitchell) در تعریف یادگیری ماشین می‌گوید: «(یک برنامه یادگیرنده) برنامه رایانه‌ای است که به آن گفته شده تا از تجربه E مطابق با برخی وظایف T، و کارایی عملکرد P برای وظیفه T که توسط P سنجیده می‌شود، یاد بگیرد که تجربه E را بهبود ببخشد.»

به عنوان مثالی دیگر، می‌توان بازی دوز (چکرز) را فرض کرد.

  • E: تجربه بازی کردن بازی دوز به دفعات زیاد است.
  • T: وظیفه انجام بازی دوز است.
  • P: احتمال آنکه برنامه بتواند بازی بعدی را ببرد است.

مثال‌هایی از یادگیری ماشین

مثال‌های متعددی برای یادگیری ماشین وجود دارند. در اینجا چند مثال از مسائل طبقه‌بندی زده می‌شود که در آن‌ها هدف دسته‌بندی اشیا به مجموعه‌ای مشخص از گروه‌ها است.

  • تشخیص چهره: شناسایی چهره در یک تصویر (یا تشخیص اینکه آیا چهره‌ای وجود دارد یا خیر).
  • فیلتر کردن  ایمیل‌ها: دسته‌بندی ایمیل‌ها در دو دسته هرزنامه و غیر هرزنامه.
  • تشخیص پزشکی: تشخیص اینکه آیا بیمار مبتلا به یک بیماری است یا خیر.
  • پیش‌بینی آب و هوا: پیش‌بینی اینکه برای مثال فردا باران می‌بارد یا خیر.

نیازهای یادگیری ماشین

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

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

با وجود آنکه مباحث مِه‌داده (کلان داده/big data) و پردازش ابری به دلیل کاربردی که در جنبه‌های گوناگون زندگی بشر دارند حائز اهمیت شده‌اند، اما در حقیقت یادگیری ماشین فناوری است که به دانشمندان داده در تحلیل بخش‌های بزرگ داده، خودکارسازی فرآیندها، بازشناسی الگوها و ارزش‌آفرینی کمک می‌کند.

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

انواع یادگیری ماشین

الگوریتم‌های یادگیری ماشین بر سه نوع هستند:

  • یادگیری نظارت شده
  • یادگیری نظارت نشده
  • یادگیری تقویتی

یادگیری نظارت شده

اغلب روش‌های یادگیری ماشین از یادگیری نظارت شده استفاده می‌کنند. در یادگیری ماشین نظارت شده، سیستم تلاش می‌کند تا از نمونه‌های پیشینی بیاموزد که در اختیار آن قرار گرفته. به عبارت دیگر، در این نوع یادگیری، سیستم تلاش می‌کند تا الگوها را بر اساس مثال‌های داده شده به آن فرا بگیرد.

به بیان ریاضی، هنگامی که متغیر ورودی (X) و متغیر خروجی (Y) موجودند و می‌توان بر اساس آن‌ها از یک الگوریتم برای حصول یک تابع نگاشت ورودی به خروجی استفاده کرد در واقع یادگیری نظارت شده است. تابع نگاشت به صورت (Y = f(X نشان داده می‌شود.

مثال:

برای باز شدن مساله در ادامه توضیحات بیشتری ارائه می‌شود. همانطور که پیش از این بیان شد، در یادگیری ماشین مجموعه داده (هایی) به الگوریتم داده می‌شود و ماشین منطق خود را بر اساس آن مجموعه داده (ها) شکل می‌دهد. این مجموعه داده دارای سطرها و ستون‌هایی است. سطرها (که از آن‌ها با عنوان رکورد و نمونه داده نیز یاد می‌شود) نماینده نمونه داده‌ها هستند. برای مثال اگر مجموعه داده مربوط به بازی‌های فوتبال (وضعیت جوی) باشد، یک سطر حاوی اطلاعات یک بازی خاص است. ستون‌ها (که از آن‌ها با عنوان خصیصه، ویژگی، مشخصه نیز یاد می‌شود) در واقع ویژگی‌هایی هستند که هر نمونه داده را توصیف می‌کنند.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-1&w=760&h=140&t=string&bg=fffff3&hover=ffffcb&rows=3&cid=1871,391,2560&wr=cat_2_data_mining,cat_data_mining,cat_2_data_mining

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

مسائل یادگیری ماشین نظارت شده قابل تقسیم به دو دسته «دسته‌بندی» و «رگرسیون» هستند.

دسته‌بندی: یک مساله، هنگامی دسته‌بندی محسوب می‌شود که متغیر خروجی یک دسته یا گروه باشد. برای مثالی از این امر می‌توان به تعلق یک نمونه به دسته‌های «سیاه» یا «سفید» و یک ایمیل به دسته‌های «هرزنامه» یا «غیر هرزنامه» اشاره کرد.

رگرسیون: یک مساله هنگامی رگرسیون است که متغیر خروجی یک مقدار حقیقی مانند «قد» باشد. در واقع در دسته‌بندی با متغیرهای گسسته و در رگرسیون با متغیرهای پیوسته کار می‌شود.

یادگیری نظارت نشده

در یادگیری نظارت نشده، الگوریتم باید خود به تنهایی به‌دنبال ساختارهای جالب موجود در داده‌ها باشد. به بیان ریاضی، یادگیری نظارت نشده مربوط به زمانی است که در مجموعه داده فقط متغیرهای ورودی (X) وجود داشته باشند و هیچ متغیر داده خروجی موجود نباشد. به این نوع یادگیری، نظارت نشده گفته می‌شود زیرا برخلاف یادگیری نظارت شده، هیچ پاسخ صحیح داده شده‌ای وجود ندارد و ماشین خود باید به دنبال پاسخ باشد.

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

قوانین انجمنی: یک مساله یادگیری هنگامی قوانین انجمنی محسوب می‌شود که هدف کشف کردن قواعدی باشد که بخش بزرگی از داده‌ها را توصیف می‌کنند. مثلا، «شخصی که کالای الف را خریداری کند، تمایل به خرید کالای ب نیز دارد».

خوشه‌بندی: یک مساله هنگامی خوشه‌بندی محسوب می‌شود که قصد کشف گروه‌های ذاتی (داده‌هایی که ذاتا در یک گروه خاص می‌گنجند) در داده‌ها وجود داشته باشد. مثلا، گروه‌بندی مشتریان بر اساس رفتار خرید آن‌ها.

یادگیری تقویتی

یک برنامه رایانه‌ای که با محیط پویا در تعامل است باید به هدف خاصی دست‌یابد (مانند بازی کردن با یک رقیب یا راندن خودرو). این برنامه بازخوردهایی را با عنوان پاداش‌ها و تنبیه‌ها فراهم و فضای مساله خود را بر همین اساس هدایت می‌کند. با استفاده از یادگیری تقویتی، ماشین می‌آموزد که تصمیمات مشخصی را در محیطی که دائم در معرض آزمون و خطا است اتخاذ کند.

مثال:

ریاضیات هوشمندی

نظریه یادگیری ماشین، زمینه‌ای است که در آن آمار و احتمال، علوم رایانه و مباحث الگوریتمی – بر مبنای یادگیری تکرار شونده – کاربرد دارد و می‌تواند برای ساخت نرم‌افزارهای کاربردی هوشمند مورد استفادده قرار بگیرد.

چرا نگرانی از ریاضیات؟

دلایل متعددی وجود دارد که آموختن ریاضیات برای یادگیری ماشین را الزامی می‌کند. برخی از این دلایل در ادامه آورده شده‌اند.

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

چه سطحی از ریاضیات مورد نیاز است؟

پرسشی که برای اغلب افراد علاقمند به آموختن علم یادگیری ماشین مطرح است و بارها در مقالات و کنفرانس‌های گوناگون این حوزه به آن پاسخ داده شده این است که چه میزان تسلط بر ریاضیات برای درک این علم مورد نیاز محسوب می‌شود. پاسخ این پرسش چند بُعدی و وابسته به سطح دانش ریاضی هر فرد و میزان علاقمندی آن شخص به یادگیری است. در ادامه حداقل دانش ریاضی که برای مهندسان یادگیری ماشین و تحلیل‌گران داده مورد نیاز است آورده شده.

  • جبر خطی: ماتریس‌ها و عملیات روی آن‌ها، پروجکشن، اتحاد و تجزیه، ماتریس‌های متقارن، متعامدسازی.
  • نظریه آمار و احتمالات: قوانین احتمال و اصل (منطق)، نظریه بیزی، متغیرهای تصادفی، واریانس و امید ریاضی، توزیع‌های توام و شرطی، توزیع استاندارد.
  • حساب: حساب دیفرانسیل و انتگرال، مشتقات جزئی.
  • الگوریتم‌ها و بهینه‌سازی پیچیدگی‌ها: درخت‌های دودویی، هیپ، استک.
]]>
https://www.vandjalili.ir/%db%8c%d8%a7%d8%af%da%af%db%8c%d8%b1%db%8c-%d9%85%d8%a7%d8%b4%db%8c%d9%86-machine-learning-%da%86%db%8c%d8%b3%d8%aa%d8%9f/feed/ 1
آشنایی کامل با اینترنت اشیا (IoT) https://www.vandjalili.ir/%d8%a2%d8%b4%d9%86%d8%a7%db%8c%db%8c-%da%a9%d8%a7%d9%85%d9%84-%d8%a8%d8%a7-%d8%a7%db%8c%d9%86%d8%aa%d8%b1%d9%86%d8%aa-%d8%a7%d8%b4%db%8c%d8%a7-iot/ https://www.vandjalili.ir/%d8%a2%d8%b4%d9%86%d8%a7%db%8c%db%8c-%da%a9%d8%a7%d9%85%d9%84-%d8%a8%d8%a7-%d8%a7%db%8c%d9%86%d8%aa%d8%b1%d9%86%d8%aa-%d8%a7%d8%b4%db%8c%d8%a7-iot/#respond Fri, 28 Feb 2020 04:39:14 +0000 https://pxltheme.com/wp/bolby?p=248 اینترنت اشیا مفهومی است که امروزه به آن توجه بسیار زیادی می شود. این اینترنت به میلیون ها دستگاه الکتریکی و الکترونیکی در سراسر جهان اشاره دارد که به اینترنت متصل شده اند. این اشیا با هم تشکیل شبکه داده اند و داده های مختلف را با یکدیگر به اشتراک می گذارند.

وایرلس شدن شبکه ها، کمک بزرگی به گسترش و پیشرفت IoT کرده است. برای مشاهده قیمت تجهیزات اکتیو شبکه می توانید به سایت راندنو مراجعه نمایید.

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

در این مقاله به بررسی مفهوم اینترنت اشیا به زبان ساده خواهیم پرداخت و به کاربردهای آن نیز اشاره خواهیم کرد. با مجله راندنو همراه باشید…

آنچه در ادامه می خوانیم:

اینترنت اشیا چیست؟

اینترنت اشیا (Internet of Things) و یا اینترنت چیزها که به اختصار IoT نیز نامیده می شود، مفهومی است که به گسترش اینترنت و افزایش قدرت آن می پردازد. در این تعریف، اینترنت از دستگاه هایی همچون کامپیوتر و گوشی های هوشمند فراتر می رود و طیف وسیعی از اشیا را به خود اختصاص می دهد.

برای این که بتوانیم مفهوم IoT را به زبان ساده تر بیان کنیم، به یک مثال ساده اشاره خواهیم کرد:

پیش از ورود گوشی های هوشمند، گوشی های معمولی تنها امکان برقراری تماس تلفنی و یا ارسال پیامک را داشتند. با پیشرفت تکنولوژی گوشی های موبایل و به کمک اینترنت، اکنون می توان به گوش دادن موسیقی، تماشای فیلم، خواندن کتاب و … پرداخت.

با اتصال اشیا به اینترنت، کارایی آن ها افزایش می یابد. در حال حاضر بدون وجود اینترنت، بسیاری از گجت ها و دستگاه های الکترونیکی کارایی چندانی ندارند.

برای توضیح مفهوم IoT در یک جمله می توان گفت، IoT یعنی همه چیز در همه جای جهان به اینترنت متصل شوند.

IoT از شش مؤلفه زیر تشکیل شده است:

  1. حسگرها: داده ها توسط حسگرها جمع آوری می شوند.
  2. اتصالات: این داده ها توسط اتصالات مختلف به پایگاه داده منتقل می شوند.
  3. ابر: این بخش همان پایگاه داده است که اطلاعات در آن پردازش می شود.
  4. تحلیل داده: داده ها به طور کامل تحلیل می شوند. دانش و اطلاعاتی که از تحلیل داده به دست می آید، آماده می شود.
  5. رابط کاربری: اطلاعات آماده شده توسط رابط کاربری در اختیار مصرف کننده قرار می گیرد. مصرف کننده نیز اقداماتی را انجام می دهد که اطلاعات به صورت معکوس به دستگاه برمی گردد.
  6. محرک ها: اقدامات هوشمند توسط محرک ها انجام می شود. این محرک ها اقدامات لازم را بدون نیاز به کاربر انجام می دهند.
اینترنت اشیا چیست؟
اینترنت اشیا چیست؟

چند نمونه از اینترنت اشیا

هر جسمی که بتوان آن را به اینترنت متصل کرد و آن جسم نیز بتواند بدون دخالت انسان، اطلاعاتی را در شبکه به اشتراک بگذارد، جزئی از این اینترنت محسوب می شود. در این مثال، یک گوشی هوشمند و یا رایانه جزئی از این نوع اینترنت محسوب نمی شوند زیرا در حالت عادی امکان اتصال آن ها به اینترنت وجود دارد.

هوشمندسازی منازل

یک لامپ ال ای دی را تصور کنید که به وسیله یک گوشی موبایل هوشمند روشن و خاموش می شود و یا رنگ آن تغییر می کند. این لامپ یک دستگاه اینترنت اشیا محسوب می شود.

تصور کنید سیستم روشنایی خانه، پس از ورودتان فعال شود و لامپ های اتاق خواب با فرا رسیدن شب، کم نور شوند. همه این ها جزئی از این نوع اینترنت به شمار می آیند.

به کمک IoT در خانه می توانید دوربین مدار بسته خود را نیز کنترل کنید. کاربران گرامی می توانید برای خرید انواع دوربین مداربسته همین حالا اقدام نمایید.

هوشمندسازی منازل
هوشمندسازی منازل

بیشتر بخوانید: خانه هوشمند چیست؟ چگونه خانه هوشمند بسازیم؟


کنترل محیط کار از دور

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

نظم شهری و نورپردازی شهر

چراغ خیابانی و روشنایی معابر و بزرگراه ها که از طریق کامپیوترهای از راه دور کنترل می شوند نیز، می توان جزئی از IoT دانست.

موتور جت

یک دستگاه از مجموعه این نوع اینترنت می تواند به سادگی یک وسیله بازی و یا به پیچیدگی یک موتور جت باشد. موتورهای جت نوعی IoT هستند که از مؤلفه های کوچک تر اینترنت اشیا تشکیل شده اند. موتور جت به میلیون ها حسگر مجهز شده است که داده ها را جمع آوری و پردازش می کند.

خودروی بی سرنشین

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

هوشمندسازی کشاورزی

IoT در کشاورزی می تواند مربوط به بررسی سنسورهای دما، رطوبت، جمع آوری داده ها، بررسی های مربوط به تولید، مدیریت دورریزها و … باشد.

هوشمندسازی کشاورزی
هوشمندسازی کشاورزی

فناوری اینترنت در پزشکی

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

فناوری اینترنت در پزشکی
فناوری اینترنت در پزشکی

شهر هوشمند

در ابعاد بزرگ تر می توان به پروژه های شهر هوشمند اشاره کرد که در آن مجموعه ای از حسگرها به کنترل محیط توسط انسان کمک می کنند.

مفهومی به نام اینترنت اشیا صنعتی وجود دارد که به آن IIoT نیز گفته می شود. این مفهوم به این نوع اینترنت در زمینه کسب و کار اشاره می کند. این مفهوم نیز همانند مفهوم عادی IoT است. با این تفاوت که در آن از هوش مصنوعی، اندازه گیری داده ها، تحلیل اطلاعات، بهینه سازی و … نیز استفاده می شود. اینترنت اشیا صنعتی می تواند بسیار بزرگ تر و گسترده تر باشد.

استفاده از IoT صنعتی سبب افزایش درآمد، کاهش هزینه ها، صرفه جویی در زمان و افزایش کارایی نیروی کار می شود.

شهر هوشمند
شهر هوشمند

چرا امنیت اینترنت اشیا مهم است؟

در مبحث این نوع اینترنت، حفاظت داده ها و امنیت آن ها مسئله مهمی است. سیستم های IoT می بایست در مقابل تهدیدها و بدافزارها از خود مقاومت نشان دهند. در غیر این صورت، کلیه سیستم با اتصال به یک بدافزار و یا دستگاه غیرمجاز، از کار می افتد.

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

برای تأمین امنیت اینترنت باید چند مورد را مورد توجه قرار داد:

  1. رعایت استانداردها و پروتکل های ساخت
  2. به روزرسانی و مدیریت صحیح
  3. مقاومت فیزیکی
  4. آگاه بودن کاربر و دانش اپراتور
چرا امنیت اینترنت اشیا مهم است؟
چرا امنیت اینترنت اشیا مهم است؟

اهمیت اینترنت اشیا چیست؟

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

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

  1. اشیایی که تنها اطلاعات را جمع آوری می کنند و برای ارسال آماده می کنند.
  2. اشیایی که اطلاعات ارسالی را دریافت و به آن ها عمل می کنند.
  3. اشیایی که هر دو کار بالا را همزمان با هم انجام می دهند.

خطرات استفاده از اینترنت اشیا

IoT مزایای بسیار زیادی دارد و استفاده از آن سطح کیفیت زندگی افراد را بهبود می بخشد. با این حال استفاده از آن معایبی نیز برای مصرف کنندگان و شرکت ها به دنبال دارد.

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

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

کاربرد اینترنت اشیا

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

  • IoT در ساختمان ها، کارخانه ها و … کاربرد ویژه ای دارد. این سیستم وظیفه جمع آوری اطلاعات، تنظیم اکوسیستم های سازمانی و … را برعهده دارد. از IoT در زمینه های رصد محیط زیست و برنامه ریزی های شهری نیز استفاده می شود. از سوی دیگر سیستم های هوشمند می تواند بسیاری از عادت های مصرف کنندگان را تغییر دهد.
  • IoT در زمینه سنجش بیماری در علم پزشکی می تواند با آنالیز ابری اطلاعات، به کاربران اجازه مطالعه DNA و دیگر مولکول ها را بدهد.
  • سامانه ترابری هوشمند هدف بعدی شرکت های فعال در زمینه اینترنت اشیا است. زیرا هوشمندسازی این بخش کمک بسیار زیادی به بشریت خواهد کرد.
  • کاربرد دیگر IoT، افزایش ویژگی های امنیتی خانه و اتوماسیون خانگی است.
  • در رسانه نیز IoT می تواند یک فرصت مناسب برای جمع آور اطلاعات و تجزیه و تحلیل داده ها باشد.
  • نظارت و کنترل عملیات زیرساخت های شهری می تواند به راحتی توسط IoT صورت بگیرد. به عنوان مثال، کنترل فرایند ساخت پل ها، نیروگاه ها، خطوط راه آهن و … کاربردهای کلیدی IoT هستند.
  • مدیریت انرژی و سیستم های یکپارچه سازی حسگرها و محرک ها به شبکه های اینترنت متصل هستند. استفاده از IoT در بهینه سازی مصرف انرژی بسیار مؤثر است.

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

میزان اطلاعات زیاد است و ارتباطات به صورت خودکار صورت می گیرد. به همین دلیل بهتر است اپراتور بر آن ها نظارت داشته باشد. برخی از مسائل باید پیش از برقراری سیستم های اینترنت اشیا مورد بحث قرار بگیرد. به عنوان مثال، پاسخ به این پرسش که مالک اطلاعات چه کسی است یا مسئولیت اینترنت اشیا را چه کسی برعهده می گیرد، بسیار مهم است.

تاریخچه IOT

ایده اضافه کردن حسگرهای مختلف و ایجاد یک هوش مصنوعی برای اشیا، در سال های ۱۹۸۰ الی ۱۹۹۰ مطرح شد. این تکنولوژی پیشرفت کندی داشت. اولین فاز اجرایی این پروژه در شرکت کوکاکولا و مربوط به یک ماشین فروش بود.

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

IoT به تراشه هایی ارزان قیمت نیاز دارد که در مصرف انرژی صرفه جویی کنند و هم چنین امکان اتصال آن ها به میلیون ها دستگاه وجود داشته باشد. به همین دلیل از تراشه های RFID استفاده شد. امروزه حسگرهایی که به اشیا اضافه می شوند، ارزان هستند و هزینه کمی دارند.

تاریخچه IoT
تاریخچه IoT

اولین استفاده از IOT

کوین اشتون در سال ۱۹۹۹ برای اولین بار از عبارت اینترنت اشیا در جهان استفاده کرد.

از IOT در ابتدا تنها در کارخانه ها و مراکز صنعتی استفاده می شد. در این زمان یکی از زیر مجموعه های IoT یعنی ماشین به ماشین پدید آمد.

این اینترنت فناوری گسترده ای است و گسترده تر نیز خواهد شد. در حال حاضر کل دستگاه هایی که در IoT وجود دارند، از تعداد کل انسان ها بیشتر است.

چه شرکت هایی در زمینه اینترنت اشیا فعال هستند؟

درحال حاضر بسیاری از شرکت ها در حوزه IOT فعالیت می کنند. صنایع بزرگ و کوچک زیادی همچون مراکز بهداشتی و درمانی، مراکز آموزشی و پژوهشی، خطوط تولید و … از این تکنولوژی استفاده می کنند. شرکت های زیر به صورت تخصصی در زمینه IoT فعالیت می کنند:

  1. هواوی
  2. پی تی سی
  3. سیسکو
  4. ساینس سافت
  5. آی بی ام
  6. اگزاجایل
  7. بوش آی او تی سنسور
  8. جی ای دیجیتال
  9. اس آپ
  10. زیمنس آی او تی آنالیتیکس

سوالات متداول

  • کاربرد اینترنت اشیا چیست؟

مصرف کنندگان در حوزه این اینترنت به سه گروه تقسیم بندی می شوند:

  1. کسب و کارها که به کمک IOT بهبود می یابند.
  2. دولت هایی که هزینه آن ها کاهش پیدا می کند و کیفیت زندگی شهروندانشان افزایش می یابد.
  3. شهروندانی که از این تکنولوژی استفاده می کنند و انجام بسیاری از امور برای آن ها ساده تر می شود.
  • مزایای استفاده از IOT چیست؟

استفاده از IoT سبب افزایش دقت، کاهش نیاز به منابع انسانی، افزایش کارایی، بهینه شدن منابع، صرفه جویی در زمان و … می شود.

  • معایب استفاده از اینترنت اشیا چیست؟

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

  • در اینترنت اشیا چه چیزهایی هوشمند می شوند؟

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

  • چگونه از اینترنت اشیا استفاده کنیم؟

IoT در ایران هنوز به پیشرفت کشورهایی همچون آمریکا، چین، آلمان، برزیل، کره جنوبی، هند و سنگاپور نرسیده است. این مفهوم در ایران اغلب در زمینه ساختمان سازی مورد استفاده قرار می گیرد. IoT برای لوازم خانگی مانند تلویزیون، یخچال و … نیز در ایران جا افتاده است.

به طور کلی این مفهوم در ایران هنوز قیمت بالایی دارد. هوشمندسازی تهران و دیگر شهرهای ایران در دستور کار دولت قرار دارد. به زودی شرکت های فعال در این زمینه راهکارهایی جهت توسعه و گسترش IoT در ایران پیشنهاد می دهند. پیش از آن باید از مفاهیم ابتدایی این تکنولوژی استفاده کرد.

]]>
https://www.vandjalili.ir/%d8%a2%d8%b4%d9%86%d8%a7%db%8c%db%8c-%da%a9%d8%a7%d9%85%d9%84-%d8%a8%d8%a7-%d8%a7%db%8c%d9%86%d8%aa%d8%b1%d9%86%d8%aa-%d8%a7%d8%b4%db%8c%d8%a7-iot/feed/ 0
شبکه‌های عصبی مصنوعی https://www.vandjalili.ir/%d8%b4%d8%a8%da%a9%d9%87%d9%87%d8%a7%db%8c-%d8%b9%d8%b5%d8%a8%db%8c-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/ https://www.vandjalili.ir/%d8%b4%d8%a8%da%a9%d9%87%d9%87%d8%a7%db%8c-%d8%b9%d8%b5%d8%a8%db%8c-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/#respond Wed, 26 Feb 2020 03:25:00 +0000 https://pxltheme.com/wp/bolby?p=1 پیدایش شبکه‌های عصبی مصنوعی

مغر انسان، به اذعان بسیاری از دانشمندان، پیچیده‌ترین سیستمی است که تا کنون در کل گیتی مشاهده شده و مورد مطالعه قرار گرفته است. اما این سیستم پیچیده نه ابعادی در حد کهشکشان دارد و نه تعداد اجزای سازنده‌اش، بیشتر از پردازنده‌های ابررایانه‌های امروزی است. پیچیدگی راز آلود این سیستم بی نظیر، به اتصال‌های فراوان موجود میان اجزای آن بازمی‌گردد. این همان چیزی است که مغز 1400 گرمی انسان را از همه سیستم‌های دیگر متمایز می کند.

فرایندهای خودآگاه و ناخودآگاهی که در حدود جغرافیایی بدن انسان رخ می‌دهند، همگی تحت مدیریت مغز هستند. برخی از این فرایندها آن‌قدر پیچیده هستند، که هیچ رایانه یا ابررایانه‌ای در جهان امکان پردازش و انجام آن را ندارد. با این حال، تحقیقات نشان می‌دهند که واحدهای سازنده مغز انسان، از نظر سرعت عملکرد، حدود یک میلیون بار کندتر از ترانزیستورهای مورد استفاده در تراشه‌های سیلیکونی CPU رایانه هستند.

سرعت و قدرت پردازش بسیار بالای مغز انسان، به ارتباط‌های بسیار انبوهی باز می‌گردد که در میان سلول‌های سازنده مغز وجود دارد و اساساً، بدون وجود این لینک‌های ارتباطی، مغز انسان هم به یک سیستم معمولی کاهش می‌یافت و قطعاً امکانات فعلی را نداشت.

گذشته از همه این‌ها، عملکرد عالی مغز در حل انواع مسائل و کارایی بالای آن، باعث شده است تا شبیه سازی مغز و قابلیت‌های آن به مهم‌ترین آرمان معماران سخت‌افزار و نرم‌افزار تبدیل شود. در واقع اگر روزی فرا برسد (که البته ظاهرا خیلی هم دور نیست) که بتوانیم رایانه‌ای در حد و اندازه‌های مغز انسان بسازیم، قطعاً یک انقلاب بزرگ در علم، صنعت و البته زندگی انسان‌ها، رخ خواهد داد.

از چند دهه گذشته که رایانه‌ها امکان پیاده‌سازی الگوریتم‌های محاسباتی را فراهم ساخته‌اند، در راستای شبیه‌سازی رفتار محاسباتی مغز انسان، کارهای پژوهشی بسیاری از سوی متخصصین علوم رایانه، مهندسین و همچنین ریاضی‌دان‌ها شروع شده است، که نتایج کار آن‌ها، در شاخه‌ای از علم هوش مصنوعی و در زیر‌شاخه هوش محاسباتی تحت عنوان موضوع «شبکه‌های عصبی مصنوعی» یا Artificial Neural Networks (به اختصار: ANNs) طبقه‌بندی شده است. در مبحث شبکه‌های عصبی مصنوعی، مدل‌های ریاضی و نرم‌افزاری متعددی با الهام گرفتن از مغز انسان پیشنهاد شده‌اند، که برای حل گستره وسیعی از مسائل علمی، مهندسی و کاربردی، در حوزه های مختلف کاربرد دارند.

کاربردهای شبکه‌های عصبی مصنوعی

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

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

انواع شبکه‌های عصبی مصنوعی

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

در همه این مدل‌ها، یک ساختار ریاضی در نظر گرفته شده است که البته به صورت گرافیکی هم قابل نمایش دادن است و یک سری پارامترها و پیچ‌های تنظیم دارد. این ساختار کلی، توسط یک الگوریتم یادگیری یا تربیت (Training Algorithm) آن قدر تنظیم و بهینه می‌شود، که بتواند رفتار مناسبی را از خود نشان دهد.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-1&w=760&h=140&t=string&bg=fffff3&hover=ffffcb&rows=3&cid=200,42,33&wr=score_2,cat_2_neural_network,cat_low_neural_network

نگاهی به فرایند یادگیری در مغز انسان نیز نشان می‌دهد که در واقع ما نیز در مغزمان فرایندی مشابه را تجربه می‌کنیم و همه مهارت‌ها، دانسته‌ها و خاطرات ما، در اثر تضعیف یا تقویت ارتباط میان سلول‌های عصبی مغز شکل می‌گیرند. این تقویت و تضعیف در زبان ریاضی، خود را به صورت تنظیم یک پارامتر (موسوم به وزن یا Weight) مدل‌سازی و توصیف می‌کند.

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

پرسپترون چند‌لایه یا MLP

یکی از پایه‌ای‌ترین مدل‌های عصبی موجود، مدل پرسپترون چند لایه یا Multi-Layer Perceptron (به اختصار MLP) است که عملکرد انتقالی مغز انسان را شبیه‌سازی می‌کند. در این نوع شبکه عصبی، بیشتر رفتار شبکه‌ای مغز انسان و انتشار سیگنال در آن مد نظر بوده است و از این رو، گهگاه با نام شبکه‌های پیش‌خورد (Feedforward Networks) نیز خوانده می‌شوند. هر یک از سلول‌های عصبی مغز انسان، موسوم به نورون (Neuron)، پس از دریافت ورودی (از یک سلول عصبی یا غیر عصبی دیگر)، پردازشی روی آن انجام می‌دهند و نتیجه را به یک سلول دیگر (عصبی یا غیر عصبی) انتقال می‌دهند. این رفتار تا حصول نتیجه‌ای مشخص ادامه دارد، که احتمالاً در نهایت منجر به یک تصمیم، پردازش، تفکر و یا حرکت خواهد شد.

شبکه‌های عصبی شعاعی یا RBF

مشابه الگوی شبکه‌های عصبی MLP، نوع دیگری از شبکه‌های عصبی وجود دارند که در آن‌ها، واحدهای پردازنده، از نظر پردازشی بر موقعیت خاصی متمرکز هستند. این تمرکز، از طریق توابع شعاعی یا Radial Basis Functions (به اختصار RBF) مدل‌سازی می‌شود. از نظر ساختار کلی، شبکه‌های عصبی RBF تفاوت چندانی با شبکه‌های MLP ندارند و صرفا نوع پردازشی که نورون‌ها روی ورودهای‌شان انجام می‌دهند، متفاوت است. با این حال، شبکه‌های RBF غالبا دارای فرایند یادگیری و آماده‌سازی سریع‌تری هستند. در واقع، به دلیل تمرکز نورون‌ها بر محدوده عملکردی خاص، کار تنظیم آن‌ها، راحت‌تر خواهد بود.

ماشین‌های بردار پشتیبان یا SVM

در شبکه‌های عصبی MLP و RBF، غالبا توجه بر بهبود ساختار شبکه عصبی است، به نحوی که خطای تخمین و میزان اشتباه‌های شبکه عصبی کمینه شود. اما در نوع خاصی از شبکه عصبی، موسوم به ماشین بردار پشتیبان یا Support Vector Machine (به اختصار SVM)، صرفا بر روی کاهش ریسک عملیاتی مربوط به عدم عملکرد صحیح، تمرکز می‌شود. ساختار یک شبکه SVM، اشتراکات زیادی با شبکه عصبی MLP دارد و تفاوت اصلی آن عملاً در شیوه یادگیری است.

نگاشت‌های خود‌سازمان‌ده یا SOM

شبکه عصبی کوهونن (Kohonen) یا نگاشت خود‌سازمان‌ده و یا Self-Organizing Map (به اختصار SOM) نوع خاصی از شبکه عصبی است که از نظر شیوه عملکرد، ساختار و کاربرد، کاملاً با انواع شبکه عصبی که پیش از این مورد بررسی قرار گرفتند، متفاوت است. ایده اصلی نگاشت خود‌سازمان‌ده، از تقسیم عملکردی ناحیه قشری مغز، الهام گرفته شده است و کاربرد اصلی آن در حل مسائلی است که به مسائل «یادگیری غیر نظارت شده» معروف هستند. در واقع کارکرد اصلی یک SOM، در پیدا کردن شباهت‌ها و دسته‌های مشابه در میان انبوهی از داده‌هایی است که در اختیار آن قرار گرفته است. این وضعیت مشابه کاری است که قشر مغز انسان انجام می‌دهد و انبوهی از ورودی‌های حسی و حرکتی به مغز را در گروه‌های مشابهی طبقه‌بندی (یا بهتر است بگوییم خوشه‌بندی) کرده است.

یادگیرنده رقمی‌ساز بردار یا LVQ

این نوع خاص شبکه عصبی، تعمیم ایده شبکه‌های عصبی SOM برای حل مسائل یادگیری نظارت شده است. از طرفی شبکه عصبی LVQ (یا Learning Vector Quantization)، می‌تواند به این صورت تعبیر شود که گویا شبکه عصبی MLP با یک رویکرد متفاوت، کاری را که باید انجام بدهد یاد می‌گیرد. اصلی‌ترین کاربرد این نوع شبکه عصبی در حل مسائل طبقه‌بندی است که گستره وسیعی از کاربردهای سیستم‌های هوشمند را پوشش می‌دهد.

شبکه عصبی هاپفیلد یا Hopfield

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

خانواده «شبکه‌های عصبی مصنوعی» (Artificial Neural Networks) هر روز شاهد حضور اعضای جدیدی است. با توجه به تعدد انواع شبکه های عصبی موجود، در این مطلب، یک راهنمای جامع از انواع شبکه های عصبی مصنوعی ارائه شده است. در این راهنما، توپولوژی انواع شبکه های عصبی مصنوعی روش عملکرد و کاربرد شبکه‌های عصبی مصنوعی مورد بررسی قرار گرفته است. برای آشنایی با مفهوم شبکه‌های عصبی مصنوعی و پیاده‌سازی آن در زبان‌های برنامه‌نویسی گوناگون، مطالعه مطالب زیر پیشنهاد می‌شود.

 فهرست مطالب این نوشته

 انواع شبکه‌های عصبی مصنوعی

انواع شبکه‌های عصبی مصنوعی

در ادامه، ۲۷ مورد از انواع شبکه های عصبی مصنوعی، معرفی شده است. در تصویر زیر، راهنمای جامع انواع شبکه‌های عصبی ارائه شده است. برای مشاهده این راهنمای جامع در ابعاد بزرگ، کلیک کنید.

برای مشاهده تصویر بالا، در ابعاد بزرگ، کلیک کنید.

شبکه عصبی پرسپترون

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«پرسپترون» (Perceptron | P)، ساده‌ترین و قدیمی‌ترین مدل از نورون محسوب می‌شود که تاکنون توسط بشر شناخته شده است. پرسپترون، تعدادی ورودی را دریافت، آن‌ها را تجمیع و تابع فعال‌سازی را روی آن‌ها اعمال می‌کند و در نهایت، آن‌ها را به لایه خروجی پاس می‌دهد. در این قسمت، معجزه اصلی شبکه‌های عصبی مصنوعی به وقوع نمی‌پیوندد. برای مطالعه بیش‌تر پیرامون پرسپترون چند لایه، مطالعه مطلب «پرسپترون چند لایه در پایتون — راهنمای کاربردی» پیشنهاد می‌شود.

شبکه عصبی پیش‌خور

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«شبکه‌های عصبی پیش‌خور» (Feed Forward Neural Networks | FF) نیز از اعضای قدیمی خانواده شبکه‌های عصبی محسوب می‌شوند و رویکرد مربوط به آن‌ها از دهه ۵۰ میلادی نشأت می‌گیرد. عملکرد این الگوریتم، به طور کلی از قواعد زیر پیروی می‌کند:

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

در اغلب مواقع، این نوع از شبکه‌های عصبی با استفاده از روش «پس‌انتشار» (Backpropagation) آموزش داده می‌شوند.

شبکه عصبی شعاعی پایه

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«شبکه‌های عصبی شعاعی پایه» (Radial Basis Networks | RBF) در واقع شبکه‌های عصبی پیش‌خوری (FF) هستند که از «تابع شعاعی پایه» (Radial Basis Function)، به جای «تابع لجستیک» (Logistic Function)، به عنوان تابع فعال‌سازی استفاده می‌کنند. سوالی که در این وهله مطرح می‌شود این است که تفاوت شبکه عصبی شعاعی پایه با شبکه عصبی پیش‌خور چیست؟ تابع لجستیک برخی از مقادیر دلخواه را به یک بازه ۰ تا ۱ نگاشت می‌کند تا به یک پرسش «بله یا خیر» (پرسش دودویی) پاسخ دهد. این نوع از شبکه‌های عصبی برای «دسته‌بندی» (Classification) و «سیستم‌های تصمیم‌گیری» (Decision Making Systems) مناسب هستند، ولی برای مقادیر پیوسته عملکرد بدی دارند.

این در حالی است که توابع شعاعی پایه به این پرسش پاسخ می‌دهند که «چقدر از هدف دوریم؟» و این امر موجب می‌شود تا این شبکه‌های عصبی برای تخمین تابع و کنترل ماشین (برای مثال، به عنوان جایگزینی برای کنترل کننده PID) مناسب محسوب شوند. به طور خلاصه باید گفت که شبکه‌های عصبی شعاعی پایه در واقع نوعی از شبکه‌های عصبی پیش‌خور با تابع فعال‌سازی و ویژگی‌های متفاوت هستند.

شبکه عصبی پیش‌خور عمیق

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«شبکه عصبی پیش‌خور عمیق» (Deep Feed Forward Neural Networks | DFF)، در اوایل دهه ۹۰ میلادی، مقدمه‌ای بر بحث شبکه‌های عصبی شد. این نوع از شبکه‌های عصبی نیز شبکه‌های عصبی پیش‌خور هستند، ولی بیش از یک «لایه پنهان» (Hidden Layer) دارند. سوالی که در این وهله پیش می‌آید آن است که تفاوت این نوع از شبکه‌های عصبی با شبکه‌های عصبی پیش‌خور سنتی در چیست؟

در هنگام آموزش دادن یک شبکه عصبی پیش‌خور، تنها بخش کوچکی از خطا به لایه پیشین پاس داده می‌شود. به همین دلیل، استفاده از لایه‌های بیشتر، منجر به رشد نمایی زمان آموزش می‌شود و همین موضوع، موجب می‌شود که شبکه‌های عصبی پیش‌خور عمیق، عملا بدون کاربرد و غیر عملی باشند. در اوایل سال دو هزار میلادی، رویکردهایی توسعه پیدا کردند که امکان آموزش دادن یک شبکه عصبی پیش‌خور عمیق (DFF) را به صورت موثر فراهم می‌کردند. امروزه، این شبکه‌های عصبی، هسته سیستم‌های یادگیری ماشین مدرن را تشکیل می‌دهند و هدفی مشابه با هدف شبکه‌های عصبی پیش‌خور (FF) را پوشش می‌دهند؛ اما نتایج بهتری را دربردارند.

شبکه‌های عصبی بازگشتی

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«شبکه‌های عصبی بازگشتی» (Recurrent Neural Networks | RNN) نوع متفاوتی از سلول‌ها با عنوان «سلول‌های بازگشتی» (Recurrent Cells) را معرفی می‌کنند. اولین شبکه از این نوع، «شبکه جردن» (Jordan Network) است؛ در این نوع از شبکه، هر یک از سلول‌های پنهان، خروجی خود را با تاخیر ثابت – یک یا تعداد بیشتری تکرار- دریافت می‌کنند. صرف نظر از این موضوع، شبکه جردن مشابه با شبکه‌های عصبی پیش‌خور متداول بود.https://beta.kaprila.com/a/templates_ver2/templates.php?ref=blog.faradars&id=string-1&w=760&h=140&t=string&bg=fffff3&hover=ffffcb&rows=3&cid=2021,33,1651&wr=score,score,score_3

البته، تغییرات گوناگونی مانند پاس دادن حالت به «گره‌های ورودی» (Input Nodes)، تأخیر متغیرها و دیگر موارد در این نوع از شبکه‌ها اتفاق افتاده، اما ایده اصلی به همان صورت باقی مانده است. این نوع از شبکه‌های عصبی (NN) اساسا هنگامی استفاده می‌شوند که «زمینه» (Context) مهم است و در واقع یعنی هنگامی که تصمیم‌گیری‌ها از تکرارهای قبلی یا نمونه‌ها، می‌تواند نمونه‌های کنونی را تحت تاثیر قرار دهد. به عنوان مثالی متداول از این نوع از زمینه‌ها، می‌توان به «متن» (Text) اشاره کرد. در متن، یک کلمه را می‌توان تنها در زمینه کلمه یا جمله پیشین تحلیل کرد.

حافظه کوتاه مدت بلند

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«حافظه کوتاه مدت بلند» (Long/Short Term Memory | LSTM) نوع جدیدی از «سلول حافظه» (Memory Cell) را معرفی می‌کند. این سلول می‌تواند داده‌ها را هنگامی که دارای شکاف زمانی (یا تاخیر زمانی) هستند، پردازش کند. شبکه عصبی پیش‌خور می‌تواند متن را با «به خاطر سپردن» ده کلمه پیشین پردازش کند. این در حالی است که LSTM می‌تواند قاب‌های ویدئو را با «به خاطر سپردن» چیزی که در قاب‌های بسیار پیشین اتفاق افتاده است پردازش کند. شبکه‌های LSTM به طور گسترده‌ای برای «بازشناسی گفتار» (Speech Recognition) و «بازشناسی نوشتار» (Writing Recognition) مورد استفاده قرار می‌گیرند. سلول‌های حافظه اساسا ترکیبی از یک جفت عنصر که به آن‌ها گیت گفته می‌شود هستند. این عنصرها، بازگشتی هستند و چگونگی به یاد آوردن و فراموش کردن اطلاعات را کنترل می‌کنند. ساختار این نوع از شبکه‌ها، در تصویر زیر به خوبی مشخص است. این نکته که هیچ تابع فعال‌سازی بین بلوک‌ها وجود ندارد نیز شایان توجه است.

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

X‌های موجود در نمودار، گیت‌ها هستند و وزن و گاهی تابع فعال‌سازی خود را دارند. برای هر نمونه، Xها تصمیم می‌گیرند داده‌ها را به جلو پاس دهند یا خیر، حافظه را پاک کنند یا نه و به همین ترتیب. گیت ورودی، تصمیم می‌گیرد که چه میزان اطلاعات از آخرین نمونه در حافظه نگه‌داری می‌شود. گیت خروجی میزان داده‌های پاس داده شده به لایه بعدی را تنظیم می‌کند و گیت فراموشی، نرخ خارج شدن از موارد ذخیره شده در حافظه را کنترل می‌کند. آنچه بیان شد، یک شکل بسیار ساده از سلول‌های LSTM است و معماری‌های متعدد دیگری نیز برای این نوع از شبکه‌های عصبی، موجود است.

شبکه عصبی واحد بازگشتی گِیتی

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«واحد بازگشتی گیتی» (Gated Recurrent Unit | GRU) نوعی از LSTM با گیت‌ها و دوره زمانی متفاوت است. این نوع از شبکه عصبی ساده به نظر می‌آید. در حقیقت، فقدان گیت خروجی، تکرار چندین باره یک خروجی مشابه را برای ورودی‌ها ساده‌تر می‌سازد. این نوع از شبکه‌های عصبی بازگشتی در حال حاضر بیشتر در «موتور متن به گفتار» (Speech Synthesis) و «ترکیب صدا» (Music Synthesis) به کار می‌رود. البته، ترکیب واقعی LSTM با GRU اندکی متفاوت است. زیرا، همه گیت‌های LSTM در یک گیت که به آن گیت به روز رسانی گفته می‌شود ترکیب شده‌اند و گیت «بازشناسی» (Reset) از نزدیک به ورودی گره خورده است. GRU‌ها نسبت به LSTM‌ها کمتر از منابع استفاده می‌کنند و اثر مشابهی را دارند.

شبکه عصبی خود رمزگذار

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

شبکه‌های عصبی «خود رمزگذار» (Auto Encoder | AE) برای دسته‌بندی، «خوشه‌بندی» (Clustering) و «فشرده‌سازی ویژگی‌ها» (Feature Compression) استفاده می‌شوند. هنگامی که یک شبکه عصبی پیش‌خور برای دسته‌بندی آموزش داده می‌شود، باید نمونه‌های X در Y دسته به عنوان خوراک داده شوند و انتظار می‌رود یکی از سلول‌های Y فعال‌سازی شده باشد. به این مورد، «یادگیری نظارت شده» (Supervised Learning) گفته می‌شود. از سوی دیگر، شبکه‌های عصبی خود رمزگذار را می‌توان بدون نظارت، آموزش داد. با توجه به ساختار این شبکه‌ها (که در آن تعداد لایه‌های پنهان کوچک‌تر از تعداد سلول‌های ورودی است و تعداد سلول‌های خروجی برابر با سلول‌های ورودی است) و اینکه AE به نوعی آموزش داده می‌شود که خروجی تا حد امکان به ورودی نزدیک باشد، شبکه عصبی خود رمزگذار مجبور می‌شود داده‌ها را تعمیم دهد و به دنبال الگوهای متداول بگردد.

شبکه عصبی خود رمزگذار متغیر

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

«شبکه عصبی خود رمزگذار متغیر» (Variational Auto Encoder | VAE) در مقایسه با شبکه عصبی خود رمزگذار، احتمالات را به جای ویژگی‌ها فشرده می‌کند. علارغم تغییرات کوچک که بین دو شبکه عصبی مذکور اتفاق افتاده است، هر یک از این انواع شبکه های عصبی مصنوعی به پرسش متفاوتی پاسخ می‌دهند. شبکه عصبی خودرمزگذار به پرسش «چگونه می‌توان داده‌ها را تعمیم داد؟» پاسخ می‌دهد، در حالی که شبکه عصبی خود رمزگذار متغیر به پرسش «اتصال بین دو رویداد چقدر قوی است؟ آیا باید خطا را بین دو رویداد توزیع کرد یا آن‌ها به طور کامل مستقل هستند؟» پاسخ می‌دهد.

شبکه عصبی خود رمزگذار دینوزینگ

انواع شبکه های عصبی مصنوعی -- راهنمای جامع

با وجود جالب بودن شبکه‌های خود رمزگذار، اما این شبکه‌های عصبی گاهی به جای پیدا کردن مستحکم‌ترین ویژگی، فقط با داده‌های ورودی سازگار می‌شوند (این مورد مثالی از بیش‌برازش یا همان Overfitting است). شبکه عصبی «خود رمزگذار دینوزینگ» (Denoising AutoEncoder | DAE) اندکی نویز به سلول ورودی اضافه می‌کنند. با این کار، شبکه عصبی خود رمزگذار دینوزینگ، مجبور می‌شود که خروجی را از یک ورودی نویزی، مجددا بسازد و آن را عمومی‌تر کند و ویژگی‌های متداول بیشتری را انتخاب کند.

]]>
https://www.vandjalili.ir/%d8%b4%d8%a8%da%a9%d9%87%d9%87%d8%a7%db%8c-%d8%b9%d8%b5%d8%a8%db%8c-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/feed/ 0