Ask HN: Open Courses vs. Master degrees value in the IT market
I am getting my degree in pharmacy soon. I’m seriously considering to pursue a “Master’s degree in CS” at the Greek Open University (EAP). Costs 3.500 euro/year but I noticed that their course material is exactly the same as the ‘coursera’ courses. For example “introduction to algorithms”, “design patterns”, “networking I and II” and “cryptography”.
Both are remote but coursera doesn't have a structured path, which is something that I like, it’s free BUT does NOT hand you a valid degree. Just a verification that you successfully taken these classes and passed.
If I ever wanted to apply for a job in IT, do you think that a series of “Coursera” courses would be an acceptable skill-set? (Say I take math I/II, algorithms I/II, crypto and classes like design patterns).
ps. Googling I found this[1]. It’s Master’s degree in CS by Georgia + Udacity. If anyone got accepted, please share your experience. I don’t think I would be accepted, but I’d like to know the total cost per year, I was not able to calculate it on the fly. Thanks
[1] http://www.omscs.gatech.edu/program/
49 comments
[ 3.6 ms ] story [ 103 ms ] threadPart of the reason for this is while you say they are 'exactly the same' I think there is a lot of skepticism that this is true. With the university system, most of us got our degrees and have a better sense of what that degree means. If it is from a school of a certain caliber, we know the minimum statement that makes. For Coursera, that's just not as clear unless you've gone to the trouble of doing both. I believe a Coursera educated person can (and perhaps maybe often even is due to self selection, who knows) be more knowledgeable than a person educated more traditionally. I'd still see hiring a Coursera person as a bigger risk because it is less of a known factor.
As an aside, in the US system those sound more like Master's courses than undergraduate courses. This is part of the confusion on what Coursera should count as. No one wants to look into the curriculum themselves, see how exams were proctored, projects administered, etc. That's what accreditation bodies and institutional reputation are for. Coursera hasn't replaced that (yet).
I believe in the real world, you are best represented by a body of work and/or the ability to demonstrate that you are capable of tackling the problems associated with the job in which you are considering.
The world of information technologies is vast. There are computer scientists, software engineers, data scientists, test engineers, and many more.
It'd be best if you could narrow down what it is that you're interested in working on. I think a degree in computer science gives you a phenomenal foundation for any of the above, but it doesn't make you immediately in demand, particularly if you're missing a body of work.
I am a software engineer without a CS degree, but I've studied algorithms, some design patterns, and some math relevant to my areas of expertise.
That's my two cents, but I'm sure other people have some useful ideas as well. :)
This is such a good advice! I remember reading Norvig's spellchecker[0] and said to myself: "This code is so elegant and beautiful. I could never write something like this."
I learned more about NLP, learned some Scheme, worked through Norvig's Design of Computer Programs[1] and improved my Python a lot.
What have I learned? Firstly, people like Norvig have tons of experience and are incredible clever. Also they have worked in the same (or similar) domain for decades. Of course they know cool data structures and algorithms for NLP problems. Back then I didn't realize this and thought that I was dumb. Today, I'm less dumb and know that it takes time and experience. Build, learn, build, learn, ...
[0]: http://norvig.com/spell-correct.html
[1]: https://www.udacity.com/course/cs212
Instead of attempting to correct a misspelling, he attempts to misspell a word, then stores the misspelled word along with the original word. Then, to correct a misspelling, you simply look it up in the hash table.
Incredibly powerful mathematical concept that inversion thing. And there's a million of them.
Other "tricks":
* shuffling a deck of cards in O(1) (or shuffling anything at all)
* sorting in O(N) (with a limited keyset, and guaranteed no repetitions it's easy. Think about it).
* knowing the url to MIT's bit twiddling manual [1]
* know how to "rewrite" english (or any language) text. Really impressive. Also, mostly useless. It's called Markov Chains.
* understand how and why "every language compiles first to LISP, then to machine code" is true. Thinking about this yields no end of clever programming tricks
* make sure to have spent a few months in each style of programming. Imperative (doesn't tend to be a problem). Functional (NEVER change the value of a variable, ever, for any reason). Dynamic (write a calculator using eval, and go from there. Exploit it).
* having the experience that any style of configuration eventually ends up being a turing complete programming language, and so you should just import and use an existing language
* having experienced the power of query languages. Instead of having a few reports, implement an interpreter that allows you to query them. Then amaze everyone by having every new report they ask for done in 10 minutes.
* knowing the power of automated source translation tools, and how easy these things are to write IF you can munster the discipline of never touching generated code
All of these things will have people tell you it's impossible. And when they see simple code that demonstrates things like this, it's cheating (e.g. O(N) sorting is not fully general. That doesn't make it slower than O(N), and it's still applicable to a lot of situations) ...
[1] http://graphics.stanford.edu/~seander/bithacks.html
How? I'm aware of Knuth shuffle which is O(n) but I can't find anything about constant time shuffling.
None of this requires you to actually go through the list. You'd have to modify this to support lists of non-prime lengths, but this is the basic idea :
[1] Github links on resumes: it doesn't have to be perfect, but not much time is spent reviewing resumes, so make sure your best projects are easy to identify and explore.
I am not sure how invested you are against working as a pharmacist, but I would humbly suggest that you at least do that for a while (perhaps 1 to 2 years). Being both an experienced healthcare professional and hacker/developer enables very wide career opportunities. You will be the most tech-savvy pharmacist in the department/company. You will be the most efficient in any kind of data analysis (because your peers are having trouble learning to use Excel Pivot Table while you are writing scripts that take the files as input and perform 1000 Pivot Tables in a second). You will be tasked to be the go-to person for anything remotely related to the million-dollar enterprise software the pharmacy uses. You will get to be involved in the most technologically advanced project the pharmacy is having (think automation, robots, electronic medical records).
In the startup world, the professional status gives you instant, significant positive reputation gap as compared to your usual competent-developer-without-domain-knowledge kind. Not to mention the advantage of having extensive domain knowledge should you manage to find an idea that somehow involves pharmacy.
After that, you can slowly think to get your CS degree (as I am thinking of getting in the near future), or just do the Coursera courses along the way. As you would have some experience working as a pharmacist already, this credential (plus all the experience being involved in pharmacy IT projects) would stay even after you get the CS credentials.
[PS: I'm in Singapore working in a public hospital here.]
It's a nice feeling knowing other people out there are facing the same situation. Actually, I'm expected to work as a pharmacist at the family-owned pharmacy and manage a small medical office (3-4 offices). I'm partner in the pharmacy, owner of the medical office. The pharmacy work is extremely demanding but my parents will work there, they just need help. The medical office is 20-days old, so it's extremely easy to handle for now.
I'm planning to work at least for 2 years full time in these positions and see how it goes from there. I'm already building small-scale applications (using ruby) to solve problems that arise, setup a digital-signage system using RPis, etc.
However, I'd like to get a better, more 'rounded' education at the same time which would allow me to skip to IT, if I ever wanted too.
thanks for your comment! :-)
ps. Out of curiosity, what was your thesis about?
Your situation seems to be very fortunate and I'm sure that heading to pharmacy is something your parents are pushing for :) Since you're a partner already, I believe that in the coming years of working in your pharmacy you will be able to apply even more of the programming skills to help operations.
I think if one has a desirable portfolio of projects and good referral, getting a job in IT should still be possible even without a relevant degree. Keep also in mind that not all IT work needs programming on a daily basis unless you are a real hardcore engineer. From what I see there is as much opportunity in vendor support, project management, integration (need technical chops but more on the ops/networking side as compared to programming), at least in enterprise IT here. People already working in these sort of work can very well be less proficient in programming as compared to you right now.
Aside - here not all students do thesis because of the limited number of professors, but I did a shorter thesis-style project about finding gene signatures that may give rise to resistance to imatinib (Glivec). Used a modification of Support Vector Machines (SVM) and recursive feature elimination. It was fun and took the life out from my old laptop because of the heat from crunching the numbers :) Want to hear about your thesis as well :)
Yeah my parents are eagerly waiting for me in the pharmacy, my sister too! But anyway!
My thesis requires building a Proof of Concept sequence alignment program. Should be able to compare sequences (proteins and DNA/RNA sequences) and also give a sequence alignment score in order to test if say a bacteria has the substrate to produce a specific protein.
I'm building it using the ruby Sinatra framework. It's more about bioinformatics but my professor was very pleased to have a student that could build even an elementary system like this because for BLAST was complicated!!!
I choose my thesis early though, otherwise I'd choose to build a system where you put patient data and proposes medication/therapy (from drugs to lifestyle changes).
There are some half-hearted attempts at getting something along those lines off the ground here in Norway, partly hampered (in a good way) by strong privacy concerns, and partly by inertia and hopelessly backwards practices by various MDs.
I've sometimes wondered if the best way to get such things up and running is to simply configure up a dedicated terminal that's set up to connect to a vpn, and ship it out to the various offices. Say an Intel NUC style box or a netbook or something with an SSD and no moving parts. Rather than having to deal with a million configurations, just settle on Debian stable, ipv6-over-vpn and require an Internet connection (or use 4G if available -- even better -- control the whole stack).
It is after all how the Military handles secure communications (well, when they get it right).
So I’m not sure what exactly do you have in mind but I live in a small town North of Greece, where less than 15 people know what Linux is (to give a perspective). There’s no way I could get even a fraction of a state contract.
What I’m thinking of building though, was a software to medical office management, targeted to the Greek market (RoR/JS) for management of bigger and smaller medical offices. Could work as a SaaS. There are at least 6-7 SaaS services for medical office patient management that I’ve found online that offer essentially nothing more than just a DB and an interface with ICD-10 support/calendar/etc. I’d like to build something that interacts with the state’s online prescription system, which can read the medical history on the fly, notify if there’s any double subscription, give data, stats, etc. We’ll see, for now I'm stalled.
But it’s not a billion market. Not even a ‘million’ market IMHO. Could in Norway, but not in Greece.
Sure, if there's room for an office management platform, go with that.
(Btw, it would appear I was guessing at what the situation was 6-7 years ago in Greece)
[1] https://www.edx.org/xseries
While I trust that anything EdX offers would adhere to very high standards, considering that it's even a little difficult to find x-series from the main pages of EdX now, I wonder whether prospective students should wait around for them to start if they have alternate options that are programs that are more likely to occur and involve less potential downtime between courses.
I don't think it has; I don't have the original dates written down, but I remember them as originally all late 2014 through 2015, which is still where they all fall, so I don't think there's been much change.
> and the fee structure may have changed,
I don't think the fee structure has as much changed as been defined.
http://www.epp.teicrete.gr/msc/
EDIT: Unfortunately is not, requires actual presence which is not an option.
The Immigration Control's computers will understand it, and you'll get extra points for an advanced degree. Megacorp's HR systems will understand it, and you'll get a different salary banding. When you decide to do an MBA, the Admissions Department's computers will understand it, and rank you accordingly.
As an aside, I carry a fair amount of personal bias after getting a CV from a lady who claimed in the headline she'd studied at Harvard, MIT, and some other big name I don't remember. When you dug in to it a little deeper, she had watched a few iTunes U videos from each. Yeuch.
One trend that we all noticed is for students, nearly always from developing nations, to focus solely on the credentials and very little on the course material itself.
Even before the courses were complete, with coursework submission deadlines still looming, we'd see people post stuff like "I'm still waiting for my certificate! When will I get it?" in the courses' discussion forums.
After the course had completed and the certificates were awarded, there would inevitably be many more of these students asking why they haven't received theirs, even after openly admitting to not doing most or even all of the required coursework.
For these people, it was all about getting a PDF of a certificate containing their names. Learning anything at all wasn't even a consideration.
While traditional academic institutions may have similar problems, it's never to such an extreme as with MOOCs. At least students at any reputable institution will have had to demonstrate at least some understanding of the material being taught.
Very few were interested in the material itself.
But yes, once employed as a developer consultant, I must say, at university people were way more interested in the material at university. That's mostly a way to say that it's extremely rare to find even a single person interested in CS at most developer employers though.
1. How do I know if you really did the course? 2. How do I know how seriously you took the course? Did you just browse through it passively or did you really do every assignment and maximize your learning? 3. How do I know if the course was high quality or of sufficient depth?
I believe the best way to address these concerns is to change the structure of the credential itself to have evidence of learning embedded into it. We (Accredible) have been working with some MOOC providers to create a portfolio credential tailored for this kind of situation - currently in trials and going well!
So, hopefully, once the credential formats update to match the learning environment, this will become much less of an issue.
Here's a rough summary of the findings:
-- Overall, in spite of there being a shortage of developers, there's a general reluctance to hire people without a CS degree.
-- In general, hiring managers were more open than HR / recruiters to the idea of "self-taught" candidates.
-- Startups much more open to hiring entry level folks without a CS degree than large companies who generally have more choice (and bureaucracy).
-- Among those who were open to hiring self-taught candidates, 100% said they would like to see a strong portfolio of projects that the candidate has built.
-- Greater willingness to hire for non software developer roles. e.g. I heard multiple stories of people without CS degrees getting a foot in the door as QA / testers, and then rising through the ranks into engineering (e.g. at Zynga).
I believe the GaTech-Udacity degree costs ~$7k, BTW.
Sure a lot of start-ups are flexible, but I was also invited to interview at Apple, Amazon, Google, FB and other large companies before I chose to take the start-up entrepreneur path instead. I don't think the degree ever came up, except for during one interview with ZeroCater.
-- How did the large company recruiters find you, and what do you think made them contact you (e.g. If through LinkedIn, what credentials / keywords did you showcase there)?
-- How much of the attention do you attribute to Hack Reactor (which is selective, and hence has some of the signaling benefits of a name brand university) vs. your own online study?
-- Did you pursue any of these conversations? If so, how did they go?
I realize I'm asking a lot of questions, and am happy to take this offline if you prefer. I just love learning more about alternate education.
Hack Reactor has a brand now, but I was in it over a year ago. When I graduated it had no brand whatsoever. It was selective, but nobody had even heard of it. Worse still, employers I did tell about it, tended to immediately assume it was essentially the same as another coding school with barely half the instruction hours and a far worse student teacher ratio. For the most part, what I got from Hack Reactor was the hard skills.
I presented prototype of a robot fighting game at an Backbone.js meet-up, I did a hackathon at fb and I went to a bunch of other meet-ups that focused on actually coding things as opposed to mixers. I also had profiles on AngelList, White Truffle and Stack Overflow, all of which linked to my Github account.
The vast majority of the inbound messages I get on LinkedIn are pretty much just looking for me to work with exactly the same technologies or even just a subset of the technologies I worked with at Groupon. I ignore them. But sometimes, a company has noted the MOOCs and more often than not those opportunities involve learning something new and are much more interesting to me.
Taking the credentials path is safer at least up through age 40 or so. You're less likely to end up struggling to get a good job, and you'll likely end up with an above average salary.
Taking the skills path is very difficult at the beginning and you can expect to be paid less than more credentialed peers earn for the same work. You'll have a harder time getting your foot in the door. You'll have to have stronger skills. The flip side is that your skills will be stronger in the long run. If you can build a substantial body of work and get "so good they ignore you", then you'll have or even create opportunities that are closed off to even the candidates with the prettiest resumes.
What's your risk tolerance and how confident are you in your abilities?
I'm confident about my UNIX skills, not so much about programming because I was never involved in big projects. On the other hand, whatever I needed to do... I did it. BUT given the programmers I see on SO and here, I really can't say if I could excel at professional without trying, not because I don't believe in myself (quite the opposite) but because I see extremely talented people with striking resumes. What gives me hope though, is that .. HN/SO it's a sort world-stage. You have Google engineers, consultants, encryption gurus etc. commenting.
I'm more eager to pursue the skills mastering. That's another dilemma I have: Spend time studying for a university or writing code/attacking real-world problems/contribute to an open source project, etc.
No, never, a course is not a skill set in IT.
Also, it seems to me you are Greek, I lived some time in Thessalonica, US, and other places, I was born in Spain. Those places(Greece, Italy, Spain, even Germany) have title-itis, but is different in other places in the world. In the US they don't care what is your title if you can do something, most of IT is in the US.
BUT, you can start a real project, using the "Coursera" courses to COMPLETE it. Then you could basically work whenever you want in IT, given that you have a real proof that you could use the knowledge.
Active learning is very different form passive learning. In the Universities where I studied they forced you to do active learning via practices and so on.
You need an undergraduate degree with GPA 3.0 or above to get "conditionally" accepted, no need of GRE or GMAT. to "really" get accepted you need to get B or above in your first 2 core courses. (not impossible, but requires work)
They are very serious about this program and put a lot of effort (both GT and Udacity) to make it happen, I really hope they succeed.
Bottom line, I personally think this is the most cost effective CS graduate degree in the universe at the moment.
[0] - http://www.forbes.com/sites/troyonink/2013/05/15/georgia-tec...
[1] - http://grad-schools.usnews.rankingsandreviews.com/best-gradu...
UPDATE: It's 7k for 3 years. The price is amazing...
The good news is - you're free to take any of the other courses we have available (seriously it's all still free and I believe we're still planning to get our Georgia Tech courses out there publicly as well)! If you're interested in having the assistance of a coach/mentor while completing a course, along with a validated certification and graded course project assignment (good for the portfolio!) we also offer our Premium experience at the flat rate of $150/mo.
Ok - done with the Udacity pitch; now my personal comments. I never finished my degree and I've been a developer for over 16 years. Don't let some piece of paper stop you or make you doubt yourself. In this industry, at least as a developer, projects, projects, projects, projects - that's what really counts.
Before I joined Udacity I worked for Gov Contracting firms, I've with the NSA, DIA, VA and the Air Force. Projects, projects, projects - that's how I was offered those positions (and how the recruiters found me).
I say take a couple of online courses to gain the knowledge/skillset you think you require, then come up with a fun project, something that excites you, and build it!
> Evidence of award of a 4-year bachelor's degree or its equivalent (prior to matriculation) from a recognized institution, demonstrated academic excellence and evidence of preparation in their chosen field sufficient to ensure successful graduate study
Am I missing something?
I've emailed the guy running that program and will post a reply if I'm told there's a different reasoning behind it (and hopefully we'll get our page updated too).