Nazar Mammedov

Software Engineer

Mastering Software Engineering: How to Learn Effectively from Textbooks and Research Articles

8 min read
|

Introduction: Why should I care about the comparison of learning resources?

For an aspiring software engineer, understanding the various types of learning resources — and their strengths and limitations — is essential. There’s an overwhelming amount to learn, and just as many ways to learn it. The Internet offers a vast ocean of knowledge, but without a clear framework to guide the journey, it's easy to lose direction.

I've explored most of these resources during my almost 30 years of reading computer science related texts, and what follows is my personal take on them. This brief overview isn’t based on formal research, but rather on my own experience and anecdotal evidence. I've made special effort to make reference to psychological moments I have experienced so that you get the full subjective perspective on the issue. I hope you’ll take a look and find some ideas that might be useful to you.

Engineering isn’t just about individual learning—it’s equally about clear, evidence-based, and persuasive communication. Software products are the outcome of collaborative efforts, and to contribute meaningfully within a team, you need more than just coding skills. Strong foundations in key concepts, theoretical frameworks, and practical approaches are essential.

Equally important is your ability to contextualize your knowledge. This means being familiar with both fundamental and applied research, understanding the historical evolution of your field, and staying informed about the current state of the art. When you bring this depth of understanding into your communication, your contributions become clearer, more insightful, and more impactful within any engineering team.

One thing I want to note is that in each of these categories, I will focus on high-quality learning resources. If a resource is of below-average quality, there isn't much to say about it. In fact, there are probably fewer high-quality examples in each category than there are low-quality ones.

Traditional Learning Resources

In the context of my article, traditional learning resources refer to materials produced within academic, scientific, or non-profit environments, with the public interest in mind. These significantly differ from non-traditional sources, whose primary goal is often to attract more subscribers, followers, or ratings, or to generate advertising revenue—though not always openly or formally.

This isn’t to say that commercially-driven learning resources are inherently less useful or of lower quality. They have their own strengths and limitations, which I will discuss later.

Textbooks: for strong foundations

When I say “textbook,” I mean a proper academic textbook written by individuals working in scholarly contexts. For example, Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein is a well-known book on computer programming. These textbooks are typically authored by experts and reviewed by tens — if not hundreds — of people at various levels. This puts them at the top of the pyramid in terms of content quality.

book cover for Introduction to Algorithms
Figure 1. Cover for Introduction to Algorithms

I don’t mean to suggest that all textbooks are of equal quality, but compared to other learning resources, they tend to be far more reliable. The quality assurance process is rigorous, and the publication process is largely driven by the authors' desire to create a widely used, trustworthy, and ideally commercially viable product. As a result, we get high-quality learning materials.

In textbooks, content is structured in a logical and coherent way, and it doesn't become outdated quickly. Even if you read a good textbook on software engineering written 30 years ago, you're still likely to find that 80% of the content remains relevant. This is in sharp contrast to product-oriented books, which often resemble extended tutorials and tend to focus more on specific tools than on enduring concepts, theories, or methodologies.

Textbooks help you learn engineering concepts and terminology with precision. They typically serve as a foundation for application-based learning. After finishing one, you'll likely possess a substantial amount of passive knowledge. While this may not immediately enable you to build an application or a project from scratch, it equips you with the vocabulary and conceptual understanding needed to communicate effectively with fellow engineers.

One downside of having a large amount of quality content in print is that textbooks aren't very easy to carry — they can be bulky and not exactly commute - friendly. With ebooks, that problem disappears, but personally, I find reading physical books much easier. There's less strain on my eyes, and flipping through pages feels more natural. If I do have to read an electronic book, I prefer fixed-layout PDFs over flexible-layout ebooks. As of 2025, ebook technology still struggles with rendering diagrams effectively in flexible layouts. I often see non-textual content embedded in HTML text, which usually doesn’t provide a satisfying visual experience.

Sometimes we open a textbook and are immediately confronted with complex diagrams and intimidating mathematical symbols. Most of us are used to our 26 familiar friends from the English alphabet or 95 ASCII characters. But when unexpected guests from the Greek alphabet show up — along with special symbols and multi-tiered brackets big enough to store the entire Lord of the Rings trilogy — we panic and shut the book. It’s important to overcome this initial intimidation. Unfortunately, not all good textbooks make this easy. Some introduce concepts gradually, but others expect you to dive straight in from page one. Still, these complex symbols as in the figure below shouldn’t scare you. With time, you’ll realize they’re just symbols — like “(” and “=” — but with specific meanings.

Example math formula
Figure 2. Example Math Formula. Source: Introduction to Algorithms, CLRS.

For students, textbooks are usually accessible through university libraries, although the best ones tend to be snagged early by the quickest borrowers. You might need to buy them online or borrow them from friends.

Key takeaway: Use textbooks to develop a solid foundation in engineering concepts, theories, and terminology, and to gain a broad perspective on the field. Just reading 10 high-quality textbooks in your area of study can provide immense expertise. In the long run, the return on time invested in textbooks is very high.

Research Articles: for deep and state-of-the-art knowledge

A research article is a scholarly piece of writing that presents the original findings of a study or experiment. Typically written by researchers or experts, it’s published in peer-reviewed academic journals to share new knowledge with the scientific or academic community. Thanks to this quality assurance process, the content is generally of high quality.

I group other types of research writing — such as dissertations, theses, and formal studies — under this broader category. In fact, many theses and dissertations eventually get distilled into one or more published articles, so most of what I say about research articles applies to them as well.

If you're enrolled in a formal Master's or PhD program, you're generally required to read research articles as part of your coursework. But what I’m discussing here is aimed at people who don’t have a graduate degree or who, for various reasons, were not exposed to this type of learning resource during their studies.

Research articles are not typically used to learn something from scratch — they aren’t designed for beginners. Their primary purpose isn't to teach but to contribute to existing knowledge. However, if you're working on a specific engineering question and want to back up your understanding with scientific evidence, research articles are invaluable.

When it comes to research, I usually have two types of questions. The first kind includes questions like “What was the original idea?” or “How did the authors first invent this technology?” The second kind asks, “How can I solve this technical problem?” or “What is the state of the art in relation to my question?” Both types are essentially seeking the same thing — knowledge — but the timing and motivation differ. In the first case, I’m curious about the origins of something; in the second, I want to know what’s happening in the field today.

Take the concept of backpropagation used in modern machine learning contexts. The first formal procedure was presented in the 1986 Nature journal article, "Learning representations by back-propagating errors", by David E. Rumelhart, Geoffrey Hinton, and Ronald J. Williams. The paper opens with the sentence: "We describe a new learning procedure, back-propagation, for networks of neurone-like units." From the perspective of 2025, this is no longer the frontier of machine learning—but in 1986, it certainly was.

Another example is the 2013 paper, "Efficient Estimation of Word Representations in Vector Space", by Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. The way text is represented in vector space is a foundational concept that significantly advanced the field of natural language processing. If you want to understand the complex ideas behind today's technologies, going straight to the original authors is invaluable.

Vendor making pomegranate juice
Figure 3. The joy of grasping a well-written research article is like sipping a glass of freshly pressed pomegranate juice.

However, that’s easier said than done. Without solid foundational knowledge, these papers are hard to understand on the first try. To truly grasp them, we need to approach the problem in stages. In the beginning, simply becoming aware of the article is enough. We then step back, study simpler sources to build necessary concepts, and return to the article. We repeat this cycle until the ideas start to make sense. That repetition process is part of learning itself. It's perfectly fine if it takes a year or two to fully understand a single paper. The first few will feel impenetrable — but as your knowledge accumulates, the process becomes much easier.

My emphasis on seminal articles doesn’t stem from some psychological devotion to the authors or their texts. While we recognize and respect academia — its ranks, colorful traditions, and rituals — the main reason for our focus is purely pragmatic.

For example, you might learn about the concept of word embedding through a tutorial on GeeksforGeeks, a Coursera course, or a Medium blog. But when you later read a research paper, you won’t find references to those sources. Instead, the citations will point to earlier scientific articles. To follow the thread of research, you’ll need to understand those references and why they matter.

crying face meme
Figure 4. Not understanding core concepts may cause stress.

The key thing to remember is this: research writing doesn’t exist in isolation — it’s part of an ongoing dialogue with past and future work. To understand that continuity, you need to build your foundation using scientific resources.

Another benefit of reading research articles is discovering who’s driving large-scale innovation. Unsurprisingly, you’ll often find Google, Meta, Microsoft, and other major tech companies sponsoring or conducting this research. The more you engage with these studies, the more likely you are to find yourself aligned with cutting-edge experts — and to open doors for technical and professional growth.

Key takeaway: Use research articles to access frontier knowledge in your field or area of interest. This type of resource is best suited for learners who aspire to become true experts.

How to Read?

First, depending on the topic you're studying, computer science books and articles can be some of the most complex forms of human writing to understand. In my experience, multitasking while reading them just doesn't work. I need a calm, focused environment to truly benefit from the learning process. I've seen some people listen to music while reading — I honestly don’t know how they do it. This kind of multitasking may not work for you either, so experiment and see if you comprehend better when mono-tasking.

Second, avoid reading when you're tired. Your mind needs to be fresh to tackle complex topics and absorb new information. Try to read when you're energized and mentally alert — you want as much of your brain power as possible dedicated to making the material stick.

Third, adopt an existing method—or develop your own—for visualizing the concepts you encounter in your reading. Understanding computer science ideas without some form of visualization is extremely challenging. That’s why it’s essential to find an approach that works for you. Use pen and paper, sketch out diagrams, and keep experimenting until the visuals start making sense. The more you visualize, the deeper your comprehension will grow.

Fourth, not understanding things right away is perfectly normal. Even after several tries, struggling is okay. These concepts are genuinely difficult, and it takes time for your brain to feel at home in this field. But giving up? Not okay. Staying pessimistic? Not helpful. It's not good for your mental health and not good for your long-term goals. Keep moving forward, even in small steps. Take a break, then come back—and strike again. You need to develop your own personal science of Notgivingupology — that’s the core idea.

Thank you for reading — I look forward to continuing this conversation in my future articles.

  • #software
  • #engineering
  • #learning
  • #resources
  • #textbook
  • #research

Hello! How can I help you today?

Virtual Chat
  • Hello! My name is VirtuBot. I am a virtual assistant representing Nazar. You can ask me questions as if I am Nazar.
    4:00 PM
    Tell me about yourself?
Powered by NazarAI