{
    "componentChunkName": "component---src-templates-post-js",
    "path": "/egghead-vs-udemy",
    "result": {"data":{"site":{"siteMetadata":{"title":"your friend Joel's digital garden","description":"Articles and notes from a collaborator at egghead.io. Musings on software, business, and life from a skilled virtual assistant.","author":{"name":"Joel Hooks"},"keywords":["Video Blogger"]}},"mdx":{"excerpt":"There are a two facts that we understand very well at egghead: Constant learning is an essential habit for professional web developers. There's not enough time in the freaking day. 😱 Some of us are lucky enough to work at companies that…","fields":{"github":"https://github.com/joelhooks/joelhooks-com/tree/master/content/blog/2020-04-29--egghead-vs-udemy-for-professional-web-developers~~s1pNaMFi6/index.mdx"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"id\": \"s1pNaMFi6\",\n  \"slug\": \"egghead-vs-udemy\",\n  \"date\": \"2020-04-29T00:00:00.000Z\",\n  \"title\": \"egghead vs Udemy for professional web developers\",\n  \"published\": false\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"There are a two facts that we understand very well at egghead:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Constant learning is an essential habit for professional web developers.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"There's not enough time in the freaking day. \\uD83D\\uDE31\")), mdx(\"p\", null, \"Some of us are lucky enough to work at companies that provide us with space and freedom to pursue continued education, but even when that is the case time is still scarce and precious.\"), mdx(\"p\", null, \"egghead was built from the ground up to make the habit of learning and staying current as a modern web developer as painless and efficient as possible. This doesn't mean that you get out of doing the actual work.\"), mdx(\"p\", null, \"We can't learn for you!\"), mdx(\"p\", null, \"What we can do is:\"), mdx(\"p\", null, \"Curate the best and most useful tools and techniques for modern web development\\nDesign curriculum for professional developers by professional developers\\nAggressively remove fluff and BS\\nLayer high quality learning resources on top of the core materials\\nProvide access to a vibrant community of practice\\nWhen people say \\\"egghead style\\\" it doesn't mean that the learning material is short or lacks depth.\"), mdx(\"p\", null, \"On the contrary!\"), mdx(\"p\", null, \"egghead style is concise, in depth, well thought out, focused, to the point, and designed to help you learn what you need to know so you can thrive as a professional web developer and still have a life outside of programming.\"), mdx(\"p\", null, \"There are a lot of options out there for learning. You can certainly buy an 80-hour (\\uD83E\\uDD74) course on \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.troyhunt.com/the-piracy-paradox-at-udemy/\"\n  }, \"Udemy\"), \" (I heard it's on sale this week for $9.99 \\uD83D\\uDE02), but do you have 80-freaking-hours of spare time to learn something new?\"), mdx(\"p\", null, \"Do you have the time and energy to wade through some \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"amateur hour learning material\"), \" that doesn't give a fuck about you or your time outside of work?\"), mdx(\"p\", null, \"Nope.\"), mdx(\"p\", null, \"80-hour courses aside, most learning sites START delivering courses at a minimum of the 4-hour mark.\"), mdx(\"p\", null, \"I don't know about you, but for me it's really difficult to find a spare hour, much less 4.\"), mdx(\"p\", null, \"You get the idea.\"), mdx(\"p\", null, \"At egghead, \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"we leave all of the BS on the cutting room floor.\")), mdx(\"p\", null, \"egghead courses range from 30 minutes to 2 hours.\"), mdx(\"p\", null, \"egghead courses are \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"designed\"), \" to be concise while still being in-depth.\"), mdx(\"p\", null, \"egghead courses don't waste your time or feel the need to spoon feed you.\"), mdx(\"p\", null, \"egghead courses assume you are both smart and capable.\"), mdx(\"p\", null, \"egghead courses are created for experienced developers and don't remediate basics in every lesson.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"egghead courses respect \", mdx(\"em\", {\n    parentName: \"strong\"\n  }, \"you\"), \", the professional working developer, and your precious time set aside for educating yourself and achieving your goals.\")), mdx(\"p\", null, \"If you're like me, you probably want to see proof. So today I'm offering you the chance to learn something new and get a feel for what level of quality, depth, and utility you can expect from egghead courses.\"), mdx(\"p\", null, \"Have you used XState?\"), mdx(\"p\", null, \"It's the single most universally useful JavaScript library since Lodash.\"), mdx(\"p\", null, \"It takes the pain of complex state management and \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"crushes it into a pile of fucking dust.\")), mdx(\"p\", null, \"State management is one of those things that is universally painful. Front-end, back-end, wherever, state is really challenging. It can get particularly sticky in complex UI interactions where lots of things are going on and the user is clicking all over the screen with no seeming rhyme or reason \\uD83D\\uDE2D\"), mdx(\"p\", null, \"XState is a finite state machine. It uses statecharts, which have been around largely unchanged as a spec since 1988. That's a long time when the modern web feels like we get a new framework every 6-months or so.\"), mdx(\"p\", null, \"The reason XState can use a spec that is 30 years old is because it is extremely solid and mathematically correct. Math isn't my strong suit personally, but don't worry, you don't have to be a math wiz to use XState.\"), mdx(\"p\", null, \"It \\\"just works\\\".\"), mdx(\"p\", null, \"Before you check out the course I wanted to share something with you that I think is very special, and unique to egghead.\"), mdx(\"p\", null, \"Every course we produce has meticulously crafted developer enhanced transcripts.\"), mdx(\"p\", null, \"We take the hand-transcribed files and take them a step further with rich formatting, code snippets, images, and links.\"), mdx(\"p\", null, \"This means \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"you can read egghead courses like a book.\"), \" \\uD83D\\uDE33\"), mdx(\"p\", null, \"This is like watching videos on 4x.\"), mdx(\"p\", null, \"You can skim for concepts and relevance at lightening speed and quickly evaluate if you want/need to watch the screencasts. It allows you to learn quickly if a solution is right for you and also serves as a valuable companion as you watch the lessons and follow along in code.\"), mdx(\"p\", null, \"Enhanced transcripts are for member's only, so if you want them for every course you'll need to join, but I thought you might like a preview so...\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://res.cloudinary.com/dg3gyk0gu/image/upload/v1588177683/enhanced-transcripts/Introduction_to_State_Machines_Using_XState.pdf\"\n  }, \"Here's the PDF of the enhanced transcripts for Kyle Shevlin's badass Introduction to State Machines Using XState.\")), mdx(\"p\", null, \"We also flipped the switch and made Kyle's course a free community resource, so you can watch the videos too. It clocks in at under an hour and is an eye-opening lesson in your new favorite tool.\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://egghead.io/courses/introduction-to-state-machines-using-xstate\"\n  }, \"Click here to watch the course.\")), mdx(\"p\", null, \"You can \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://egghead.io/sale\"\n  }, \"join egghead here.\")), mdx(\"p\", null, \"Let me know what you think \\uD83D\\uDC47\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"egghead vs Udemy for professional web developers","date":"April 29, 2020","banner":null,"slug":"egghead-vs-udemy","keywords":null}}},"pageContext":{"id":"332b5c9c-0fe6-5803-8718-0951e8cb31b5","prev":{"id":"dd58c572-1672-5cf7-aaad-b9ff8dbb3164","parent":{"name":"index","sourceInstanceName":"blog"},"excerpt":"We unlocked Erin Doyle's amazing course on accessibility as a Community Resource on egghead. This means that it is  free to view for every web developer on the planet  with a device and an internet connection. This is part of our long term goal of…","fields":{"title":"Start Shipping More Accessible React Applications Today with Erin Doyle","slug":"accessible-react-applications","date":"2020-05-04T00:00:00.000Z"}},"next":{"id":"e506b389-eb2c-5fed-b48e-40436fad6fe4","parent":{"name":"index","sourceInstanceName":"blog"},"excerpt":"Broadcasting on the internet is here to stay. More and more we are seeing people use sites like Twitch and Youtube to deliver real-time video and audio to connect with their audience. Increasingly over the years as a remote worker video chats have…","fields":{"title":"Using a dSLR as a Webcam for Live Streaming","slug":"dSLR-webcam-for-live-streaming","date":"2020-04-29T00:00:00.000Z"}}}},
    "staticQueryHashes": ["1045846374"]}