Despite my constant resolutions to do the opposite, I’ve been MIA from here for another long while. It seems fitting that my first post after the dry spell should be me whining and wallowing in self-pity.
I’m currently attending a vocational school for computer science. I signed up for it because my university classes were not going as well as I had hoped and I didn’t feel like what I was learning was very useful, and because I was very curious about programming and wanted to know more about the inner workings of the computers I used daily.
Skip forward a year and a half to the present day, and I’m constantly frustrated with my continued inability to do anything.
This term, I’m working on a project with a classmate that involves creating multiple webpages with various forms to enter data into a database, and search for it by multiple criteria (think a library having a database of all its books with author, release date, titles and so on, if you need a more concrete example). Our pages look pretty neat, all the input fields work, there’s some validation happening (checking that required information is actually entered, and that the values entered make some degree of sense), and the data makes its way into the database correctly (including special characters like ü or ß). Superficially looking over it and testing some sample inputs might very well lead one to believe everything is coming together nicely, and we got some good grades for it in the midterm.
But at a deeper level it’s just a Frankenstein-like monstrosity, cobbled together from examples provided by the teacher and various online tutorials, bits of code from various frameworks haphazardly strung together in a trial-and-error process, clunky solutions thrown at any occurring issues until one of them stuck. I don’t understand most of what I do. I almost blindly google and copy and paste and test. It’s not plagiarism or even cheating – a lot of coding appears to consist of finding and implementing existing solutions anyway, as long as their creators made them freely available (which a lot of them do), and our teachers encourage it.
And most of what I’ve learned at the school is stuff like that. Copy and paste, parrot back what I heard, just find a pre-existing framework and use the parts you need without understanding the rest of it. Implementing the solutions itself takes at least some understanding – knowing what bit of code to put where, which bits to alter to make them work for your own code – but it’s nowhere near what I’d need to get an idea of why it works the way it works, what else I can do with it, which solutions are most efficient considering the rest of my code or my goals, how to adjust the solution for slightly different problems (or whether that is even possible), and how to shape the whole clusterfuck into a single, smoothly-working entity.
I can’t even handle my own computer. There’s a lot of documentation on every detail of Linux, but almost inevitably when I try to research a specific issue, I don’t understand the documentation: every third word seems to be a bit of jargon or reference some other functionality I don’t know yet.
I had hoped to build useful skills that would allow me to work in the field, but just as with the university classes, I’ve pretty much given up on that. I don’t know how I should ever be able to support myself if I’m apparently even unable to learn the skills I’d need to work. Everything I do feels useless and every road I start out on seems to lead nowhere.