اکنون بیش از هر زمان دیگری، فناوری در نحوه کارمان، ارتباط با عزیزانمان، دسترسی به مراقبتهای بهداشتی، خرید و … تنیده شده است. اگر برای ورود به مشاغل مرتبط با برنامه نویسی و به ویژه شغل توسعه دهنده وب هیجان دارید و خلق تکنولوژی در آینده فکر می کنید، پیشنهاد می کنیم که این راهنما را قدم به قدم دنبال کنید. در انتها نیز چنانچه نظر یا کامنتی دارید می توانید آن را برای ما و بقیه به اشتراک بگذارید.
اما ابتدا اجازه دهید به اصول اولیه بازگردیم. اینکه توسعه وب چیست و یک توسعه دهنده وب در واقع چه کاری انجام می دهد؟ برای پاسخ این سوالات و سوالات سطح بالاتر، مطالعه را ادامه دهید. همچنین از قسمت فهرست موضوعات نیز می توانید مستقیما بخشی که بیشتر مدنظرتان است را مطالعه کنید و نیازی نیست کل مقاله را بخوانید.
۱. اصلا توسعه وب چیست؟
به طور خلاصه توسعه وب فرآیند ساخت وب سایت ها و برنامه های کاربردی برای اینترنت یا برای یک شبکه خصوصی شناخته شده در اینترنت است. توسعه وب تنها به طراحی یک وب سایت محدود نمی شود. بلکه همه چیزهای مرتبط با کدنویسی و برنامه نویسی است که به تقویت عملکرد وب سایت کمک می کند.
از ساده ترین و ثابت ترین صفحات وب تا پلتفرم ها و اپلیکیشن های شبکه های های اجتماعی، از وب سایت های تجارت الکترونیک تا سیستم های مدیریت محتوا (CMS) نظیر وردپرس و تمام ابزارهایی که ما از طریق اینترنت به صورت روزانه استفاده می کنیم توسط توسعه دهندگان وب برنامه نویسی شده اند.
۱-۱ توسعه وب یا مهندسی نرمافزار یا…؟
یک مانع بزرگ بر سر راه کسانی که علاقمند ورود به مسیر شغلی توسعه دهنده وب هستند، همین اصطلاحات و کلمات کلیدی ست- حتی در مورد خود عنوان شغلی! برخی خود را مهندس نرم افزار، برخی توسعه دهنده وب و برخی دیگر توسعه دهنده نرم افزار معرفی می کنند! آیا تفاوت عمده ای بین آنها وجود دارد؟
در حالی که معمولا، مهندسان نرم افزار تمایل بیشتری برای کار روی سیستم عامل ها دارند و از طرف دیگر توسعه دهندگان وب روی فناوری های مبتنی بر اینترنت کار کنند، واقعیت کمی متفاوت است. هر دو از زبانها و فنآوریهای برنامهنویسی استفاده می کنند، بنابراین اینکه کدام اصطلاح در مورد هر فرد استفاده میشود، میتواند به مکان، صنعت و شرکت بستگی داشته باشد.
برای اینکه درک نسبی از نوسان میزان محبوبیت این اصطلاحات در بازه های زمانی مختلف، به شما دهیم ، به نمودار زیر دقت کنید:
منبع: Google Ngram Viewer
در حال حاضر، موضوع مهم این است که دوره های آموزشی و بوت کمپ های توسعه وب و هم مهندسی نرم افزار ترجیه می دهند، ابزارها و فناوری های برنامه نویسی مشابهی را به شما آموزش دهند. بنابراین، پس از فارغ التحصیلی و هنگام ورود به بازار کار برنامه نویسی، برای انتخاب شغل مناسب تر، بیش از عنوان شغل به شرح شغل و علی الخصوص مهارت ها و فناوری های مورد نیاز برای آن شرکت خاص دقت کنید. که چیزی که یاد گرفته اید آیا با نیاز بازار کار و آن شرکت خاص تطابق دارد یا نه.
۲-۱ آیا یک توسعه دهنده وب، انتخاب های شغلی متنوعی دارد؟
توسعه وب را می توان به سه لایه تقسیم کرد:
- برنامه نویسی سمت کلاینت یا مشتری(فرانت اند)،
- کدنویسی سمت سرور (بک اند)،
- کد نویسی سمت پایگاه داده(دیتابیس).
بیایید هر یک از این لایه ها را با جزئیات بیشتری بررسی کنیم.
برنامه نویس فرانت اند-سمت مشتری(Client-Side)
برنامه نویسی سمت مشتری یا توسعه فرانت اند به هر چیزی که کاربر نهایی مستقیماً تجربه می کند اشاره دارد. کدهای سمت کلاینت در یک مرورگر وب اجرا می شود و مستقیماً به آنچه که افراد هنگام بازدید از یک وب سایت می بینند مربوط می شود. مواردی مانند چیدمان، فونت ها، رنگ ها، منوها و فرم های تماس همگی توسط برنامه نویس فرانت اند اجرا می شوند.
برنامه نویس سمت سرور یا بک اند(Backend)
اسکریپت نویسی سمت سرور یا توسعه بک اند، همه آن چیزیست که در پشت صحنه می گذرد!
بخش بک اند اساساً بخشی از یک وب سایت است که کاربر در واقع نمی بیند. بک اند، مسئول ذخیره سازی و سازماندهی داده ها و ایجاد اطمینان از این است که همه چیز در سمت کلاینت به خوبی اجرا می شود و این کار را با برقراری ارتباط با فرانت اند انجام می دهد.
هر زمان که اتفاقی در سمت فرانت اند رخ می دهد -مثلاً کاربر فرمی را پر می کند- مرورگر درخواستی را به سمت سرور ارسال می کند. سمت سرور با اطلاعات مرتبط به شکل کدهای ظاهری که مرورگر میتواند تفسیر و نمایش دهد، پاسخ میدهد.
برنامه نویس پایگاه داده
وب سایت ها، بر فناوری پایگاه داده نیز متکی هستند. پایگاه داده شامل تمام فایل ها و محتوایی است که برای عملکرد یک وب سایت ضروری است و آن را به گونه ای ذخیره می کند که بازیابی، سازماندهی، ویرایش و ذخیره آنها را آسان کند. پایگاه داده روی یک سرور اجرا می شود و اکثر وب سایت ها معمولاً از نوعی سیستم مدیریت پایگاه داده رابطه ای (RDBMS) استفاده می کنند.
خلاصه این که: فرانتاند، بکاند و فناوری پایگاه داده همه با هم برای ایجاد و اجرای یک وبسایت یا برنامه کاملاً کاربردی کار میکنند و این سه لایه اساس توسعه وب را تشکیل میدهند.
۳-۱ تفاوت بین توسعه وب و طراحی وب
درست مانند مهندسی نرم افزار، ممکن است اصطلاحات «توسعه وب» و «طراحی وب» را به جای هم بشنوید، اما این دو بسیار متفاوت هستند.
تصور کنید که یک طراح وب و توسعه دهنده وب با هم کار میکنند تا یک خودرو بسازند: توسعه دهنده با تمام اجزای عملکردی خودرو مانند موتور، چرخها و چرخ دندهها سروکار دارد، در حالی که طراح مسئول هر دو بخش، بصری -چگونگی ظاهر، چیدمان داشبورد، طراحی صندلی ها- و تجربه کاربری -نرم بودن فرمان، سرعت خودرو، سرعت تغییر دنده ها و چگونگی آنها- است.
طراحان رابط و تجربه کاربر وب، روی ظاهر وب سایت و احساس ایجاد شده در کاربر حین استفاده از آن کار می کنند. آنها قالب وبسایت را مدلسازی میکنند و مطمئن میشوند که منطقی، کاربرپسند و لذت بخش است.
آنها تمام عناصر بصری مختلف را در نظر می گیرند و سوالاتی از این قبیل می پرسند:
- چه طرح های رنگی و فونت هایی استفاده می شود؟
- چه دکمهها، منوهای کشویی و نوارهای مروری(scrollbars) باید گنجانده شوند، و کجا؟
- کاربر برای رسیدن از نقطه A به B با کدام نقاط تماسی(touchpoints) تعامل دارد؟
یک طراح وب، معماری اطلاعات وب سایت را نیز در نظر می گیرد و مشخص می کند که چه محتوایی و در کجا قرار می گیرد.
طراحی وب یک زمینه بسیار گسترده است و اغلب به نقش های خاص تری مانند طراحی تجربه کاربر، طراحی رابط کاربر و معماری اطلاعات نیز تقسیم می شود.
این وظیفه توسعه دهنده وب است که این طرح را از طراح بگیرد و آن را به یک وب سایت زنده و کاملاً کاربردی تبدیل کند. یک توسعه دهنده فرانت اند طراحی بصری را همانطور که توسط طراح وب ارائه شده است می گیرد و آن را با استفاده از زبان های برنامه نویسی مانند HTML، CSS و JavaScript می سازد. یک توسعه دهنده بک اند(، قابلیتهای پیشرفتهتر سایت، مانند عملکرد پرداخت در یک سایت تجارت الکترونیک، را میسازد.
به طور خلاصه، یک طراح وب، در حقیقت معمار سایت است، در حالی که توسعه دهنده وب، سازنده یا مهندس آن سایت است.
۲. یک توسعه دهنده وب دقیقا چه کاری انجام می دهد؟
نقش یک توسعه دهنده وب ساخت و نگهداری وب سایت هاست. توسعهدهندگان وب میتوانند به صورت دورکاری یا فریلنسری هم، کار کنند. که وظایف و مسئولیتهای آنها بسته به نوع پروژه متفاوت است. اگر میخواهید تبدیل به توسعه دهنده وب شوید، احتمالا مجبور به تصمیم گیری راجع به این موضوع شوید که آیا میخواهید یک برنامه نویس فرانتاند، بکاند یا فول استک باشید. توسعه دهنده های فول استک(full-stack developer) در هر دو قسمت فرانت اند و بک اند تخصص دارند، در ادامه به جزئیات بیشتری در مورد آنچه که یک توسعه دهنده فول استک انجام می دهد خواهیم پرداخت.
مسئولیت توسعه دهندگان وب ساخت و خلق محصولی ست که هم نیازهای خریدار اصلی، هم نیازهای کاربران و هم نیازهای مشتری نهایی را برآورده کند. توسعه دهندگان وب با ذینفعان، مشتریان و طراحان وب همکاری می کنند تا راجع به چگونگی نمایش و همینطور عملکرد وب سایت نهایی، به دیدگاه مشترکی برسند.
بخش بزرگی از توسعه وب نیز حول شناسایی و رفع اشکالات به منظور بهینه سازی و بهبود مداوم یک وب سایت یا سیستم می چرخد. بنابراین، توسعهدهندگان وب، حلکنندههای مشتاقی هستند که به طور مرتب و پیاپی راهحلهایی را برای اجرای روان تر و راحت تر کارها ارائه میکنند.
البته همه توسعه دهندگان وب سنیور به زبان های برنامه نویسی رایج و مشخصی مسلط هستند. با این حال، هر یک توسعه دهندگان وب بسته به عنوان شغلی خاص و حوزه تخصصی خود با زبان های مختلف کار می کنند. بیایید به لایه های مختلف توسعه وب و وظایف مرتبط با هر لایه نگاهی جزئی تر بیندازیم.
تصویر زیر به صورت خلاصه وظایف هر شغل را نشان می دهد. که در ادامه بیشتر در مورد هریک صحبت میکنیم.
۱-۲ یک توسعه دهنده وب فرانت اند چکار می کند؟
وظیفه توسعه دهنده فرانت اند، کدنویسی قسمت فرانت اند یک وب سایت یا اپلیکیشن است. یعنی بخشی از وب سایت که کاربر می بیند و با آن ارتباط برقرار می کند. آنها داده های بک اند را می گیرند و آن را به چیزی تبدیل می کنند که برای کاربر، به راحتی قابل درک، از نظر بصری دلپذیر و جذاب و کاملاً کاربردی باشد. آنها این کار را از طریق طرح های ارائه شده توسط طراح وب انجام می دهند و آنها را با استفاده از HTML، جاوا اسکریپت و CSS زنده می کنند (در ادامه در مورد آنها بیشتر توضیح خواهیم داد).
توسعه دهنده فرانت اند صفحهنمایش، عناصر تعاملی و صفحه آرایی وبسایت مانند دکمهها و نوارهای مروری(scrollbars)، تصاویر، محتوا و لینکهای داخلی (لینکهایی که از یک صفحه به صفحه دیگر در همان وبسایت ارجاع میدهند) را پیادهسازی میکند. توسعه دهندگان فرانت اند همچنین مسئول اطمینان از نمایش بهینه در مرورگرها و دستگاه های مختلف هستند. آنها وبسایت را به گونهای کدنویسی میکنند که با اندازههای مختلف صفحه نمایش سازگار باشد، به طوری که کاربر حین بازدید از وبسایت با هر وسیله و روشی(تلفن همراه، دسکتاپ یا تبلت) تجربه یکسانی داشته باشد.
توسعه دهندگان فرانت اند همچنین تست های “قابلیت استفاده” را انجام می دهند و هر گونه اشکالی را که ایجاد می شود برطرف می کنند. در عین حال، آنها بهترین شیوه های سئو را در نظر می گیرند، مدیریت گردش کار نرم افزار را حفظ می کنند و ابزارهایی را توسعه می دهند که نحوه تعامل کاربر با یک وب سایت را در هر مرورگری بهبود می بخشد.
۲-۲یک توسعه دهنده وب بک اند چه کاری انجام می دهد؟
قسمت بکاند اساساً مغز متفکر یک وب سایت است. بنابراین، یک توسعه دهنده بک اند، مسئول ساخت و نگهداری فناوری مورد نیاز برای تامین قدرت و عملکرد درست در سمت فرانتاند است که از سه بخش تشکیل شده است: یک سرور، یک برنامه کاربردی و حداقل یک پایگاه داده.
کدی که توسعهدهندگان بکاند ایجاد میکنند تضمین میکند که هر چیزی که توسعه دهنده فرانتاند میسازد کاملاً کاربردی است و این وظیفه توسعه دهنده بکاند است که مطمئن شود سرور، برنامه و پایگاه داده همه به خوبی با یکدیگر ارتباط برقرار میکنند.
حالا سوال این است که چگونه این کار را انجام می دهند؟ ابتدا از زبان های سمت سرور مانند PHP، Ruby، Python و Java برای ساخت برنامه استفاده می کنند. سپس از ابزارهایی مانند MySQL، Oracle و SQL Server برای یافتن، ذخیره سازی و یا ویرایش دادهها و تحویل آن به کاربر در کد فرانت اند استفاده میکنند.
درست مانند توسعه دهندگان فرانت اند، توسعه دهندگان بک اند با مشتری یا صاحب کسب و کار ارتباط برقرار می کنند تا نیازها و درخواست های آنها را درک کنند. سپس بسته به مشخصات پروژه، خروجی ها را به روشهای مختلفی تحویل میدهند.
وظایف معمول یک برنامه نویس یا توسعه دهنده بک اند(backend developer) عبارتند از:
- ایجاد، یکپارچه سازی و مدیریت پایگاه داده
- ایجاد نرم افزار سمت سرور با استفاده از فریم ورک های بک اند
- توسعه و استقرار سیستم های مدیریت محتوا (برای مثال وردپرس، جوملا، اوپن کارت و…)
- کار با فناوری های وب سرور، یکپارچه سازی API و سیستم های عامل
همچنین، توسعه دهندگان بک اند مسئول تست و اشکال زدایی هر عنصر بک اند یک برنامه هستند.
۳-۲ یک توسعه دهنده وب فول استک(Full Stack) چه کاری انجام می دهد؟
یک توسعه دهنده فول استک کسی است که فناوری های هر دو بخش فرانت اند و بک اند را می فهمد، و میتواند در هر دو قسمت کار کند. در هر مرحله از فرآیند توسعه وب متخصص هستند، به این معنی که به خوبی به مجهز منابع دانشی مورد نیاز تجهیز شده اند، و حتی می توانند پروژه را با استراتژی و بهترین شیوه ها هدایت کنند.
اکثر توسعه دهندگان فول استک تجربه چندین ساله خود را در نقش های مختلف جمع آوری کرده اند که به آنها پشتوانه ای محکم در کل طیف توسعه وب می دهد.
توسعه دهندگان فول استک در هر دو زبان و فریم ورک های فرانت اند و بک اند و همچنین در محیط های سرور، شبکه و میزبانی مهارت دارند. آنها همچنین با منطق و قوانین تجاری و تجربه کاربری به خوبی آشنا هستند.
۴-۲ توسعه دهندگان موبایل
توسعه دهندگان وب و مهندسان نرم افزار نیز ممکن است در توسعه برنامه های موبایل(تلفن همراه)، چه آی او اس(iOS)، وچه اندروید (Android)، تخصص داشته باشند.
توسعه دهندگان iOS برنامه هایی را می سازند که با سیستم عامل iOS شرکت اپل اجرا می شوند. توسعه دهندگان iOS تمایل دارند به زبان Swift برنامه نویسی کنند، زبان برنامه نویسی که اپل برای اپ ها و نرم افزارهای خودش خصوصی سازی کرده است.
توسعه دهندگان اندروید برنامه هایی می سازند که با همه دستگاه های اندرویدی مانند گوشی های هوشمند سامسونگ سازگار است. جاوا زبان برنامه نویسی رسمی اندروید بود، اما پس از آن با کوتلین(Kotlin)، جایگزین شده است.
۳. زبان های برنامه نویسی، کتابخانه ها و فریم ورک هایی رایج برای یک برنامه نویس وب
به منظور ایجاد وب سایت ها و برنامه ها، توسعه دهندگان وب با زبان هی برنامه نویسی، کتابخانه ها و فریم ورک ها کار می کنند.
بیایید به هر یک از این موارد و همچنین برخی از ابزارهای دیگری که توسعه دهندگان وب در کارهای روزمره خود از آنها استفاده می کنند نگاهی بیندازیم.
۱-۳ زبان برنامه نویسی اساسا یعنی چه؟
در دنیای توسعه وب، زبان ها بلوک های سازنده ای هستند که برنامه نویسان از آنها برای ایجاد وب سایت ها، برنامه ها و نرم افزارها استفاده می کنند. انواع مختلف زبان ها از جمله زبان های برنامه نویسی، زبان های نشانه گذاری، زبان های شیوه نامه و زبان های پایگاه داده وجود دارد.
برنامه نویسی اساسا مجموعه ای از دستورالعمل ها و دستوراتی است که به کامپیوتر می گوید خروجی خاصی تولید کند.
برنامه نویسان از زبان های برنامه نویسی به اصطلاح «سطح بالا» برای نوشتن کد منبع استفاده می کنند. زبان های سطح بالا از کلمات و نمادهای منطقی استفاده می کنند که خواندن و درک آنها را برای انسان آسان می کند. زبان های سطح بالا را می توان به عنوان زبان های کامپایل شده یا ترجمه شده طبقه بندی کرد.
برای مثال C++ و Java زبانهای سطح بالا هستند. آنها ابتدا در قالب متنی ذخیره می شوند که برای برنامه نویسان قابل درک است اما برای رایانه نیست. برای اینکه کامپیوتر بتواند کد منبع را اجرا کند، باید به یک زبان سطح پایین، یعنی کد ماشین تبدیل شود. از زبان های کامپایل شده برای ایجاد برنامه های نرم افزاری استفاده می شود.
زبان های تفسیر شده(Interpreted languages) مانند Perl و PHP نیازی به کامپایل ندارند. به جای کد منبع نوشته شده به این زبان ها می توان آن ها را از طریق یک مفسر(interpreter) اجرا کرد(برنامه ای که کد را می خواند و اجرا می کند). زبان های تفسیر شده معمولاً برای اجرای اسکریپت ها استفاده می شوند، مانند زبان هایی که برای تولید محتوا برای وب سایت های داینامیک استفاده می شوند.
زبانهای سطح پایین آنهایی هستند که مستقیماً توسط سختافزار رایانه قابل شناسایی و اجرا هستند. آنها نیازی به تفسیر یا ترجمه ندارند. زبان ماشین(Machine language) و زبان اسمبلی(assembly) نمونههای رایج زبانهای سطح پایین هستند.
از محبوب ترین زبان های برنامه نویسی سال ۲۰۲۲ می توان به پایتون، جاوا، سی، جاوا اسکریپت، سی پلاس پلاس، سی شارپ، پی اچ پی، آر و سوئیفت اشاره کرد.
۲-۳ زبان های نشانه گذاری
زبان های نشانه گذاری برای تعیین قالب بندی یک فایل متنی استفاده می شوند. به عبارت دیگر، یک زبان نشانه گذاری به نرم افزاری که متن را نمایش می دهد می گوید که چگونه متن باید قالب بندی شود. زبانهای نشانهگذاری کاملاً برای چشم انسان خوانا هستند – آنها حاوی کلمات استاندارد هستند – اما برچسبهای نشانهگذاری در خروجی نهایی قابل مشاهده نیستند.
دو زبان معروف نشانه گذاری HTML یا HyperText Markup Language و XML هستند. که برای ایجاد یک وب سایت ضروری هستند. هنگامی که به یک سند، متنی ساده اضافه می شود، برچسب های HTML نحوه نمایش این سند، توسط یک مرورگر وب را توضیح می دهند. برای اینکه بفهمیم HTML چگونه کار می کند، بیایید تگ های پررنگ را مثال بزنیم. نسخه HTML به صورت زیر نوشته میشود:
<b>این جمله را پررنگ کنید!</b>
وقتی مرورگر این مطلب را میخواند، میداند که آن جمله را به صورت پررنگ نمایش دهد. این چیزی است که کاربر می بیند:
این جمله را پررنگ کنید!
XML یا eXtensible Markup Language است و در حقیقت، یک زبان نشانه گذاری بسیار شبیه به HTML است. با این حال، HTML برای نمایش داده ها با تمرکز بر ظاهر و XML صرفاً برای ذخیره و انتقال داده ها طراحی شده است. برخلاف HTML، تگ های XML از پیش تعریف نشده اند. بلکه توسط نویسنده سند ایجاد می شوند.
هدف XML سادهسازی اشتراکگذاری و انتقال داده، تغییرات پلتفرم و در دسترس بودن داده است، زیرا ابزاری مستقل از نرمافزار و سختافزار برای ذخیره، انتقال و اشتراکگذاری دادهها فراهم میکند. میتوانید در راهنمای W3schools درباره XML و نحوه عملکرد آن اطلاعات بیشتری کسب کنید.
۳-۳ زبان های شیوه نامه(Style sheet languages)
یک استایل شیت اساساً مجموعهای از قوانین استایل یا شیوه است. زبانهای استایل شیت، به معنای واقعی کلمه، برای استایل و شکل دادن به اسنادی که به زبانهای نشانهگذاری نوشته شدهاند استفاده میشوند.
سندی را در نظر بگیرید که در HTML نوشته شده و با استفاده از Cascading Style Sheets، یا به عبارت دیگر CSS (یک زبان شیوه نامه)، استایل بندی شده است. HTML مسئول محتوا و ساختار صفحه وب است، در حالی که CSS تعیین می کند که چگونه این محتوا باید به صورت بصری ارائه شود.
از CSS می توان برای افزودن رنگ ها، تغییر فونت ها، درج پس زمینه و حاشیه ها و همچنین برای استایل و قالب دادن به فرم ها استفاده کرد. CSS همچنین برای بهینهسازی صفحات وب برای طراحی تعاملی استفاده میشود و اطمینان حاصل میکند که طرحبندی خود را با هر دستگاهی که کاربر از آن استفاده می کند، تطبیق میدهد.
۴-۳ زبان های پایگاه داده
زبان ها نه تنها برای ساخت وب سایت ها، نرم افزارها و برنامه ها، بلکه آنها برای ایجاد و مدیریت پایگاه های داده هم استفاده می شوند.
پایگاه های داده منبع ذخیره سازی حجم عظیمی از داده ها هستند. برای مثال، برنامه موسیقی اسپاتیفای (Spotify) از پایگاههای داده برای ذخیره فایلهای موسیقی به منظور ارائه دادهها و تنظیمات داده های موسیقی به کاربر استفاده میکند. به همین ترتیب، برنامه های رسانه های اجتماعی مانند اینستاگرام از پایگاه داده برای ذخیره اطلاعات پروفایل کاربر استفاده می کنند. هر بار که کاربر پروفایل خود را به نحوی به روز می کند، پایگاه داده برنامه نیز به روز می شود.
پایگاههای داده برای درک همان زبانهایی طراحی نشدهاند که برنامهها با آنها نوشته میشوند، بنابراین داشتن زبانی که آنها میفهمند – مانند SQL، (زبان استاندارد برای دسترسی و دستکاری پایگاههای داده رابطهای) ضروری است.
SQL مخفف عبارت Structured Query Language است که نشانه گذاری مخصوص به خود را دارد و اساساً برنامه نویسان را قادر می سازد تا با داده های نگهداری شده در یک سیستم پایگاه داده کار کنند.
۵-۳ کتابخانه و چارچوب(frameworks) چیست؟
توسعه دهندگان وب همچنین با کتابخانه ها و فریم ورکها کار می کنند. لازم است بدانید که آنها یکی نیستند و تفاوت هایی باهم دارند. که البته هر دو برای آسان کردن کار توسعه دهنده به وجود آمده اند.
کتابخانهها و فریم ورکها اساسا مجموعهای از کدهای از پیش نوشته شده هستند، اما کتابخانهها کوچکتر هستند و بهتر است برای موارد خاصتر مورد استفاده قرار گیرند. یک کتابخانه حاوی مجموعه ای از کدهای مفید است که با هم گروه بندی شده اند تا بعداً دوباره مورد استفاده قرار گیرند. هدف یک کتابخانه این است که توسعه دهندگان را قادر سازد تا به همان هدف نهایی برسند و در عین حال کد کمتری برای رسیدن به آن بنویسند.
بیایید زبان JavaScript و jQuery، که یک کتابخانه جاوا اسکریپتی است را مثال بزنیم. به جای نوشتن همه کدها، مثلاً، ده خط کد جاوا اسکریپت، توسعه دهنده وب میتواند نسخه فشرده و از پیش نوشته شده را از کتابخانه jQuery بگیرد که این باعث می شود، در زمان و انرژی صرفهجویی کند.
یک فریم ورک حاوی اجزا و ابزارهای آماده ای است که توسعه دهنده را قادر می سازد تا کد را سریعتر بنویسد و بسیاری از فریم ورک ها نیز حاوی کتابخانه هستند.
فریم ورک ساختاری را به توسعه دهنده میدهد تا بر اساس آن کار کند، و فریم ورکی که برای کار انتخاب میکنید تا حد زیادی نحوه ساخت وبسایت یا برنامه شما را تعیین میکند، بنابراین انتخاب یک فریم ورک تصمیم بزرگی است. Bootstrap، React و Angular، برخی از فریم ورک های محبوب هستند.
ساده ترین راه برای درک کتابخانه ها و فریم ورک ها این است که تصور کنید در حال ساختن یک خانه هستید. فریم ورک، شالوده و ساختار، و همچنین دستورالعمل ها یا راهنما هایی را برای انجام هر وظیفه مشخص شده، ارائه می دهد.
فرض کنید میخواهید یک اجاق گاز را در خانه جدید خود نصب کنید: میتوانید اجزای جداگانه آن را بخرید و فر را از ابتدا بسازید، یا میتوانید یک فر آماده را از فروشگاه انتخاب کنید. درست مانند ساختن یک وب سایت، می توانید کد را از ابتدا بنویسید یا می توانید کد از پیش نوشته شده را از یک کتابخانه بگیرید و به سادگی آن را وارد کنید.
۶-۳ سایر ابزارهای توسعه وب
توسعه دهندگان وب همچنین از یک ویرایشگر متن مانند Atom، Sublime یا Visual Studio Code برای نوشتن کد خود استفاده خواهند کرد، یک مرورگر وب، مانند کروم یا فایرفاکس؛ و یک ابزار بسیار بسیار مهم برای کنترل ورژن های مختلف: Git!
Git یک سیستم کنترل ورژن است (version control system) که توسعه دهندگان می توانند کد خود را به صورت همزمان و غیر همزمان ذخیره و مدیریت کنند. بهعنوان یک توسعه دهنده وب، تغییر مداوم کدتان اجتنابناپذیر است، به ویژه زمانیکه به صورت تیمی روی یک پروژه برنامه نویسی کار می کنید. بنابراین ابزاری مانند Git که به شما امکان میدهد این تغییرات را ردیابی کنید و در صورت لزوم تغییرات تازه ایجاد کنید، بسیار ارزشمند است.
Git همچنین کار با تیم های دیگر و مدیریت چندین پروژه را در یک زمان آسان تر می کند. Git آنقدر در دنیای توسعه وب به یک عنصر اصلی تبدیل شده است که در حال حاضر استفاده نکردن از آن واقعا بد تلقی می شود.
یکی دیگر از ابزارهای بسیار محبوب GitHub است، یک رابط ابری برای Git. اساساً این ابزار تمام عملکردهای کنترل نسخه Git را ارائه می دهد، اما همچنین دارای ویژگی های خاص خود مانند ردیابی اشکال، مدیریت کار و ویکی های پروژه است.
GitHub نه تنها میزبان منابع است. همچنین مجموعه ابزار جامعی را در اختیار توسعه دهندگان قرار می دهد و پیروی از بهترین شیوه های کدنویسی را آسان تر می کند. این مکان برای پروژه های منبع باز در نظر گرفته می شود و همچنین بستری را برای توسعه دهندگان وب فراهم می کند تا مهارت های خود را به نمایش بگذارند.
۴. چگونه یک توسعه دهنده وب شویم و چه مسیری را طی کنیم؟
یک شغل در دسته شغل توسعه وب برای هر توسعه دهنده وبی می تواند چالش برانگیز، از نظر مالی سودآور و همینطور از نظر امنیت شغلی چیزهای زیادی برای ارائه داشته باشد.
اداره آمار کار ۱۳ درصد رشد اشتغال برای توسعه دهندگان وب و ۲۲ درصد برای توسعه دهندگان نرم افزار را بین سال های ۲۰۲۰ تا ۲۰۳۰ پیش بینی می کند، بسیار سریعتر از میانگین! بیش از آن، توسعه دهنده وب بهعنوان ششمین عنوان شغلی برتر در فناوری بر اساس حقوق و نرخ اشتغال، نسبت به توسعه دهنده نرمافزار رتبه دوم را کسب کرد!
در زمان نگارش این مقاله، متوسط حقوق یک توسعه دهنده وب سنیور در ایران ۱۳۶ میلیون (در ایالات متحده ۷۰۸۶۳ دلار) در سال است. که این رقم تا ۶۰۰ میلیون تومان در سال نیز هست و وجود دارد. البته، حقوق و دستمزد بسته به موقعیت مکانی، تعداد سال تجربه کاری(سابقه کار) و مهارتهای خاصی که ارائه میکنید، متفاوت است. شکل زیر بازار کار برنامه نویس وب در آمریکا را بهتر به تصویر می کشد:
تصمیم شما برای اینکه جزو کدامیک از دسته های برنامه نویس ها باشید، می تواند به تعیین میانگین دستمزد تان کمک کند. اما برای شروع می توانید گام های زیر را طی کنید:
۱-۴ مهمترین گام پیش از ورود به شغل توسعه دهنده وب این است که: مسیر یادگیری خود را تعیین کنید
اولین قدم برای تبدیل شدن به یک توسعه دهنده وب، یادگیری زبان ها، کتابخانه ها و چارچوب های لازم است که در بخش ۳ به صورت مفصل در مورد آنها صحبت کردیم. کافی است نسبت به علاقه و اهدافی که دارید یکی را انتخاب کنید و سریعتر کار را شروع کنید.
همچنین باید با برخی از ابزارهای ذکر شده و همچنین برخی اصطلاحات رایج نیز آشنا شوید(که به بسیاری از آنها در همین راهنما اشاره کردیم). برای یک مقدمه مبتدی، با این ۵۰ کلمه کلیدی توسعه وب(۵۰ web development buzzwords) شروع کنید که همه برنامه نویسان نوپا باید بدانند.
از نظر زبانهایی که یاد میگیرید، همه چیز به این بستگی دارد که میخواهید روی فرانتاند، بکاند یا توسعه فول استک تمرکز کنید. صرف نظر از این، همه توسعه دهندگان وب باید در HTML، CSS و جاوا اسکریپت مهارت داشته باشند، به همین دلیل است که اکثر برنامه های توسعه وب یا مهندسی نرم افزار آنها را در برنامه درسی خود قرار می دهند.
اساساً بهتر است با یادگیری این سه زبان شروع کنید. اگر علاقه مند به تبدیل شدن به یک توسعه دهنده وب هستید، می توانید یک Task کوتاه ۷ روزه و رایگان گلرن را نیز امتحان کنید.
خلاصه ای از مقاله
وظیفه توسعه دهنده فرانت اند، کدنویسی قسمت فرانت اند یک وب سایت یا اپلیکیشن است. یعنی بخشی از وب سایت که کاربر می بیند و با آن ارتباط برقرار می کند. آنها داده های بک اند را می گیرند و آن را به چیزی تبدیل می کنند که برای کاربر، به راحتی قابل درک، از نظر بصری دلپذیر و جذاب و کاملاً کاربردی باشد. آنها این کار را از طریق طرح های ارائه شده توسط طراح وب انجام می دهند و آنها را با استفاده از HTML، جاوا اسکریپت و CSS زنده می کنند (در ادامه در مورد آنها بیشتر توضیح خواهیم داد).
قسمت بکاند اساساً مغز متفکر یک وب سایت است. بنابراین، یک توسعه دهنده بک اند، مسئول ساخت و نگهداری فناوری مورد نیاز برای تامین قدرت و عملکرد درست در سمت فرانتاند است که از سه بخش تشکیل شده است: یک سرور، یک برنامه کاربردی و حداقل یک پایگاه داده.
کدی که توسعهدهندگان بکاند ایجاد میکنند تضمین میکند که هر چیزی که توسعه دهنده فرانتاند میسازد کاملاً کاربردی است و این وظیفه توسعه دهنده بکاند است که مطمئن شود سرور، برنامه و پایگاه داده همه به خوبی با یکدیگر ارتباط برقرار میکنند.
یک توسعه دهنده فول استک کسی است که فناوری های هر دو بخش فرانت اند و بک اند را می فهمد، و میتواند در هر دو قسمت کار کند. در هر مرحله از فرآیند توسعه وب متخصص هستند، به این معنی که به خوبی به مجهز منابع دانشی مورد نیاز تجهیز شده اند، و حتی می توانند پروژه را با استراتژی و بهترین شیوه ها هدایت کنند.
اکثر توسعه دهندگان فول استک تجربه چندین ساله خود را در نقش های مختلف جمع آوری کرده اند که به آنها پشتوانه ای محکم در کل طیف توسعه وب می دهد.