دروغگویی به سبک یک استارتاپ!

دروغگویی بد است 🙂

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

این پروژه بعدها تعطیل شد بخاطر وجود نمونه‌های خارجی مناسب، آمدن webview، و امثال مرورگر bromite و ungoogled chromium؛ با این حال یک نکته نظر من را به خودش جلب کرد؛ دزدی برخی برنامه نویس های ایرانی از کدهای منبع باز خصوصاً از گیت‌هاب!

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

در یک نمونه دیگر دانشمندان یک دانشگاه خاص اندروید ایرانی ساخته بودند! وای خدای من یک اندروید AOSP که سال به سال بروز نمی‌شد و هیچ راه حلی برای نبود سامانه‌های گوگل قرار داده نشده بود! البته ناگفته نماند که یک فروشگاه برنامه‌های اندرویدی پیشفرض رویش نصب شده بود! حتی تاریخ گوشی میلادی است خب گوشی هواوی من روی قفل صفحه تاریخ شمسی هم دارد با این حساب چه چیز این گوشی ایرانی شده؟ جالب بود در همان ایام در پیام‌رسان سروش یکی از دوستان پیامی فرستاد که بله جمعی از نخبگان ایران با گرفتن پول آنهم چند میلیون تومان نسخه اندروید گوشی شما را ایرانی می‌کنند! حالا چکار می‌کنند؟! اگر گوشی شما در انجمن XDA developers یا 4pda باشد یک نسخه اندروید غیررسمی روی گوشی شما نصب می‌کنند آنهم میلیونی! چیزی که خود سازندگانش چه گوگل چه اعضای انجمن رایگان در اختیار همه گذاشته‌اند!

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

نوشته دروغگویی به سبک یک استارتاپ! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

پروتکل SSH چگونه کار می‌کند؟

دسترسی به سرورهای راه دور و مدیریت آنها از دغدغه های اصلی مدیران فناوری اطلاعات است. Telnet برای برقراری ارتباط با یک سرور از راه‌دور استفاده می‌شود. Telnet یک پروتکل ایمن نیست، زیرا از هیچ مکانیزم امنیتی استفاده نمی‌کند و داده‌ها را از طریق شبکه(اینترنت) بصورت متن ساده انتقال می‌دهد. بنابراین هرکسی می‌تواند به اطلاعات این بسته‌ها دسترسی داشته باشد. برای رفع این مشکل SSH بوجود آمد.

پروتکل SSH چیست؟

پروتکل SSH که با نامSecure Shell یا  Secure Socket Shellنیز شناخته می‌شود. یک پروتکل شبکه است که راهی امن برای دسترسی به رایانه‌های راه‌ دور به مدیران ارائه می‌دهد.

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

چگونه SSH کار می‌کند؟

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

  1. تأیید سرور توسط کلاینت
  2. ایجاد کلید مشترک برای رمزگذاری ارتباط بین سرور و کلاینت
  3. احراز هویت کلاینت در واقع کاربر، توسط سرور

که هر کدام را بطور جداگانه توضیح می‌دهیم.

تأیید سرور

کلاینت اتصال SSH را با سرور آغاز می‌کند. سرور به درگاه پیش فرض 22 (این درگاه بهتر است، برای امنیت بیشتر تغییر کند.) برای اتصالات SSH گوش می دهد. هویت سرور به دو صورت ممکن است تأیید شود.

اگر کلاینت برای اولین بار به سرور دسترسی پیدا می‌کند، از کاربر خواسته می‌شود تا با تأیید کلید عمومی سرور، به طور دستی سرور را احراز هویت کند. کلید عمومی سرور را می‌توان با استفاده از دستور ssh-keyscan  پیدا کرد و یا آن را در مکان‌های مختلف پیدا کرد(مثلا در Google) .پس از تأیید، کلید سرور در فایل known_hosts درمسیر ~/.ssh در کلاینت اضافه می‌شود. فایل known-hosts حاوی اطلاعاتی درباره‌ی همه سرورهای تأیید شده توسط کاربر است.

اگر کلاینت برای اولین بار نیست که با سرور ارتباط برقرار می‌کند، هویت سرور با اطلاعات ثبت شده در فایل known-hosts مطابقت داده شده و در صورت وجود تأیید می‌شود.

تصویری از محتویات فایلknown-hosts یک کلاینت

تولید کلید مشترک (session-key)

پس از تأیید سرور توسط کلاینت، یک کلید مشترک session-key بین کلاینت و سرور براساس الگوریتم Diff-Hellman تولید می‌شود، که مبنای رمزنگاری ارتباط بین دو طرف است. این الگوریتم به گونه‌ای طراحی شده است که هر دو طرف بطور مساوی در تولید کلید مشارکت دارند. session-key یک کلید متقارن مشترک است. یعنی از همان کلید برای رمزگذاری و رمزگشایی استفاده می‌شود.

احرازهویت کلاینت

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

پس از رمزگذاری متقارن احراز هویت کلاینت به صورت زیر است:

  1. کلاینت برای شروع، یک شناسه برای جفت کلیدی که می‌خواهد باآن احراز هویت شود، برای سرور می‌فرستد.
  2. سرور در فایل authorized-keys حساب کاربر کلاینتی که قصد دارد متصل شود را بررسی می‌کند.
  3. چنانچه یک کلید عمومی با شناسه منطبق در فایل پیدا شود، سرور یک عدد تصادفی تولید و از کلید عمومی برای رمزگذاری عدد استفاده می‌کند و این پیام رمزگذاری شده را می فرستد.
  4. اگر کلاینت یا همان کاربر کلید خصوصی درستی داشته باشد، پیام را رمزگشایی می‌کند تا عدد تصادفی تولید شده توسط سرور را بدست آورد.
  5. کلاینت عدد تصادفی بدست آمده را با session-key ترکیب کرده و با الگوریتم MD5 هش می‌کند.
  6. سپس کلاینت این هش MD5 را در پاسخ، برای سرور می‌فرستد.
  7. سرور با استفاده از کلید session-key و الگوریتم MD5 عدد تصادفی را بدست می‌آورد. اگر عدد بدست آمده، همان عدد تصادفی اولیه بود یعنی کلاینت کلید خصوصی را دارد. بدین ترتیب کلاینت هویتش تأیید می‌شود.

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

ارتباط امن بین کلاینت و سرور برقرار می‌شود.

هنگام ورود به یک سرور از راه دور ، پیام خروجی اشکال زدایی از SSH

منبع: پایگاه دانش شرکت رایانش ابری آوید

نوشته پروتکل SSH چگونه کار می‌کند؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویسی بلاک چین

قبل از هرچیزی اول باید یکم در مورد هش و digital signature صحبت کنیم.

مکانیزم Digital Signature مکانیزم رمزنگاری هست که برای تأیید صحت و یکپارچگی داده های دیجیتال استفاده میشه و شامل سه مرحله ی اصلیه : مرحله ی اول : hashing، مرحله ی دوم : signing و مرحله ی سوم : verifying

به زبان ساده digital signature رو میتونیم به عنوان یک کدی در نظر بگیریم که به یه پیام یا سندی وصله و به عنوان اثبات عدم دستکاری پیام در طول مسیرش از فرستنده به گیرنده عمل می کند.

برای آشنایی با نحوه ی کار Digital Signature ، اول باید اصول توابع hash و public-key cryptography یا PKC رو بدونیم.

تابع hash تابعی هست که یک رشته (String) رو به عنوان ورودی میگیره و یک رشته alphanumeric (شامل حروف و اعداد) با اندازه ثابت رو برمی گردونه. ینی ورودی میتونه میتونه هر سایزی داشته باشه ولی طول خروجی ثابته..

حالا این رشته ی خروجی ای که تابع برمیگردونه میشه مقدار هش که بهش message digest هم میگن .

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

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

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

این توابع رو متخصصین این حوزه نوشتن و بیشتر زبون های برنامه نویسی براش کتابخونه دارن.

و اما بریم سراغ (Public-key cryptography (PKC

این سیستم یک سیستم رمزنگاری هست که از دو تا کلید (key) استفاده می کنه: یکیش کلید عمومی یا public key و یکیشم کلید خصوصی یا private key. این دو کلید از نظر ریاضی با هم مرتبط هستن و میتونن هم برای رمزگذاری داده ها و هم برای digital signature استفاده بشن. و PKC به عنوان یک ابزار رمزگذاری خیلی ایمن تر از روشهای رمزگذاری سنتی و قبلی هست. در واقع داده ها با کلید عمومیشون رمزگذاری میشن و با کلید خصوصیشون رمزگشایی میشن.

حالا ربط همه ی اینا به بلاک چین چیه؟

خوب بلاک چین به شدت متکی به هشینگه (Hashing) .

ما در بلاک چین زنجیره ی مرتبی از بلاک ها داریم که هر بلاک شامل اطلاعات زیر هست :

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

بلاک ساده ی مقابل رو در نظر بگیرید : [0, “X paid $100 to Y”, 91b452]

تو این مثال، چون این اولین بلاک بلاک چینه ، Hash بلاک قبلی 0 هست. لیست معاملات فقط شامل 1 معاملست – X صد دلار به Y پرداخت کرده . Hash خود بلاک از طریق روش زیر محاسبه می شه:

hash_itself = Hash(List of transactions, Hash of the previous block)

در واقع ، لیست تراکنش ها و Hash بلوک قبلی رو به عنوان یک رشته ورودی با هم ترکیب می کنیم و به تابع Hash می دیم تا مقدار هش خودش یا hash_itself رو بدست بیاریم.

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

حالا اگه بخوایم یه بلاک دیگه به این بلاک چین اضافه کنیم به این صورت میشه :

block1 = [91b452, “Y paid $20 to Z, X paid $10 to P”, 8ab32k]

  • که اینجا 91b452 هش بلاک قبلی (بلاک Genesis) هست.
  • 2 تا تراکنش وجود داره : Y paid $20 to Z و X paid $10 to P
  • و 8ab32k که هش همین بلاک ینی بلاک1 هست

پس ازینا میشه نتیجه گرفت که اگر هر کسی بخواد تغییری ایجاد کنه مثلا X paid $100 to Y رو بخواد به جای Y مثلا A بزاره ، هش بلاک جنسیس (91b452) تغییر میکنه در نتیجه بین بلاک جنسیس و بلاک1 مشکل عدم تطابق پیش میاد و کل زنجیره نامعتبر میشه..

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

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

گردآوری توسط ایده طلایی

امنیت به زبان ساده: تبلیغ‌افزار چیست و چطور آن را شناسایی کنیم؟

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

نوشته امنیت به زبان ساده: تبلیغ‌افزار چیست و چطور آن را شناسایی کنیم؟ اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

FCC درخواست ZTE را رد کرد: شرکت چینی همچنان تهدیدی برای امنیت ملی آمریکا

کمیسیون ارتباطات فدرال (FCC) درخواست ZTE برای بررسی مجدد وضعیت آن به عنوان یک تهدید برای امنیت ملی ایالات متحده آمریکا را رد کرد. این کمیسیون چندین ماه پیش شرکت‌های ZTE و هواوی را به عنوان تهدیدی برای امنیت ملی …

نوشته FCC درخواست ZTE را رد کرد: شرکت چینی همچنان تهدیدی برای امنیت ملی آمریکا اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

تشریح و مقابله با حملات CSRF

چیست (Cross-Site Request Forgery (CSRF ؟

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

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

x.com/buy/something

و در وبسایت y.com فرضا بازکردن ایمیلی در Gmail این لینک به صورت

<img src=”x.com/buy/something” >

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

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

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

فرضا

x.com/buy/something?csrf=Token….

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

برای توضیحات تکمیلی ویدیوی پایین صفحه را در یوتوب ببینید.

https://www.youtube.com/watch?v=wwvJ-GFfPpI&feature=youtu.be&ab_channel=MahmoodEskandari

نوشته تشریح و مقابله با حملات CSRF اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

کدنویسی امن + فیلم

دالان امنیت

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

این آموزش برای چه کسانی مناسبه؟

  • برنامه‌نویس‌هایی که دوست دارن راجع به امنیت یه چیزایی بدونن.
  • علاقه‌مندان به امنیت که تازه شروع کردن.
  • علاقه‌مندان به برنامه‌نویس‌ها و امنیت‌کارها که دنبال یه بحث مشترکن:)

اولین قدم اینه که کدهامونو طوری بنویسیم که آسیب‌‌پذیری هیچ وقت به وجود نیاد و برای اینکار امنیت رو وارد مراحل SDLC مون می‌کنیم.

بعدش نیازه که اندکی کاربردی تر ظاهر بشیم و دقیقا بفهمیم که کد امن چه شاخصه هایی داره و از چه اجزایی تشکیل شده، ‌داستانایی مثل:

  • Input validation
  • Authentication
  • Password management
  • Error handling
  • Logging
  • Memory management

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

  • ‌Brute-force
  • MITM
  • SQL injection
  • RAT
  • Code injection
  • Command injection
  • XSS
  • CSRF
  • Social engineering

لینک ویدئو در آپارات : https://www.aparat.com/v/IEhFT
لینک مطلب در مموری لیکز: https://memoryleaks.ir/where-to-start-secure-coding/
لینک اسلایدها: https://slides.com/alirezarezaie/secure-coding-5457c2

نوشته کدنویسی امن + فیلم اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

سرقت تسلا مدل X در چند دقیقه با کامپیوتر دست‌ساز ۳۰۰ دلاری

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

نوشته سرقت تسلا مدل X در چند دقیقه با کامپیوتر دست‌ساز ۳۰۰ دلاری اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

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

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

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

گردآوری توسط ایده طلایی

نقشه ی راه انتخاب زبان برنامه نویسی مناسب [ ویدیو ]

انتخاب زبان برنامه نویسی مناسب برای شروع برنامه نویسی

انتخاب زبان برنامه نویسی مناسب برای شروع برنامه نویسی

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

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

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

  • از چه زبان برنامه نویسی شروع کنم
  • نقشه ی راه برنامه نویسی چیست
  • بهترین زبان برنامه نویسی برای شروع چیست
  • بهترین روش یادگیری برنامه نویسی چیست
  • بهترین زبان برنامه نویسی برای هک چیست
  • بهترین زبان برنامه نویسی برای کسب درآمد چیست

از چه زبان برنامه نویسی شروع کنم ؟

از چه زبان برنامه نویسی شروع کنم ؟

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

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

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

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

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

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

3 – آسانی یادگیری : هر زبان برنامه نویسی که نسبت به بقیه آسانتر باشد افراد زیادی را به خود جذب میکند چون معمولا افرادی که به زمینه ی برنامه نویسی علاقه مند میشود در ابتدای کار دوست دارند ابزارها و زبان های برنامه نویسی ساده و راحت باشد و زیاد درگیر مسائل فنی نباشند و این خود یکی از ملاک ها برای انتخاب زبان برنامه نویسی است.

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

در ادامه ی مقاله به معرفی زبان های برنامه نویسی برای هر زمینه ی شغلی برنامه نویسی میپردازیم.

نقشه ی راه انتخاب مناسب ترین زبان برنامه نویسی

نقشه ی راه انتخاب مناسب ترین زبان برنامه نویسی

همانطور که میدانید زمینه های برنامه نویسی گسترده است و نقشه ی راه باید طوری ترسیم شود که در نهایت شما بتوانید زبان یا زبان های برنامه نویسی مناسب را پیدا کرده و بدون هیچ دغدغه ی دیگری شروع کنید به یادگیری

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

  • زبان های برنامه نویسی مناسب وب 
    خب همانطور که میدانید بحث وب به دو بخش فرانت اند و بک اند تقسیم بندی میشود.
    اگر برنامه نویس قصد داشته باشد که بک اند کار کند باید زبان های php , python , dotnet , Nodejs و … را انتخاب کند و سپس در هر کدام از این زبان ها فریمورک ها و کتابخانه های دیگری است البته دات نت و نودجی است زبان نیستند و زبان ها انها به ترتیب سی شارپ و جاوااسکریپت است
    اگر برنامه نویس وب فرانت اند باشید باید زبان های HTML , CSS و جاوااسکریپت را یاد بگیرید و برای ساخت وب سایت های مدرن و … هم میتوانید از فریمورک ها و کتابخانه های دیگری مثل vue js , react.js , angular.js و … استفاده کنید البته برای سی اس اس میتوانید از فریمورک های bootstrap , bulma و … بهره بگیرید.
  • زبان های برنامه نویسی مناسب موبایل
    سیستم عامل android = زبان های جاوا و کاتلین در محیط اندروید استودیو
    سیستم عامل ios = زبان های swift , objective c و …
    و برنامه نویسی موبایل بصورت cross platform = زبان javascript یا dart برای react native یا flutter
  • زبان های برنامه نویسی مناسب بازی سازی
    بهترین محیط بازی سازی یونیتی هست که برای برنامه نویسی درون آن باید زبان سی شارپ و جاوااسکریپت را یاد بگیرید.
  • زبان های برنامه نویسی مناسب دسکتاپ
    اگر بخواهید برای دسکتاپ برنامه بنویسید بهتر است زبان های زیر را به تفکیک سیستم عامل ها انتخاب کنید.
    برای برنامه نویسی دسکتاپ macos :‌ از زبان های swift اپل یا objective c استفاده کنید.
    برای برنامه نویسی دسکتاپ windows : از زبان های برنامه نویسی c# , python , c , c++ و java میتوانید استفاده کنید.
    برای برنامه نویسی دسکتاپ linux : از زبان های برنامه نویسی python , c , cplusplus  و … میتوانید استفاده کنید.
  • زبان های برنامه نویسی مناسب هک و امنیت
    اگر به بحث هک و امنیت علاقه مند هستید باید زبان های برنامه نویسی زیر را یاد بگیرید که اولویت و بهتر بودن آنها به ترتیب است : 
    python
    sql
    c
    javascript
    php
    c plusplus
    java
    ruby
    Bash
  • زبان های برنامه نویسی مناسب برای بچه های الکترونیک و افرادی که میکروپروسسور کار میکنند :
    زبان های برنامه نویسی python , c ,c plus plus , assembly  مناسب است که البته همه ی این زبان ها بخاطر ارتباط خانه های هوشمند با برنامه نویسی میکروپروسسور برای خانه های هوشمند و هوش مصنوعی هم مناسب است.
  • زبان های برنامه نویسی همگانی :
    این نوع زبان ها به زبان هایی گفته میشود که اکثر پلتفرم ها کاربرد دارند و برنامه نویس با یادگیری آن زبان در اکثرجاها میتواند کار کند و خروجی بگیرد . این زبان های برنامه نویسی معمولا از محبوبیت زیادی بین برنامه نویس ها برخوردار است و بهتر است که حداقل یکی از انها را یاد بگیرید :
    python
    c , c plus plus
    c#
    java

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

سخنی از اریک ریموند جزو یکی از برنامه نویسان تاثیر گذار در جهان :‌

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

سخن پایانی

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

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

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

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

منبع + ویدیو : نقشه ی راه انتخاب زبان برنامه نویسی مناسب

نوشته نقشه ی راه انتخاب زبان برنامه نویسی مناسب [ ویدیو ] اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی