Open ice799 opened 5 years ago
Let me know what you think about these -- happy to discuss in more detail if you have questions about any of these.
I ran this list of topics by some friends, as well, and they all seemed to agree that this list of topics was pretty comprehensive for building and deploying more complex web apps.
Added a bit more context above and some project ideas, as well. Let me know if we should discuss this more.
Thank you @ice799 We reviewed the topics together and there were a lot of things that we weren't aware of, and we need to read more about it and discuss how to start with it. then we can get back to you if we have any further questions. We are looking forward for the CS topics.
Added some more project ideas and explanations for each section on why learning each set of topics is important and matters for web developers.
Hi:
After we met last week I spent some time thinking about different web dev related topics. Here's a list of things I came up with (I can make a separate issue for CS stuff next)... let me know what you think:
web dev topics:
advanced css
advanced JS / node
asset pipelines Why this is important: Asset pipelines help with versioning and optimizing assets. Versioning your assets (html, CSS, JS, PNGs, ...) is useful so that when those assets are cached on browsers, proxy servers, CDNs, etc the cache can be properly invalidated when updates to the assets are made. Also, most asset pipelines perform optimizations (like compression, minification, tree shaking, and more) to help reduce the size of the content sent to the client, which speeds up page loads time. In addition, using a CDN to serve your assets can greatly reduce page load time because CDNs help to move content from the original server (origin) out to servers much closer (physically) to the client -- this also helps to greatly improve page load times.
curl
against the URLs and check the headers returned by CloudFront.persistence / storage Why this is important: Understanding different data persistence methods (databases, S3, key-value stores) and their trade offs around complexity, fail-over, backup strategies, and management overhead will help you to choose the appropriate storage method for a particular use case. Most web-apps use more than one storage technology,
authentication Why this is important: Building secure, usable authentication systems is critical to building secure apps that users can actually use. Understanding how sessions, cookies, 2factor auth, etc work means you will be able to build web apps with BETTER authentication systems that actually work and won't get easily hacked.
APIs Why this is important: Building stable, usable APIs and knowing how to query them with graphql is foundational knowledge that all webapp developers should learn to master. You will need to use other REST APIs in your career and you will likely need to expose a REST API for a service you build, yourself.
misc web app concepts Why this is important: Understanding different web app architectures can help you become more effective when you look at a foreign code base you have never seen before or when evaluating how to build a new, greenfield project.
testing complex apps Why this is important: Fast tests are critically important for speeding up the developer feedback loop during iteration on webapps. If tests take too long, it makes working on the app more difficult and painful. Stable webapps have lots of tests and run their test suites automatically with every commit. Learning how to parallelize tests and speed them up is crucial to helping tests run faster.
development and deployment Why this is important: Learning how to deploy web apps is important if you want to learn more about devops and get your apps up and running. It is also important for engineers to know how the deployment process works so they can build better services that are easier to deploy, faster to recover, and easy to decouple.
security Why this is important: Building secure webapps is difficult, but important. You should be aware of different common attack vectors, how they are exploited, and how to fix them.
monitoring && alerting
advanced web app topics (probably not necessary for now)