سختترین قسمت هر کاری شروع کردن است. بعد از آن وارد فرآیند انجام کار میشویم و مابقی مسیر را طی میکنیم. شاید یکی از سختترین این شروع کردنها، یادگیری برنامه نویسی باشد.
دنیای برنامه نویسی پر است از زبانها، کتابخانهها، چهارچوبها و… که همیشه انتخاب را سختتر میکنند. در کنار آن معمولا اغلب برنامه نویسان، سعی میکنند تا تکنولوژی محبوب خود را تبلیغ کنند، شاید برای قانع کردن افکار دیگران تا درست بودن مسیر خود را بیشتر قبول کنند. اما همه اینها یک راه سخت و پیچیده برای کسانی ساخته که به این حوزه علاقه دارند و تصمیم دارند یادگیری را شروع کنند.
به نظر من واقعیت چیز دیگری است. زبانها و تکنولوژیهای برنامه نویسی هیچ وقت در رقابت با هم نبودند و نیستند. هر کدام برای نیاز مشخصی در موقعیت زمانی مشخص ساخته شدهاند و هدف اصلی آنها راحتتر و سریعتر انجام دادن فرآیندهای مهندسی نرم افزار است. مقایسه زبانها باهم کاری غیرفنی و بدون فایده است، چون هرکدام برای هدفی مشخص ساخته شده است و هیچ یک برتری نسبت به دیگری ندارد.
مثالهای زیادی همیشه وجود دارند که با بررسی آنها به تفاوت عملکرد در زبانهای مختلف پی میبریم و با بررسی و تحلیل عمیقتر متوجه خواهیم شد هیچ کدام بهتر یا بدتر از دیگری نبوده و نیست. اما انتخاب ما برای یادگیری باید صحیح و هوشمندانه باشد.
اگر هدف اصلی و تمرکز را بازار کار در نظر بگیریم، یادگیری زبان C ما را مستقیم به یک شرکت استارتاپی خوب نمیرساند، ولی تسلط بر این زبان قطعا کار ما در ادامه مسیر سادهتر خواهد کرد. زبانهای PHP، JavaScript، C#.NET و بسیاری دیگر، بر اساس منطق C ساخته شدهاند. حتی دستورات و نوع نگارش آنها تا حد زیادی شبیه به هم است. پس مطمئن باشید یادگیری را نمیتوان وقت تلف کردن دانست.
با توجه به توسعه شبکه اینترنت و پلتفرم وب، طبیعتا بسیاری از مشاغل آیتی و تکنولوژیها بر روی این بستر گسترش پیدا کردهاند. برای همین ما هم مسیر یادگیری را برای این پلتفرم بررسی میکنیم. یادگیری برنامه نویسی همیشه ساده و بدون دردسر است، به شرطی که ما هم نگاهی ساده برای حل موضوع داشته باشیم و دنبال راههای پیچیده نگردیم.
شرع یادگیری برنامه نویسی وب، با طراحی وب است. در طراحی وب مهمترین اصل یادگیری و درک صحیح HTML و CSS است. وبسایت MDN قطعا یکی از بهترین مراجع برای یادگیری این دو زبان است. HTML و CSS زبانهای نشانه گذاری هستند و به ما کمک میکنند تا وبسایت خود را طراحی کنیم. به کمک HTML ساختار اصلی و CSS آیتمهای گرافیکی را پیاده سازی میکنیم و میتوانیم یک تصویر را به قالب استاندارد وبسایت تبدیل کنیم.
بعد از یادگیری این دو میتوانیم کمی جدیتر ادامه دهیم و وارد برنامه نویسی شویم. بهترین انتخاب در این مرحله زبان برنامه نویسی JavaScript است. به این دلیل که نیازی به درک مفاهیم پیچیده نداریم و مستقیم وارد دستورات ساده و قابل درک برنامه نویسی میشویم. دنیای JavaScript پر است از تکنولوژیهای متنوع و قدرتمند که میتواند مسیر آینده شما باشند. اما قبل از یادگیری آنها اگر به مباحث طراحی وب علاقهمند شده باشید، میتوانید کار با کتابخانه jQuery را شروع کنید. این کتابخانه از جاوااسکریپت ساخته شده و کار شما را در مسائل مربوط به طراحی بسیار سادهتر میکند.
در این نقطه شما مباحث مربوط به UI (رابط کاربری) را آموختهاید و تا حدی به عنوان توسعه دهنده سمت کاربر یا Front-end Developer میتوانید مشغول به کار شوید.
بسیاری از افراد این شاخه را انتخاب میکنند و علاقه چندانی به عمیق شدن در مباحث برنامه نویسی ندارند. اگر به طراحی وبسایت علاقه دارید، باید درک خود را از UI و UX (تجربه کاربری) بالا ببرید و یادگیری تکنولوژیهای SASS، LESS و SCSS را شروع کنید. اینها به شما کمک میکنند تا CSS منطقیتر و بهتری توسعه دهید. همین طور باید چهارچوبهایی مثل Bootstrap را یاد بگیرید تا طراحی شما کاملا استاندارد و واکنشگرا پیاده سازی شود.
اما اگر به برنامه نویسی علاقهمند شده باشید، باید مفاهیم مربوط به سرور را یاد بگیرید. این که سرور دقیقا چه چیزی است و چطور کار میکند. چه تفاوتی میان سیستم عاملهای سرور است. کدام برای چه پروژهای میتواند کاربردیتر باشد و قطعا آشنایی بیشتر با دستورات خط فرمان لینوکس. نیازی نیست در تمام این موارد عمیق شوید. صرفا آشنایی کافی است تا با کلیت این مفاهیم آشنا شوید.
مرحله بعد یادگیری مفهموم و ساختار Data Base (پایگاه داده) است. پایگاه داده از یک سری جداول تشکیل شده که اطلاعات ما را نگهداری میکند. در کنار پایگاه داده به یک زبان برنامه نویسی بکاند نیاز داریم تا فرآیند پردازشها و ارسال و دریافت اطلاعات از پایگاه داده را برای ما انجام دهد. یکی از بهترین انتخابها زبان برنامه نویسی PHP میتواند باشد. این زبان بسیار قدرتمند و قابل درک است. تسلط به PHP شما را با بسیار از مفاهیم عمیق برنامه نویسی آشنا خواهد کرد و قطعا بازار کار بسیار خوبی پیش روی شما است. یادگیری این زبان در کنار چهارچوبهایی مثل Symfony و Laravel به شما کمک میکند تا زمان کمتری را صرف بهینه سازی و استاندارد کردن کدهای خود کنید.
در کنار این زبان، Python هم گزینه بسیاری خوبی است، مخصوصا اگر تصمیم داشته باشید برنامه نویسی را منطقیتر و حرفهایتر و البته سادهتر ادامه دهید. چهارچوب Django یکی از بهترین ابزارها برای توسعه راحتتر با پایتون است.
شاید این روزها Node.js را در کنار تکنولوژیهای بکاند زیاد میشنوید. بدون شک یکی از محبوبترین گزینهها برای من است. Node.js پلتفرمی است برای توسعه نرم افزار با استفاده از زبان برنامه نویسی جاوااسکریپت. به کمک این ابزار قدرتمند شما میتوانید برای تمام بسترهای نرم افزاری (وب، موبایل و دسکتاپ) نرم افزارهای کاربردی توسعه دهید. برای درک بهتر این موضوع، پادکست شماره ۲ فرانت کست را پیشنهاد میکنم. در این پادکست در مورد نقش جاوااسکریپت در فرانتاند و بکاند صحبت شده است.
دنیای جاوااسکریپت بسیار عمیق و رو به رشد است. کتابخانهها و چهارچوبهای زیادی توسط شرکتهای بزرگ فناوری برای این زبان توسعه داده شدهاند که به کمک آنها میتوان نرم افزارهای بسیار منعطف و کاربردی پیاده سازی کرد.
[button class=”github-btn” href=”http://frontcast.ir/course/javascript-advanced”]دوره جامع و پیشرفته جاوااسکریپت[/button]
فراموش نکنید که چهارچوبها و کتابخانهها فقط ابزاری هستند برای سادهتر و منطقیتر کردن کار توسعه. همیشه باید خود زبان برنامه نویسی را مسلط شد و یادگیری نباید به کمک این ابزارها باشد. تلاش کنید تا زبان برنامه نویسی را خوب یاد بگیرید چون بعد از آن به سادگی میتوانید روی این تکنولوژیها مسلط شوید.
در نهایت بررسی این لینک از گیتهاب را پیشنهاد میکنم و امیدوارم از تمام قسمتهای این مسیر لذت ببرید و منتظر یک نقطه خاص برای موفقیت نباشید. تنها کسانی برنامه نویسی را ادامه میدهند که این کار را واقعا دوست دارند.
[button class=”github-btn” href=”http://frontcast.ir/become-a-javascript-developer”]پادکست شماره ۵: تبدیل شدن به توسعه دهنده جاوااسکریپت[/button]
۵۰ درصد تخفیف ویژه زمستان فرانت کست تا پایان هقته
کد تخفیف: wnt
دیدگاهها:
رت رت
دی 24, 1399 در 5:26 ب.ظ
سلام استاد وقتتون بخیر . اولا من خیلی ممنونم بابت وبسایت فوق العادتون چون خیلی چیزا ازتون یاد گرفتم و ارزوی انرژی مثبت خیلی زیادی واسه شما و خانواده و کل همکاراتون دارم .
و این خوبی شما رو به اجر الهی میسپارم .
دوما اینکه من جدیدا توی یک شرکت به عنوان فرانت اند کار استخدام شدم و یه چیزی واسم سوال شده بود که اللان من تسلط روی جاوا اسکریپت و دیزاین پترن هاش دارم و با ویو هم خیلی خوب کار میکنم و ارتباط گرفتم و تست نویسی هم در سطح خیلی خوبی و اچ تی ام ال سی اس اس مم خیلی خوبه و یه چیزی برام سوال شد که دیگه باید چی یاد بگیرم یا کدوم قسمت ها رو بیشتر کار کنم
مسعود صدری
دی 24, 1399 در 9:26 ب.ظ
سلام
خیلی ممنونم از لطفتون.
شما خوب پیش رفتید، پیشهاد میکنم سعی کنید دانشتون رو عمیقتر کنید.
زیاد سراغ تکنولوژیهای متنوع نرید.
FATEMEH SADAT Masoumi
دی 12, 1399 در 10:14 ب.ظ
salam ostad… in site ham ba css va html rah andazi shode? akhe wappalyzere man wordpress mizane
مسعود صدری
دی 12, 1399 در 10:19 ب.ظ
سلام
اگر فرانت کست منظورتون هست، بله از وردپرس استفاده شده.
رامین
آبان 18, 1399 در 10:55 ب.ظ
درود فراوان.سپاس بابت زحماتتون.اگر امکانش هس براتون یک دوره برای طراحی فروشگاه اینترنتی بذارین…
مسعود صدری
آبان 18, 1399 در 10:57 ب.ظ
سلام
ممنونم از شما.
پروژه اصلی دوره جامع Node.js پیاده سازی فروشگاه اینترنتی هست.
همین طور پروژه اصلی دوره جامع و پیشرفته React و Redux توسعه یک فروشگاه با این دو تکنولوژی هست.
در دوره جامع و پیشرفته جاوااسکریپت هم یک سبد خرید رو به عنوان پروژه دوم توسعه دادیم.
mehdimrpr
تیر 20, 1399 در 2:55 ق.ظ
سلام آقای صدری امیدوارم حالتون خیلی خوب باشه. یه تشکر کنم بابت این توضیحات مختصر و مفید و جامعتون تو دوره های مختلف خییلییییی دمت گرم.
یه خواهش هم داشتم اگه امکانش هست براتون یه دوره هم برای bootStrap اماده کنید.
خدااا قوت
مسعود صدری
تیر 20, 1399 در 3:22 ق.ظ
سلام
ممنون از لطف شما.
انشاالله برای بوت استرپ یک دوره رایگان خواهیم داشت.
گلی
خرداد 26, 1399 در 7:07 ب.ظ
سلام وقت بخیر من دانشجو نرم افزارم از طراحی وب قسمت فرانت اند را خیلی دوست دارم اما نمیدونم دقیقا باید چطوری شروع کنم؟میشه راهنماییم کنید
مسعود صدری
خرداد 26, 1399 در 7:08 ب.ظ
سلام
حتما، لطفا توی تلگرام یا واتساپ پیام بدین که توضیح بدم خدمتتون.
امین ارژنگ
فروردین 18, 1399 در 12:03 ق.ظ
سوال دیگه اینکه منبع ای وجود داره برای تمرین و حل مساله جاوا اسکریپت؟
مسعود صدری
فروردین 18, 1399 در 12:20 ق.ظ
مستندات جاوااسکریپت وبسایت MDN رو بهتون پیشنهاد میکنم.
محسن
اسفند 2, 1398 در 8:40 ق.ظ
سلام ممنون از مقاله بسیار خوبتون
من به تازگی شروع به یادگیری زبان ها و تکنولوژی های مربوط به Front-End کردم و یک نقشه راه خوب و جامع تونستم درست کنم (در حال حاضر در قسمت Html Css هستم)
یه سوال خیلی مهمی که برام پیش اومده اینه که شرکت های مختلف از Front-End ها میخوان که restfull api را به خوبی بلد باشند. به نظر شما برای یادگیری اون کدوم دوره آموزشی رو باید دید؟ همین زبان های javascript و react کفایت میکنه یا نه باید زبان های سمت سرور مثل php رو یاد بگیریم؟
سپاس
مسعود صدری
اسفند 2, 1398 در 2:01 ب.ظ
سلام
ممنون از لطف شما.
برای درک بهتر API باید بتونید سمت بکاند API رو توسعه بدین و توی قسمت فرانتاند درخواستها رو مدیریت کنید. همون طور که میدونید REST وابسته به زبان برنامه نویسی نیست، پس فرق زیادی نداره با چه زبانی توسعه بدین یا درخواست بفرستین.
توی دورههای پیشرفته جاوااسکریپت، شروع یادگیری ReactJS، دوره جامع MERN Stack و دوره جامع NodeJS به طور مفصل API رو بررسی کردیم.
سینا
مهر 15, 1398 در 9:06 ب.ظ
عالی و جامع مثل همیشه
مسعود صدری
مهر 15, 1398 در 9:33 ب.ظ
ممنون از لطفتون.
amirfakhimii
تیر 2, 1398 در 6:32 ب.ظ
استاد در قسمت dom وقتی کاربر متنی رو واد میکنه در input به جای متن کاربر undefined خروجی میده چرا ؟؟
مسعود صدری
تیر 2, 1398 در 6:35 ب.ظ
سلام،
مقدار Undefined معمولا زمانی بازگشت داده میشه که از عبارت .value برای input استفاده نکرده باشین.
لطفا سوالات مروبط به دورههای آموزشی رو در صفحه دوره ببپرسید.
خیلی ممنون.
amirfakhimii
تیر 13, 1398 در 3:09 ق.ظ
چشم
خیلی ممنون
واقعاا دورتون عالی بود
امیر
اردیبهشت 6, 1398 در 8:38 ب.ظ
مقاله ای بسیار عالی با نگارشی بسیار عالی تر
مسعود صدری
خرداد 20, 1398 در 5:06 ب.ظ
خیلی ممنونم.
mahdirabbani
فروردین 25, 1398 در 8:05 ب.ظ
سپاس خیلی عالی.
مسعود صدری
خرداد 20, 1398 در 5:06 ب.ظ
ممنون که مطالعه کردین.
mohammadrad
دی 26, 1397 در 3:13 ب.ظ
سلام خیلی خوب بود ممنون
قصد تخفیف رو دوره ی ری اکت رو ندارین؟؟
ما دانشجوها رو بدبخت کرده این وضعیت دلار و…..
مسعود صدری
دی 26, 1397 در 10:55 ب.ظ
سلام، ممنون از شما. برای مطلع شدن از کدهای تخفیف لطفا داخل وبسایت ثبت نام کنید.
mohammadrad
دی 27, 1397 در 12:43 ب.ظ
ممنون مهدس
ثبت نام کردم از قبل
کانال تلگرامی نداره سایت؟
مسعود صدری
دی 27, 1397 در 2:07 ب.ظ
کانال تلگرام هم هست و بیشتر اطلاع رسانیها از طریق ایمیل انجام میشه.
مهتا
آذر 21, 1397 در 2:01 ب.ظ
عالی بود ممنون از شما
مسعود صدری
دی 20, 1397 در 6:34 ب.ظ
ممنون که مطالعه کردین 🙂
Amin4000
مهر 8, 1397 در 10:15 ب.ظ
خیلی ممنون
ولی بهتر نیست سایت رو به چند بخش تقسیم کنین برای آموزشها؟
الان جاوا اسکریپت داره تقریبا خیلی از جاهارو پوشش میده
سمت Web
سمت Server با NodeJS
سمت Desktop با Electron
سمت موبايل با React Native
و با ReactVR براي ابزارهاي واقعيت مجازي برنامه نويسي میشن
من خیلی دنبال این مدل اموزش هستم که شاخه بندی بشه از هرکدوم قسمت هارو صفر تا صد بگه مثلا من میخوام فقط روی رابط کاربری زوم کنم ولی هرجا میری توش همه چی هست جز اونی که دقیقا میخوای
کاش قبل هر اموزشی یه مطلب کامل راجب جاوا اسکریپت که یه نمودار درختی از ریشه تا هدف نهایی بزارین و بگین مثلا css و HTml برای همشون یکسان هستن بعد این مسیر برای این راه هست و این مسیر برای این راه من خیلی دنبال یه نقشه راه هستم تا بگم من اینو میخوام و این. مرحله هارو میگذرونم این دوره هارو میگذرونم تا مثلا توی رابط کاربری با جاوا اسکریپت مسلط شم ولی نمیشه
ممنون میشم راهنمایی کنید و با حداقل یه مطلب کامل راجب مطالبی که گفتم انتشار بدید
ببخشید طولانی شد
مسعود صدری
مهر 10, 1397 در 12:55 ق.ظ
خیلی ممنونم از پیشنهاد خوبتون. قطعا توی برنامم هست. طبیعتا این مواردی که فرمودین باید بر اساس محتوای سایت ساخته بشن. گسترده شدن مطالب سایت تنوع بیشتری میاره و در آینده این دسته بندیها رو حتما انجام خواهم داد.
مینا
مهر 3, 1397 در 11:54 ب.ظ
واااای آقای صدری فوق العاده بود، همه چی کامل و نکته به نکته ، ممنون🌷🌷🌷
مسعود صدری
مهر 4, 1397 در 12:40 ق.ظ
خیلی ممنون از لطفتون 🙂
مجتبی فرجپور
اردیبهشت 16, 1397 در 6:37 ب.ظ
مثل همیشه آقای صدری با توجه به نکات ظریف و دقیق مسیر یادگیری رو بسیار ساده و روان در این مقاله اشاره کردند. با تشکر از استاد صدری و همچنین وب سایت بسیار خوب شما FrontCast.ir
مسعود
اردیبهشت 17, 1397 در 12:47 ق.ظ
مرسی از لطفتون.