برنامه نویسی

1 توصیه کد نویسی که ای کاش دریافت می کردم

این مقاله توسط فهیم الحق، بنیانگذار و مدیر عامل Educative نوشته شده است.

وقتی داشتم کدنویسی را یاد می گرفتم، یکی از توصیه هایی که می خواستم به من می گفت چیست؟

من در مورد این سوال خیلی فکر کرده ام. در واقع Educative را با در نظر گرفتن این سوال ساختیم.

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

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

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

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

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

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

مثال در دنیای واقعی: مشکل بطری

بیایید با بررسی یک مشکل منطقی مبتدی شروع کنیم. من می دانم که “حل مشکل” یک مفهوم انتزاعی برای صحبت در یک وبلاگ است، بنابراین بیایید یک مثال مشکل را گام به گام تجسم کنیم.

مشکل بطری

وظیفه:

آب را به مقادیر مختلف اندازه گیری کنید.

مواد:

  • آب به اندازه لازم.
  • یک بطری 3 لیتری.
  • یک بطری 5 لیتری.

قوانین:

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

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

به یاد داشته باشید: شما نمی توانید یک بطری را تا نیمه پر کنید.

پاسخ:

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

بیش از حد آسان؟ سعی کنید مراحل را طی کنید تا 1 لیتر را اندازه گیری کنید. 4 لیتر چطور؟ (نکته: هر دوی این اندازه گیری ها می توانند با پر کردن بطری 3 لیتری شروع شوند.)

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

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

یک آزمایش رایگان را شروع کنید

به بیش از 500 دوره آموزشی در زمینه برنامه نویسی، محاسبات ابری، علم داده و یادگیری ماشین دسترسی داشته باشید.

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

امروز ثبت نام کنید.

چگونه یاد بگیرم مثل یک برنامه نویس فکر کنم؟

بیایید یک مثال واقعی دیگر را در نظر بگیریم.

هنگامی که مهندسان نرم افزار با تجربه در حال طراحی یک سرویس استریم هستند (به Spotify یا YouTube فکر کنید)، یکی از بزرگترین موانعی که با آن مواجه می شوند نحوه طراحی با تاخیر کم است. به عنوان یک کاربر، هر زمان که با یک جریان تاخیری روبرو می شوید بسیار آزاردهنده است. بنابراین، بخشی از یک تجربه کاربری خوب این است که مطمئن شوید کاربران می‌توانند محتوای چندرسانه‌ای را حتی زمانی که سرعت اتصال آنها به 3G کاهش می‌یابد (~ 3-5 مگابیت در ثانیه) استریم کنند. وقتی کاربر پخش را فشار می‌دهد، رسانه در حالت ایده‌آل باید در عرض 200 میلی‌ثانیه شروع به پخش کند.

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

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

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

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

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

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

تجزیه و تحلیل، برنامه ریزی، اجرا و تکرار

“همه در این کشور باید برنامه نویسی یک کامپیوتر را یاد بگیرند زیرا به شما یاد می دهد چگونه فکر کنید.” – استیو جابز

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

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

جایی که دیگر منابع کد نویسی مبتدی علامت آن را از دست می دهند

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

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

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

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

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

با تبدیل شدن به یک حل کننده مشکل، کدنویسی را یاد بگیرید

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

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

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

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

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

ما در حال حاضر مسیرهای خاص زبان را برای:

ما همچنین مسیرهای شغلی خاص را برای موارد زیر ارائه می دهیم:

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

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

مثل همیشه، یادگیری مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا