To the student
Studying computer science
There are many ways to approach the study of computer science.
In many ways, learning a programming language is like learning a natural language. You first need to understand the basic syntax and grammatical rules. Then you need to practice by writing code, and especially working on and struggling with exercises.
Computer science also involves a lot of mathematical thinking: the rules of boolean logic, binary encoding of numbers, estimating time complexity of algorithms, and more. In some areas of computer science such as computer graphics or artificial intelligence, it is very helpful to have an understanding of linear algebra (vectors and matrices).
Building software is also very much an engineering activity. A standard engineering practice that is also used in software development is to follow a design-build-evaluate cycle, where you iteratively refine your solution, each time improving its performance at solving your problem. As software projects grow larger, you also need to pay more attention to the large-scale design of the software, using modularization and abstraction to control the complexity of the project.
Coding is a creative activity in itself, but it can also be applied to artistic activities in the visual and performing arts. Artists write code to create visual art, electronic music, video special effects, and interactive immersive experiences. Code is a tool that lets the artist create things she could not have created otherwise.
Writing code is a skill that progresses with practice, where practice means “writing and testing and debugging code”. Sometimes the practice will not be fun, just as strength conditioning is not always fun for athletes. As a student with other time commitments, you might be tempted to complete a coding exercise by copying a solution, or by using AI-generated code. You could also instruct a robot to lift weights for you in a gym, but this will not make you a better athlete.
What is an expert?
Niels Bohr, a Nobel prize winning physicist and philosopher, famously stated:
An expert is a person who has made all the mistakes that can be made in a very narrow field.
Here are two corollaries:
In order to become an expert, you need to make more mistakes, and go through the struggle to find solutions. This takes time and effort. There are no shortcuts.
You do not need to be intimidated by an expert: the only difference between you and the expert is that they have made more mistakes than you.
Learning through play
Human and animal babies play as a way of learning about the world. For example, when a baby first encounters a new object, what does she do? She pokes at it, pushes it, turns it upside down, and explores all the properties of the new object.
This is a great way for you to explore a new coding concept. What happens if you change the value of this variable? What happens if you change the order of these statements? What happens if you omit a particular keyword?
Give yourself time and space to explore.