Ultrareading with ChatGPT: Case Study # 2 — Computer Science
Initially I said I was going to ultraread the works of Al Sweigart, which are about the programming language Python. That took about 2 minutes. In short, his books will teach me more about some of the modules that are commonly used for Python. A module is essentially code that someone else made to solve problems so you don’t have to reinvent the wheel.
Unsatisfied, I decided to preview more books about Python. I stopped when I knew there was nowhere else to go but to create code myself. ChatGPT can also give you a crash course on the syntax of a programming language, or how you write the code in the first place. My overall impression of Python is that I will need to read the documentation of many modules when I use the language beyond basic beginner applications.
At this point I used ChatGPT to preview other programming languages: Golang, TypeScript, SQL, Kotlin, and C#. I asked the AI why these languages were created and what problems do they solve. I also asked it what criticisms there are of the languages. I now know that Golang was made to be a better version of C++ for fast and efficient large systems. I now know that C# was made to replace C and C++ for Microsoft applications. Kotlin is supposed to replace Java. In other words, by previewing these languages I realized I can avoid them for now. I can stick with Python and JavaScript until it becomes necessary to delve into a different language because both Python and JavaScript are not necessary or the best solutions to every programming problem.
Some of these other languages also include what is called low-level programming, meaning the language deals more directly with the functionality of the computer itself. An example of this are Pointers. Pointers baffled me when I first learned about them in C. I asked ChatGPT to clarify Pointers as if I were a child and now I think I have a grasp of what they do, even if I have no idea how to utilize them in a program. (In brief, a Pointer changes the value of a variable stored in memory, it is like a treasure map that marks X for where the variable is stored; it is used to change the values of variables outside of functions, because usually you cannot change the value of a variable inside a function, well I digress…)
I ultraread, or previewed, computer science itself. I asked for a crash course and basic explanations of things like algorithms and data structures. I asked for lists of types of algorithms, I asked for the same for data structures. These are critical components to one who eventually wants to succeed in programming. It isn’t enough to know how to read and write code, one has to be able to bring it all together and also break it all down. I learned the rudiments of Object-Oriented Programming, functional programming, regular expressions, all sorts of things that I will eventually need to understand in depth to be a programmer of merit.
Now that I’ve ultraread a ton of stuff on computer science and programming languages and successfully asked for clarification and elaboration when desired I can move on to what really needs to be done, in my case, taking my knowledge of syntax and solving small challenges like FizzBuzz (i.e. Write a program that prints the numbers from 1 to 100. For multiples of 3, print “Fizz” instead of the number, and for multiples of 5, print “Buzz”. For numbers that are multiples of both 3 and 5, print “FizzBuzz”).
While you can’t learn a programming language via ultrareading, you can get the gist of computer science and the purpose of programming languages in an afternoon. From there it’s up to you to do the hard work of learning syntax and concepts.
As a bonus, I also used the same method of ultrareading to preview mathematics. I asked for an outline of Calculus and then asked for explanations of the main ideas of Limits, Integrals, Derivatives, and Series. Limits = examining how something behaves at a point but taking in the whole; Integrals = how much “stuff” is inside a shape; Derivatives = how fast something is moving at a given point; Series = adding up a list of numbers. I asked ChatGPT for practical applications of each major concept. I went on to ask stuff like ‘what is linear algebra’, ‘what is algebra for?’, ‘what is number theory’, ‘how are imaginary numbers used in engineering’. All sorts of things that always bothered me at school, things I never had the answer to, such as the answer to “When am I ever going to use this?” (I will keep that secret to myself).
In the span of 15 minutes I was able to get a pretty good snapshot of what Calculus is all about and why it was ever created in the first place. ChatGPT is tremendously helpful for previewing almost anything. You can even ask dumb questions over and over until you feel satisfied you’ve grokked a thing.
Even if I never take the time to actually learn Calculus enough to implement it, I can appreciate it and even ask ChatGPT if something I want to do in a program can benefit by use of a Calculus concept and then learn on the spot what I need instead of learning the entirety of a field just to do one small thing.
There’s too much information to learn it all and some concepts take a lot of time to understand well enough to implement, especially in STEM. AI creates shortcuts and while shortcuts are helpful, they aren’t solutions and the things you preview can’t be considered knowledge yet. Ultrareading gives us a precursor to knowledge in order for knowledge to settle in more easily. It’s like knowing the plot of a book or movie ahead of time so you can focus on details and find deeper insights.