I'm in my first year of university studying computer science. I have a strong mathematics background, but almost no programming experience beyond some basic self-taught Python. Many of my classmates learned computer science in high school and already know several languages, so they seem much more comfortable with terms like DNS, servers, tools, and development workflows. Even though we're covering beginner Python, I often feel lost and embarrassed when people mention concepts I've never encountered.
I'm also spending time trying to learn Org mode for note-taking, but I'm finding the setup confusing and haven't gotten much useful guidance from AI tools. I'm not looking for answers to one specific question—I'd like a practical way to accumulate general programming knowledge, learn what tools and resources to use, and become more confident without constantly comparing myself to people who started earlier.
3 Answers
The fastest way to turn abstract knowledge into programming ability is to build things. When a repetitive task annoys you, write a rough script to handle it. Then improve it, try another project, and investigate each problem as it appears. Courses are useful for fundamentals, but repeated hands-on practice teaches you how tools and concepts fit together.
Start with one language—Python is fine—and make small projects that interest you. Use a beginner-friendly course for structure, then create something of your own. A few finished projects will teach you more about development workflows than collecting tutorials or languages. Once you’re comfortable, add complementary skills gradually rather than trying to learn everything at once.
You’re not behind—you’re simply starting from a different point. People who claim to know three or four languages often just have experience with small projects in each, not deep professional knowledge. Pick one structured resource, such as your lectures, a book, or a single course, and follow it consistently instead of jumping between tutorials. Build small programs regularly, and let the unfamiliar vocabulary come naturally over time. In a couple of years, the fact that someone knew Python before university probably won’t matter.
What you’re describing is a normal transition from being comfortable with academic subjects to learning a practical field full of unwritten conventions. Computer science has a huge vocabulary, and nobody learns all of it at once. Focus on your current classes and one manageable project instead of trying to understand DNS, servers, Org mode, multiple languages, and every development tool simultaneously.
Also, Org mode is mainly a note-taking and organization system, not a programming prerequisite. It’s fine to use simpler notes while you’re learning Python. Choose tools that reduce friction rather than turning your note-taking setup into another project. Ask specific questions as they arise, and give yourself time to develop the background that makes those questions easier to form.

A portfolio doesn’t need to be impressive at first. A simple command-line tool, a small game, or a script that solves a personal problem is enough to practice planning, debugging, reading documentation, and finishing something.