تفاوت بین زبان‌های HTML و CSS

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

تفاوت بین HTML و CSS

بطور ساده و مختصر (HTML (Hypertext Markup Language یک زبان نشانه‌گذاری سمت کاربر می‌باشد که بر اساس تعدادی از tagها (برچسب‌ها) شکل گرفته است. HTML پایه‌ترین و مهم‌ترین بلوک سازنده‌ای است که برای ساخت یک صفحه وب به آن نیاز دارید و تمام زبان‌های برنامه‌نویسی تحت وب به آن وابسته هستند. از آنجایی که HTML فقط تشکیل دهنده اجزاء یک سایت می‌باشد و از فرم و شکل خاصی برخوردار نیست شما با استفاده از (CSS (Cascading Style Sheets قادر به ارائه زیباتر و قابل فهم‌تر یک صفحه وب می‌باشید. در حقیقت CSS مشخص می‌کند که هر عنصر HTML برروی صفحه نمایش چطور ظاهر شود. برخی از قابلیت‌های CSS عبارتند از تایین فونت، رنگ پیش زمینه و پس زمینه، فاصله‌ها، عکس پس زمینه، چپ چین/راست چین بودن سایت و غیره می‌باشد.

تعدادی از مزایا و معایب هر دو زبان:

مزایا HTML:

  • یادگیری آسان
  • استفاده رایگان و بدون لایسنس
  • تفسیر درست توسط مرورگرها
  • پشتیبانی از چندین زبان
  • پشتیبانی از چندین پلتفرم

معایب HTML:

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

مزایا CSS:

  • طیف گسترده‌ای از attributeها نسبت به HTML
  • بهبود بخشیدن به سرعت وب سایت و زمان بارگذاری کمتر برای صفحات وب
  • سازگار با دستگاه‌های مختلف
  • نگه‌داری آسان
  • ارائه فرمت و استایل بهتر نسبت به HTML

معایب CSS:

  • دیده شدن بی نظمی و پیچیدگی در کد نوشته شده
  • یک سیستم مبتنی بر متن و عدم وجود امنیت درونی
  • واریانس عملکرد بین دو مرورگر

الگوریتم: پشت صحنه‌ی زندگی ما

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

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

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

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

تاریخچه الگوریتم
کلمه “الگوریتم” ممکن است برای بعضی افراد جدید باشد، محمد بن موسی خوارزمی در قرن سوم هجری علمی را صورت بندی و تدوین کرد که آن را الجبر و المقابله نامید. او به نام «پدر جبر» شناخته شده بود، یک منجم، دانشمند و ریاضیدان ایرانی بود که کتابش در قرن ۱۲ میلادی به لاتین ترجمه شد، جایی که نام وی به «الگوریتمی» ترجمه شد.

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

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

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

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

انواع مختلف الگوریتم
الگوریتم تقسیم و حل (Divide and Conquer)

یک الگوریتم تقسیم و حل از طریق تفکیک یک مسئله به دو یا چند زیرمسئله از یک نوع (یا انواع وابسته به هم)، به صورت بازگشتی، کار می‌کند. این تفکیک تا زمانی ادامه می‌یابد که زیرمسئله‌های حاصله به میزان کافی ساده شده باشند تا بتوان آن‌ها را مستقیماً حل کرد. جواب مسئله اصلی از ترکیب جواب‌های به دست آمده برای زیر مسئله‌ها به دست می‌آید.

الگوریتم کاهش و حل (Decrease and Conquer)

شما ممکن است بپرسید “آیا تفاوتی بین Divide and Conquer و Decrease and Conquer وجود دارد؟” خب، پاسخ بله است. در حالی که Divide and Conquer به مقادیر کوچک‌تر تقسیم می‌شود، الگوریتم Decrease and Conquer، مشکل را به جای تقسیم آن کاهش می‌دهد. مشکل را به یک نمونه کوچکتر از مشکل اصلی تقلیل می‌دهد. هنگامی که حل شود، نمونه کوچکتر برای حل مشکل اصلی گسترش می‌یابد.

الگوریتم حریصانه (Greedy)

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

الگوریتم جستجوی جامع (Brute Force Search)

روشی بدیهی در عین حال بسیار کلی برای حل مسئله می‌باشد. این روش شمارش نظام‌مند تمام نامزدهای ممکن برای حل و چک کردن اینکه آیا هر یک از نامزدها قادر به حل کردن شرط مسئله هستند یا خیر را بر عهده دارد. جستجو به روش brute-force به سادگی قابل پیاده‌سازی می‌باشد و همیشه جواب مسئله را در صورت وجود می‌یابد. با این حال، به دلیل اینکه هزینه‌های آن متناسب با تعداد نامزدهای حل مسئله است، استفاده از آن در بسیاری از مسائل عملی، که تعداد نامزدهای حل مسئله تمایل به رشد بسیار سریع با افزایش اندازه مسئله را دارد، امکانپذیر نمی‌باشد.

الگوریتم پس‌گرد (Backtracking)

روش پس‌گرد یکی از شیوه‌های کلی جستجوی فضای حالت برای حل مسائل ترکیبیاتی است. این شیوه، تمام ترکیب‌های ممکن را بررسی می‌کند تا یک جواب پیدا کند یا تمام جواب‌های ممکن را شمارش کند. تنها مزیت روش پسگرد در این است که می‌توان حالت‌هایی را بدون آنکه صریحاً بررسی شوند، با در نظر گرفتن ویژگی‌های مسئله، کنار گذاشت.

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

ایجاد یک پورتفولیو قوی به عنوان یک توسعه دهنده وب

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

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

اجزاء تشکیل دهنده یک پورتفولیو
پورتفولیو در تمام اشکال و اندازه‌ها قابل ارائه است، اما حداقل باید نمونه پورتفولیو شما شامل بخش‌‌های زیر باشد:

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

بخش پروژه: بخش پروژه دلیل اصلی شما برای داشتن یک پورتفولیو است. بنابراین شما بهترین نمایش خود را در این بخش باید ارائه دهید. بر خلاف رزومه شما می‌توانید فهرست کامل پروژه‌های برنامه‌نویسی خود را نمایش دهید. استخدام کنندگان را با پروژه‌های خود با استفاده از دمو‌های ویدیویی، GIFS و یا تصاویر مختلف شگفت زده کنید.

بخش تماس با من: هر پورتفولیو موفق دارای یک قسمت است که بیننده می‌تواند با شما تماس بگیرد. حداقل، مطمئن شوید که LinkedIn، GitHub، و آدرس ایمیل شما در دسترس باشند.

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

علاوه بر اجزای بالا، پورتفولیو قوی یک توسعه دهنده باید موارد زیر را نیز داشته باشد:

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

آدرس URL سایت: همانطور که نمونه کارهایتان بیان سبک شخصی شما است، باید URL شما نیز همینطور حرفه‌ای باشد. بسیار توصیه می‌شود دامنه سفارشی خود را خریداری کنید. برخی از سایت‌های فروش دامنه در آخر این پست در بخش منابع آورده شده است.

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

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

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

هاست کردن پورتفولیو در صفحه Github
خرید دامنه از سایت‌های فروش دامنه مانند ایران سرور، هاست ایران و غیره
گرفتن عکس از صفحه اسکرین و تبدیل آن به GIF
قالب‌های پورتفولیو

Create A product first!

Create a product first please!