Coursera Course Dilemma
I think I have mastered the basics of Java/OOP/general programming (loops, arrays, recursion, classes, objects) and I am trying to decide what I should take as an intermediate course to become a more competent software engineer and build my portfolio for potential employers. Here are the following I am currently considering:
Objected Oriented Programming: Data Structures and Beyond Specialization (UC San Diego) https://www.coursera.org/specializations/java-object-oriented
Data Structures and Algorithms Specialization (UC San Diego) https://www.coursera.org/specializations/data-structures-algorithms
Algorithms, Part I [and Part II after] (Princeton)
https://www.coursera.org/learn/algorithms-part1
I am confused as to why UC San Diego offers the first two, which seem very similar to each other. The Data Structures and Algorithms Specialization seems a bit more rigorous and not as patronizing, and the projects look cooler, but Objected Oriented Programming: Data Structures and Beyond seems like it will actually make the skills I learn marketable, and even includes the potential for a mock interview with a Google recruiter (if you are one of the best in the course). However, everyone also seems to love the Princeton course, and it is also free, but I am not sure whether it would help me build a portfolio or make me more employable. Does anyone have experience with any of these courses who could advise me which one would be best to take? Or does anyone have any other recommendations of a course that could both provide me a comprehensive and rigorous knowledge set with plenty of challenges (and hopefully feedback) while helping me build my portfolio and become more employable?