Object Oriented Java Programming
Data Structures and Beyond
This Specialization covers intermediate topics in software development.
Data Structure Problem Solving Java Programming Object-Oriented Programming (OOP) Logic Programming Sorting Algorithm Trees (Data Structures) Linked List Binary Tree Graphs Search Algorithm Graph Algorithms
Accessible for free. Completion certificates are offered.
Affiliate disclosure: Please use the blue and green buttons to visit Coursera if you plan on enrolling in a course. Commissions Reddsera receives from using these links will keep this site online and ad-free. Reddsera will not receive commissions if you only use course links found in the below Reddit discussions.
Assistant Teaching Professor
and 2 more instructors
University of California San Diego
This specialization includes these 5 courses.
Reddit Posts and Comments
1 posts • 126 mentions • top 16 shown below
5 points • johnlavolpe
What do you guys think of this coursera code, is it too advanced for me?
Hello guys. So I have to say Mooc is pretty amazing; however, it is hard for me to see what I should be looking to do beyond that. I was looking at this course. https://www.coursera.org/specializations/java-object-oriented Do you guys think this one is too complicated compared to where mooc left (After part 2) or is this the perfect continuation?
3 points • DjangoJew
Coursera Java Specilization
Hello all, Ive been into programming for a while but never took it that seriously (periods off a little bit of coding followed by periods of no coding). I recently decided Id like to make a living out of it.
Ive been thinking about enrolling in this: https://www.coursera.org/specializations/java-object-oriented
what do you guys think? worth the price?
2 points • dvmarcilio
PSA: UC San Diego's course "Mastering the Software Development Interview", with Google's support, starts in December on Coursera
I'm not sure how well received MOOCs are here on /r/cscareerquestions/, as I just started lurking around, but I guess a lot of us can benefit from this course.
It is the 4th course on UC San Diego's "Java Programming: Object-Oriented Design of Data Structures Specialization" on Coursera. You can check it on https://www.coursera.org/specializations/java-object-oriented.
This is the course's description:
> You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!
>With the support of Google’s recruiting and engineering teams we’ve provided tips, examples, and practice opportunities in this course that may help you with a number of tech companies. We’ll assist you to organize into teams to practice. Lastly, we’ll give you basic job search advice, and tips for succeeding once you’re on the job.
1 points • internetdigitalentre
Expand your Java skillset - Object Oriented Java Programming: Data Structures and Beyond Specialization
1 points • hnocturna
Not the exact course I took, but this is a good starting point: https://www.coursera.org/specializations/java-object-oriented
I didn't finish the course because I wasn't looking for the degree. I just wanted the basics before I could start applying my skills to build a simple Java app. From there, I would look into just refining my Java skills for a while because Android SDK is a whole can of worms that is not easy to jump in to as a beginner.
I then moved on to the Udacity Android Developer Nanodegree and finally started working in the field. Whole process took about 2 years to get to a point where I can call it a career.
2 points • Screye
Is this course equivalent to B.S:C.S course in Algo and D.S?
Hi, I am looking to complete B.S. level Algorithms, Data structures through online courses. (with Certification)
I have shortlisted the following course for this purpose: Java Programming: Object-Oriented Design of Data Structures
Would it be correct to assume that the complete course specialization would provide me with the following:
- Undergrad level CS Algorithms course
- Undergrad level CS Data structures course
- Familiarity with Java (I know C and Python already)
- A good project to list on my resume
I plan on completing these courses to best prepare me for an MS:CS degree while being from a Mech Engg background.
P.S: Bonus question:
I this a good Undergrad CS level OS course: https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-0
3 points • courseraa
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?
9 points • my_password_is______
for $599 ??
you can read this for free
you can do this coursera course for $49 a month
this two look free
this edx course is $99
and you've got this fantastic site which shows A*, graphs and pathfinding
1 points • mihirkj
You can check out this Coursera specialization by UC San Diego:
I have done the first course from this specialization and it was pretty good. It walked around explaining concepts as well as doing projects. Taking this course for free does not decrease any value since only some MCQs related to the project were there to be accessed if paid for the course. And I don't think you'll find it boring since it revolves around making a project.
0 points • outerspacecobol
How good can I get at android at different lengths of time invested?
Everyone spouts off the "10,000 hour to master any skill" meme (which is true I'm sure, or it wouldn't be a meme) in the threads I found from googling, but "master" isn't the only skill level in existence - I'm curious how far I'll be with my development efforts at different points in time
Prior Experience: probably considered as wading through the beginnings of the intermediate stage. my effort wasn't very focused or systematic before though.
Some basic Object-Oriented Java, some progress into making very basic crap apps using ListViews with ArrayAdapters and getting json using an AsyncTask. Taken an intro to computer science course (cs50x) and have lots of past programming/dabbling experience having contributed mildly to some open source projects - small scripts, bug fixes. experience with basic front-end web dev - jquery, basic react, ajax, html/bootstrap. experience playing with http backend apis in node (express/sequelize) and python (flask/sqlalchemy)
Roughly Planned Curriculuum: (looking for tips!)
1 Work on a personal project app - do as much as I can with what I /already/ know to practice
go through https://www.coursera.org/specializations/java-object-oriented to solidify a more advanced Java and computer science to understanding to build further on what I learned conceptually in cs50 and learn from a good course how to make real applications
use codepath guides/udacity course/google searches/sample projects/codelabs as needed to fill in gaps encountered in stage 1
iterate on stage 1 using improved understanding in stage 2 and 3
I go through kind of like a loop alternating between each of these each day using pomodoro timers. May not always be the same ratio depending on where I'm at on the project and my comfort level (ie yesterday I spent all of them coding practicing basic activities and intents, but today I ran into why MVP, Sqlite, and fragments/app archetypes are useful so I spent a ton of time strengthening my general Java skills on the course and going through the android testing codelab)
So based on that, how far will I have likely progressed with my understanding of Java and programming in general, completed apps on the play store, and android skills in 500, 1000, and 2000 total hours invested? Is that intern level? Junior developer? Mid-level? What do freelance prospects look like?
This will help me determine whether I want to double down my current 3 hour per day investment or not.
1 points • PuzzledFinance
Sales Engineer question towards growth
Would appreciate some guidance on growing in my career as a Sales Engineer. Not sure if it's the right subreddit for this, if not would appreciate some pointing towards the correct location. Thanks! :D
So, let me start from the top. I did my undergrad as an Electronic Engineer in a latin american country out of the U.S. and after I was done, I finished a Masters Degree at an Ivy League school as an Telecoms EE and graduated in early 2009 during the economic downturn. Had always been a Linux nerd and had been using linux as an enthusiast since 2004ish (can't remember the date, but do remember red hat and fedora core event happening) as a gentoo user, for quite some time. I wanted to live in NYC when I graduated from my masters, and after searching for opportunities found one as an intern for a Tech Market Research company. I worked there for about 2 years, and got laid off. I stumbled upon a Fiber Optic company that needed a Field Engineer, and I started my IT career officially there in late 2011. :)
I worked Fiber Optic and installed a couple of FO rings for some financial institutions in and around the city, and afterwards the company I worked for got acquired in Jan 2015 due to some Software Defined Networking IP they had. This was where I was thwarted towards Sales Engineering.
Because of SDN, I got curious about programming and did a couple of specializations in Python and Java on Coursera between 2015 and 2016. I originally wanted to understand and hopefully leverage the SDN APIs to showcase to customers. Also finished my CCNA which I had started to work on in 2013 in this span of time. Though I didn't do anything significant with this at this company, it did help me understand how programming fit with SDN, as well as the concept of APIs, HTTP GET/POST, as well as JSON formatting.
I worked there until late 2016 until I found an opportunity to be a Sales Engineer at a SaaS based load balancing company. Life was good here because it was a really interesting concept and got to learn a lot of real interesting things.
At around the time I started this opportunity, I also kicked off a Software Development Bootcamp that wasn't intensive as most that I've seen around. Something around 30 hours a week commitment. Between 2017 and up until early 2018, I was working on a Software Development Program at a well known bootcamp program. This helped with understanding how to code, how to code with someone as a team (a mentor), as well as understanding web development and different technologies surrounding it which complemented my work very well.
I learned that I actually enjoyed writing code a lot more than I thought I would, and even flirted with starting as a Junior dev at a company to work my way as a full time software developer. Life happens, and we (wife and I) were blessed with finding out we were expecting. The lower salary that I would get from starting over as a Junior or starting dev would not be enough to upkeep our new family, so I kind of scrapped that idea.
Going back to the SaaS based load balancing company, I didn't have to deal with being on prem for hardware installs/upgrade POCs during night time hours on weekends when compared to a computer networking hardware company. So this def was a plus. Also, the people I was dealing with at work on a day to day basis with were great.
This SaaS company was acquired earlier this year, and I was fortunate enough to be included in the acquired team. My focus in this much larger company (\~10k employees) has shifted away from an interesting combination of technical work (support tickets, internal efforts towards improving the product) and multiple weekly customer sales meetings to working with an account manager who sets up calls once every other week. The new environs are kinda boring and have no incentive to learn anything new at the current moment since I'm the SE for our acquired platform on the East coast, for however long that lasts.
Now, if money weren't an issue, I'd definitely want to pursue a career in Software Dev or be a Dev ops even though I'm kinda late in the game for that (I'm 37 right now). But currently as things stand, I think my lot is to continue as a Sales Engineer given my career track. Which is OK. Just a bit confused as to what to beef up to move upwards and onwards if salary and career progression is my motivation. I would be find being a Network hardware SE, a SaaS based solution SE, or a Software Services SE.
In terms of certs and further development, I'm not sure what to spend my work and/or personal free time on to learn or reinforce any technical knowledge on in order to maximize my career development as well as income.
As mentioned, I do have a CCNA, a couple of Coursera Java and Python specializations, as well as a software development bootcamp under my belt. Oh yea, I always forget my Masters Degree at an Ivy league school because I think due to bad economic timing, only got my foot in the door at different interviews throughout the years. I've got some experience doing SQL queries, dealing with S3 buckets, some Nginx experience in the past and some other cloud related architectural concepts from my current job.
I currently think that it wouldn't be a bad idea to do the CCNP Route or Switch in order to not let the CCNA expire. But my heart would be more interested in doing a Linux cert(s) even if it isn't the RHCSA, that would be up to par with my current career progression (9 years work experience + 4 as a Sales Engineer). So, basically doing 2 Linux certs from the Linux foundation, the LFCS and LFSE I feel would be up to par with my career experience. The LFCS alone in my opinion would be to entry level.
Also, wouldn't be sure if going the Cloud Computing specialization route would be better, finding something on Coursera like this, or some other cert on the linux foundation website like this one here.
.... ok I didn't think this would be such a long post. But here goes. Thank you for reading if you read til the end. Appreciate the input and help!
1 points • hoxeon
Solid Java is not a trivial familiarity with loops, methods and what not. Spring Boot requires a solid understanding of Core Java (Java I && II), JDBC, HTML/CSS/JS and a good overall understanding of OOP & design patterns in a more than just a familiarity.
Jet Brains Academy also has a great map on what you need to have, I suggest getting through the material and start on Spring Boot from there, filling the gaps as you move on. Also, Java Brains channel has some fantastic material worthy of checking.
Do you really need all of that to start with Spring framework? No, you can have nothing about Java and still be able to put up a working page and fiddle around just fine. The underlying question is 'finding a job', and the answer is: Absolutely Yes. You need all of that and possibly a little more to have a hiring manager interested to have a conversation.
If you're looking for an enterprise grade training that's quite costly, you possibly need to look at The Oracle University's Learning Subscription. Before thinking about Spring Boot, take a look at the syllabus of Java SE/EE and see where you at. Take notes, fill the knowledge gap with the free materials if you cannot afford the fees. But it's quite the standard of what an enterprise grade Java developer must know and have in order to be employable.
1 points • Sjr881
Recommendations for Learning Java
I really like interactive courses that give a lot of direction opposed to just having the information and needing to do it all myself.
I've been pretty overwhelmed, when I look for where to start I find 10 websites with like 5 different courses and have no clue where to go. I pretty much want a beginner - advanced course that covers most of the language. If you have a different strategy I should try then let me know! Money isn't a concern, I just want the best experience possible!
I've been looking at :
I'm open to anything else!
I'd appreciate any advice! I really want to make sure I know what I am getting myself into before spending the money and time. Also, I should note that I am a high school student, if one of these courses can provide a certificate or something to help out my college application then that'd be sweet.
1 points • AcceptableInstance
Confused about the right learning path from a list of already bought courses
I am currently confused about what learning path would suit best for me as i am looking to be employed in a month or two (asap due to family reasons).
The companies i apply for generally come under these categories(descending order):
- Web Development without Java in backend
- Web Development with Java in backend
- trains you in technologies based on how well you perform in coding rounds using C/C++/Java
Disclaimer: This list is limited to what i have searched for till now.
If i had the time then i would learn java properly doing both the courses and then learn web technologies through other courses.
All i want to do is get a job in this field fast and then figure out which path to proceed.
Thats where i need your help. Can you help me decide from the following list of courses which ones to focus immediately?
I can average 6-8 hours in a day.
The Courses i have access to :
- This course is an introduction to basic java programming:
- This course covers various data structures, algorithms and preparatory resources for interviews:
For Web Development:
- Web development by Colt Steele
- Java Script algorithms and data structures by Colt Steele
Thanks in advance.
1 points • Infamous_Engineer
Potential MOOC strategy to prepare for OMSCS:
2) DS and Algos ( chose option, or make a custom one, the best seems Princeton):
Option 1: UC SD ( 18/28 weeks coding but starts too easy + 4 weeks interview prep):
Data Structures And Algos
Option 2: Stanford (not preferred, 16 weeks):
Option 3: Princeton (preferred 1, 6+6+9 weeks = 21 weeks) (consider also doing first course from UCSD)
and for mathematical foundations (can be done later)
3) Design Patterns
Design patterns (Java, 16 weeks): https://www.coursera.org/specializations/software-design-architecture#courses
Potentially apply for masters here and show off your portfolio and certificates. In the meantime take:
4) CS Fundamentals (C++): https://www.coursera.org/specializations/cs-fundamentals then apply for UIUC
5) Concurrency/Threads (12 weeks): https://www.coursera.org/specializations/pcdp
6) DBMS (7 weeks) - e.g. https://www.coursera.org/learn/database-management#syllabus
7) distributed systems/cloud computing (18 weeks) - https://www.coursera.org/specializations/cloud-computing
1 points • hobbitmagic
Learn the Undergraduate CS Core Online for Free
I noticed that almost every university has the same set of core Computer Science courses, and I wanted to put together a list of resources for those classes that are most commonly required.
Introduction to Computer Science I
- Georgia Tech Introduction to Python Programming (just do each individual course)
- Python based
- Very thorough and well organized
- Doesn't leave you feeling like you're drowning in the deep end
- Harvard CS50 Introduction to Computer Science (alt)
- Python, C, SQL, and more
- Good balance of breadth and depth
- MIT Introduction to Computer Science and Programing Using Python (alt)
- Challenging and long
Computer Science II (a second programming langage and OOP)
- UCSD's Object Oriented Java Programming: Data Structures and Beyond Specialization
- Duke's Object Oriented Programming in Java
- Princeton's 2-part Java series: Computer Science: Programming with a Purpose and Computer Science: Algorithms, Theory, and Machines
Data Structures and Algorithms
- Princeton's Algorithms, Part I and Algorithms, Part II
- UCSD's Data Structures and Algorithms Specialization
- Stanford's Algorithms Specialization
- UCSD's Introduction to Discrete Mathematics for Computer Science Specialization
- MIT's Mathematics for Computer Science
- Shanghai Jiao Tong University's Discrete Mathematics
Extended CS Core
(These courses are part of the CS Core for many universities, but not as universal as the ones above)
- MIT Computation Structures, Part 1, Part 2, Part 3 (alt)
- Princeton's Computer Architecture
- Carnegie Mellon Computer Architecture (lectures)
- Georgia Tech's Introduction to Operating Systems
- Berkely CS162 (Lectures)
- MIT Operating System Engineering
Typical Math Requirements
- MIT Differential Equations
- Khan Academy Differential Equations
- Professor Leonard Differential Equations
The main coursers (Intro to CS, Object Oriented Programming, Data Structures/Algorithms, and Discrete Math) are requirements almost everywhere I've reviewed CS curriculum, from top ten universities to my community college. I've listed the best resources I could find to learn these subjects, but it may not get you credit or the job opportunities you want. They're also free to audit the last time I visited them (although coursera has been changing their billing, I think you can still find a way to audit courses). I added an extra section for Architecture and Operating Systems because these seem to be very common, but not to the extent as the first four. Lastly, I threw in some math resources for the subjects that are typically required/recommended. If this is useful, maybe it can be expanded to have some justification about why these courses are so important.
Also, OSSU Computer Science exists and is far more comprehensive. I wanted this to have a much smaller scope and just point to resources for the "essential" courses.
If you have any recommendations or alternatives, put them in the comments.