
I wrote this article because I want to talk about programming with students who are about to enter college and intend to learn programming. You may need some advice as you enter this new stage.
Programming is a very interesting thing. Learning to program is like becoming a magician—you can create anything you want. In the 20 years since I was born, apart from literature, nothing attracts me more than programming. As Zed Shaw said:
"Programming, as an intellectual activity, is the only art form that allows you to create interactive art."
You can create projects for others to use and communicate with users indirectly. No other art form offers this level of interactivity. Movies guide the audience in one direction, and paintings don't move, but code is a two-way interaction.
When you start taking computer-related courses at the university (where I am), you’ll find that programming learning often involves solving mathematical problems with learned syntax. Many people find this boring and give up. They spend time studying but can only write simple arithmetic or solve math problems.
However, this isn’t all there is to programming. It shows that a programming language is just a tool that can be used to solve math problems and create more interesting, practical applications.
At my university, C/C++ is taught. A college friend once asked me:
"I’ve been learning C for a while. Why do I still feel so useless?"
I replied: It’s not your problem if you feel C is useless. Linus Torvalds wrote Linux and Git in C. Antirez wrote the Redis database in C. But maybe you don’t even know what Git is—how could you write a program at this level in C?
When you hit confusion after learning the basics, don't stop because you can't write practical programs. Start exploring other languages. As you learn and do more, you’ll realize that programming languages are just tools. What matters is what you want to do and which language suits the task (for example, the backend of Web.inzi.dev is Ruby on Rails, but the real-time chat is in Node.js because it handles WebSocket better than Ruby).
Feeling that C/C++ is "useless" happens because you haven’t yet developed the vision or skills to create with it.
My suggestion: Learn a strictly-typed language (e.g., Java) and a scripting language (e.g., JavaScript, Ruby, or Python). If you want immediate skills, learn front-end (HTML, CSS).
I won’t discuss studying methods here, but I’ll list some useful suggestions:
This is crucial. School content is often outdated. React JS was released 11 years ago, but we still teach PHP and HTML/XML. Many students graduate without having even heard of React JS.
Don’t expect university courses or teachers to bring everything to you. Everything should be up to you. Even in prestigious universities, many students are just gaming or cramming for exams. As I’ve come to understand:
"The difficulties you will face in life are not because you didn’t pass exams or didn’t attend a ‘top’ school. It’s because, during four golden years, you wasted opportunities."
If you plan to work in programming, what differentiates you from competitors isn’t where you graduated from but your ability. Make it visible to others.
Contribute to open source projects, maintain one of your own, and create a blog where you document what you’ve learned. A strong GitHub account and blog are your best resumes. You may only have time to do this during your four free college years.
I’ve been studying at Delhi Technical Campus of GGSIPU for four years. During this time, I’ve met many friends confused about the present and the future, with hope for education and a thirst for knowledge. I tried to make a change but wasn’t very successful. Many procrastinate until after graduation and only then start complaining about the difficulty of finding a job. But isn’t the Internet industry short of people? You tell me it’s hard to find a job?
Still, as long as I’m not overwhelmed by work, I’ll try my best to help my confused friends. Feel free to contact me.
"You can program. They can't. This is so fucking cool."