Ask Slashdot: Modern Web Development Applied Science Associates Degree?
First time accepted submitter campingman777 writes "I am being asked by students to develop an associates of applied science in modern web development at my community college. I proposed the curriculum to some other web forums and they were absolutely against it. Their argument was that students would not learn enough higher math, algorithms, and data structures to be viable employees when their industry changes every five years. As part of our mission is to turn out employees immediately ready for the work force, is teaching knowledge-based careers as a vocation appropriate?"
Web standards move to fast. By the end of a four year program, everything they learned is obsolete.
Mentorship, sure. Apprenticeship, I wish.
Degree? Useless.
What would someone with an applied science in modern web development do?
Would they work on the algorithms for applied science in a server side language like php?
Would they work in python/c++/haskell or something like fortran and hook into php?
I'd like to help, but I need some further information.
Note: I looked up this degree on google and the last result on the first page was this submission.
Eat sleep die
If you are just going to teach them how to use [popular GUI webpage design app], then I would say it is worthless. If your curriculum includes a fair bit of algorithm study and performance analysis techniques, it might be more viable. An AS isn't going to be enough for someone to design the back-end to say Netflix or Facebook, but if you can teach them how to make maintainable, professional quality websites, there is a market for these for local professionals (Doctors, Lawyers, independent restaurants).
There's nothing wrong with running a trade school. But "associate of applied science in modern web development" is a bit much. Still, you can now get an "associate degree" in heating, ventilating, and air conditioning. No classes in thermodynamics, but training in useful skills including brazing, soldering, and plumbing.
The fundamentals never change. With a solid base, there is nothing a programmer can't do.
An AA program focused on what will get them hired today is exactly what will not get them hired tomorrow.
I work in a company writing online billing software. We use Perl and Ruby. We don't need people who know quicksort vs. bubble sort - we need people who understand browsers, and AJAX calls, and JSON, and business logic. I never touch anything more complicated in math than basic algebra.
Javascript, CSS, and something other than PHP are what you need to know, with a leavening of SQL and XML. Screw all that CompSci crap - we don't use it in 99.9% of our code.
Why can't I mod "-1 Idiot"?
A Bachelors of Arts in anything scientific generally implies that you're not going to get enough exposure to anything you'll actually be doing, much less an associates. So sure, if you want to develop a program that teaches things they could pick up for $20 out of a book and make your college thousands, then 'Associates of Applied Science' sounds perfect.
Your hair look like poop, Bob! - Wanker.
As part of our mission is to turn out employees immediately ready for the work force, is teaching knowledge-based careers as a vocation appropriate?"
In general web developers do not require courses in theoretical computer science especially for an applied science degree at the associate level. Maybe if your college was offering a bachelor degree in web development, teaching some theoretical material during third and fourth year might be appropriate although still of questionable value. As you said the college's mission is to produce workforce-ready graduates not scientists. Most people graduating with computer science degrees never use any of the theoretical knowledge taught at universities and colleges and most end up with a career in information technology or information systems anyway.
After bouncing around the tech world several decades ago I settled into the affordable/employable community college path. After looking into my options and expenses transferring to a 4yr BS in CS was the right option for me. My local, affordable, community college was the springboard. I am grateful.
There are a lot of people who go to 4 year schools expecting a vocational training program and not a education in the principals of their field. AKA anyone who has complained about learning "fluff". A large percentage of a CompE/Computer Science program's students will state that they just want to learn what will get them a job in the real world. These same students are going to slack off in the "fluff' classes and come out with no ability to apply what they learned in those classes. It is wasted time, money, and energy. Give them another option.
To me the question is who is better off: someone who half-assed their way through a CompE degree, got out with $50,000 in debt and is still barely employable as a entry level programmer? Or someone who skipped all the "fluff" and got a 2 year practical programming degree for a fraction of the cost, and is still barely employable as an entry level programmer? I'm arguing it is the guy with less debt.
You don't need higher math, algorithms, and data structures in web development. Anyone that says you do is bullshitting you.
Of course, that degree won't be very useful in 10 years, but that isn't your problem.
#1 Do you mean planning and implementing a sever base? From customer requirements, backup provisioning, security and obselecense planning, servicing and reliability infractructure ....
#2 Do you mean using a MS based GUI to stuff a toolkit based web site onto a cloud service server?
There are several worlds of difference between #1 and #2.
This is not an isolated problem. All vocations either do or will require life long vocational retraining. New technologies are introduced very frequently in areas such as building construction, business systems, environmental systems, mining, agriculture, metalworking, and so on. The time has passed when you could learn to weld on the xyz welder, and thereafter be employed for life, working with only that tool and that skill. When John Henry saw the stream drill, what he should have done is to put down his hammer and say "teach me to run that stream drill". The associates degree should be just the first certification -- the student needs to be taught to pursue and obtain more certifications throughout his or her working life. Also, my feeling is that the curricula needs to involve as much "why" as "how".
-- Perhaps I see less than some, but more than many.
You will want a lot of backed-off stuff to teach historical-to-modern flow.
Historically, CGI and SQL were used. Some files on disk stuff, executable programs, etc. Executable programs gave way to scripts like Perl and PHP.
In modern times, raw SQL has been transformed into stuff like Python SQLAlchemy. CGI, being too slow--it takes longer to load/unload the interpreter (or even a C executable) than it does to execute the work--has given way to FastCGI, and then WSGI. Straight markup and scripting has given way to frameworks such as CherryPy, Django, and Flask, combined with templating like Mako, used to create content management systems for front-end people.
Even the SQL back-end, now through SQLAlchemy and other ORM, has given way to solution-based storage: if your data is document-oriented (XML, YAML, JSON type), it's stored in a Document Storage Database like MongoDB, Couchbase, or such. If we call SQL tables indexed CSV files, we can call Document collections indexed JSON (and call JSON a thing "similar to" XML or YAML). Graph databases connect objects to other objects, which become relevant with applications like Facebook. And some applications even mix modes: an _id ObjectId index in MongoDB may provide the 'vid_id' column on a certain table in PostgreSQL, allowing data which conforms exceptionally poorly to certain models to mingle with data which conforms exceptionally poorly to other models by using both models and storing the different buckets of the data in different places.
That shows them a handful of tools; it shows them that the tools change; and it shows them that some tools are legacy, others have been marginalized. SQL is marginalized: document storage databases make much more sense for most modern applications, and eventually will likely displace anywhere from 10% to 80% of SQL-backed storage, but will remain the incorrect answer for a significant set of applications which should (and hopefully will) remain on SQL. XML has been replaced: modern APIs use JSON rather than XML/SOAP, and on-disk storage has severe problems with large concurrent volatile data sets. Languages come and go; CGI is dead in favor of application servers such as those which communicate over WSGI.
By all means, put practical skill into modern languages and methods. Java, suck as it is, is still relevant. Python is still up-and-coming but is a fantastic language for modern Web programming. C# and VB.Net both get a lot of use in Windows-based hosting, opinions on that abound. Don't spend a lot of time making sure students are strongly familiar with how to set up C applications with CGI and Apache; that's not a useful skill. Do spend time using MySQL, PostgreSQL, and MS SQL Server, as well as MongoDB and other document stores--both programming and doing the actual data modeling--along with other, less-relevant new technologies (document storage is a big one because it conforms to most complex data; node based databases conform to a specific model useful for AI and for social networking or other object-associative tasks).
Support my political activism on Patreon.
.
Just trying to figure out which version of which browser supports what subset of CSS is one of the greatest puzzles facing mankind.....
I'm going for a Bachelor of Computer Science and I'm treated exactly like a student who pursues a mathematics degree or engineering degree. This means I must take the bare minimum of math classes like Calculus 1, 2, 3, Discrete Math 1, 2 and Linear Algebra. That's 6 courses worth typically 18 credits. Those aren't electives but basic fundamental math classes that a true CS professional needs in his/her career. You cannot adequately teach the CS math basics and the CS core courses in a short 2 year associates degree. If you try to fit all of them in to 2 years then you're doing a disservice to the students and the industries that'd want to hire them later on.
This assumes 'web development' refers to web-based applications, not just informational webpages.
This is likely to be an unpopular opinion to many, but I don't see the huge barrier here.
I've been working as a software developer for nearly 20 years now, going from games programming to business apps to web development and machine learning. In that whole time, I can count only a small handful of times when I've ever had to exhibit mathematical skills more complex than trivial algebra. Oh sure, in college, they made me write my own compilers, I had to write my own vector math routines for my ray tracer, and so on, and I consider these valuable learning experiences. However, in the real world, where I'm employed and make money, I use software libraries for those sorts of things.
When it comes to data structures, the languages of employers today, java and c#, provide me with the majority of structures and optimized-enough algorithms to manipulate them. I don't have to do a big-O analysis and determine if my data patterns will be better served by a skip-list than a quicksort, because we just throw memory and cpu at that anyway!
The point is, if you spend 1-2 years learning to write software - not computer science theory - you'll be ready to enter the workforce. Sure, you're not going to be someone creating those frameworks, you're not going to be an architect, but you'll be able to use them. A few years of real world problems and google at your finger tips, and it's likely you'll have learned enough to start tackling those harder problems.
Here's a list of what I'd prioritize before computer science theory, in regards to employment:
- Proficient in SQL and at least one database type
- Familiar with IDEs, source control, bug/task trackers, automated builds and testing, debugging tools and techniques.
- Ability to work in a group software project.
- Exposure and participation in a full blow software development life cycle (SDLC) from reading, writing, evaluating requirements, coding, debugging, QA, unit testing, the oft-overlooked documentation, etc. Include at least something waterfall and something agile-ish.
- Expert with HTML & CSS, javascript, and awareness of javascript libraries and frameworks.
I don't think I need to explain the value of any of these, and these practical concerns trump high level concepts like discrete mathematics or heuristic design for the entry-level developer.
I'm not expert in the field of web development, or auto mechanics, but I wonder what similarities there are between the two, and how one can be applied to the other in your case.
Every year, new automobiles are rolled out with new technologies, and auto mechanics need to keep their knowledge current. If they don't, they will find that their prospects become ever more limited to oil changes, tire rotations, and working on old clunkers. This seems like a direct correlation to web development.
Auto mechanics will usually get hired on by company to do "contract work" for their customers, at a wage rate. Partner with a web development contracting firm in your area, and find what things they will need from your students. I'd be willing to bet that there are some equivalent "oil change and tire rotation" aspects to web development that all your students will need to know, in addition to some of the most current web technologies, to hit the ground running.
Assume that every few years, they'll need to take a few courses to keep their knowledge current, just like an auto mechanic. You'll also have to dispel the myth that they will be rock star programmers, hackers, or be able to design and develop their own web application, just as an auto mechanic won't be designing the next model of Tesla.
Don't flood the programming market with even more worthless wankers who only know the tools you taught and the languages you taught and couldn't build a Hello, World in a new language outside of an IDE without an online tutorial and 6 man weeks.
If you need to be taught a specific tool or language in a classroom environment (rather than teach yourself) then.
a.) Your "knowledge" will be out of date before you "graduate" and more importantly:
b.) You are not fit to be a programmer.
He can at least bullshit his way into a good-paying job. The guy with the 2 year degree will be lucky to find a job with a degree that fails the minimum requirements everywhere.
Javascript and HTML haven't changed all that much. CSS? It's getting to the point where change is slowing down. Web architectures have been stable for years.
Nobody in real life uses higher math in front-end web development. They might use multiplication and division to do layouts. It's debatable whether anyone actually uses algorithms. Data structures would be handy, but it's also arguable whether web developers actually understand them or not - especially if you talk to any DBA about how website A uses the RDBMS.
Web frameworks would be handy. There are general things about frameworks that don't change.
What would be good would be some discussion around the process of building a website, from customer requirements to deployment. How to choose a technology, payment processor, server technology, etc.
Need the math. Seriously. Need the algorithms. Seriously. It's "hard" and "not cool" .. but if the enjoy eating past the initial 1-2 years that those low-weight skills are useful, good luck!
Students would not learn enough higher math, algorithms, and data structures to be viable employees when their industry changes every five years
This is a web development degree. They do not need to complete Calculus III to have enough math to do web development. I would argue the highest courses that will do them any good are Calculus I (differential) and Probability & Statistics.
It doesn't have to be math heavy ... you can focus more on 'web design' or even 'user experience design' rather than heavy programming 'web development'.
Prince George's Community College (PG County, Maryland) offers a lot of certificate programs, including ones on 'Computer Graphics' and 'Web Technology', that can be expanded into a AAS in IT (which would require you to take some programming courses, even if concentrating graphics)
Take a look at the pages numbered 116 to 124 the PDF of their 'programs of study' from their course catalog : https://www.pgcc.edu/uploadedF...
Build it, and they will come^Hplain.
My cohort was full of 25-to-30-something professionals who had already been in the workforce for several years, all of whom had an undergrad degree in something (ranged from English to comp sci), and all of whom were highly motivated to finish the program because advancement in existing careers depended on it.
Could we have done it if we were 18-year-olds fresh from high school? I doubt it. It's not that the work was difficult (well, aside from server side Java, which was a headache and a half) but the pace at which we covered material would have probably taken twice as long at the undergrad level.
I think the program may need to be more narrowly focused. You can't churn out a genuine web programmer at the associate's level, but you can produce an entry level IT worker with a solid understanding of HTML, Javascript, and maybe PHP and SQL in that time frame.
Occasionally living proof of the Ballmer peak.
2 years pure classroom is pushing it for IT jobs and 4 years is loaded with filler and fluff.
We need apprenticeships with on going classes that are not tied down to the old degree system.
Oblig: http://xkcd.com/435/
And yet your boss, his boss and his boss's boss are probably either MBAs or lawyers. Go figure.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Data structures (and associated algorithms) is the most vital part of a programmers learning. If you had a good data structures course (and coursework) you are set for life.
And also data structures should be taught in a language with POINTERS (C or Pascal are the usual picks). I don't care if you are teaching a 10 year old, if you don't teach pointers you might as well be teaching Basic.
You don't need to go VERY deep into the subject, B-trees and such are probably overkill for your aims. But the kids need to learn how to make a double-linked list, basic hash tables and binary trees with one hand tied to their backs. You can get this kind of curriculum over with about a year. The ones that get left behind should be terminated, they will not make it as programmers.
If that sounds too harsh for you, you might consider giving a class for web designers (as in, no programming, only HTML/CSS and image editing tools, maybe some templating engine). A good designer is worth his weight in gold.
Maybe an associate degree in web development would be more appropriate.
You don't need to know how to implement 5 different sorting algorithms or how exactly to solve for Big-O. You do need to know roughly how sorting works and what is implied by Big-O. If you can understand that Merge-Sort generally uses more resources in some cases and Quicksort can be attacked by binary data to cause slowness. Understanding that an ArrayList is just an Array which resizes is useful. A LinkedList is just a list that take a while to scan through. Dictionaries/Maps use a hashing function I think you could hit all these topics could be done in 2-3 classes with just enough understand that a student gets the complexity and understand that it isn't just magic. Do they need to know how to write insertion sort or red tree-black tree? No. Same with math. Maybe a stats class is useful for reviewing load testing results or predictive analysis of an application, but certainly not much is needed. In the same way I wouldn't bother teaching someone all the complexity of JavaScript when there are languages like JQuery, I don't think someone needs to know all the complexity to solve a subset of problems within software development.
What is vital is to teach Software architecture, Layering, Design and Human interface design theory. Apply that to the current tiered architecture. Teach the basics of HTML, CSS, JS plus one back-end language (Java, C# or any other), again focusing on the higher concepts, modularity, isolation, interfaces. On Database level, give them the basics of relational algebra and the normal forms of data, contract that with the current NoSQL craze. Make them think and design systems.
Those I can employ.
Give the student a complete education in math, computer languages and computer science then they can use the knowledge in many industries.
Such a degree, if it were to exist, should focus NOT on the basics of CS, but on good design.
1) Do cover human factor engineering principles and techniques. Include lab work to do usability testing.
2) Do cover the basics of good design (perhaps a joint Art department effort).
3) Do cover the foundations of programming, but using several web focused languages. C/C++/Algol and friends are wonderful, but you have limited hours.
4) Do provide an introduction to computer security. Chances are it is folks in the backend that need to focus on it, but security holes can occur anywhere.
Good luck.
Mathematics says "Hi, how's it going down there?"
1. The "art" side of web development -- design schooling. 2. The "coding" side of web development -- use of the various frameworks 3. The "cookbook" side of web development -- forms, file upload, embeds 4. The "system" side of web development -- putting it all together. The interesting thing is to structure this so that you can keep it up to date. The "beginner" level would be the first semester. For the second and third semester you would introduce advanced topics in each of the four areas, along with brushups/updates. The fourth semester would be a practical project. Successful completion of the project would determin whether the student gets the associates degree. The beauty of this system is that after each semester, the student could opt for a internship to practice what he hopefully learned. Also, because you would have brushups as part of the second, third, and fourth semester, there is a good chance that the student would be current when he graduated. Or at least not as far behind as a "frozen" two-year program would provide. Just a though.
Okay, I completed a 2 year associate program. Graduated in 2000. The problem...
All of the good students knew everything we were learnined was mostly a waste of time. COBOL, Netware, etc.
Zero for HTML/Web/Java/Windows Server/etc...
In fact, everything of value I learned in the program came from a few elective courses I took. Namely, a one semester C++ course really gave me my fundamentals of loops, arrays, etc, etc. I took VB I & II electives. But other than that first C++ course I took, I gained far more knowledge and skills from a Sam's Teach yourself HTML in 24 hours book.
The problem, is that university education is a dinosaur. It is a big lumbering slow behemoth. The heads of the IT program were dated in their skills, so they did not want to teach anything they didn't know. Sure the head of the program knew Netware, but it was already almost extinct by that point. If there are ZERO job listings for an old technology, a school should drop teaching it.
COBOL, yes there were jobs for COBOL, if you KNEW the language. 1 or 2 semesters is not enough to become proficient. And basic college class COBOL shared very little with the COBOL that was being run out there in the real world.
The truth is, an IT program for ANY university needs to be dynamic. It needs to set some fundamental concepts and systems but devoid itself of being tied too strongly to platforms. The biggest royal pain was when I tried to transfer. Basically it was a road block, I endeavored to enter an IT program of a nearby university. But they had a different credit and requirement system. They required 4 credits in a language, and refused to accept my COBOL or VB credits. As C++ was a single semester, that was only 3 credits. The solution? I would have been required to take two more semesters of PASCAL...really?
***
The point is, education should not be about a god damn white slip of paper. It should be about education, and being prepared for a practical endeavor of life. And this is why, within 20 years, 80% of the universities and colleges in America will be gone.
Because they are utterly failing their students while encumbering them with debt that far far far exceeds the value of the service most colleges are providing. And it can only go on so long, with a $1 trillion+ of student loan debt and A students flipping burgers.
***
If I were to be developing a curriculum. I would list out what concepts are necessary for today. These concepts would be updated as the business world evolves. But the platforms and means to instruct those concepts would be much more fluid.
For example, one might want to teach loops, sorts, conditional logic, arrays, encapsulation, inheritance, etc, etc. Well most of those can be taught on a wide variety of languages. DO NOT tie your curriculum to a specific language to technology. Likewise, for networking, security, roles, access, etc. These concepts stand true whether you're using a Microsoft or Unix based system. If Petunia Global Whale of a Network displaces both of those in 10 years as the default standard. It is likely that security, roles, access privileges, etc. will remain important.
So really, a university should be evaluating what concepts need to be taught, and then separately evaluating the best platform to teach it on. For example, mobile development...hot area. 5 years ago it might have made more sense to teach concepts of mobile development on the iOS platform. Today, it would make more sense to teach it on Android. (More accessibility, one can build off of prior instruction using Java.) But that doesn't mean it will always be the case.
A university curriculum needs to be practical and forward seeking. And no, there is no excuse for not being so. Don't spout that BS that curriculums take time to develop. Computer Science is NOT math or literature, it is not an area of study that is stagnant for decades on the lower end. Rather the lower ends are often the most dynamic areas.
Today, a college curriculum
Full time web developer for 12 years, no vacations, no co-workers, no college, no experience with "real/serious" languages, no math skills, no appreciation for CLI. I suggest some modern quick and easy stuff like frameworks and jquery initially to allow them to have the feeling of actually making something. But after that all the focus should be on foundation skills that would also be useful beyond just websites/webapps. Having those skills will make it possible to quickly pick up whatever else they encounter in the future. But make sure everyone takes a math test before starting the class. I go years at a time without having to use ANY math at all and then when I do need to I take 10x longer than any normal person to build the simplest things.
Seriously? LOL. An applied science doesn't require smarter people than pure science. The intrinsic limitation of being 'applied' would suggest that pure science would actually require smarter people.
In any case, the reality is that neither requires smarter people.
Loading...
It's lucky an associate degree is only two years then. By my lower maths and unsophisticated algorithms that leaves 3 years to be on the job, learning while earning.
Sure, bricklayers don't learn many things that architects and civil engineers do do. But then architects & civil engineers don't learn all the things bricklayers do either.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
If you learned Java, HTML 4/5, CSS, difference of SQL/NOSQL data storage, etc. These things are NOT going to cease in 2 years.
The problem is, that universities are often decades behind. In 2000, my computer science program required Novell Netware, COBOL, and PASCAL was common too. Sure I took some C++ and VB as electives. But how could an entire computer science curriculum be devoid of anything web related in 2000? That was just insane...
It would be like graduating today, and not even touching upon mobile, web services, or XML....huh what?
We're not talking about graduating students at the cutting edge. But they shouldn't waste 2-4 years of their lives to come out 10 years behind the 8 ball. That's ridiculous...
And CS pays better than EE or Physics. That's why you get people with Physics degrees writing software.
When I was in college, one of my computer science professors told us that everything he was teaching us would be obsolete by the time we graduated. However, the concepts behind what we were learning would be valuable our entire career. Sure enough, I've never used the exact code in the exact language he taught us, but the generic concepts behind that work in almost any language I program in.
My sci-fi novel, Ghost Thief, is now available from Amazon.com.
Who got the Associates, learned 90% of use in his elective C++ during his first semester. And everything else, including the first job I landed, came from Sam's Teach Yourself HTML in 24 Hours.
CS is not a 'pure science'. CS is taught out of fucking business schools at some universities.
There are going to be a couple of exceptions (schools) but in general people flunk out of EE/CompE and go on to do well in CS, never the other way around.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Those with an associates degree would be competing for jobs with people who have a BA in Music Performance and an MS in Comp Sci.
Hitting the link to Classic Slashdot in the footer should send you back -- or just try this link. Assuming you have cookies enabled, the choice should stick.
That's because there are two types of Computer Science departments in universities.
Ones that teach Computer Science, like many liberal arts schools, and those that teach "Computer Science" like a trade skill.
A school that teaches actual Computer Science will be heavily math based as computer science is fundamentally a mathematical discipline.
You could just as easily argue that people drop out of real Computer Science to go EE (I personally know two individuals who did this because they were surprised that Computer Science wasn't "Computer Programming". One of them quite during the MIPS assembler course, the other during compiler design.)
Loading...
Even if web development were thought to be an application of Computer Science (which I seriously doubt), it can't ever be an Applied Science because CompSci isn't a science in the first place --- it's a branch of mathematics on the theoretical side and a branch of engineering on the practical side. A science is something completely different.
CompSci just happens to have "Science" in the name, but that's an accident of history, not a description of the discipline. I've lectured in both, and everyone on the staff is fully aware of what it is and what it isn't, and the cute inappropriateness of its name.
So while web development can be called many things (four-letter words are especially useful in that regard), it has nothing whatsoever to do with any of the sciences, neither pure nor applied.
Think of the revenue stream. Every 5 years they have to retrain.
putting the 'B' in LGBTQ+
Not everyone building C.R.U.D. web apps needs a fucking degree. It's practically a trade skill. What we need is a mass of "good enough" programmers to do 90% of the grunt work out there and do it CHEAP.
Yeah, there needs to be some server side programming in there some place. Maybe that's covered in Programming Logic and/or MVC frameworks.
I thought it was because people with CS degrees consider actual programming (as distinct from pontificating about it) beneath them.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
While completing my A.S. in Computer Sciences I took classes in logic, javascript, computer repair, networking, database design, and C#. So far I have outpaced most of my 4-year degree counterparts in salary and wealth of knowledge. I say *most* because there are some people who have the fancy degree or not but love computing to the degree they are themselves ahead of the curve. Altogether it only matters how much you are truly interested in the subject to succeed in a computing career. I think its great to have more of these programs out there for students who were like me and chose to pursue a career at the same time. The hands on training made me more applicable to a modern workforce than other CS grads from 4-years whom understood the theory and mathematics pretty well. I'm different in that I started working in a computer shop when I was 13 years old. I never stopped having a computer job after that so I've had a strong work ethic ingrained in me- but that's all that is different. Being able to see the problems companies had with their software gave me some added insight into what I was going to expect after getting that big job when I graduated. These problems are much different than classroom examples and the code is much more difficult to assess. I reached a certain point in my career when I realized that I wanted to finish a 4-year degree. It happened when I got to a point where I couldn't learn much more without understanding the academic reasoning behind certain concepts. To be perfectly blunt about it I think people studying CS should be given the flexibility to finish the classes and curriculum that they feel is appropriate. 2 years, 4 years, 6 years..whatever even 10 years but the point is that there should be recognition for this at an academic level and Computer Science should exclusively be able to recognize their scholars however they see fit.
First of all, what I have seen in my past 25 years is that, schools teaching science or technology are really bad at it.
For the following two reasons:
1) Web is moving really fast. If your school isn't working with a industrial company, what you will teach is crap.
2) Experience. Knowledge is good, experience trumps knowledge. That is why you have to pay attention to what you teach. If it does not teach experience, then it is a waste of time and money.
Every student should be interned or working on a open source project and making contributions to it as part of the goals of the education program.
Your class curriculum should be defined as a contribution, not an institution.
We don't want institutionalized learners. We want contributory learning, growth and ultimately experienced individuals.
Institutionalized learners, assume they cannot learn anything unless they are institutionalized.
Contributory approach emphasizes learning by contribution, and meritocracy plays a role in it.
You empower the individual to learn BY THEMSELVES.
That is your goal.
Got Geometrodynamics? Awe, too hard to figure out? Too bad.
Math, algorithms and data strctures are not really the critical thing to learn for web development. Hopefully your grads are not starting out architecting anything complicated but instead following best practices and good workflow and leaving the majority of the algorithm architecting to people with much more experience and training.
The important thing to teach are the best practices in web component composition and workflow. These are also rapidly changing, with many competiting tools, but in a consistent direction: modular, testable components as services on top of robust development infrastructure including source control (git), code reviews, continuous integration, rapid, numerous deploys wth no downtime etc. There are lot of good resources about this, but the key thing is to see it in practice, to get hooked on how good workflow and a focus on code quality can make your work a joy instead of a nightmare. There is a huge amount to learn about the latest web development processes, but students (like yours) should be helped to paddle out and get on top of the wave so they can keep riding it - not be taught liquid mechanics or how to build a surfboard.
My dream web dev class would have one website that is built many ways but with similar workflow and final result. Rails stack, python stack, php stack, node stack, etc all using the same assets. Enough versions of the same site that all the students can work in groups to implement the same thing on each stack. Teach what is the same between the stacks (e.g. MVC), without the details of the stack's implementation of that concept and you'll be teaching a lesson that they can carry with them for a long time. Although that might be too difficult for people who haven't done any programming ever, but I think I'd enjoy that class. Regardless, you should have some code that implements a real website with real workflow that they can learn from.
Complexity Happens
As part of our mission is to turn out employees immediately ready for the work force, is teaching knowledge-based careers as a vocation appropriate?
So... what are the employers in your area asking for?
:-)
I'll suggest working with the top 5 employers who want what you're contemplating and enlist their guidance; let them drive the skills they want to see (also, ask them how they'd like to see those skills be tested and/or demonstrated, so your students will have an easier time meeting their prospective employer's requirements).
Also, iterate often - track the placement + feedback of employers that do hire your students so you can find out what works well, what doesn't work as well, etc. You're not going to be optimal from the beginning (and even if you were, requirements will drift over time, so measure, adjust, rinse & repeat).
(As for all the "hands on" vs "ivory tower theory" posts, yeah... "hands on" wins for what you're describing.)
Good luck
Trust me someone with a degree is a dime a dozen these days.
HR wants someone who has many clients in a portfolio with real world experience, references, and work they can evaluate before they will even bother to talk to you.
So start help desk job at an ISP or tech company and build websites on the side. Find a local pizza place and write simple ordering and menu's and work your way up. After 4 or 5 clients update your resume and VIOLA.
You will easily outcompete those with a degree in website design as you have proven yourself. The others just took some class and pointed and clicked with a mouse in Dreamweaver.
http://saveie6.com/
Yeah it is easier just to work at a help desk for an ISP and work your way up making web pages on the side.
Without experience no one will hire you.
It is the opposite of 1980 and earlier where you had a degree == trainable and smart. Nowdays experience and more experience or burger flipping with a massive debt of a now useless degree.
http://saveie6.com/
Terry, aren't you on welfare?
You could argue it. But you'd be wrong, pretty much universally.
There might be a school somewhere where CS is a harder program then EE. It's certainly possible.
BTW EE is less 'computer programming' then CS.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
You might look at Cincinnati State Technical and Community College (www.cincinnatistate.edu). We have an Associate degree in Multimedia & Web design. Specific course descriptions are available in our online college catalog. The Program Chair is David Hoctor 513-569-1743.
Semester 1
MID 110 Digital Media Concepts 3
MID 115 Design Principles for Multimedia 3
MID 120 Drawing and Storyboarding 3
ENG 101 English Composition 3
MKT 115 Marketing Research for Multimedia Professionals 3
Semester 2
COMM 110 Public Speaking 3
GRD 110 Foundations of 2D Graphics 3
WEB 111 Web Development 1 3
ART 120 Design History 3
ENG 102 Composition and Argument 3
Semester 3
TC 235 User Experience Design and Usability Assessment 3
MID 190 Career Preparation: Multimedia Information Design 2
GRD 220 Applied 2D Graphics: Web Design 3
WEB 112 Web Development 2 3
WEB 200 Web Design Portfolio Review 1
Semester 4
WEB 220 Multimedia Design: Adobe Flash 3
WEB 130 Web Programming: JavaScript 3
TC 230 Writing Online Content 3
IT 111 Database Design and SQL 1 4
Semester 5
WEB 291 Full-Time Cooperative Education 1: Web & Multimedia Design 2
WEB 230 Web Programming: PHP 3
WEB 240 Web Development: Emerging Topics 3
Semester 6
AVP 240 Motion Graphics and Compositing: After Effects 3
XXX XXX Social Sciences Elective 3
WEB 290 Web & Multimedia Design Capstone 3
Our local state college has numerous AAS/AS degrees, these are generally designed to teach a skill more advanced then high school that you can make some use of.
The AS in computer information technology has a lot of room for specialization, allowing students to select from a large range of in-field electives in this topic such as:
Website Development, Introduction to E-Commerce, Web Animation, E-Commerce Design, Multimedia Programming, Java Programming, Web Programming, Introduction to Computer Programming, Advanced Web Programming - CGI/Perl
This allows for the AS degree to be customized to the needs (and does NOT focus 15 entire courses on just one topic).
Oooh! Yes, please give me some more of those sub-standard coders who crap I have to clean up! Yes indeed I wants some people who have no understanding as to why to use one algorithm over another! That mostly write code by copy and paste. Yes! oh Yes! I love spending time training up folks that will never have the option of being a team lead. The best part is the managers will hire these low wage losers because they can't tell the difference in potential versus hacks.
I guess they are better than those self-taught coders that write abysmal labyrinthine monolithic monstrosities that are completely un-maintainable.
It truly is a great and novel idea, but I'm inherently against any and all programs that do not have an accreditation body to govern it. Not because I believe in their wisdom or almighty power, but the sole fact that enough people in the right places (industry, academics, etc.) do.
Popularity means exactly shit.
MySQL is the biggest pile of shit database out there, and yet its fucking popular because ignorant motherfuckers keep deploying it.
And the biggest deployers of MySQL are jokers using python, ruby, and php who couldn't be bothered to research where to store the most important part of their application: the fucking data.
So yeah, they're joke languages propagated by ignorant and lazy assholes.
So fuck wikipedia.
The vast majority of web development positions need a guy who can select good Joomla components and write some bits of glue code, tweak some CSS here and some jQuery there.
Not the guy who thinks he needs to invent his own sorting routine every afternoon, and then brag about how his interfaces are so abstract that nobody, not even he, can figure out what the heck they are supposed to do ...
Typically Computer Science is part of the School of Engineering and a very watered down program exists in the School of Business and is called Computer Information Systems or some such thing.
They provide for two totally different career paths.
The former can lead to far more potential career paths. The latter usually leads to the boring JEE and web 'developer' jobs and not much else.
Please not PHP.
I work with it every day. I'm good at it. It pays well. There are some frameworks that are really not all that bad.
Please not PHP.
PHP is verbose, crufty, and flawed. It is useful only for the most trivial programming tasks. It restricts your idea of programming and programming languages.
Teaching someone a CMS platform is doing them a disservice. The world is far greater than Wordpress. Theme and plugin development is a terrible thing to wish upon someone.
If you want to get geeky, teach them LISP or Erlang along with the javascript, or even C.
But please not PHP.
Yes I want more of the web developers that come from programs like this to go into banks/e-commerce. Makes it easier and easier for script kiddies to get rich. I agree that not all degrees for development need to be 4 years but having basic understanding of computers is a must. I don't know how many programmers i deal with that have taken "focused" development degree programs to find out i could have some monkeys come up with better code. They may be cheaper degrees so that they are not loaded down with debt and can take that low paying web developer job. By the time you factor in the overtime or rework you would have been better off paying for a quality developer with a firm understanding of the basics and design principles.
Computer Science has its place, certainly, but it's not in every IT shop in America. I've been giving this a lot of thought lately: How do you take those unemployed and underemployed people, whose jobs have basically disappeared, and are never coming back... and intersect SOME of those people (not all of them will be able to do it) with the enormous shortage of talented and capable IT people.
I've come to almost accept, over the last couple of years, that there's such an insatiable demand for IT, and such a shortage of competent IT people, that it's just a reality that we're going to have lots of lots of crappy people in IT, and there's nothing that can be done about it.
But I'm having difficulty completely accepting that. Because I know that the skills that you need to be good at solving technology problems are not extraordinary. I just barely started college, and then quit to join the Air Force. Five years later, I got into the web business (in 1996) and I've had a great career for 18 years. I recently decided to finish my degree, but that's a different story.
The point is: I'm not a computer scientist. There have been a few times in my career when I would have benefited from a CS degree, but not many. Mostly, what I have needed is intelligence, verbal and written communication skills, the ability to quickly learn new things, a passionate interest in technology, the three Larry Wall traits (laziness, impatience and hubris), and an understanding of how users think and act. Editorial skill has not hurt me, and neither has graphic design skill.
While I would be really interested in helping to build an educational program, one problem I have is that I'm self-taught, and therefore don't really know how you're supposed to teach this stuff. But I would love to be part of a workshop where industry folks come together for a week and brainstorm on this topic, or something.
My big sticking point is this: I honestly believe that the one non-negotiable requirement for being a good technologist is intelligence. And this seems to be controversial, because it makes it sound like I'm calling other people stupid. And, well, I am. I really wrestle with this. I wonder how good a web developer you can be if you're not quite smart.
You could just as easily argue that people drop out of real Computer Science to go EE
I went straight through the CSE branch of EE (included CS algorithms, building compilers in ADA, logic programming, circuit analysis in both the time and frequency domains, basic amplifier design, discrete math, calc, linear algebra, signal analysis and digital control of dynamic systems (read: applying laplace transforms in very complex ways)) The people in CS had it much easier than me. I can't really tell if the folks following the purer EE fork had it easier of harder, but while I envy their knowlege of photonics, wave theory, and anaogue information encoding, I don't envy the work they had to put into acquiring it, nor the complexity of their device models and circuit equations.
NOBODY dropped *into* CSE/EE (it was hard enough to get into the engineering school to begin with and CS majors would lose ground every semester on the prereqs.) It was usually the other way around. In fact the way they front-loaded the CS courses so we were roughly apace the CS majors was likely because they expected this to happen.
While theoreticians can be said to possess a certain level of explorative intellegence and a voracious memory not possessed by engineers, engineers possess an intelligence that helps one deal with having neither of the luxuries of glossing over fine details nor a flexible objective.
Someone had to do it.
College is meant to exist for people who love academic pursuits. College normally has nothing at all to do with job opportunities. To connect higher learning to the workplace degrades the concept of college and frankly would attract people into the college system that are undesirable. The heroes of learning that we are taught about in college often lived in abject poverty. Whether it is Mozart or Van Gogh or Hemmingway making a living was not their goal in life. Look at the money spent by those that play the oboe or the bassoon on their instruments and going to conservatories. Yet how many of the oboe players or bassoonists make anything at all in payment and even among the lucky ones the pay is on the miserable side. Trying to make a living as an astronomer has to be a real hoot. Seen any ads for astronomers wanted lately?
They are being taught to use truncate instead.
There are two sides to this, and also problems. You want to crank out 'ready to serve' employees. But their shelf life is 5 years, then their best before date is shot, and they either re-train, or stare unemployment in the face. The other side of the coin is the 'professional university degree'. It is designed to teach students the fundamentals so that their shelf life is lifelong, but the fine points are missing, and so are not as ready-to-eat as employers want. "You only have HTML 5.03227 and we need HTML 5.03229. You are unqualified. What if you come across the ~`.. instruction. You will need to find a book and determine what it does before you can continue, and we find that unacceptable." And so you go for 'training', get training, but it has a short shelf, or you go for 'education' which 95% of all the backend, but the 5% that came along 3 days ago is missing, and they all want it. The other half of the game is that employers used to offer even a slight amount of on the job training, and now thats as dirty a word as 'overtime'. How dare you. If you aren't ready to go, you have no business in their business. Companies will cry they can't get people, yet their requirements can only be met by people already working at their company.
The fundamentals never change. With a solid base, there is nothing a programmer can't do.
An AA program focused on what will get them hired today is exactly what will not get them hired tomorrow.
Having worked in the industry for a couple of decades I can tell you that learning to either avoid or indulge in rampant alcoholism could come in very handy.
Be sure to spend a week or two on Apache/tomcat (2-4 days?) in the Linux class. Manually editing the apache config files and installing modules is a must-know. In that class also be sure the building of modules is covered. Also, be sure to cover the installation of war files into Tomcat. The focus should be on teaching them how to install libraries and frameworks.
These things should only take one or two lectures each, encourage students to install Linux on a VM at home and tinker with it there.
I read a couple of the negative comments, and they don't surprise me. On the other hand, the posters seems to miss the point of an AS degree and what Web development is about. Personally, I wouldn't bother with back end tech like SQL; single page architecture is finally taking hold and the Web side shouldn't be doing more than making RESTful calls. And algorithms? Seriously? On the other hand, UX development is splitting away from the rest of the development herd. Instruction in JavaScript, MVC or whatever TLA is current, and current frameworks is valuable in its own right.
"Modern Web Development Applied Science Associates Degree?" This is not a proper question. I suppose it's a good thing you're not an English major.
Javascript, CSS, and something other than PHP are what you need to know, with a leavening of SQL and XML. Screw all that CompSci crap - we don't use it in 99.9% of our code.
First you list five things that are possible only because of that CompSci crap, then you tell you don't use it. Heh. Yeah, well, I guess the cleaning lady doesn't _really_ use any chemistry crap. Might still be beneficial to know the basics. I'm sure you don't use any CompSci crap, I've used plenty of software that's horribly slow and buggy. Definitely no CompSci crap there.
That's a great argument
you'd be wrong
Pretty much universally
Well, if it is pretty much universally, we can compare the Comp Sci regimens of CMU, Berkeley, RPI, MIT, CalTech, Stanford, and compare those to the EE programs of Clemson, Texas A&M, San Diego State, and the OP's Arizona State.
Something tells me they don't match up, and certainly don't favor the engineering schools.
Quite obviously the converse can be true, but then - I'm not the one claiming that the opposite is "universally" the case...
Loading...
A second undergraduate degree of mine is in Classics. Having taking a graduate course in FGPA based signal analysis, I can tell you that declining Greek based upon dialect is much more difficult. Wavelet compression in hardware versus Homeric/Attic Greek intervocalics? I will take signal analysis every time.
We had two people drop CS at our school because it was hard and get into a nearby school's engineering program.
While theoreticians can be said to possess a certain level of explorative intellegence and a voracious memory not possessed by engineers, engineers possess an intelligence that helps one deal with having neither of the luxuries of glossing over fine details nor a flexible objective.
The stupidity of this incredibly overreaching generalization cannot be understated.
Someone might as well say "While engineers can be said to have enough intelligence to make things after they've been taught enough theory, cleary only theoreticians are truly intelligent - otherwise the engineers wouldn't need them..."
(Yes, that's an equally stupid and overreaching generalization.)
Loading...
I can agree with that. PHP is a really "crufty" language. You can tell that it has "accreted," as opposed to was planned.
For example:
array_search($needle,$haystack)
vs.
strrchr($haystack,$needle )
(note the differences in the order of the parameters).
There are examples of this kind of craziness all over PHP. I spend a lot of time looking up functions, because I make boneheaded mistakes by doing things like putting the needle first, etc.
I can understand that there are more things than CMSes; but we just have to understand and accept that the days of hand-crafted HTML sites have gone the way of the dodo.
Modern, useful, commercial (as in what people pay for) Web development builds on platforms. No one gets paid (more than peanuts) to write standalone HTML Web sites (except for those "Beuatifil Web site for $300" spammers from Indonesia).
The type of CMS can vary, but you have two choices: Heavy-duty systems, based on Java or .NET, or PHP-based stuff.
There are a couple of Python or Ruby ones, but they are WAY down on the list.
Unless we will be training how to actually develop CMS sites (a HUGE curriculum; right there), we need to train folks how to build on top of them.
In these cases, creating usable, attractive and efficient "skins" is important. It's a badly-needed discipline. Geeks tend to be awful graphic designers. I think "magpie on LSD" best describes the taste of many hard-core geeks.
Usability is also essential for Web services these days; especially with mobile devices coming into such massive use. Usability is CRITICAL for mobile devices.
Things like Responsive Design are non-trivial topics that could easily take up a semester course.
There's a hell of a lot to teach before we get to server-level code.
We had two people drop CS at our school because it was hard and get into a nearby school's engineering program.
That school must have had a pretty weak definition of the word "engineering."
Someone might as well say "While engineers can be said to have enough intelligence to make things after they've been taught enough theory, cleary only theoreticians are truly intelligent - otherwise the engineers wouldn't need them..."
Someone might, but while my statement recognizes that there are qualitative vectors to "intelligence" this one seems not to.
Someone had to do it.
That school must have had a pretty weak definition of the word "engineering."
It had a pretty weak definition of education in general...
...while my statement recognizes that there are qualitative vectors to "intelligence"...
Putting a pig in a silk dress doesn't make it a princess.
Loading...
what kind of school is this? At my community college to get an AA in CS you have to have up through Calc I or II, data structures, assembler,3-4 semesters each of Java and C/C++.(each if you count data structures which is taught using Java) and thats all ON TOP of general ed classes.
... in the first place. Calling it applied science is just a petty way of attempting to legitimize it as a highly technical skills, which it isn't.
Programming... yes, pretty much anyone can do that. Look at the mountain of poop that is amazon's codebase, and there's your proof.
Engineering on the other hand, is another beast entirely... but even a software engineer rarely has any need for scientific or mathematical skills. I found the "math" requirements for even graduate level computer science classes to be pretty lightweight, but then I'd been studying quantum and astrophysics alongside my computer science classes.
I wonder why nobody asks the local employers a very simple question, "Would this program get you to seriously consider a candidate for your entry level programs?"
The news flash that some people should get a grip on is that for the last ten years most programming jobs don't require the knowledge that is missing here. And you know what, we don't need them. I know that some would object to my statement. But the reality is that there is no need and indeed no real room in .NET, JAVA, RUBY, or other popular business languages for that knowledge to really shine through. Yes it would help to understand the underlying aspects. But not really needed.
But again the real question is, "Will this help your student find employment after the two years of work?" Nothing else matters. And while there will certainly be shifts, teaching algorithms does nothing to prepare students for the reality that they need to stay current with their choice. Instead faculty should constantly remind students that the field is always changing and they will have to keep up or get left out one day. For that matter, the faculty should face the same. If they aren't learning the latest hot thing on the web, they should be replaced by someone who will model this to the students.
WTF are you on about?
At any of those schools the EE program will be tougher the CS. Get over it.
Comparing across schools just reflects your lack of understanding of the discussion.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
You're very lucky to find CS taught out of Engineering.
More typical is CS taught out of Math (or spun off from math in previous years).
Worst is CS taught out of fucking business.
It's a good interview question for recent grads.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
I don't think I have ever seen a real CS program that is not part of the school of engineering.
Having it in the math department isn't so bad, since CS is a branch of mathematics. Most of the older CS professors that I personally know have doctorates in mathematics.
Comparing across schools just reflects your lack of understanding of the discussion
Actually, it clearly demonstrates the opposite. I'm sure you'd like to simply compare between disciplines at the same school, but that would defeat your argument.
I'd love to hear your explanation as to how you believe that CalTech's Comp Sci degree is less difficult than Clemson's EE program.
Loading...
The whole point of a community college is to allow students to leave with a job that they can directly apply. With a class in web design, students will be able to directly do work in the field as a web developer, this would allow students to exit the class with direct skills that they can apply.