Subscribe to Macosxnerd101's Blog        RSS Feed
***** 3 Votes

Academia Doesn't Understand What Industry Needs

Icon 32 Comments
Today I had my first lab for Data Structures I, the same course I am working to test out of and drop. It was brutal. I wanted to beat someone. The assignment was straight-forward. Design a Computer class with three fields, the standard getter/setter methods, and a toString() method basically. The JUnit was new for me, but pretty easy. In a matter of a few minutes, I had a 30 line Computer class and then a test class that were beautiful, self-documenting and to industry standards. Then the standards for the class used my code like a piece of toilet tissue. Yep. My suddenly beautiful code looked like crap. The irony is that the instructions specifically stated "no redundant comments," but I had to comment every method with a one line description of the obvious. Complete waste of time.

What makes it worse is a piece of software Tech developed called Web-Cat. It's an automated grading tool for code, which not only tests for functionality, but for formatting as well. That's all well and good, except it docks points for things like not having a space between the class name and opening brace, or not having a space between each term in the expression 2.9*4. Really? This is a major disconnect between the industry and academia. Schools are putting focus on the wrong things. In my opinion, first and foremost, code grading code is a bad thing. People need to be grading code, first of all, to point out good practices and criticize the bad. Things like over-encapsulation, poor delegation of responsibilities, etc., come to mind. Let's not just have machines focus on how many characters are on a line. Teach people real commenting and coding practices to prepare them for a work environment. Academics need to stop making standards for the sake of having standards. It wastes everyone's time and does little to help prepare students for the industry. Hopefully I can expedite the credit by examination process for this class.

32 Comments On This Entry

  • (2 Pages)
  • +
  • 1
  • 2

xclite Icon

27 August 2011 - 10:35 AM
Ha! Tech is hardly a lousy school, although I certainly wouldn't put it top 10. Macosxnerd101 is right - it's one of those things somebody higher up has a hard on for and won't change it for the world.

Another class he missed out on (thankfully) is 1705. They use something called ZHTML - basically it's a way to make dynamic web pages. However, the industry standard does not use ZHTML - many better technologies exist (AJAX, JQuery, etc). ZHTML was slow, unwieldy, did a lot of magic stuff that wasn't documented, and sucked. Students spent tons of time trying to figure out what an internal 500 error meant instead of how to do OO programming. In fact, they'd never even created a main method by the end of the class. This shit would have been out of place in the web programming class, LET ALONE an intro to OO class.

I wrote an essay ripping that course apart when I finished for their reviews (had something like a 110 because I had the advantage of prior experience but didn't bother testing out). Nothing changed. If macosxnerd101 had taken that course, I bet he'd have a lot more points about academia not getting industry.
0

ishkabible Icon

27 August 2011 - 11:52 AM
ya, i'm surprised that it was ever used for code grading, i thought it was for test generation and automatic grading. my mom worked at a service center in Texas were it was being developed. all the local schools had in tons of licenses so all the teachers in my schools(i went to like 4 different elementary schools) used it. this ended up helping me becuase my teachers, thru out elementary school, received help from my mom with the software.
0

Topher84 Icon

27 August 2011 - 11:30 PM
What exactly do the TAs do then? I had to handle multiple sections including teaching, creation of assignments, and grading them all by hand....they better not be getting a free ride for dealing w/ some kids in a lab for two hours :(
0

macosxnerd101 Icon

28 August 2011 - 09:00 AM
They're present mostly to make sure things run smoothly, and answer any questions about the lab.
0

NickDMax Icon

29 August 2011 - 10:20 AM
So macosxnerd101 you have a lot of industry experience and you know what industry standards are?

Let me tell you, in industry there is a LOT of code nazis with "coding standards" and "style guides". Some projects are documentation heavy and require 10 or so lines of documentation for every line of code, others will hound you out of the office just for "wasting time writing useless comments".

Basically you can count on having a boss with idiosyncrasies that you find idiotic and doesn't do things "to industry standards".

As a consultant I have worked with many development teams and one thing I can assure you is that in all honestly there are very few "industry standards" - every team is doing what works for them. Every agile implementation is different (most are not even really agile) and every style guide is different (and mostly ignored anyway) and everybody has a boss with ridiculous pet peeves.

Granted I think your class' grading sounds pretty ridiculous since I think the emphasis in school should be on learning to think critically about data structures and not about teaching you how to format code or write comments. i.e. the problem with the class is that its focus is wrong not that it is "out of touch with industry". -- a data structures class? Really do you know how often you will ACTUALLY implement a linked list proper - how often do you think us "industry insiders" write sorting routines?
2

macosxnerd101 Icon

29 August 2011 - 12:35 PM

Quote

So macosxnerd101 you have a lot of industry experience and you know what industry standards are?

I've been in the industry for a couple years, doing mid-to-senior level work. I'm not going to say that I have the equivalent of 10+ years experience in the industry, as I don't. On the flipside, it wouldn't be a fair assessment for me to be labeled as just another student. I also do have experience in preparing students both to go into the industry and pursue more advanced CS topics, which is based a lot on correcting where I've seen people fail in the classroom and in internships. In all cases, people I've worked with all have told me after getting into the workplace "Wow, you weren't really just spewing crap. I actually benefited from _."

Quote

Granted I think your class' grading sounds pretty ridiculous since I think the emphasis in school should be on learning to think critically

Add writing clean code to that rather than focusing on anal formatting is pretty much my point as well. The formal title of the course is "Software Development and Data Structures", and there seems to be a more "software development" aspect to it. Obviously we don't implement a Linked List regularly, but that doesn't mean there isn't a happy medium in which clean and good coding practices can be taught without being anal about it.

Quote

every team is doing what works for them. Every agile implementation is different (most are not even really agile)

This is the same conclusion I've come to at work. I work in what is described in the office as an agile environment. Basically, we get a project and my boss doesn't care how it gets done, only that it works. It's nice, he let's us go, and we get things done.

Quote

there are very few "industry standards"

Let's back up a minute. This was a basic "design a class" assignment to make sure everyone was familiar with OOP, not a project of any real scope. Yes- there are industry standards as to class design. There are standard naming, commenting and coding conventions for Java, which should be followed (and maybe graded on rather than counting indentations). To an extent, there are certain spacing conventions one would expect from a Java programmer. Each language has their own set of coding standards. Companies may have their own additional set of internal standards, which can vary from workplace to workplace.

:)
0

DarenR Icon

05 October 2011 - 01:04 PM
Mac,
The company I work for requires all individual tags on their own line so people do not have to go searching for its match. They also require tabbing systems for the code.
example:
<table>
<tr>

<td>start of program</td>
</tr>
</table>

or for reg programs

dim something as integer
dim another as string

another = sometextbox.text
here integer.parse.int(another)
if(something == here)
more code
0

DarenR Icon

05 October 2011 - 01:05 PM
ok this blog doesnt allow for indents or editing
0

macosxnerd101 Icon

05 October 2011 - 01:49 PM
For the most part, that sounds like how I'd write my code. Now if they count to see if you have 4 spaces instead of 6, that's just anal. It sounds like they're just saying to write clean code though. It's sad if a company has to tell its developers that, though.
0

DarenR Icon

06 October 2011 - 09:24 AM
When I first started here I had to clean up a code that looked something like :
for(int i= 1; i<100; i++){run something}else{run something else}some more of the program; more if elses and so on.

basically the program was all mixed together with no spaces or hard returns. nothing that would make it legible.
0

macosxnerd101 Icon

06 October 2011 - 05:16 PM
Truly, I hope the person who wrote that code was fired and endured a public flogging. No developer should write code that ugly.
0

111027 Icon

03 January 2012 - 08:17 AM
I wouldn't agree. An academia is an academia, not a training course for 'the industry'. From what i've seen working in the industry, academia's far more demanding, but it only does us good. As for the standards for the sake of standards, wouldn't the same go for ISO, ANSI and all the rest?
0
  • (2 Pages)
  • +
  • 1
  • 2

Recent Entries

July 2014

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27 28 293031  

Recent Comments

Search My Blog

0 user(s) viewing

0 Guests
0 member(s)
0 anonymous member(s)