Perhaps for lack of originality, it is common to inquire about one’s area of study and the institution attended for the instructions relevant to it. During my own encounters, my response to these rather dull questions would be met with that dreaded cynicism that manifests itself in raised eyebrows. It is inconceivable to most that computer programming could be studied without the assistance of an educational institute. However, experience dictates that what they should be wondering at is how anyone can manage to productively learn in a classroom while maintaining his sanity.
Several months ago, having spent a while secluded from human society, navigating the difficult terrain of an existential crisis, I finally decided to rejoin the social scene. The question, of course, was where to go. After some thought (which, in retrospect, was not enough), I decided to join a short course on front-end web development, and in my eagerness to meet new people, signed up with the the the first institute I found. The motive for joining the class — apart from the socialization — was to learn how formal training compares to self-teaching and to fill in any gaps that might have been left in my knowledge and understanding. Also, the perks of holding a certificate in a superficial society that values them over your skill-set cannot be ignored.
I missed the first class but made it to the second one. After an exchange of a couple words of introduction, the instructor told me to bring over my laptop. Having seen I was on MX Linux, he made the strange suggestion that I switch to Windows and sent me back.
I later found out that he wanted to copy a cracked copy of Dreamweaver, a program that happens to be available for Windows only, to my computer through a USB drive. You might consider me paranoid, but I do not connect USB devices from sources I do not trust. Even if I was on Windows, I would have flat-out refused to have the device connected to my computer, let alone to transfer an executable of suspicious origins. Besides, why is it so important to have a little-used, trialware program as your code editor when there are so many great IDEs available for free? Needless to say, I did not switch my OS or install a new IDE. I had grown used to my setup and did not want to change it to satisfy somebody’s unwarranted demands.
Pirated copies of software are difficult to come by, so it might reasonable to to acquire such programs from the instructor (though, of course, I do not approve of the distribution of such software). But it turns out that students are not even trusted with the task of downloading free programs that can be easily found online. Whatever application it might be, it is the instructors job to download it to his machine, transfer it to a storage device, and then pass it through the classroom. One must wonder: is downloading really that difficult?
Though this might be seen as a trivial criticism or even a digression, many such cases are observable that collectively make for a greater problem — that of making an aspiring programmer overdependent on his teacher. What with the frequent surfacing of new frameworks and updates to existing technologies, it is essential for any serious programmer to be constantly learning and practicing. And since instructors will not always be around to spoon-feed, that means independence and a willingness to experiment.
The lessons began with an introduction to HTML, followed by an overview of several HTML tags. In a subsequent class, we were taught to build a layout using HTML tables. My intuition that the page did not conform to web standards was vindicated when I submitted it to the World Wide Web Consortium’s Markup Validation Service. When I informed the instructor of this, he got confused. It appeared that he had never heard of validation.
Lessons on CSS followed. The instructor did not so much as touch upon Flexbox or CSS Grids, new additions that are vital to learn for any decent front-end developer. This roused a suspicion that he was unaware of these technologies despite their utility and popularity. That would mean that he does not make the effort to stay current in his field — a bad sign for a teacher or developer.
During these lessons we were assigned a project only once and that was to build a contact form. This is not nearly enough practice. Instead of encouraging that, the college laid heavy emphasis on rote memorization. We were tested for the recall of various HTML tags and CSS properties through MCQs. These included a cringe-making, irrelevant question, asking what company was behind Dreamweaver. The IDE was turning into a bit of an obsession.
Despite its implications, the college’s emphasis on rote memorization and standardized tests does not come across as surprising. After all, most educational institutes employ such methods, and to hold this college to a higher standard would be unfair. So it would appear that much of the criticism of this college would apply to other educational institutes too, and thus is an objection to the prevailing modes of instruction throughout the education system.
When lectures on JavaScript arrived, they were not much different. One would hope that the programming language of the web would get a better treatment, but that was far from the truth. None of the features introduced from ES6 onward were taught, many of which are widely in practice, and no students were made to undertake any algorithm scripting exercises. Perhaps assignment of projects involving complex programming logic would have made up for that, but the college, perhaps feeling charitable towards its students, did not give a single JavaScript assignment. This when often the most difficult tasks for a developer involve constructing complex algorithms to meet the desired end result.
I think it worth mentioning that, while I would consider a course on front-end web development incomplete without the inclusion of a web framework such as Angular or React, the JavaScript curriculum did not include any such technology. This is despite the fact that these frameworks are widely-used and serve the purpose of building sophisticated applications.
To help with the strain of learning, the instructor set up a group on WhatsApp where students could ask for assistance. Though questions were posed, most of the time students resorted to posting memes. The majority of questions that were asked showed how little of what was taught in the classroom was actually understood. Besides, the solutions to most of these problems could be easily found online.
As mentioned earlier, it is imperative for a developer to be able to look for help online for WhatsApp groups and instructors will not always be around. To search the web, one only needs to know how to use Google. But despite its ease-of-use, many lack the skills to use this indispensable and powerful tool effectively or simply do not understand its potential.
There is another culprit too — the difficulty in understanding the English language. Though in most Pakistani private schools, the medium of instruction is English, many who attend these schools lack decent command or understanding of the language. That is a problem when around fifty-five percent of the web is in English, which would include the wildly popular question-and-answer site Stack Overflow and the documentation for most libraries and frameworks.
By now, you are no doubt familiar with my aversion to the rigidity and dullness of the classroom, but my preference to study programming through online resources is susceptible to be misunderstood. It is not unreasonable to wonder how one can study without a teacher. But we, autodidacts, are not without them — not at all. With the advent of the web, users all over the world are better equipped than ever to find tutorials and lectures conducted by the most capable instructors. Online learning platforms often present ratings and other helpful stats along with their courses to help users gauge the quality of their content. Assistance too is easy to find. Many of these platforms allow you to post questions to instructors or fellow students. Several independent question-and-answer sites and forums are also available.
Despite my endorsement of web-based learning, I do not think that it is feasible for most people, most certainly not for the kind of students I encountered at the college. But an effort to adopt a spirit of genuine curiosity, experimentation, and patience — attitudes associated with an independent and self-sustaining mind — can only do one good.