Fundamentals 19 min read

My Journey Learning Data Structures and Algorithms

The article recounts the author's seven‑year path learning data structures and algorithms, from neglect in college to self‑study, book recommendations, internships at Microsoft and Baidu, projects such as a T‑SQL parser and a pinyin index, and reflections on the importance of algorithms.

Qunar Tech Salon
Qunar Tech Salon
Qunar Tech Salon
My Journey Learning Data Structures and Algorithms

This article describes the author's seven‑year learning journey in data structures and algorithms, beginning with a neglected university course and a personal five‑year study plan that included C language fundamentals, data structures, and computer networks.

The author first consulted senior students who recommended classic texts such as Introduction to Algorithms and The Art of Computer Programming , but found them intimidating and turned to Douban reviews to select more approachable books.

The first influential book was Data Structures and Algorithm Analysis – C Language Description , which the author studied intensively, copying code by hand and drawing algorithmic state diagrams. The book illustrated the importance of algorithms by improving the complexity of the maximum sub‑sequence problem from O(N³) to O(N).

During a later internship the author realized that real‑world work often involved stitching together existing APIs rather than applying algorithms, prompting a shift toward deeper algorithmic study.

In graduate school the author attended Professor Han Jun's Algorithm Design and Analysis course, which mirrored the structure of the textbook and introduced concepts such as divide‑and‑conquer, dynamic programming, and backtracking.

Additional reading included Algorithm Introduction , which focuses on creating algorithms, and two implementation‑focused books: Elements of Programming and C Interfaces and Implementation . These helped the author improve practical C coding skills, exemplified by the need to implement a stof function for a Baidu interview.

Project work included a T‑SQL parser built with an LL(k) grammar and an AST walker to generate block‑coverage HTML reports, a high‑performance pinyin index for a mobile app using Int16 and Int64 indexing, and a fast string‑matching dialer that replaced linear search with a trie, achieving a 90‑fold speedup.

The author also experimented with simulated‑annealing‑based pagination for an e‑book reader and studied code‑correctness proofs from The Science of Programming , gaining the ability to formally verify simple code snippets.

Later studies covered classic interview books such as Algorithm Design Manual , the Programming Pearls series, and advanced data‑structure courses (MIT 6.851) that introduced persistent structures, van Emde Boas trees, O(1) LCA/RMQ solutions, and linear‑time suffix‑tree construction.

In the concluding reflection, the author observes a dialectical progression: early belief in the power of algorithms, a mid‑career phase of algorithm skepticism, and a final reaffirmation that solid algorithm knowledge is essential for becoming an excellent developer rather than merely a code monkey.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Software EngineeringData StructuresInterview PreparationAlgorithmsLearning Path
Qunar Tech Salon
Written by

Qunar Tech Salon

Qunar Tech Salon is a learning and exchange platform for Qunar engineers and industry peers. We share cutting-edge technology trends and topics, providing a free platform for mid-to-senior technical professionals to exchange and learn.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.