• DELETE FROM KEYWORDS WHERE ID_DOMAINE=33972871
  • DoneDoneDone

    URL:hackr.io

    Cache-Control: no-cache, private
    Connection: keep-alive
    Date: Thu, 23 Jan 2025 13:29:15 GMT
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=UTF-8
    Server: nginx/1.27.2
    Set-Cookie: pageview_count=1; expires=Thu, 30 Jan 2025 13:29:14 GMT; Max-Age=604800; path=/
    Set-Cookie: is_signed=0; path=/
    Set-Cookie: XSRF-TOKEN=eyJpdiI6IitXZnR6dVFYNzhIMExEMzFNU0xwK3c9PSIsInZhbHVlIjoiamZGNHMrWEZySHJpYWN6SjY1eXlHVTBicUJyL09rYmxFNWdvbktnU2JNZ0VRaFhvS3BBNExoQUxmZ2FhSUllM0hGZy8yYUVUcHFDdmNKdVJxZ2U4RC9MREpZL3U4MnF6dVF5NWZhVXdjeHpra25KTXN0RHREQWVsME41UXRhU0wiLCJtYWMiOiI3MzYwNjFiYWYwNDE0YjkwNTNhNDE4MTc5MDYwMDcwMDUzMGUyM2MzMDNkNDhmNDg2NzQ2ZTdjOThhMjFiZGM2IiwidGFnIjoiIn0%3D; expires=Thu, 23-Jan-2025 15:29:15 GMT; Max-Age=7200; path=/; domain=.hackr.io; secure; samesite=none
    Set-Cookie: hackr_session=eyJpdiI6InRWQjhaR1ZtekorVVNFUmhoc1ZvMWc9PSIsInZhbHVlIjoiYVZSQUt2RmtVYWt5bzRNT3p0RWlaT3lUakhSb2lQMkd1L0ZIbzFLdW1ENFNvSzNJRGF6RlkwOG1wM2ZGOEZxU1NnZ3FNVVpMY2F3ZWx0Ky9TUlNvY1phQVVHaDJUalRwVHNPQU16QUFKZzlnaFlLMm5rMzlxb3lkcVoxN0g1VEoiLCJtYWMiOiI4OGU0ODIxYTM4ZGRmZTc3NTVmMTA1OTJjZGQxNGExNjVjY2MwMzFiN2FhMzUwZjdiYmQxZTlmZDg1NjdlMDA5IiwidGFnIjoiIn0%3D; expires=Thu, 23-Jan-2025 15:29:15 GMT; Max-Age=7200; path=/; domain=.hackr.io; secure; httponly; samesite=none
    Vary: Accept-Encoding
    Vary: Origin
    X-Frame-Options: DENY
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=31536000; includeSubDomains
    Referrer-Policy: strict-origin-when-cross-origin
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    X-Frame-Options: SAMEORIGIN
    Strict-Transport-Security: max-age=63072000;
    
    
    Status => 200
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="csrf-token" content="xdT15X8wRzcmHEFGikQBewigmCVSaYcK67mAcTVA"> <title>Find the best online Programming courses and Tutorials - Hackr.io</title>
    <meta name="description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta name="keywords" content="">
    <meta itemprop="name" content="Find the best online Programming courses and Tutorials - Hackr.io">
    <meta itemprop="description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta itemprop="image" content="https://hackr.io/sites/programming/google_image">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:creator" content="@hackrio_">
    <meta name="twitter:description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta name="twitter:image" content="https://hackr.io/assets/images/programming-images/programming-facebook_og.jpg">
    <meta name="twitter:image:alt" content="Find the best online Programming courses and Tutorials - Hackr.io"> <meta property="og:title" content="Find the best online Programming courses and Tutorials - Hackr.io" />
    <meta property="og:description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc." />
    <meta property="og:type" content="website" />
    <meta property="og:site_name" content="Hackr.io" />
    <meta property="og:fb:app_id" content="657056352126686" />
    <meta property="og:url" content="https://hackr.io" />
    <meta property="og:image" content="https://hackr.io/sites/programming/og_image" />
     <meta name="twitter:site" content="@hackrio_" />
    <meta name="twitter:title" content="Find the best online Programming courses and Tutorials - Hackr.io" />  <link rel="icon" type="image/png" href="https://hackr.io/assets/images/programming-images/programming-favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="https://hackr.io/assets/images/programming-images/programming-favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="https://hackr.io/manifest.json?v=1.1"> <link rel="apple-touch-icon" sizes="180x180" href="https://hackr.io/assets/images/programming-images/programming-apple-touch-icon.png"> <link rel="apple-touch-icon-precomposed apple-touch-icon" href="https://hackr.io/assets/images/programming-images/programming-apple-touch-icon-precomposed.png"> <link rel="mask-icon" href="https://hackr.io/assets/images/programming-images/programming-safari-pinned-tab.svg" color="#5bbad5">  <link rel="preload" href="/assets/fonts/Inter-Regular.woff2" as="font" crossorigin /> <link rel="preload" href="/assets/fonts/Futura-500.woff2" as="font" crossorigin /> <link rel="preconnect" href="https://cdn.hackr.io" />  <link rel="alternate" href="https://hackr.io/programming/rss.xml" title="Latest Programming Tutorials" type="application/rss+xml" />   <style> /* Fix External Components CSS */ .adthrive-footer-1 iframe { margin: auto; } /* Fix Ads appearing on left side instead of centered */ .adthrive-ad{ display: flex; justify-content: center; } </style>  <style type="text/css">*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}@font-face{font-display:swap;font-family:Futura;font-weight:500;src:url(/assets/fonts/Futura-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Futura;font-weight:700;src:url(/assets/fonts/Futura-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:400;src:url(/assets/fonts/Inter-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:500;src:url(/assets/fonts/Inter-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:600;src:url(/assets/fonts/Inter-SemiBold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:700;src:url(/assets/fonts/Inter-Bold.woff2) format("woff2")}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:24px;padding-left:24px}@media (min-width:560px){.container{max-width:560px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:992px){.container{max-width:992px}}@media (min-width:1440px){.container{max-width:1440px}}.error{color:#ff3d0f;border:1px solid #ff3d0f;background-color:#ffd6cc;margin-bottom:16px;border-radius:.25rem;padding:.5rem}.success{color:#3bb12c;border:1px solid #3bb12c;background-color:#c7f0c2;margin-bottom:16px;border-radius:.25rem;padding:.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.bg-code{background-image:url(https://cdn.hackr.io/assets/images/bg.png)}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}</style>    <script type="module" src="https://hackr.io/build/assets/homepage.5d9f5e77.js"></script> <script>
    	(async () => {
    		while (typeof(jobbio_display) != 'object') {
    			await new Promise(resolve => setTimeout(resolve, 100));
    		}
    		jobbio_display.widget({
    			slug: 'hackr-jobs-1',
    			container: 'widget-display',
    			style: 'horizontal',
    			count: 4,
    			type: 'multiple',
    			content: 'jobs',
    			searchTerm: '',
    		});
    	})();
    </script>
      <meta name="am-api-token" content="DbyJ3SXLe">  <style>
    	.jobbioapp .v1_6 .multiple.horizontal .list {
    		justify-content: center;
    	}
    #_fbn_._bsa_hide ._bsa_fancybar, #_fbn_ ._bsa_fancybar{
        top: 0px !important;
        position: relative !important;
    }
    #gtx-trans{
    display: none !important;
    }
    .article-content p, .article-content li{
    font-size:20px !important;
    }
    
    .article-content iframe[src*="youtube"], .article-content iframe[src*="youtu.be"] {
      width: 100%;
    }
    p.preview-text{ display:none;}
    
    #root .header-container {
    	background: #ffffff;
    }
    
    :root {
    	color: light-dark(#213547, #ffffffde);
    	background-color: light-dark(#fff, #242424);
    }
    a:hover {
    	color: light-dark(#747bff,#d4d5e0);
    }
    button {
    	background-color: light-dark( #f9f9f9,#f9f9f9);
    }
    .Mui-selected {
    	color: light-dark(#1976d2, #d4d5e0) !important;
    }
    .MuiButtonBase-root{
    	color: light-dark(#0000008a,#d4d5e0) !important;
    }
    .MuiInputBase-root{
    	color: light-dark(#000000de, #d4d5e0) !important;
    }
    .MuiMenu-paper{
    	color: light-dark(#000000de, #d4d5e0) !important;
    	background-color: light-dark(#ffffff, #242424) !important;
    }
    
    
    </style>  <script>
    if(window.location.href.indexOf("tutorials/learn-") != -1){
     (async () => {
        while (!window.hasOwnProperty("adthrive")) {
          await new Promise(resolve => setTimeout(resolve, 100));
        }
        window.adthrive.cmd.push(function() {
          window.adthrive.disablePlaylistPlayers();
        });
      })();
    }
    </script>  <script>
    if(window.location.pathname == "/tutorials/learn-artificial-intelligence-ai"){
      (async () => {
        while (!window.hasOwnProperty("adthrive")) {
          await new Promise(resolve => setTimeout(resolve, 100));
        }
        window.adthrive.cmd.push(function() {
          window.adthrive.disableAds();
          window.adthrive.disablePlaylistPlayers();
        });
      })();
    }
    </script>  </head> 
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="csrf-token" content="xdT15X8wRzcmHEFGikQBewigmCVSaYcK67mAcTVA"> <title>Find the best online Programming courses and Tutorials - Hackr.io</title>
    <meta name="description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta name="keywords" content="">
    <meta itemprop="name" content="Find the best online Programming courses and Tutorials - Hackr.io">
    <meta itemprop="description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta itemprop="image" content="https://hackr.io/sites/programming/google_image">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:creator" content="@hackrio_">
    <meta name="twitter:description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.">
    <meta name="twitter:image" content="https://hackr.io/assets/images/programming-images/programming-facebook_og.jpg">
    <meta name="twitter:image:alt" content="Find the best online Programming courses and Tutorials - Hackr.io"> <meta property="og:title" content="Find the best online Programming courses and Tutorials - Hackr.io" />
    <meta property="og:description" content="Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses &amp; tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc." />
    <meta property="og:type" content="website" />
    <meta property="og:site_name" content="Hackr.io" />
    <meta property="og:fb:app_id" content="657056352126686" />
    <meta property="og:url" content="https://hackr.io" />
    <meta property="og:image" content="https://hackr.io/sites/programming/og_image" />
     <meta name="twitter:site" content="@hackrio_" />
    <meta name="twitter:title" content="Find the best online Programming courses and Tutorials - Hackr.io" />  <link rel="icon" type="image/png" href="https://hackr.io/assets/images/programming-images/programming-favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="https://hackr.io/assets/images/programming-images/programming-favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="https://hackr.io/manifest.json?v=1.1"> <link rel="apple-touch-icon" sizes="180x180" href="https://hackr.io/assets/images/programming-images/programming-apple-touch-icon.png"> <link rel="apple-touch-icon-precomposed apple-touch-icon" href="https://hackr.io/assets/images/programming-images/programming-apple-touch-icon-precomposed.png"> <link rel="mask-icon" href="https://hackr.io/assets/images/programming-images/programming-safari-pinned-tab.svg" color="#5bbad5">  <link rel="preload" href="/assets/fonts/Inter-Regular.woff2" as="font" crossorigin /> <link rel="preload" href="/assets/fonts/Futura-500.woff2" as="font" crossorigin /> <link rel="preconnect" href="https://cdn.hackr.io" />  <link rel="alternate" href="https://hackr.io/programming/rss.xml" title="Latest Programming Tutorials" type="application/rss+xml" />   <style> /* Fix External Components CSS */ .adthrive-footer-1 iframe { margin: auto; } /* Fix Ads appearing on left side instead of centered */ .adthrive-ad{ display: flex; justify-content: center; } </style>  <style type="text/css">*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}@font-face{font-display:swap;font-family:Futura;font-weight:500;src:url(/assets/fonts/Futura-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Futura;font-weight:700;src:url(/assets/fonts/Futura-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:400;src:url(/assets/fonts/Inter-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:500;src:url(/assets/fonts/Inter-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:600;src:url(/assets/fonts/Inter-SemiBold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-weight:700;src:url(/assets/fonts/Inter-Bold.woff2) format("woff2")}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:24px;padding-left:24px}@media (min-width:560px){.container{max-width:560px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:992px){.container{max-width:992px}}@media (min-width:1440px){.container{max-width:1440px}}.error{color:#ff3d0f;border:1px solid #ff3d0f;background-color:#ffd6cc;margin-bottom:16px;border-radius:.25rem;padding:.5rem}.success{color:#3bb12c;border:1px solid #3bb12c;background-color:#c7f0c2;margin-bottom:16px;border-radius:.25rem;padding:.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.bg-code{background-image:url(https://cdn.hackr.io/assets/images/bg.png)}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}h1,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input{font-family:inherit;-webkit-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1,h3,h4,h5,p{margin:0}fieldset{margin:0;padding:0}ul{list-style:none;margin:0;padding:0}input::-webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}iframe,img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:16px}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:24px}.mb-40{margin-bottom:40px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mt-\[-90px\]{margin-top:-90px}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.hidden{display:none}.h-16{height:16px}.h-24{height:24px}.h-\[320px\]{height:320px}.max-h-\[270px\]{max-height:270px}.w-16{width:16px}.w-24{width:24px}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-120{gap:120px}.gap-16{gap:16px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-grey-3{--tw-border-opacity:1;border-color:rgb(202 213 225 / var(--tw-border-opacity))}.border-grey-6{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-hackr-blue{--tw-border-opacity:1;border-color:rgb(0 57 250 / var(--tw-border-opacity))}.bg-hackr-blue{--tw-bg-opacity:1;background-color:rgb(0 57 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-hackr-black{fill:#13151c}.fill-hackr-blue{fill:#0039fa}.p-8{padding:8px}.px-24{padding-left:24px;padding-right:24px}.py-16{padding-top:16px;padding-bottom:16px}.py-24{padding-top:24px;padding-bottom:24px}.py-48{padding-top:48px;padding-bottom:48px}.py-8{padding-top:8px;padding-bottom:8px}.pb-48{padding-bottom:48px}.pl-48{padding-left:48px}.pt-40{padding-top:40px}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:Futura,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-h3{font-size:24px;line-height:32px;font-weight:500}.text-h4{font-size:20px;line-height:24px;font-weight:500}.text-h5{font-size:16px;line-height:24px;font-weight:500}.text-p14{font-size:14px;line-height:24px;font-weight:400}.text-p16{font-size:16px;line-height:24px;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.text-hackr-blue{--tw-text-opacity:1;color:rgb(0 57 250 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}@media (min-width:560px){.sm\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.sm\:gap-32{gap:32px}}@media (min-width:768px){.md\:text-h1-medium{font-size:40px;line-height:56px;font-weight:500}}@media (min-width:992px){.lg\:mt-0{margin-top:0}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:hidden{display:none}.lg\:gap-16{gap:16px}.lg\:px-120{padding-left:120px;padding-right:120px}.lg\:px-80{padding-left:80px;padding-right:80px}.lg\:pl-24{padding-left:24px}}@media (min-width:1440px){.xl\:inline-block{display:inline-block}.xl\:hidden{display:none}.xl\:px-120{padding-left:120px;padding-right:120px}.xl\:py-40{padding-top:40px;padding-bottom:40px}}</style>    <script type="module" src="https://hackr.io/build/assets/homepage.5d9f5e77.js"></script> <script>
    	(async () => {
    		while (typeof(jobbio_display) != 'object') {
    			await new Promise(resolve => setTimeout(resolve, 100));
    		}
    		jobbio_display.widget({
    			slug: 'hackr-jobs-1',
    			container: 'widget-display',
    			style: 'horizontal',
    			count: 4,
    			type: 'multiple',
    			content: 'jobs',
    			searchTerm: '',
    		});
    	})();
    </script>
      <meta name="am-api-token" content="DbyJ3SXLe">  <style>
    	.jobbioapp .v1_6 .multiple.horizontal .list {
    		justify-content: center;
    	}
    #_fbn_._bsa_hide ._bsa_fancybar, #_fbn_ ._bsa_fancybar{
        top: 0px !important;
        position: relative !important;
    }
    #gtx-trans{
    display: none !important;
    }
    .article-content p, .article-content li{
    font-size:20px !important;
    }
    
    .article-content iframe[src*="youtube"], .article-content iframe[src*="youtu.be"] {
      width: 100%;
    }
    p.preview-text{ display:none;}
    
    #root .header-container {
    	background: #ffffff;
    }
    
    :root {
    	color: light-dark(#213547, #ffffffde);
    	background-color: light-dark(#fff, #242424);
    }
    a:hover {
    	color: light-dark(#747bff,#d4d5e0);
    }
    button {
    	background-color: light-dark( #f9f9f9,#f9f9f9);
    }
    .Mui-selected {
    	color: light-dark(#1976d2, #d4d5e0) !important;
    }
    .MuiButtonBase-root{
    	color: light-dark(#0000008a,#d4d5e0) !important;
    }
    .MuiInputBase-root{
    	color: light-dark(#000000de, #d4d5e0) !important;
    }
    .MuiMenu-paper{
    	color: light-dark(#000000de, #d4d5e0) !important;
    	background-color: light-dark(#ffffff, #242424) !important;
    }
    
    
    </style>  <script>
    if(window.location.href.indexOf("tutorials/learn-") != -1){
     (async () => {
        while (!window.hasOwnProperty("adthrive")) {
          await new Promise(resolve => setTimeout(resolve, 100));
        }
        window.adthrive.cmd.push(function() {
          window.adthrive.disablePlaylistPlayers();
        });
      })();
    }
    </script>  <script>
    if(window.location.pathname == "/tutorials/learn-artificial-intelligence-ai"){
      (async () => {
        while (!window.hasOwnProperty("adthrive")) {
          await new Promise(resolve => setTimeout(resolve, 100));
        }
        window.adthrive.cmd.push(function() {
          window.adthrive.disableAds();
          window.adthrive.disablePlaylistPlayers();
        });
      })();
    }
    </script>  </head> 

    Find the best online Programming courses and Tutorials - Hackr.io

    Recherche META Description de la page

    Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses & tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.

    Recherche META Keywords de la page

    UPDATE DOMAINES SET server='nginx/1.27.2',redirection='',Status='200',err='',[TITRE]=N'Find the best online Programming courses and Tutorials - Hackr.io',[DESCRIPTION]=N'Google search shows you hundreds of Programming courses/tutorials, but Hackr.io tells you which is the best one. Find the best online courses & tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based, book, free, paid, for beginners, advanced, etc.',[KEYWORDS]=N'' WHERE id=33972871
  • 0

    Find the best online Programming courses and Tutorials - Hackr.io Google search shows you hundreds of Programming courses/tutorials but Hackr.io tells you which is the best one. Find the best online courses & tutorials recommended by the Programming community. Pick the most upvoted tutorials as per your learning style: video-based book free paid for beginners advanced etc.

  • 0. Find (4)
  • --------->0
  • 1. the (3)
  • --------->0
  • 2. best (4)
  • --------->0
  • 3. online (6)
  • --------->0
  • 4. Programming (11)
  • --------->0
  • 5. courses (7)
  • --------->0
  • 6. and (3)
  • --------->0
  • 7. Tutorials (9)
  • --------->0
  • 8. - (1)
  • --------->0
  • 9. Hackr.io (8)
  • --------->0
  • 10. Google (6)
  • --------->0
  • 11. search (6)
  • --------->0
  • 12. shows (5)
  • --------->0
  • 13. you (3)
  • --------->0
  • 14. hundreds (8)
  • --------->0
  • 15. of (2)
  • --------->0
  • 17. courses/tutorials (17)
  • --------->0
  • 19. but (3)
  • --------->0
  • 21. tells (5)
  • --------->0
  • 23. which (5)
  • --------->0
  • 24. is (2)
  • --------->0
  • 27. one (3)
  • --------->0
  • 33. &amp; (5)
  • --------->0
  • 35. recommended (11)
  • --------->0
  • 36. by (2)
  • --------->0
  • 39. community (9)
  • --------->0
  • 40. Pick (4)
  • --------->0
  • 42. most (4)
  • --------->0
  • 43. upvoted (7)
  • --------->0
  • 45. as (2)
  • --------->0
  • 46. per (3)
  • --------->0
  • 47. your (4)
  • --------->0
  • 48. learning (8)
  • --------->0
  • 49. style: (6)
  • --------->0
  • 50. video-based (11)
  • --------->0
  • 52. book (4)
  • --------->0
  • 54. free (4)
  • --------->0
  • 56. paid (4)
  • --------->0
  • 58. for (3)
  • --------->0
  • 59. beginners (9)
  • --------->0
  • 61. advanced (8)
  • --------->0
  • 63. etc (3)
  • --------->0
    INSERT INTO KEYWORDS (keyword,id_domaine) VALUES (N'Find',33972871),(N'the',33972871),(N'best',33972871),(N'online',33972871),(N'Programming',33972871),(N'courses',33972871),(N'and',33972871),(N'Tutorials',33972871),(N'-',33972871),(N'Hackr.io',33972871),(N'Google',33972871),(N'search',33972871),(N'shows',33972871),(N'you',33972871),(N'hundreds',33972871),(N'of',33972871),(N'courses/tutorials',33972871),(N'but',33972871),(N'tells',33972871),(N'which',33972871),(N'is',33972871),(N'one',33972871),(N'&',33972871),(N'recommended',33972871),(N'by',33972871),(N'community',33972871),(N'Pick',33972871),(N'most',33972871),(N'upvoted',33972871),(N'as',33972871),(N'per',33972871),(N'your',33972871),(N'learning',33972871),(N'style:',33972871),(N'video-based',33972871),(N'book',33972871),(N'free',33972871),(N'paid',33972871),(N'for',33972871),(N'beginners',33972871),(N'advanced',33972871),(N'etc',33972871)