چگونه به یک برنامه نویس خوب تبدیل بشیم – قسمت اول

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

یکی میگه من دوست دارم اپلیکیشن موبایل (Mobile Application) بنویسم، یکی میگه من دوست دارم سمت سرور کد (Server Application) بنویسم.

یکی میگه من به یادگیری ماشین (Machine Learning) و داده کاوی (Data Mining) علاقه دارم، یکی میگه من میخوام با داده های بزرگ (Big Data) کار کنم.

یکی میگه من دوست دارم ربات (Arduino, Raspberry PI, …) بسازم، یکی میگه من میخوام برنامه نویسی سخت افزاری انجام بدم یکی هم میگه من میخوام اینترنت اشیاء (IoT) کار کنم.

یکی هم میگه من میخوام بازی نویسی (Unity, Unreal, …) انجام بدم، راستی میدونستین برنامه نویس های بازی، از بقیه برنامه نویس ها قوی ترن؟

به این دلیل که یک برنامه نویس Game، مجبوره توی خیلی چیز ها قوی باشه، ریاضیات و هندسه فضایی، انواع الگوریتم ها و ساختار داده ها و غیره!

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

یکم فکر کنید ببینید اون آدم خفنه ی آینده که قراره بشید، داره چکار میکنه؟

ابتدای مسیر: انتخاب زبان و ابزار مناسب

دو تا از زبان های برنامه نویسی بسیار محبوب، Python و Javascript هستن.

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

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

میدونستین کافه بازار و دیوار، سمت سرور، با زبان پایتون نوشته شدن؟

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

اخیرا خیلی از موسسات و دانشگاه ها شروع کردن به آموزش Javascript به جای Python، علتش هم رشد عظیم و محبوبیت و پرکاربرد بودن این زبانه، مخصوصا در عرصه وب (وبسایت و سرور و …).

نکته مهم: یک برنامه نویس خوب، برنامه نویسیه که چند زبان رو بلد باشه، یا بتونه یاد بگیره!

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

— آغاز تبلیغ —

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

خوب شما خوش شانسین چون برای این مورد راه حل دارم، اون هم استفاده از Flutter که گوگل درستش کرده و یک Mobile Application SDK میباشه که متن باز (Open Source) هم هست.

نکته: SDK مخفف Software Development Kit به معنی “جعبه ابزار توسعه نرم افزار”.

اگه در موردش کنجکاو شدین خوبه که این مقاله رو بخونین: جدال همیشگی Android و iOS – دردسرهای تیم ها و کارفرماها

— پایان تبلیغ —

یک برنامه نویس خوب کارهای پایه ای زیر رو باید با هر زبانی مسلط باشه:

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

  1. کار با نوع داده ها: مثلا عدد 287 یا عبارت “سلام دنیا!” دو تا نوع داده هستن، که میشه روشون عملیات های ریاضی و … رو انجام داد.
  2. کار با متغیر ها: متغیر ها اسم دارن و مقدار نوع داده ای رو داخل خودشون ذخیره میکنن، مثلا میتونیم متغیری به اسم  message رو تعریف بکنیم که مقدار داخلش “سلام” باشه.
  3. کار با آرایه ها: توی دنیای واقعی، شما با مجموعه ای از اطلاعات (لیست – تعداد بیشتر از یک) سر و کار دارین، برای  کار با این داده ها، اکثرا مجبور میشین که از آرایه ها (لیست) استفاده کنین.
  4. کار با دستورات شرطی: مثال یک عبارت شرطی که در ادامش دستور هم داده شده، “اگر هوا بارونی بود، بیرون نرو، در غیر این صورت، برو بیرون”.
  5. کار با انواع حلقه ها: کامپیوتر ها تو چه چیزی خیلی قوی هستن که انسان ها تو اون ضعیفن؟ انجام کارهای تکراری و پشت سر هم، به تعداد زیاد، با سرعت بالا.
  6. کار با توابع: برای اینکه کداتون تکراری نشه، میتونین کد ها رو درون توابع تعریف کنین و بهشون ورودی بدین، صداشون بزنین (call – invoke) و خروجی رو دریافت کنین.
  7. برنامه نویسی بازگشتی (Recursive): مثلا نوشتن توابعی که خودشون رو صدا میزنن و یک یا چند شرط پایانی دارن (که دیگه خودشون رو صدا نزنن، مگرنه میافتن تو یک حلقه بی نهایت).
  8. برنامه نویسی با انجام تکرار (Iterative): جایگزین بازگشتی محسوب میشه و از حلقه ها استفاده میکنه.
  9. کار با اشیاء (مخصوص زبان های شیئ گرا مثل Python یا Java): یک زبان شیئ گرا امکاناتی رو در اختیار برنامه نویس قرار میده، تا برنامه نویس بتونه نرم افزار رو مشابه دنیای واقعی مدل کنه.
    برنامه نویسی شیئ گرا اهدافی رو دنبال میکنه تا منبع کد (source code) در طی زمان قابل نگه داری (Maintainable Code) باشه، یعنی هر چی که پروژه بزرگ تر میشه، تبدیل به انبار کاه نشه و از ساختار مشخص و درستی تبعیت کنه.
  10. کار با ساختار داده ها و الگوریتم های ساده: مثلا کار با Hash Table ها و یا مثلا نوشتن راه حلی بازگشتی یا با تکرار، برای مساله فیبوناچی، یک ضرب المثل آسیایی هست که میگه: هر چی بیشتر مساله حل کنید، مسائل بیشتری رو میتونید حل کنید!

 

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

نشانی ایمیل شما منتشر نخواهد شد.