ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
170.6k stars 21.55k forks source link

Add jobs opportunities as milestones #556

Closed ivicts closed 5 years ago

ivicts commented 5 years ago

Since one of the reasons (although not the main focus) we are doing OSSU is to get an internship or job as a self-taught programmer, it will be useful to add jobs opportunities after some OSSU sections as milestones.

The benefits are three folds: 1) It serves as a bonus motivation to complete several courses or sections. 2) Get a sense for which jobs that we can apply after having the particular knowledge from finishing the courses. Since we are self-taught programmers, sometimes, one of the biggest problems is that we keep taking more and more courses because we don't know until when we have the skill needed to make projects or finding a job and stop or pause taking MOOC for a while. 3) If we suddenly wanted to find a job, we can reach that job milestones in OSSU, pause OSSU to learn something more specific (web framework, programming language, etc), and then we can continue OSSU to brush up more advanced CS foundation after getting the jobs or internship.

Examples of what I thought about:

After sections of Core Programming, we can say: Job Milestones: After completing this section and the Core Software Engineering section, you have the ability to find a job as an entry web developer. If you want to strengthen your skills as a web developer to find a job, we suggest you take the following courses:

  1. Example JavaScript courses (and link)
  2. Example ReactJS courses (and link)
  3. Other courses (and link)

It will be useful since version 9 of OSSU seems to be very complex.

joshmhanson commented 5 years ago

This is a good idea, though I don't think we're ready yet to incorporate this.

From what you describe, I'm not sure if milestones are the right word. They're more like early exit points, where a student could stop/pause their linear progression through the curriculum and move "sideways", so to speak, learning the fad-of-the-week that companies are hiring for.

What's good and right about your idea is that the curriculum itself is kept pristine and timeless. What I would add, though, is that it isn't enough just to take courses on ReactJS or whatever. Especially from people who don't have a four-year degree in CS, employers need to see projects to know that students can actually do the work they're being hired for. That's why OSSU eventually needs to provide a structure for students to complete, and be assessed on, projects that apply their knowledge.

You also have to consider the overlap with the "Domains of CS" top-level section, which will contain things like "Frontend Web Development". Key to Domains is that it is meant to be (1) more general than just job preparation/milestones, because it will include targeting both industry jobs as well as graduate-level study, and (2) the driver for how students move through a curriculum, helping to determine which electives to take and what specializations to focus on within an elective.

Version 9 of the curriculum will be purely academic in nature; it will include Domains, but it will not include projects. My hope is that projects can be the major innovation of version 10. Once we have both domains and projects, we can then look at creating clear job and graduate study roadmaps (with associated requirements/projects/courses) for each domain.

ivicts commented 5 years ago

Hi, yes I think you can just say that it is an early exit point.

Yes, after taking the courses, it would be good to gain experience from projects, if we need to be job ready. Before I write this issue, I read somewhere that OSSU prefers to give freedom on the projects that the students want to work on, so I did not say anything about the projects in this issue. However, if OSSU decided to also determine the projects, that would be good as well.

Yes, I have considered "Domain of CS" section. However, I do not know what prerequisites section to complete before I get to "Domain of CS" section since it is at the bottommost of the curriculum for v8. I have seen the v9 and the curriculum also seem to be more complex. Since actually, we do not need to complete all in Core CS, Core Math to go to a specific course in the "Domain of CS". Let's say if I want to go to Full Stack Web Development (Specialization) in the "Domain of CS", I actually do not need to take the Nand2tetris course beforehand.

So, in my opinion, the quick fix before v10, is to add a "fast-track" mode in which there is an outline on how to get to course of "Domain of CS" section on the fastest way.

joshmhanson commented 5 years ago

I do not know what prerequisites section to complete before I get to "Domain of CS" section since it is at the bottommost of the curriculum for v8. I have seen the v9 and the curriculum also seem to be more complex. Since actually, we do not need to complete all in Core CS, Core Math to go to a specific course in the "Domain of CS". Let's say if I want to go to Full Stack Web Development (Specialization) in the "Domain of CS", I actually do not need to take the Nand2tetris course beforehand. Yep, it's all still WIP. There will be a guide which says to peek at Domains of CS and see what the prerequisites are for a Domain you're interested in.

(Also, there will eventually be a more dynamic UI that allows auto-generation of all prerequisite courses based on a selected Domain. Not there yet.)