Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Ask Slashdot: Online, Free Equivalent To a CompSci BS?

timothy posted about 8 months ago | from the yes-but-how dept.

Education 197

An anonymous reader writes "I am a middle school math teacher and I also run a programming club. I recent completed my M.Ed in math education and was inspired to try to do the new GT online MS in Computer Science in a couple of years. I have some background in programming: two intro to comp sci courses, Java, C++, Python, the main scripting languages, and a bunch of math background. I also read through this great article on getting these pre-requisites completed through Coursera but unfortunately you need to wait for courses to enroll. I would like to just learn these on my own time, no credit necessary. Suggestions?"

Sorry! There are no comments related to the filter you selected.

Donald Knuth (1, Insightful)

CodeArtisan (795142) | about 8 months ago | (#46440787)

The Art of Computer Programming Volumes 1 - 4A.

Re:Donald Knuth (1)

invictusvoyd (3546069) | about 8 months ago | (#46440853)

Andrew Tanenbaum - Operating systems & networks Great books for intro.
Kernighan & Ritchie for C
learning perl - perl

Re:Donald Knuth (3, Funny)

pigiron (104729) | about 8 months ago | (#46440923)

perl? The poster said computer *science* not unreadable gobbledygook!

Re:Donald Knuth (1)

FatdogHaiku (978357) | about 8 months ago | (#46441995)

Sir, your are in danger of angering the Gods!
https://xkcd.com/224/ [xkcd.com]
or at least making them snort beer onto the displays...

Re:Donald Knuth (0)

Anonymous Coward | about 8 months ago | (#46442599)

I think it's funny he singled out Perl, but not C. To me, C is often unreadable gobbledygook... not by necessity, though. It's very possible to write readable C, but the established idioms and norms in C programmer culture value brevity and cleverness over clarity and maintainability.

I mean, why type "bufferPointer" when "bufPtr" will do? Keystrokes are WORK!

Re:Donald Knuth (3, Interesting)

jmcbain (1233044) | about 8 months ago | (#46440899)

"Computer Science" is a very broad field covering both theory and programming. Here are some great books:

-- Introduction to Algorithms, 3rd ed., by Cormen, et al. ABSOLUTELY MUST-READ.
-- Computer networking: a top-down approach, by Kurose and Ross. Great book; skips the physical layer.
-- The C Programming Language, by Kernighan and Ritchie. This is the one book you need on programming language pragmatics.
-- Modern Operating Systems, by Tanenbaum.
-- An Introduction to Statistical Learning: with Applications in R, by James, et al. Have not read this machine learning book myself, but the Amazon reviews say it's great.

Re:Donald Knuth (2)

CastrTroy (595695) | about 8 months ago | (#46442007)

What about all the other courses that are required for the degree, like algebra, calculus, discrete math, technical writing, and other electives like psychology, history, business management, or biology. All of these, while not directly applicable, are definitely useful, and should not be ignored.

Re:Donald Knuth (1)

CodeArtisan (795142) | about 8 months ago | (#46442015)

What about all the other courses that are required for the degree, like algebra, calculus, discrete math, technical writing, and other electives like psychology, history, business management, or biology. All of these, while not directly applicable, are definitely useful, and should not be ignored.

Those are all fine subjects, but none of them are CS.

Re:Donald Knuth (0)

Anonymous Coward | about 8 months ago | (#46442381)

If you read the post, you'll note that the submitter just finished a M. Ed. in mathematics, so presumably, he has the algebra calculus, and electives covered. Depending on the program, he may or may not have discrete math covered as well.

Re:Donald Knuth (0)

i.r.id10t (595143) | about 8 months ago | (#46442463)

Since those are gen-ed type courses they compromise most of what an AA degree is - 2 englishes (2nd is tech writing or more lit stuff), math thru at least college algebra, a few social science courses, a few humanities courses, a natural sciences course w/ lab of some sort, etc.

The calc (and possibly thru calc w/ differential equations), physics w/ calc, chemistry, and gen science comes with just about any science major for an AA (transfer to 4 year degree track) or AS.

 

Re:Donald Knuth (2)

Jamu (852752) | about 8 months ago | (#46440933)

Not sure that counts as free. It's $175 ($100 to rent) on Amazon. Although still a lot cheaper than a BS.

Ivy League = theroy loaded classes with skill gaps (-1)

Joe_Dragon (2206452) | about 8 months ago | (#46440793)

Think people may better off learn skills that have more real use vs loads of theory

Re:Ivy League = theroy loaded classes with skill g (3, Informative)

CodeArtisan (795142) | about 8 months ago | (#46440811)

If that's what you want, then fair enough - just don't expect a CS degree to deliver that. The CS theory I learned has proved useful in various phases of my 25+ year career, but your milage may vary.

Re:Ivy League = theroy loaded classes with skill g (1)

cheesybagel (670288) | about 8 months ago | (#46440825)

Computer languages fade in and out of popularity every single decade. It is not like people stop using those languages but the jobs market turns elsewhere.

The theory at least has remained more or less constant throughout the entire time.

Re:Ivy League = theroy loaded classes with skill g (0)

Joe_Dragon (2206452) | about 8 months ago | (#46440871)

yes what about the other stuff at Ivy League that is next to useless for the job like PE classes at prices (for 1 class) that are higher then 2 year gym membership at high cost place.

History of the Roman Empire

History of Rock and Roll

and so on

Re:Ivy League = theroy loaded classes with skill g (4, Insightful)

pigiron (104729) | about 8 months ago | (#46440949)

We would all be better off with a good knowledge of the history of the Roman empire since we seem to be following down the drain the disasters of its later stages.

Re:Ivy League = theroy loaded classes with skill g (-1, Flamebait)

bzipitidoo (647217) | about 8 months ago | (#46441247)

There's a big problem with this vocational approach you advocate. History of the Roman Empire may not seem to be of any immediate use, but it is. "Those who cannot remember the past are condemned to repeat it". The Romans made many mistakes. They did not understand that lead was toxic. They built walls to keep the barbarians out, just like today some in the US wish to wall off the border with Mexico. Walls didn't work for the Romans, and it's worth understanding that, and why they didn't work, lest some think that high tech will lead to a different outcome with any walls we may build. For a more recent example, the Berlin Wall didn't work either. The Romans first tried to suppress Christianity, then later totally flip-flopped and embraced Christianity as the state religion. It didn't work. It caused a great deal of harm and suffering, and the empire fell anyway. Today most people appreciate that church and state should stay separate.

When education leaves out everything not immediately related to the subject, you end up with graduates who know how to hack together a machine to do some specific task, but who are likely to miss the larger picture. For instance, what if, at the request of some employer, you whip up some cool robots for a display showing men and dinosaurs interacting with each other? Should you care that this is historically inaccurate, so long as they pay your rent? Maybe you even believe what they say about men and dinosaurs living together, because your education never covered biology or geology and you know no better. Does that matter? The only thing that matters is the paycheck?

It matters a lot. If the leaders of your employer are fools, they will steer the company wrong and wreck it. Then you don't get paid. You will likely be blamed, despite it being totally unfair to blame you thanks to your efforts to stay out of any politics, don't ask questions, and just shut up and follow orders. If you're unlucky, you may even be injured, or killed. When the Titanic sinks, it doesn't matter that you weren't the captain, you were just a good little flunky, you're going down with the ship anyway.

porridge wog (0)

Anonymous Coward | about 8 months ago | (#46441337)

Walls didn't work for the Romans

An unverified Scotsman told me Hadrian's would have been fine if they'd installed it the right way round. So I kicked him in the nads. Fucking porridge wog, who does he think he's calling a barbarian?

Re:porridge wog (1)

Anonymous Coward | about 8 months ago | (#46442649)

Roman Officer: "Great spirit of Jupiter! Our culture is centuries ahead of theirs. Why, we have toilets... and wipe our bottoms with vinegar-soaked sponges."

Centurion Blackadder: "Yes... and they wipe their bottoms with Roman soldiers!"

Re:Ivy League = theroy loaded classes with skill g (1)

Darinbob (1142669) | about 8 months ago | (#46442853)

Some people want to box things up into compartments. Sure it's useful to know Roman History, but that's for other people they think. So they learned Java and know nothing else but that, and leave the repeating history thing to politicians. They leave the theory to the mysterious people who write Java frameworks and runtime (possibly they're wizards), they leave the optimization of their programs to the customer who's job it is to buy a faster computer every year.

This isn't just about preparing someone to be a leader; plenty of people are happy being followers. However people do need to be prepared to know when a leader is worth following, ability to point out when a leader is wrong, whether that leader is the POTUS or a CEO or a manager.

Re:Ivy League = theroy loaded classes with skill g (1)

Joe_Dragon (2206452) | about 8 months ago | (#46440885)

and the school system should be setup better for people who want to learn new skills with have to deal with the old system / old college time tables.

Re:Ivy League = theroy loaded classes with skill g (0)

Anonymous Coward | about 8 months ago | (#46440983)

Learning how and why it all works is easy enough just by using it, if you're competent. If you're incompetent (like most programmers are), then just give up.

Re:Ivy League = theroy loaded classes with skill g (5, Insightful)

AuMatar (183847) | about 8 months ago | (#46440845)

Other way around. If you learn the new hot skills, you can get a low level job where you'll struggle and work poorly because you don't really know what you're doing. Then when the buzzwords change, you'll be unhirable. If you learn the theory and fundamentals, you'll write better code more quickly and be able to easily pick up new technologies as they come along. Theory always trumps "real world" skills.

Re:Ivy League = theroy loaded classes with skill g (1)

pigiron (104729) | about 8 months ago | (#46440961)

No. Years of study in order to implement the ultimate type safe language is absolutely useless.

Re:Ivy League = theroy loaded classes with skill g (1)

phantomfive (622387) | about 8 months ago | (#46441741)

No. Years of study in order to implement the ultimate type safe language is absolutely useless.

Or it lands you a job for $250k at Google/Microsoft research.

Re:Ivy League = theroy loaded classes with skill g (1)

pigiron (104729) | about 8 months ago | (#46441915)

Hell, I made more than that as a programmer with just a B.A. in Econ.

Re:Ivy League = theroy loaded classes with skill g (0)

Anonymous Coward | about 8 months ago | (#46441921)

Clearly everybody else is Doing It Wrong, and you're the One True Genius who certainly Knows How To Do It Right.

Re:Ivy League = theroy loaded classes with skill g (1)

pigiron (104729) | about 8 months ago | (#46441963)

Since when is "everybody else" trying to implement the ultimate type safe language?

Learn to read.

Re:Ivy League = theroy loaded classes with skill g (1)

phantomfive (622387) | about 8 months ago | (#46441937)

Hell, I made more than that as a programmer with just a B.A. in Econ.

Good. When other programmers make more money, it raises up the salary for all of us.

Re:Ivy League = theroy loaded classes with skill g (-1, Flamebait)

pigiron (104729) | about 8 months ago | (#46441969)

Not when those other programmers are cheap ass Hindu H-1B drones.

Re:Ivy League = theroy loaded classes with skill g (1)

phantomfive (622387) | about 8 months ago | (#46442019)

Apparently you aren't as good as you think you are if you're worried about that.

Re:Ivy League = theroy loaded classes with skill g (1)

pigiron (104729) | about 8 months ago | (#46442049)

I didn't say that I was good, just that I was well payed. There *IS* a difference you know.

Re:Ivy League = theroy loaded classes with skill g (1)

phantomfive (622387) | about 8 months ago | (#46442073)

And to that my answer doesn't change.

Re:Ivy League = theroy loaded classes with skill g (1)

pigiron (104729) | about 8 months ago | (#46442117)

Non sequitur.

Re:Ivy League = theroy loaded classes with skill g (0)

Anonymous Coward | about 8 months ago | (#46442657)

"Catch...or catch not. There is no 'try'!"

correction (1)

Anonymous Coward | about 8 months ago | (#46441037)

should say: "fundamentals trump real world skills". And usually the fundamentals and real world experience go hand in hand.

The current problem is CompSci is taught via syntax and people are certified immediately... unlikely typical linguists. For example, you can take an accelerated course in Arabic, but you'll likely get it wrong and insult someone in a bazaar in Cairo.

And theory is just that.... theory. Any academic approach will fails 90% of the time in the real world, hence RMS's bazaar (real world) vs. cathedral (theory) analogy.

Of course "pro-theory" advocates has a scapegoat: in the real world; if you didn't do it right, it's because you didn't follow the theory as most academics would say (e.g. Agile's "you didn't do it right" excuse). The irony....

Re:correction (3, Informative)

Your.Master (1088569) | about 8 months ago | (#46441317)

Cathedral and the bazaar isn't RMS' idea, that comes from Eric S. Raymond. And it's not about real world vs. theory -- they are both real world and exist in real working popular products.

And, crucially, RMS' work was used as an example of the cathedral. Linux was, of course, the bazaar.

Re:correction (4, Insightful)

next_ghost (1868792) | about 8 months ago | (#46441451)

And theory is just that.... theory. Any academic approach will fails 90% of the time in the real world, hence RMS's bazaar (real world) vs. cathedral (theory) analogy.

Of course "pro-theory" advocates has a scapegoat: in the real world; if you didn't do it right, it's because you didn't follow the theory as most academics would say (e.g. Agile's "you didn't do it right" excuse). The irony....

Let me illustrate the difference between theory and "real world skills" on solving any problem which is equivalent to finding shortest path in a graph. There are three basic algorithms to solve that problem: depth-first search (linear-time, only works if the graph is a tree), Dijkstra's algorithm [wikipedia.org] (O(m+n log n) where "m" is the number of edges and "n" is the number of vertices, works on any graph as long as no edges have negative weight) and Floyd-Warshal algorithm [wikipedia.org] (cubic time in the number of vertices, works even with negative weights and detects if the graph contains a negative loop, in which case the shortest path is undefined).

Somebody who knows the theory will inspect the specific problem he's trying to solve and choose the fastest algorithm from the list above that will work with the data. There are lots of reference implementations around so writing those about 50 lines of code will be easy.

Somebody who doesn't know the theory but has lots of "real world skills" probably won't realize that the problem has a well-known 50-line solution that works in all cases and he'll hack together some poorly thought-out piece of crap that's too slow and fails spectacularly on data that don't match the coder's assumptions. As the time goes by and bug reports pile up, the mess will grow even bigger into a convoluted tangle of several thousand lines of code that only the best and bravest dare to maintain.

Re: correction (0)

Anonymous Coward | about 8 months ago | (#46441707)

Well said. That is it in nutshell

Re:correction (0)

Anonymous Coward | about 8 months ago | (#46442711)

And the vast, vast majority of developers will never need to know that. Most developers out there are doing pretty simple business apps that back up to a database.... And any developer who finds himself needing to find the shortest path is going to google "shortest path algorithm" and guess what the very first result is...

Software engineering that the vast majority of people engage in just isn't that complicated.

Re:correction (1)

Darinbob (1142669) | about 8 months ago | (#46442897)

The majority of developers will also never need to do anything that involves a lot of thinking. And as time goes on they may wonder why it's getting harder and harder to get a job, or why they're always stuck doing pretty simple business apps.

Re:correction (1)

sourcerror (1718066) | about 8 months ago | (#46442733)

Somebody who doesn't know the theory but has lots of "real world skills"

He will probably just resort to A* in every case.

Re:correction (2)

MikeBabcock (65886) | about 8 months ago | (#46442865)

In fact this is precisely why I wish there were something like a comp.sci wiki. A lot of this knowledge should be easier to access for people who didn't need a full degree to get where they are but realize they have a problem to solve and need a better way to do it than posting their current code on stackexchange.

Re:correction (1)

Darinbob (1142669) | about 8 months ago | (#46442883)

I see people who do O(n^3) problems quite a lot. They don't necessarily intend that, but there's an O(n) library function that gets called in a loop, and that gets called in a loop, and the programmer never gets around to figuring out why things are so slow. I have seen some people realize why it's slow, but they refuse to fix it because they refuse to write a routine if a library routine does the same thing (I've seen someone argue vehemently that STL's maps were proven to be the most efficient they could ever be, as if I were speaking heresy when suggesting alternatives).

Re:Ivy League = theroy loaded classes with skill g (1)

Jawnn (445279) | about 8 months ago | (#46442161)

This! If I had a dollar for every line of code written by very "productive" coders that was part of an architecture that was actually a nightmare when it comes to scalability, availability, or manageability, I'd have a lot of dollars. There is more to "computer science" than programming; a lot more.

Re: Ivy League = theroy loaded classes with skill (1)

IrquiM (471313) | about 8 months ago | (#46440861)

Sure, if being a code monkey is your ultimate goal

Re: Ivy League = theroy loaded classes with skill (1)

pigiron (104729) | about 8 months ago | (#46440967)

Programming is fun!

Re:Ivy League = theroy loaded classes with skill g (2)

Zmobie (2478450) | about 8 months ago | (#46441023)

No. Just straight up no. Any idiot can learn how to fumble their way through a programming language's syntax and API (albeit it may take them a while in some instances), but if you want to actually be a real computer scientist or software engineer you need the theory. I've been programming for 10 years now, 3 of it beyond getting my bachelor's degree and the code i write now is worlds better namely because of the information I learned while working through my BS in Comp Sci.

Re:Ivy League = theroy loaded classes with skill g (1)

EmagGeek (574360) | about 8 months ago | (#46441299)

I went to Georgia Tech, and it certainly does NOT have the "ivy league" mentality. In fact the place prides itself on the practicality of its curriculum. The university actively engages industrial leaders to shape and form its curriculum to keep it current with demand.

I don't know what the deal is with the online Master's, though. I completed my attendance there when the Internet was just starting to take off, so I don't know if the same resources are available (like the Alumni mentoring program, etc...).

Re:Ivy League = theroy loaded classes with skill g (1)

drstevep (2498222) | about 8 months ago | (#46442707)

...until you have to write a truly complex system. Then, knowledge of correctness, algorithmic complexity, graph theory, functional and operational paradigms, etc., will separate the low end code generators from the people who actually design and build the system.

The skills you need are related to how to think about the system, find an appropriate approach to designing and implementing the solution, and being able to demonstrate that it is effective. Putting it into a language is a last step.

I can't tell you HOW MANY TIMES I've run into people who think they know how to build a system because they know a tool. And they are fine, until I ask them about timing and randomness, data complexity, parallelizing on a massive scale, and so on. And then I have to explain the CONCEPTS so they'll even begin to understand the questions I'm asking.

Learn the WHY of what's going on. You can always pick up a tool.

Re:Ivy League = theroy loaded classes with skill g (1)

Darinbob (1142669) | about 8 months ago | (#46442827)

Disagree. This theory is MORE important than the particular skills. Because that fad language you learn today may be ignored in 5 years, or 10, or 20. But the theory still works. We have hundreds of thousands of code monkeys who write crappy code but very few who write good code. There is no CS class I've taken that has turned out to be pointless; and I took every one of them except databases and VLSI (and those two are useful also).

Even if some class is pointless as far as skills; the whole point of university is to LEARN and those classes are good at teaching you to learn and forcing your to think. Whereas learning how to use some new framework or language teaches you very little. Teaching you to do a job is not the point of a university education. You can go to a trade school for that, learn how to program at the junior college in half the time. The university is training people for life, for adaptability and versatility, to make someone well rounded instead of just a code monkey.

Attempting to learn the minimum necessary is the same as attempting to be ignorant.

MIT (4, Informative)

ACS Solver (1068112) | about 8 months ago | (#46440807)

You can learn basically the entire CS curriculum of MIT. This guy [scotthyoung.com] did it in 12 months, which is quite extreme, but it shows that the material is all there, and you can of course go through it (or parts of it) at your own pace.

Re:MIT (3, Interesting)

Anonymous Coward | about 8 months ago | (#46440841)

Parts of it are painful to do on your own. The emphasis on Scheme and recursive layers of abstraction, and the last 20 years of objected oriented nonsense wasted space that is is the descendant of early LISP research and makes Java programmers so *bad* at performance programming can take a decade to *unlearn* to do anything reliably or in real time. "Object Oriented" is the enemy of understanding why things break.

I'd still recommend the online courses from MIT, in general, and spending time with toys from Adafruit. There are a stack of toys there that can give a grounding in basic electronics, small system configuration, and microprogramming far beyond any course work done without an actual lab to play in.

Re:MIT (0)

pigiron (104729) | about 8 months ago | (#46440991)

LISP 1 is the exact opposite of object oriented as it is a thoroughly mutable example of functional programming.

Re:MIT (0)

Anonymous Coward | about 8 months ago | (#46441105)

You apparently never studied LISP or Scheme. The insistence on under-defining an interface between layers of processing, and handing off entire sets of functions behind "layers of abstraction", coupled with the refusal to properly define modules and represent them as mysterious black boxes inside which miracles occur, is the core of object oriented programming. And far too many of LISP's failures of resource management and unbounded recursion are taught, as desirable, in its object oriented descendants. The "layers of abstraction" are a very effective set of "Somebody Else's Problem" blinders to the consequences of poor selection of data types or processing in higher levels of the the system.

And *that* mistake is what it takes years to unlearn, because your homework is *marked wrong* for writing more efficient, linear systems, even when you do it both ways. Been there, done that, had to argue with Sussman about my grade. An online course would have had one devil of a time realizing that I did the work *both* ways, and would generally mark you wrong for it.

Re:MIT (1)

phantomfive (622387) | about 8 months ago | (#46441753)

Nah, you're getting confused. There's even a book on it [wikipedia.org] . LISP isn't exactly a functional language, it's a multi-paradigmatic language, that includes both functional and OOP.

Re:MIT (1)

pigiron (104729) | about 8 months ago | (#46441927)

I said LISP 1 which is an interpreted language (that would be "scripting" to y'all) not CLOS or even CommonLisp.

Re:MIT (0)

Anonymous Coward | about 8 months ago | (#46442677)

Scripting != interpreted languages, although scripting languages are often interpreted.

Scripting == programming with another program as the target, rather than an OS or bare metal.

Re:MIT (1)

pigiron (104729) | about 8 months ago | (#46442705)

Then why is bash and other shells almost universally referred to as "scripting" languages?

Re:MIT (0)

Anonymous Coward | about 8 months ago | (#46442809)

> Then why is bash and other shells almost universally referred to as "scripting" languages?

Uh, because they target other programs?

Re:MIT (1)

ChunderDownunder (709234) | about 8 months ago | (#46441977)

The parent was making a distinction between Lisp-1 (e.g. Scheme) and Lisp-2 (e.g. Common Lisp).

CLOS, obviously, has objects bolted onto it - for which, as you point out, they write books.

Re: MIT (0)

Anonymous Coward | about 8 months ago | (#46442151)

Amen.

Re:MIT (1)

NapalmV (1934294) | about 8 months ago | (#46442749)

Amen.

Thank YOU Interwebz (3, Informative)

Niris (1443675) | about 8 months ago | (#46440823)

As a recent CSci graduate from a state university in California, I can tell you that there's far better content online than you'll pick up in a class, so good job checking out that area. MIT has a lot of great courses on YouTube, such as their algorithms lectures from Cormen, and edX has a fair amount of content as well. There's also a lot of books out there if you can pick an area that interests you the most, such as mobile or web, that you can just read through and type up the examples yourself. The thing about programming is that you tend to learn more from doing than from listening to lectures, so if you can just sit down with a book, online tutorials, etc., and just make programs and figure out why they don't work on the first go (and when you pass the forloop/if statement section of your education, they probably won't), then you'll be golden.

Re:Thank YOU Interwebz (1)

Zmobie (2478450) | about 8 months ago | (#46441061)

I don't know what your university was doing then, the courses at mine were quite valuable and informative. The bullshit I have seen posted online is exactly that. Granted, not ALL of it is bullshit, but a lot of it. I now have a niece that is interested in learning about programming and computer science and I shudder to think what ridiculous buzzword crap people are going to try and direct her towards. Luckily I actually have the necessary background to weed out some of that bullshit and she is knows this.

Depends on your goal (0)

Anonymous Coward | about 8 months ago | (#46440835)

If you want to get good at what most programmers do these days, learn to use Eclipse, Spring, and JQuery to hack together existing libraries. A programmer who can actually write code is rare.

You have all the education you need, don't bother (3, Informative)

plopez (54068) | about 8 months ago | (#46440849)

You know some decent languages and have a background in Mathematics. Dont' waste your time, CS is no more than an Applied Math degree "in drag". All you need is some experience which can be obtained by volunteer work, e.g. maintaining the web site of a no kill animal shelter.

BTW, since you background is in Math Ed., I assume you have good people and communication skills. That is a great way to differentiate yourself from the pack. You could end up running a tech firm if you do it right.

Re:You have all the education you need, don't both (3)

Great Big Bird (1751616) | about 8 months ago | (#46440917)

While, CS is definitely applying math, it lies somewhere between Math and Software Engineering. It is certainly not what you minimize it as.

Re:You have all the education you need, don't both (2)

dkf (304284) | about 8 months ago | (#46441071)

While, CS is definitely applying math, it lies somewhere between Math and Software Engineering.

Anything to do with user interfaces will have a fair chunk of applied psychology as well (and some appreciation of parts of physiology too). What's more, people doing theoretical CS tend to go much deeper into discrete math than the normal math student does.

Re:You have all the education you need, don't both (1)

alvinrod (889928) | about 8 months ago | (#46441263)

It really depends on what is meant by computer science. A lot of CS degrees today contain a lot more software engineering and general programming than they do theory. A person can take a lot of more traditional CS classes (e.g. compiler theory, cryptography, automata, algorithm analysis, etc.) which are are fairly heavily math based, and probably learn a lot, but they won't necessarily help with programming ability or the kinds of things that are more generally useful today.

If someone just wants to build websites using some framework or some casual programming, odds are they won't need to know a lot of those things. I think that if you're going to be a professional software developer, those types of courses can open you up to new ways of thinking and problem solving that will be valuable.

To me there are really three different areas: computer science, which is mostly math and theory; programming, which is translating algorithms into code; and software engineering, which encompasses the entire software lifecycle and managing it. A software professional probably wants some knowledge of all three areas, but it's likely that they'll tend to specialize in one particular area.

Re:You have all the education you need, don't both (1)

Zmobie (2478450) | about 8 months ago | (#46441079)

I've seen plenty of people that were excellent at math (some working on an MS in it...) that couldn't write a worth a damn program if their life depended on it. Not saying the OP is necessarily that though. It does give you a very firm background for CS (just getting my BS I ended up one class short of a math minor anyway, and even then I had to learn basic multi-variable calculus and applied differential equations when I took physics), but there are still quite a number of high level CS concepts one should learn. Again, the math background makes them SIGNIFICANTLY easier to grasp, but taking classes or doing course-type related CS would still be quite valuable.

Re:You have all the education you need, don't both (1)

ledow (319597) | about 8 months ago | (#46441111)

As someone with a degree in Mathematics and Computer Science, I can tell you that if your CS degree is applied-maths, then you really should find another course.

Pretty much, when I was at uni, the CS guys couldn't do the maths side of the courses and the maths guys couldn't do the CS side of the courses. There's an overlap of, at most, a few "theoretical" courses (so much closer to pure math, to be honest) - graph theory, coding theory, logic, etc.

But ultimately, they are separate for a reason. Otherwise, CS would just be another area of mathematics rather than a subject in its own right.

That said, education is a lovely thing to have, but if you want recognised education, it kinda stops at your second degree. Past that, you wouldn't need to prove yourself career-wise in the vast majority of jobs. And, in fact, a masters or a PhD speaks volumes more than any amount of undergraduate degrees.

If you're doing it for yourself, do it for yourself (and good on you!). If you're doing it for career "brownie points", then do the job, or higher education, instead.

Re:You have all the education you need, don't both (1)

pjt33 (739471) | about 8 months ago | (#46442027)

But ultimately, they are separate for a reason. Otherwise, CS would just be another area of mathematics rather than a subject in its own right.

That's how it started. The first CS degree was Cambridge's Dip.Comp.Sci., taught out of the Mathematical Laboratory. I think that the best way to see CS is as an interdisciplinary subject which sits between pure maths, engineering, and psychology.

Re:You have all the education you need, don't both (-1)

Anonymous Coward | about 8 months ago | (#46441275)

Maintaining a web site for a no kill shelter. Sure that's real work, and totally prepares you for a real programming job. Here, have a lollipop and tottle along now. Naivete is so cute.

CS gets abused buy HR departments, a lot. Real CS is writing operating systems, libraries, languages, and compilers. You know, the low level stuff that everyone else in the Tech ecosystem chain uses.

If you're degree is in Math Ed., you're boned either way. Math Ed. is an education degree. It's too light to be real math, and it has nothing to do with CS. Best advice, go to law school.

Machine Learning class on Coursera (0)

Anonymous Coward | about 8 months ago | (#46440851)

not a degree equivalent, but could be part of a larger program.
https://class.coursera.org/ml-005

Saylor.org (3, Informative)

Taxman415a (863020) | about 8 months ago | (#46440913)

Saylor has one of the most complete, free, college degree equivalents that I have seen. The best part is many degree programs have links to video lectures, full problem sets and exams.

http://www.saylor.org/majors/c... [saylor.org]

Their math stuff is decent, and that's what I'm competent to evaluate, so based on that I'd think the compsci would be good too. Some degree areas are not complete yet, but compsci is.

Re:Saylor.org (0)

Anonymous Coward | about 8 months ago | (#46441073)

+1 for saylor.org. It's also just a good site for finding content on all the major subjects.

Re:Saylor.org (1)

theskipper (461997) | about 8 months ago | (#46442633)

Interesting. From your experience, were the number of hours listed under "time advisory" pretty accurate?

As long a you don't intend to get work from it... (1)

tlambert (566799) | about 8 months ago | (#46441019)

As long a you don't intend to get work from it, there are tons of alternatives for learning the information that would be contained in the course.

Typically speaking, just doing the necessary coursework, as Scott Young did, isn't enough to make you employable, even if you do it in a context in which you end up with a degree. It's a good part of it, though, since it certifies that you would be able to use the same words to communicate about algorithms, etc., when talking to peers, which is something you probably wouldn't be able to do otherwise. A lot of the communications in any technical field takes place in a higher bandwidth shorthand, or jargon, which lets you communicate a lot of information in a short amount of time.

Consider, for example, if you don't speak portuguese, your teaching credential and experience, valid though it may be in an English speaking country, won't transfer over directly to being able to teach even your top subject to a non-English speaking class.

Re:As long a you don't intend to get work from it. (1)

dkf (304284) | about 8 months ago | (#46441127)

As long a you don't intend to get work from it, there are tons of alternatives for learning the information that would be contained in the course.

One of the key differences is that taking a formal course on it forces you to study the boring and hard parts as well as the fun bits; often they're important for gaining a real level of understanding. (I suppose that's true for pretty much any subject.)

If you do intend to use it for the purposes of obtaining employment, you'll need to actually take the exams at an accredited institution. Otherwise the employers won't know you from some random jerk walking in off the street claiming something which isn't true. No accusations, but from their perspective, self-taught is indistinguishable from untaught (unless you've got a solid portfolio of work or a good history of working in the area, in which case nobody will really care about the degree).

Why does Sheldon need advice? (1)

cyberspittle (519754) | about 8 months ago | (#46441027)

Seems odd and out of character.

Just do it (1)

Anonymous Coward | about 8 months ago | (#46441057)

School is only a starting point to gain basic knowledge. The only way to learn to code is by coding. All of the truly excellent programmers that I know have no formal education in programming, but they all love doing it, and that is the key. No amount of education will make a good programmer if they don't love doing it. Code is not really a tech skill, it's more a literature story telling, with non-fiction bindings skill.
It requires technical knowledge, of course, but it isn't classical engineering in nature.

learn agile and scrum (-1)

Anonymous Coward | about 8 months ago | (#46441091)

as much as it is a pain, most tech shops use agile and scrum for project planning these days. learn that and take it to heart.

also, learn how a CI/CD (continuous delivery) systems works to automate the bulk of code review processing

learn about test driven development ...

find some opensource projects and volunteer to fix bugs ... check the code submissions to understand what they are doing as experienced engineers and learn from that.

Loots of good stuff out there (2)

johnjaydk (584895) | about 8 months ago | (#46441133)

This is all Python centric but that's where the jazz is these days:

  1. Codecademy. My 12 year old son just passed it.
  2. An Introduction to Interactive Programming in Python (coursera.org). Games and great fun. Also in python.
  3. Udacity.com. Do all of their software subjects. Just ditch the Java stuff. The 90's are long gone.

I've got a 15 year old masters in CS but I went through the coursera and udacity stuff and learned quite a lot along the way. Good stuff.

inB4 (1)

Hognoxious (631665) | about 8 months ago | (#46441313)

inB4 Joe "tard school is bettor" dragon.

Re:inB4 (1)

Hognoxious (631665) | about 8 months ago | (#46441385)

P.S. Alas, not [slashdot.org]

Computer Science BS (3, Insightful)

prefec2 (875483) | about 8 months ago | (#46441353)

You should have a look at the average course structure of a BS program. Normally it contains the following elements:
- Math. hopefully graph theory, lin. algebra, not so important for most things, but still often found in curricula analysis
- CS theory: first-order logic/predicate logic, Turing machines, grammars (the Chomsky stuff) LR, LL, LRAR, regular languages, mu-recursion, the language Z or objective-Z (however this item is optional)
- Different programming paradigms. Best learned with special languages: functional -> Scheme/Lisp/Haskell; OOP, but you already know that.
- OOP programming and design pattern
- Software engineering: UML a bit, use case forms etc., different types of project management: agile, RUP and V-model (only basic principles)
- Hardware: basic analog electric components, transistor etc.; FPGA etc. VHDL or something similar; basic CPU designs, 3-address code, gate architecture (pipeline is often too complicated)
- Some other basic field. Robotic, e-learning etc.
- Some extra stuff from a different field (hopefully not a science and not economics)

There are plenty of books on most of these topics. If you would live in Germany you just could enroll at the next University for free and checkout their courses. Or go there without enrolling. In most cases no one would check if you are a student ;-)

Degree hype (0)

Anonymous Coward | about 8 months ago | (#46441371)

I find that most folks with a degree and no talent are experts at defending the value of the degree, while those without one do all the work, and advance the state of the art! If your not an EE, then your only a computer consumer, not a scientist of computers! The CS degree was designed to separate you from your cash, the result of the explosion in education lending. Suckers, LOL.

The job equivilent of a college CS education (4, Insightful)

quietwalker (969769) | about 8 months ago | (#46441429)

The simple fact of the matter is that a 4-year university's computer science program is not meant to provide job training, and as far as career skills go, you could pick up a CS degree equivalent of job skills in under a year.

I wrote about this the other day, on the Ask Slashdot: Modern Web Development Applied Associates Degree [slashdot.org] topic, and I'm sticking to my guns on it. You don't need any math more complex than simple algebra. You don't need any theory classes.

Some of these theory classes may provide better insight, and lacking them may limit you if you're attempting to enter a highly specialized, complex field with no demonstrable experience in it (which, by the by, doesn't really happen), but for 98% of your day job, it's going to be more important for you to know how to parse and sanitize input than it will be for you to know how to write a compiler, raytracer, decompose a function into mathematical terms, perform a Big-O analysis, design a memory manager for an OS, and you'll probably never use matrices or differential equations.

Hell, the grads I see now a days haven't got a concept of efficient design, most lack basic database skills, awareness of common libraries, common development tools, never used any team-based tracking systems or source control, and so on. Unless they've struck out on their own, they're almost completely unsuitable as candidates. Many of the self-taught devs seem to have a better grasp of things, if only because they end up attempting to write usable software from design to implementation, instead of homework assignments demonstrating polymorphism and recursion.

On the other hand, for many HR departments, a degree is go/no-go. You'll never get to an interview without one, and there's no free, online equivalent for that. You'll just have to make do with having superior technical skills, and try to apply at a company that values that more than a sheet of paper.

RTFM, you damn kids (1)

pentabular (2609873) | about 8 months ago | (#46441573)

Go forth and read the "friendly" manuals, /SERIOUSLY/!

Ask your students.... (2)

Simonetta (207550) | about 8 months ago | (#46441941)

With all respect...
  All the comments that you'll be getting from Slashdot readers will be worthless to the point of your question. As you may have noticed by now, every responder assumes that you want to learn to how to do what they consider a dream job in CS to be. And they give replies like 'read Knuth' or 'do MIT on-line courses'.

Since you already have an excellent job with a good future, and you have already studied elementary program texts in CS languages like Java, allow me to suggest that you ask the middle school students in your programming club what they would consider to be cool and useful programs to have. After you get through the fantasy aps like ' a really cool game that the player doesn't end up always losing' and ' a smokin' 3-D interactive girlfriend' or ' a bio-implant that will allow me to get perfect SAT scores without studying', then you might get some interesting suggestions.

Personally I suggest that you and your programming students develop Arduino and Raspberry Pi applications. The elementary 'blinking LED' stuff, simple robotics applications, and digital television art projects made from inexpensive TFT displays will be fascinating to middle school and high school students. (hopefully).

More Mathematics (1)

twistedcubic (577194) | about 8 months ago | (#46442005)

Why not get a masters degree in mathematics (non-Ed)? While taking classes in higher mathematics you will encounter problems where you can apply your programming skills. And since you're a math teacher, taking more mathematics classes will make you a better mathematics teacher (yes, I know this is generally considered false). Also, it will improve your career opportunities in mathematics. Even if your current job is great, people in the real world get jealous of smart people and try hard to derail their success, ESPECIALLY in the education world.

If you can convince employers... (1)

mark-t (151149) | about 8 months ago | (#46442163)

... that you know your shit as well as or better than any graduate, then more power to you.

I have found, however, when one does not yet have an abundance of expierence, that having a formal education makes a significant difference to just getting by the initial filtering process.that many companies use.

no need to wait for courses (0)

Anonymous Coward | about 8 months ago | (#46442319)

All but one of the courses in the infoworld article have past sessions that you can access the content of. Just check the "Sessions" drop down on each course's page.

You might be able to cover some of the topics from the missing Programming Languages course with something like Paradigms of Computer Programming from edx: https://www.edx.org/course/louvainx/louvainx-louv1-01x-paradigms-computer-1203 . If you browse the courses from coursera, edx, and udacity, you might find additional courses with related topics.

No, just no (1)

maccodemonkey (1438585) | about 8 months ago | (#46442329)

Don't get me wrong, there is a lot of valuable, raw knowledge out there, and a lot of the textbooks I had for my CS degree are available, and are not textbook-y material, and I've see a few suggested in this thread.

But I don't think an "online" equivalent to a CS degree exists.

A good CS degree is fundamentally incompatible with working online, on your own time. I really respected the program I was in, and whether it was working on open source or any other sort of project, one of the most valuable aspects of the work was learning to work in a team, as you probably will in the real world. I had at least three entire courses devoted to learning how to work in teams. Divvying up work, writing documents, communicating, etc etc.

There's also the aspect of working with professors. As ugly and horrible as some of the assignments they gave out were (I'm looking at you, compilers coursework), there is a degree of f'd upedness in the stuff that professors can throw at you that's not present in the clean examples you normally see in books that you find in class. Again, nothing is really a comparison to having to work in a team or with a professor to find your way out of a requirements hole. And there is nothing for earning real world experience than having to muddle through coursework assigned by a professor that doesn't speak your native language (which trust me, will also be seen in the real world.)

Also, there's just the face to face work with professors. I found my computer graphics course super valuable, and that was taught by someone very active in the OpenGL space. I could probably get a book by someone also active in the field, but it's not the same.

The worst CS degree programs I've seen simply try to reproduce what you'd find in a book and charge you $30k-$40k a year for the privilege. You could probably reproduce that in online coursework, and if that's what you want, then I wish you luck. But if I'm reading the question exactly as posed, and you want something that could be treated the same as a CompSci BS but on your own schedule and online, I don't think such a thing exists. At least not something I'd want that would convince me to hire someone.

I could see a hybrid approach working, and now that I think about it, that's probably close to what I had. About half my time in my degree was spent off on my computer logged in to campus servers hacking away, but that other half of working with teams in person just can't be substituted for.

What's your end goal? (1)

dont_jack_the_mac (2882103) | about 8 months ago | (#46442451)

If you're just looking to pick more programming knowledge to continue teaching middle school then you do not need a MS for that. MIT's Opencourseware is a great place to start: http://ocw.mit.edu/index.htm [mit.edu]

Free Java Lectures (1)

curmudgeon99 (1040054) | about 8 months ago | (#46442551)

I have a Java site: http://sites.google.com/site/f... [google.com] They're pretty self explanatory. Three semesters worth.

Free Java Lectures (2)

curmudgeon99 (1040054) | about 8 months ago | (#46442569)

I have a site that is free and has three semesters of Java lectures called: http://sites.google.com/site/f... [google.com]

functional programming (1)

hlee (518174) | about 8 months ago | (#46442843)

We were taught Miranda (very similar to Haskell) in my bachelor's program. It was the primary language for most of our exercises across many courses. It is an effective lnguage for teaching many fundamental aspects of programming like recursion, and algorithms - expressing quicksort in a functional language is not only more elegant and considerably shorter when compared with c or Java. That was over twenty years ago, but to this day these functional programming abstractions have been invaluable in shaping my designs, and thought processes involving any kind of programming whatever the actual language I'm using.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?