What skills should a qualified programmer have?

Algorithms and data structures are fundamental to programmer programming

This time, I will sort out the data structures that excellent programmers must master (pull to the end of the article and book recommendations):

Bidhan Roy (Washington, USA, Square Software Engineer):

For different levels, the answer is different. I classify like this,

Beginners :

Linked lists, stacks, queues, binary search trees.

Intermediate Transitioners :

Heaps, Priority Queues , Huffman Trees, Union Search, Tries, Hash Tables, Tree Maps.

Proficient :

Segment Tree, Tree Array, Suffix Array , Sparse Table, Lowest Common Ancestor, Region Tree.

Expert :

Suffix Automata, Suffix Trees, Tree Chaining, Tree Heaps, Aho Corasick, Kd Trees, Dynamic Trees, Spread Trees, Palindromic Trees, Rope, Dance Chains, Radix Trees, Dynamic Suffix Arrays.

I see all the listed data structures used in various programming competitions.

Many of these are given in the language library. But understanding their dynamics is very important. Otherwise, understanding the relevant high-level structures will be difficult. You may also find some higher-level data structures easier than lower-level ones.

Thanh Trung Nguyen (Singapore, Nanyang Technological University, Singapore, Google Software Engineer):

What algorithms do people with a competitive advantage need to master?

1. Basic data structure :

All data structures available in C++ STL: stack, queue, Deque (two-sided queue), SET, MAP, priority queue.

For me, I usually don't have to think about these data structures, I'm so familiar with them that I can focus on thinking about algorithms.

2. Union search, line segment tree, tree array. These data structures are very common in Codeforces, ACM competitions.

3. String data structure :

tries, string suffix structures such as suffix automata or suffix trees (for most problems, either of them can usually be used).

More data structures were used in the competition (Balanced Binary Search Tree, Aho Corasick…)

Jordan Bishop (San Francisco, USA, graduate of Laurier University, KPMG software engineer):

It is very important to learn algorithms and data structures well, here I recommend a few books:

"Data Structures and Algorithms":

The book covers a wide range of topics, explaining data structures and algorithms without diving into the complex mathematics.

" Algorithm Diagram "

This book explains algorithms in an easy-to-understand way that helps programmers make better use of the power of algorithms in their day-to-day projects. The first three chapters of the book will help you lay the groundwork, taking you through binary search, Big O notation, two basic data structures, recursion, and more. The rest of the space will mainly introduce algorithms that are widely used, including: solving skills when facing specific problems, such as when to use greedy algorithms or dynamic programming; the application of hash tables; graph algorithms; K- Nearest Neighbors algorithm .

"algorithm design"

Compiled from Quora

Excellent programmers have excellent skills. Algorithms and data structures are the most basic. In addition, excellent programmers also have the habit of continuous learning.

The computer field is developing rapidly, and new tools and technologies are updated. Only by constantly learning and keeping up with the development of the industry can we maintain a strong competitive advantage in the industry.

It is unrealistic to resign for postgraduate entrance examination, and the cost of studying abroad is too high?

In fact, when you are on the job, you can consider studying for an online master's program in computer science. You don't need to resign. You can use the piecemeal time after get off work to learn cutting-edge overseas knowledge, improve yourself, and stay away from introversion.

Now Illinois Institute of Technology, a famous American university , has opened a 3-day free online computer master's experience camp in China for 30 students . If you want to know more about the online master's degree, please click the link below to participate in the experience camp. ! Online Computer Master's Camp

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325564335&siteId=291194637