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

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

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

از زمان نوشتن این مقاله، پرس و جو "برنامه نویسی که کدام زبان را اول یاد بگیریم" 517 میلیون نتیجه جستجو را به دست می دهد. هر یک از این سایت ها یک زبان خاص را ستایش می کنند و 90 درصد آنها پایتون یا جاوا اسکریپت را توصیه می کنند.

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

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

*از این پس، لطفاً به یاد داشته باشید که این یک ترجمه است و وضعیت بازار کار برای نویسنده و در کشور شما ممکن است متفاوت باشد (و همچنین تفاوت های ظریف دیگر) ، اما به خودی خود مقاله اصلی را بدتر نمی کند - تقریبا ترجمه

اولین درس کامپیوتر من

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

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

فکر کردم: «مشکلی نیست، این درس طولانی نخواهد بود.» در عرض یک دقیقه یا بیشتر، دستور پخت کامل بستنی رویاهایم را یادداشت کردم:

  1. سه پیمانه بستنی تمشک را اسکوپ کنید و در یک کاسه قرار دهید
  2. سس شکلات را باز کنید و دو قاشق غذاخوری به همان کاسه اضافه کنید
  3. خامه فرم گرفته را به کاسه اضافه کنید
  4. همه آن را با چوب قند بپاشید و یک گیلاس روی آن قرار دهید

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

"باشه، باشه، اما اول باید بازش کنی!" - فریاد زدم، سعی کردم هر چه سریعتر درمان را دریافت کنم.

«تو این را در دستورالعمل ها ننوشتی، و من نتوانستم برایت بستنی درست کنم. بعد!"

بیایید سریع به جلو برای تلاش شماره 2 حرکت کنیم

  1. بستنی تمشک را با برداشتن درب آن باز کنید
  2. سه پیمانه بستنی تمشک را اسکوپ کنید و در یک کاسه قرار دهید
  3. سس شکلات را باز کنید و دو قاشق غذاخوری به همان کاسه اضافه کنید
  4. خامه فرم گرفته را به کاسه اضافه کنید
  5. همه آن را با چوب های شکر بپاشید و یک گیلاس را روی آن قرار دهید

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

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

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

نتیجه نهایی من نتیجه یک سری آزمایش و خطاهای طولانی اما ضروری بود:

  1. اگر قبلاً این کار را نکرده اید، هر یک از بسته های زیر را باز کنید: بستنی تمشک، سس شکلات، خامه فرم گرفته، چوب قند.
  2. یک کاسه را بیرون بیاورید و جلوی خود قرار دهید
  3. یک اسکوپ بستنی بردارید و سه پیمانه بستنی تمشک را یکی یکی در یک کاسه بریزید. اسکوپ بستنی را دوباره در جای خود قرار دهید.
  4. یک شیشه سس شکلات بردارید، سس را بردارید و محتویات یک قاشق غذاخوری را در یک کاسه بریزید. یک بار دیگر فرآیند اسکوپ زدن و ریختن را تکرار کنید. قاشق و شیشه را در جای خود قرار دهید.
  5. بسته خامه فرم گرفته را زیر و رو کرده و با نگه داشتن آن روی کاسه به مدت 3 ثانیه روی بستنی بریزید سپس بسته را به جای خود برگردانید.
  6. یک شیشه چوب قند بردارید، حدود چهل چوب را در ظرفی بریزید و شیشه را برگردانید.
  7. یک عدد گیلاس را از ظرف گیلاس بردارید و روی بستنی قرار دهید.
  8. یک کاسه با بستنی تمام شده و یک قاشق به دانش آموز بدهید.

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

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

حرفه در برنامه نویسی

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

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

همه اینها مرا به بیانیه دیگری می رساند، این بار به صورت پررنگ: دانش بنیادی همیشه برای یک برنامه نویس مهم بوده و خواهد بود.

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

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

یک زبان که بر همه آنها حکومت کندعکس از کریستوفر جشکه بر می Unsplash

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

پیچیدگی برنامه خود را بدانید

همچنین به نام بزرگ O "پیچیدگی الگوریتم" به وابستگی زمان لازم برای اجرای یک برنامه به اندازه داده های ورودی آن اشاره دارد. (ن). نگه داشتن انگشت خود بر روی نبض الگوریتم های مورد استفاده یک گام مهم است.

ساختارهای داده خود را بشناسید

ساختار داده در قلب هر برنامه مدرن قرار دارد. دانستن اینکه در چه موردی از کدام ساختار استفاده کنیم، در نوع خود یک رشته است. ساختارهای داده مستقیماً با پیچیدگی زمان اجرا مرتبط هستند و انتخاب ساختار اشتباه می تواند منجر به مشکلات اساسی عملکرد شود. یافتن یک عنصر در یک آرایه است O (N)، که نشان دهنده هزینه بالای استفاده از آرایه ها به عنوان داده ورودی است. جستجوی جدول هش - O (1)، به این معنی که در این حالت زمان جستجوی یک مقدار به تعداد عناصر بستگی ندارد.

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

بخوانید / تماشا کنید / گوش دهید

سایت هایی مانند UdemyPluralsight и آکادمی CodeAcademy - یک انتخاب عالی برای یادگیری زبان های برنامه نویسی جدید. اما برای اصول اولیه، به کتاب‌هایی در مورد اصول، شیوه‌ها و سبک‌های کدگذاری عمومی مراجعه کنید. کتاب‌های پیشنهادی «الگوهای طراحی»، «بازسازی. بهبود کد موجود، «کد کامل»، «کد پاک» و «برنامه نویس عملگرا». در نهایت، هر توسعه دهنده باید یک کپی از "الگوریتم ها"در دست

تمرین!

بدون شکستن تخم مرغ نمی توانید تخم مرغ را بپزید. سایت هایی مانند رتبه هکرCodeWarsCoderByte, TopCoder и LeetCode هزاران پازل جالب را برای آزمایش دانش خود در مورد ساختار داده ها و الگوریتم ها ارائه دهید. شانس خود را در حل مشکلی که دوست دارید امتحان کنید، راه حل خود را در Github ارسال کنید و سپس ببینید دیگران چگونه به آن برخورد کردند. که ما را به آخرین نکته می رساند:

کد دیگران را بخوانید

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

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

منبع: www.habr.com

اضافه کردن نظر