Giving me flashbacks to a college instructor that marked my entire functioning code block, written on paper, as wrong because I did not clearly make a ; on one line of about 100 lines. I argued that a compiler would mark that in the real world, but he countered with "It still won’t run without that ; " That made me rethink my career path in CS. Fuck that guy.
That was/is one of my biggest complaints about CS courses: the horrendous, uncontrolled, inconsistent-across-course/instructor/TA mixture of concept and implementation skills expected of the students.
Ultimately you need to develop both to be successful in a CS/Software Dev/Programming career, but I’ve watched so fucking many people fail to progress in courses and learning because they’re trying to learn both the concept and how it needs to be formatted in the class specific language’s syntax at the same time. They hit a roadblock in one and the whole thing comes tumbling down because if your code doesn’t work you can’t just work around it to get the other parts done and then come back later. Being able to stub something out to do that requires skills that they’re taking the class to learn in the first place!
Minor mistakes with syntax creates a situation where they can’t get a working example of the concept to play around with. So then they don’t have something hands on to use to cement their conceptual understanding.
Minor mistakes with the conceptual understanding lead to a complete inability to understand why the syntax works (if it even does) to create an example of the concept, leaving them high and dry when the class asks them to think outside the box and make something new or modified based off what came before.
I’ve worked as a Lab Assistant (TA who doesn’t grade) for intro to programming courses. Due to transfer credit shaningans, combined with a “soon to retire” professor getting saddled with the bueracratic duties for their whole department, I ended up running lectures for an intermediate course I effectively had to take twice. I regularly led study sessions in college for my friends in programming classes. Even now, I’m the most experienced programmer on my team of sysadmins/engineers at work and regularly assist co-workers with scripts when I’m not coding custom automations and system integrations.
So I have experience teaching and using this shit.
In my opinion, courses should be split into two repeatedly alternating parts: concept and implementation/syntax. They are separate skill sets.
You need a certain set of skills to be able to communicate. You need a different set of skills to do so in a specific language.
Plus, classwork needs to better mimic real world situations. Even crazy motherfuckers using sed or nano to code should be using linters in this day and age, and no one should be working in an environment where they only have one chance to get it 100% right with no means of testing.
Giving me flashbacks to a college instructor that marked my entire functioning code block, written on paper, as wrong because I did not clearly make a ; on one line of about 100 lines. I argued that a compiler would mark that in the real world, but he countered with "It still won’t run without that ; " That made me rethink my career path in CS. Fuck that guy.
That was/is one of my biggest complaints about CS courses: the horrendous, uncontrolled, inconsistent-across-course/instructor/TA mixture of concept and implementation skills expected of the students.
Ultimately you need to develop both to be successful in a CS/Software Dev/Programming career, but I’ve watched so fucking many people fail to progress in courses and learning because they’re trying to learn both the concept and how it needs to be formatted in the class specific language’s syntax at the same time. They hit a roadblock in one and the whole thing comes tumbling down because if your code doesn’t work you can’t just work around it to get the other parts done and then come back later. Being able to stub something out to do that requires skills that they’re taking the class to learn in the first place!
Minor mistakes with syntax creates a situation where they can’t get a working example of the concept to play around with. So then they don’t have something hands on to use to cement their conceptual understanding.
Minor mistakes with the conceptual understanding lead to a complete inability to understand why the syntax works (if it even does) to create an example of the concept, leaving them high and dry when the class asks them to think outside the box and make something new or modified based off what came before.
I’ve worked as a Lab Assistant (TA who doesn’t grade) for intro to programming courses. Due to transfer credit shaningans, combined with a “soon to retire” professor getting saddled with the bueracratic duties for their whole department, I ended up running lectures for an intermediate course I effectively had to take twice. I regularly led study sessions in college for my friends in programming classes. Even now, I’m the most experienced programmer on my team of sysadmins/engineers at work and regularly assist co-workers with scripts when I’m not coding custom automations and system integrations.
So I have experience teaching and using this shit.
In my opinion, courses should be split into two repeatedly alternating parts: concept and implementation/syntax. They are separate skill sets.
You need a certain set of skills to be able to communicate. You need a different set of skills to do so in a specific language.
Plus, classwork needs to better mimic real world situations. Even crazy motherfuckers using sed or nano to code should be using linters in this day and age, and no one should be working in an environment where they only have one chance to get it 100% right with no means of testing.