Developer

Ripoff Educations


I have recently been talking to someone who is in the process of studying “Computer Science

About

Justin James is the Lead Architect for Conigent.

115 comments
jk2001
jk2001

I think the old MIT course is available online. I've heard the first semester course lectures (CS60A) from UC Berkeley, and the course is basically the same course as was used 20 years ago but updated with lots of OO concepts. It's a really great course, based on the classic Abelson and Sussman text. A lot of the cool ideas discussed in the text have been emerging as language features in mainstream languages for the past decade or so. Presumably, their second semester course on data structures is still good. (In the MIT coursework, data structures are covered in the second semester.) I suggest that folks get the podcasts, and then look up the ideas discussed on Wikipedia. From there, you can learn to use language features like closures, anonymous functions, and generators in your own language.

techkid
techkid

Would it be worth it considering the fact that programming is a very dynamic field so much so that there is already widespread speculation that code generators will replace the developer? It would be better teach programming towards the end of high school because that is when kids get more career specific.

ByteBin-20472379147970077837000261110898
ByteBin-20472379147970077837000261110898

Well, I don't know what Computer Science would entail. I thought some programming but it was supposed to be "a little bit of everything" in computers. Not all schools are good either. One does have to shop around. And also now days, "Computer Science" would be too general as most folks need to take courses in certain areas that they are hoping to work in. IT is more niche based than it was back in the 80s. There's more out there to specialize in. Knowing everything can't be done anymore. You can be a jack of all trades and know a little bit of this and that, but to really be good you have to have training in a specific area. I used to want a Computer Science Degree. I guess in a way I kinda still do. But never could afford it. Instead, I'm taking online courses via my local school district's continuing education system. I've went through two courses (Introduction and Intermediate) in Visual Basic.NET. I am currently doing one in C++. Next is two in C# (Beginner and Intermediate) before I break for summer vacation. The Visual Basic.NET didn't just teach Visual Basic.NET. It did that well, but also some OOP programming concepts and even Database programming! Things I really needed and am now using at work! Same with C++. I'm learning more than just programming but as in the VB.NET course, I'm also getting a lot of hands-on practice in writing programs. There is so much to computer technology today that a 4-year degree program just can't cover all of it. Granted, some that try to only cover one thing and probably should be renamed to what they actually cover. I don't think there's such thing as a "Computer Scientist" anymore. Unless you talk about a scientist who develops computers (but that's a computer engineer, mostly) or one that writes programs (but that's a programmer and there's many languages to that too). And there's also web developers now, who are also programmers but deal with the internet, now that .NET is usable on internet sites. Then you have media developers, graphic artists, on and on and on... I think it's impossible to lump everything into one. And I agree that schools do a bad thing trying to. I think they should be more careful what they name their programs. Also one should be careful in choosing the right schools with the right courses in what they really intend to do. 99% of it is students trying to plan for an uncertain future. Not easy, if not impossible. But if you know what area you want to work in, then you can get a good idea what courses you need. Then find an affordable school with a program that teaches these courses. It's not all that easy to do though, I admit.

awk
awk

If you hadn't hear the answer. It is ?an educated dummy?. Computer Science isn't shop class. But I did attend Computer Science School in Quantico, VA with the USMC while in the USMC. It was a multi branch school when I went and the Army at the time was the only branch that did not participate. The Marine Corps school at that time was rated even with IBM's school, as the story is told, by IBM. What the school taught then was what was needed/used in the field. I think that our Universities have lost site of what is needed in the field by what they teach. They dying breeds that business is losing is COBOL and Natural to name two, without new students entering those languages. Some classes are purely by the book and the instructor has no in depth clue about a question. I state this having taken a few course as an experienced coder. Being a good/great coder is simple to me. There are fundamentals that apply to almost any coding (this is a mini topic for me, I won?t cover them here). Have code that "works" is not always the best solution. The answer in the book is not always the best answer either. Largest amount of code does not always gain what you need to do. Keep it simple as possible, never assume you have good data, never rely on defaults. The code should structured... so the yahoo behind you can find what they need to change/fix. As far as the science... statics generally have been the accepted norm - back when. Statical information of what you process through the computer should be your gauge. The gauge should show how well your programs do under stress. Is it good code or robust? If it is robust, it should handle almost anything throw at it. There is the science... it is not the language that you code that makes the science.

Wayne M.
Wayne M.

I can only speak from own educational background, but I think that Computer Science is too young to have formal mechanisms to teach about developing computer programs. Until that changes, schools will largely teach a primer in various languages. If you asked me 15 years ago what colleges should teach, I would probably have recommended a very rigid CMM/CMMI approach with well-defined and independent roles. Today, I would just as strongly argue for an agile approach with very general and overlapping roles. My reommendations for things I would like a CS graduate to know (as of today), would be heavily weighted in favor of soft-skills. How to gather requirements and facilitate a requirements gathering meeting. Testing theory. How to write clear code. How to refactor code without breaking it. How to decompose something complicated to an independent set of uncomplicated items. As I look back to what I learned in college (BSEE), I use almost nothing I learned in the technical classes. The llasting knowledge came from elective courses in the Business college and English college. I'm not sure CS is ready to teach lasting knowledge.

Editor's Picks