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

  1. سعی کنید مسائل ساده ریاضی، جمع و تفریق و ضرب و تقسیم را به خوبی تحلیل کنید، خیلی ها بر این باورند ک چنین محاسباتی رو میتونن انجام بدهند، اما وقتی اعداد زیاد میشود و یک مسئله بیان میشود ک توسط همین چهار تا عمل ساده انجام میشود، اکثرا پاسخ اشتباه میدهند، لذا برای برنامه نویسی نیازی نیست ریاضی خوبی داشته باشید ک هر انتگرالی بهتون دادند حل بکنید، بلکه نیازه این چهار تا عمل ساده را تحلیل بکنید و بدانید که کی باید از این ها استفاده بکنید و پاسخ درست بدهید.
  2. برای یادگیری برنامه نویسی نیاز دارید که مرحله به مرحله فکر بکنید و مسائل بزرگ را به تعدادی از مسائل کوچک تبدیل بکنید، به عبارتی Step By Step، الگوریتم فلوچارت باعث میشه به شما این نحوه ی تفکر رو بیاموزه، لذا سعی بکنید ابتدا این الگوریتم رو به خوبی یاد بگیرید و از خودتان امتحان بگیرید، نیازیم نیست مسائل ریاضی سخت رو بتونید توسط این الگوریتم حل بکنید، توجه داشته باشید ک این الگوریتم قرار است نحوه ی فکر کردن و کوچک کردن مسائل بزرگ را به مسائل کوچیک تر به شما بیاموزد نه ریاضی، اگه از یه شخص معمولی بپرسید که یک لیوان آب رو از اینور میز به طرف دیگه میز چجوری میزارن، میگن کاری نداره که میزاریمش اونور میز، در حالی که پاسخ یک برنامه نویس به اینگونه هست که دستمو میبرم سمت لیوان، لیوان رو میگیرم، بلندش میکنم و لیوان رو میبرم سمت دیگه میز و لیوان رو میزارم رو میز و در نهایت دستمو ول میکنم .
  3. یک زبان برنامه نویسی انتخاب بکنید، مهم نیست زبان برنامه نویسی شما چی هست، اما باید بدونید ک برای یادگیری زبان برنامه نویسی سعی نکنید که خیلی فرا برید و در ابتدا وب یا زبان برنامه نویسی موبایل انتخاب بکنید، چون هیچ مرجع کاملی وجود نداره ک از ابتدا ب شما برنامه نویسی رو با این مفاهیم توضیح بده، من برای شروع به شما پیشنهاد میکنم زبان سی پلاس پلاس یا جاوا را انتخاب بکنید، چون آموزش در سطح ابتدایی در این زبان ها پیدا میشه و شما میتونید مفاهیم برنامه نویسی رو در این زبان ها به خوبی یاد بگیرید
  4. سعی بکنید مسائل برنامه نویسی را تیکه تیکه بکنید و خودتان شروع ب کد نویسی کنید، اگر فلوچارت رو به خوبی یاد گرفته باشید، میتونید برای قسمتی ک مشکل دارید گوگل بکنید، در اکثر مواقع سایت استک آور فلو مشکل مشابه شما پرسیده شده و مشکل حل شده
  5. سعی نکنید خیلی سریع سوییچ زبان بکنید، هر چند من در این امر موفق نبودم، بعد از اینکه سینتکس یک زبان رو به خوبی یاد گرفتید، نوبت اینه که کمی با برنامه نویسی شی گرا آشنا بشید، چرا که در عصر حاظر اگر شی گرایی بلد نباشید اصلا برنامه نویس حساب نمیشید
  6. بعد از یادگرفتن مفاهیم شی گرایی نوبت اینه که ساختمان داده ها رو بررسی بکنید و با انواع داده ها دست و پنجه نرم کنید، فراموش نکنید که وقتی با انواع داده ها آشنا میشید، میزان سرعت دسترسی و میزان حجمی که Data Structure مورد نظر میگیره در هنگام یادگیری فراموش نشه، برای برنامه های کوچک شما تفاوت آنچنانی نمیبینید اما وقتی برنامه شما بزرگ که میشه و با دیتاهای حجیم سرو کار دارید، باید قدرت انتخاب داشته باشید که از چه Data Type ای استفاده میکنید تا به مشکل نخورید .
  7. برنامه ای ک مینویسید اگه اطلاعات اون جایی ذخیره نشه و در هر بار اگه از اول شروع بشه، اون برنامه دیگه چه بدردی میخوره؟ لذا پس برای ذخیره سازی اطلاعات و دستیابی با سرعت بالا به دیتاها به دیتابیس نیاز دارید، دیتابیس های مختلفی وجود داره برای ذخیره سازی اطلاعات ولی برای شروع بهتره از دیتابیس SQL ای استفاده کنید، یکی از بهترین های دیتابیس SQL ای دیتابیس Microsoft SQL Server هست، سعی کنید هر چه توان دارید روی این دیتابیس بزارید، چرا که کار کردن با دیتابیس به قدری جذاب هست که افرادی که در برنامه نویسی خوب نیستند، کار کردن با دیتابیس آن ها را شیفته یادگیری برنامه نویسی کرده .
  8. پس از آشنایی با دیتابیس سعی بکنید که app اتون رو با دیتابیس کانکت بکنید و اطلاعات رو درون برنامتون Fetch یا دریافت بکنید، روش های مختلفی وجود داره برای وصل کردن دیتابیس به اپ مورد نظربرای مثال ORM و Query Builders و یا Raw SQL که هر کدوم معایت و مزایای خودشو داره .
  9. سعی کنید فریم ورک ها و لایبرری های مختلفی در طول یادگیری برنامه نویسی تست بکنید، فریم ورک ها و لایبرری ها باعث سرعت بخشیدن به کد نویسی شما میشن و میتونید زودتر از چیزی که تصور میکنید، کد نویسی برنامه اتون رو تموم بکنید .
  10. در دنیای کد نویسی فقط کد زدن و اجرا شدن مهم نیست، لذا برای اینکه یه سر و گردن از بقیه بالاتر باشید سعی بکنید مهارت Clean Code و Beauty Code را یاد بگیرید، یکی از مهارت های Clean Code اینه که کدتون قابلیت خوانایی بالا داشته باشه و برای مشکلات برنامه نویسی از استاندارد ها استفاده کنید، برنامه نویسان بزرگ مشکلات رایج برنامه نویسی رو در قالب Design Patterns جمع کردند، لذا سعی بکنید به بیشتر این مشکلات تسلط داشته باشید و Design Patterns موجود مشکل رو حل بکنید
  11. سعی بکنید ک مشکلات نرم افزار اعم از دیزاین و کد و دیتا رو جدا بکنید، برای اینکار ما نیازه با معماری ها آشنا بشیم، هر یک از معماری ها برای شرایط خاصیه و کاربرد خاص خودشو داره، لذا حتما معماری ها رو مطالعه بکنید ک کاملا به سمت یه برنامه نویس حرفه ای نزدیک بشید
  12. یک برنامه نویس خوب، همیشه برنامشو نمیتونه برای هر اپشنی ک اضافه میکنه دیباگ کنه، لذا مهارت تست نرم افزار رو به خوبی یاد بگیرید که نیازی نباشه هر بار دیباگ کنید، در حین تست نرم افزار، باگ های نرم افزارتون در اکثر مواقع قبل از تولید Production قابل شناسایی میشه
  13. تمرین رو فراموش نکنید، اگر تمرین روزانه برنامه نویسی نداشته باشید خیلی چیزها رو فراموش میکنید و رفته رفته هر چی زحمت کشیدین برای اینکه چطوری تمیز کد بزنید از بین میره، منظورمون از تمرین این نیست که هر روز یه چیز تکراری رو کد بکنید، بلکه سعی کنید مهارت های خودتون رو بالا ببرید، با فریم ورک ها و کتابخانه های مختلف کار بکنید، برای خودتون ماژول درست کنید و در صورتی که فکر میکنید پر کابرده اون رو با بقیه به اشتراک بزارید، ابزار های مدیریت نسخه کد رو فراموش نکنید، یک ابزاری چون git و github میتونه شما رو خیلی کمک بکنه در کارهای تیمی، با بقیه برنامه نویس ها در تعامل باشید به گونه ای که بتونید به صورت روان کد بخوانید، البته تمامی این مهارت ها وقتی امکان پذیر میشه که شما تمرین روزانه داشته باشید و کد های برنامه نویس های دیگه رو مطالعه کنید. از Documentation اصلی زبان برنامه نویسیتون و یا فریمورکتون غافل نشید.
  14. دنیای کامپیوتر دنیایی هست که هر روز در حال تغییر و بزرگ شدن هست، لذا زبان انگلیسی یک امر واجب برای هر برنامه نویس هست تا بتونه خودش رو با شرایط جدید وقف بده، آموزش های فارسی اکثرا دیر به روز میشند، تا بخواد یک آموزش فارسی برای تکنولوژی که تازگی به عرصه نرم افزار وارد شده تولید بشه، تکنولوژی مورد نظر جای خودش را به تکنولوژی دیگه داده، برای مثال تا چند سال پیش نیاز بازار به برنامه نویس زبان C بود ولی بعد یه مدت در ایران عرضه تقاضا به سمت موبایل و علل خصوص اندروید پیش رفت، اگه نتونید خودتون رو آپدیت بکنید در این عرصه کهنه و فرسوده میشید، پس سعی کنید در کنار کارتون، خودتون رو بروز بکنید تا اینگونه مشکلات گریبانگیر شما نشود .