OSP123 / post-grad-curriculum

A curriculum for additional learning for those graduating from the university-based coding programs.
89 stars 37 forks source link

Topics to Learn #3

Open OSP123 opened 7 years ago

OSP123 commented 7 years ago

Problem: Determining what topics are best for students once they graduate.

Possible Solutions:

  1. Diving deeper into existing technologies. For example, going into advanced JavaScript.
  2. Polling students on what they wished they would have learned after they graduated and building from there. This could take a bit, but it could lead to the most beneficial approach.
  3. Creating modules based on our experiences as developers.
DaC00P commented 7 years ago

Suggestion: Data Structures Deep Dive. How to use everything from Heaps to adaptive sorting algorithms to dynamic programming.

OSP123 commented 7 years ago

@DaC00P Also mentioned using existing resources for determining topics to becoming a software engineer. Resource mentioned by Coop was https://github.com/jwasham/coding-interview-university, which is great.

I also created a doc a while back when deciding towards an MS in CS: https://docs.google.com/document/d/1LmN6s54i87OG1pY2xszmfgpspDdbMpovE3XOQtqrIy8/edit?usp=sharing. Many resources in there are related to what Coop mentioned.

jaysonjphillips commented 7 years ago

Suggestions

Testing: Types and Strategies I think unit and integration testing are crucial topics post (if not pre but that's for another repo :)) graduation that students will need more and more of for being in the marketplace and also for differientation purposes (some places in the Bay more stringently screen for testing than others, for instance, but almost all these days have testing integrated and in their workflows).

DaC00P commented 7 years ago

+1 on teaching more TDD/testing in general. Also, basic networking may be something we want to cover?

OSP123 commented 7 years ago

Valid point on basic networking. Let me set up some issues for topics that are definitely going to be needed.

jaysonjphillips commented 7 years ago

Concurrency.

jaysonjphillips commented 7 years ago

Systems architecture (SOA, microservices, containers/VMs)

Really expanding upon what they're learning with node and express and talking about architecture design, introducing SOA concepts and paradigms, expanding concepts like SRP and even going into the CAP theorem, containers, etc.

jaysonjphillips commented 7 years ago

Basic Linux Administration

jaysonjphillips commented 7 years ago

Oh, HUGELY important: Level 1/Level 2 Web Accessibility (WCAG) Level 1 meaning meets base level accessibility requirements, Level 2 meaning addresses some of the more nuanced (and depending on use case, specialized) cases.

OSP123 commented 7 years ago

Keep em coming!

OSP123 commented 7 years ago

Copying @multishifties comment from another issue:

This can serve as a starting example = https://github.com/kamranahmedse/developer-roadmap

Off the top of my head, I can think of several topics I'd like to see in this curriculum.

Advanced CSS (specifically the new spec. Things like CSS variables, blend modes, clip-path, color-mod, :matches, @supports(), CSS native grid, Flexbox, and more).

Front-end optimization + chrome inspector deep-dive. (network testing, svg sprite maps, image optimization, minification, performance budgeting, page auditing, graceful degradation/progressive enhancement, resource caching (maybe caching should be it's own topic), provisioning an SSL cert, SEO (maybe put SEO under analytics?), etc )

JavaScript deep dive (This could be a HUGE TOPIC, this will need to be broken down more. There's async handling(callbacks, promises + generators, async/await), design patterns(closures, modules, observer patterns, etc.) weird javascript (https://github.com/denysdovhan/wtfjs#readme), inheritance and scaling (classes, prototype), and functional/object oriented JS programming paradigms to cover )

Authentication in depth (JSON Web Tokens, OAuth, Passport, or creating one's own auth system. Also password reset/recovery workflow + automated E-mail notification, and two factor auth)

Node.js deep dive (Event-loop, streams+buffers, child processes, clustering, performance monitoring and benchmarking, microservices, common production/design patterns, HTTP networking to remote servers/services)

Linux/Shell (VIM, BASH scripting, automation, cron jobs, process monitoring, resource allocation, remote access, permissions/user-groups, SSH/Encryption )

Intro to some non-scripting language (Personally, I rather like GOLANG)

Testing (TDD/BDD, Automated testing, Mocks/Stubs, performance metrics, etc)

UX/UI design (Seeing as we offer a course on this already, should we be spending time on this?)

ghost commented 7 years ago

HTTP request lifecycle/pipeline

ghost commented 7 years ago
ghost commented 7 years ago

SOLID principles and how they can be adopted in the JavaScript world. This goes to design patterns, but it's all about loose coupling, service oriented architectures, and fun things like that.

ghost commented 7 years ago

Developing RESTful APIs at various levels based on the Richardson Maturity Model. Also HATEOAS.

http://restfulapi.net/richardson-maturity-model/