My friend's wife (we'll call her Sarah) is going for an associates degree in "web development" at a local community college. Sarah has been in this program for 3-4 years and she's about to graduate. Right now, she's taking a class in PHP/mySQL development, and she needed some help with her final project - building a basic eCommerce site. They were given some basic source code and instructed to add a few features and improve the CSS. She said she needed help writing a database query using prepared statements with the mysqli library. Even though I am not a PHP developer (yuck), this sounded easy enough. I figured I would spend a few minutes on php.net and help debug the section of code she was having problems with. I would have been so lucky.
When Sarah got to my house, I said, "Why don't you show me what you're trying to accomplish and then we'll look at your code." She took out her laptop and pulled up her website. Sarah told me, "When a user logs in, I want to insert a record into the users table and then log them in." That sounded completely ass-backward to me, so I asked to read over the assignment. I read through 3 pages of requirements. As far as I could tell, none of them were implemented, in spite of the project being due the next day. I skimmed ahead to the requirements for the login page - it actually said to add two records to the users table (w/ a hashed password) and build a login page that checked the supplied credentials against that table. OK, that made more sense. So, we set off to building the login page. This is where the real fun begins.
It turns out that Sarah doesn't know anything about programming - she couldn't write an if statement without help. I don't mean that she struggled with the syntax of writing an if statement in PHP - she flat out didn't understand the concept. At one point, she actually said "this always confuses me...I understand the if part, but I don't get how the 'then' part works" Some other highlights:
-
She wasn't familiar with the $_POST[] or $_GET[] arrays in PHP, or arrays in general for that matter.
- She didn't know the difference between POST/GET form actions, and wasn't familiar with URL parameters/query strings
- She had no idea how to write code that calls a function. She wasn't familiar with the terms "argument" or "parameter".
- She had no concept of a session variable, even though she was required to build a login page that tracked whether a user was logged in.
- She was confused by the concept of a string, and frequently omitted quotes from assignment and conditional statements.
So, my "help" basically consisted of 3 hours where I gave several strong hints of what to write. Generally, it took her 3-4 attempts to write each line of code before the logic looked correct. After that, I had to point out her syntax errors. I did my best to not write code for her, but that's pretty challenging when the person doesn't know a lick about programming to begin with. I am sure she learned absolutely nothing from this experience. But when all was said and done, the login page was now working. Of course, there are still two more pages of requirements that she needs to implement, so it's nowhere near being complete. I've already decided that I am not going to help her again, at least not on the level that I helped her last night. It's not going to help her in the long run, as she's just looking "to get a C and graduate." If I had known all this before, I wouldn't have volunteered to help her at all. I don't want to enable that sort of attitude.
I could understand most of these mistakes if this was an introductory programming course. I could also understand if this was an IT-centric degree that didn't focus on programming. However, this is a pretty advanced class for an associates program in "web development". Supposedly, she has taken classes in Java and C++ before, and she's about to graduate in a few months. What is the bigger WTF? A student with a web development degree who can't write code, or a school that awards a web development degree to people who can't write code? In a way, I feel sorry for this girl - she probably spent a decent chunk of change on this degree and she still has no real skills.