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

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

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

شاید یکی از ساده‌ترین و منطقی‌ترین راه حل‌ها برای بک‌اند یک وب‌سایت، زبان PHP باشد و برای نرم افزار اندروید از Java استفاده کنیم. راه حل راحت برای ساختن اسلایدشو در یک صفحه وب به کمک jQuery انجام می‌شود و طبیعتا منطقی نیست این کار را با صرف زمان بیشتری با JavaScript انجام دهیم.

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

اگر هدف اصلی و تمرکز را بازار کار در نظر بگیریم، یادگیری زبان C ما را مستقیم به یک شرکت استارتاپی خوب نمی‌رساند، ولی تسلط بر این زبان قطعا کار ما در ادامه مسیر ساده‌تر خواهد کرد. زبان‌های PHP، JavaScript، C#.NET و بسیاری دیگر، بر اساس منطق C ساخته شده‌اند. حتی دستورات و نوع نگارش آنها تا حد زیادی شبیه به هم است. پس مطمئن باشید یادگیری را نمی‌توان وقت تلف کردن دانست.

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

پادکست شماره ۱: شروع برنامه نویسی

 

یادگیری طراحی وب

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

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

در این نقطه شما مباحث مربوط به UI (رابط کاربری) را آموخته‌اید و تا حدی به عنوان توسعه دهنده سمت کاربر یا Front-end Developer می‌توانید مشغول به کار شوید.

بسیاری از افراد این شاخه را انتخاب می‌کنند و علاقه چندانی به عمیق شدن در مباحث برنامه نویسی ندارند. اگر به طراحی وب‌سایت علاقه دارید، باید درک خود را از UI و UX (تجربه کاربری) بالا ببرید و یادگیری تکنولوژی‌های SASS، LESS و SCSS را شروع کنید. اینها به شما کمک می‌کنند تا CSS منطقی‌تر و بهتری توسعه دهید. همین طور باید چهارچوب‌هایی مثل Bootstrap را یاد بگیرید تا طراحی شما کاملا استاندارد و واکنشگرا پیاده سازی شود.

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

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

مرحله بعد یادگیری مفهموم و ساختار Data Base‌ (پایگاه داده) است. پایگاه داده از یک سری جداول تشکیل شده که اطلاعات ما را نگهداری می‌کند. در بیشتر موارد برای پایگاه داده از زبان SQL و تکنولوژی MySQL استفاده می‌شود. برای همین یادگیری اینها را پیشنهاد می‌کنم چون قرار هست زیاد استفاده کنید.

در کنار پایگاه داده به یک زبان برنامه نویسی بک‌اند نیاز داریم تا فرآیند پردازش‌ها و ارسال و دریافت اطلاعات از پایگاه داده را برای ما انجام دهد. یکی از بهترین انتخاب‌ها زبان برنامه نویسی PHP می‌تواند باشد. این زبان بسیار قدرتمند و قابل درک است. تسلط به PHP شما را با بسیار از مفاهیم عمیق برنامه نویسی آشنا خواهد کرد و قطعا بازار کار بسیار خوبی پیش روی شما است. یادگیری این زبان در کنار چهارچوب‌هایی مثل Symfony و Laravel به شما کمک می‌کند تا زمان کمتری را صرف بهینه سازی و استاندارد کردن کدهای خود کنید.

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

جاوااسکریپت

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

دوره جامع و پیشرفته جاوااسکریپت

 

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

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

21 پاسخ به “مسیر یادگیری برنامه نویسی”

  1. مجتبی فرجپور گفت:

    مثل همیشه آقای صدری با توجه به نکات ظریف و دقیق مسیر یادگیری رو بسیار ساده و روان در این مقاله اشاره کردند. با تشکر از استاد صدری و همچنین وب سایت بسیار خوب شما FrontCast.ir

  2. مینا گفت:

    واااای آقای صدری فوق العاده بود، همه چی کامل و نکته به نکته ، ممنون🌷🌷🌷

  3. Amin4000 گفت:

    خیلی ممنون
    ولی بهتر نیست سایت رو به چند بخش تقسیم کنین برای آموزشها؟
    الان جاوا اسکریپت داره تقریبا خیلی از جاهارو پوشش میده
    سمت Web
    سمت Server با NodeJS
    سمت Desktop با Electron
    سمت موبايل با React Native
    و با ReactVR براي ابزارهاي واقعيت مجازي برنامه نويسي میشن
    من خیلی دنبال این مدل اموزش هستم که شاخه بندی بشه از هرکدوم قسمت هارو صفر تا صد بگه مثلا من میخوام فقط روی رابط کاربری زوم کنم ولی هرجا میری توش همه چی هست جز اونی که دقیقا میخوای
    کاش قبل هر اموزشی یه مطلب کامل راجب جاوا اسکریپت که یه نمودار درختی از ریشه تا هدف نهایی بزارین و بگین مثلا css و HTml برای همشون یکسان هستن بعد این مسیر برای این راه هست و این مسیر برای این راه من خیلی دنبال یه نقشه راه هستم تا بگم من اینو میخوام و این. مرحله هارو میگذرونم این دوره هارو میگذرونم تا مثلا توی رابط کاربری با جاوا اسکریپت مسلط شم ولی نمیشه
    ممنون میشم راهنمایی کنید و با حداقل یه مطلب کامل راجب مطالبی که گفتم انتشار بدید
    ببخشید طولانی شد

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

  4. مهتا گفت:

    عالی بود ممنون از شما

  5. mohammadrad گفت:

    سلام خیلی خوب بود ممنون
    قصد تخفیف رو دوره ی ری اکت رو ندارین؟؟
    ما دانشجوها رو بدبخت کرده این وضعیت دلار و…..

  6. mahdirabbani گفت:

    سپاس خیلی عالی.

  7. امیر گفت:

    مقاله ای بسیار عالی با نگارشی بسیار عالی تر

  8. amirfakhimii گفت:

    استاد در قسمت dom وقتی کاربر متنی رو واد میکنه در input به جای متن کاربر undefined خروجی میده چرا ؟؟

  9. سینا گفت:

    عالی و جامع مثل همیشه

پاسخی بگذارید

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

برای اطلاع از کدهای تخفیف و به روز رسانی دوره‌ها، عضو کانال تلگرام فرانت کست شوید. t.me/frontcast