DEV Community

Ben Halpern
Ben Halpern

Posted on

What computer science concepts should devs without a CS background prioritize learning?

Latest comments (64)

Collapse
 
amineamami profile image
amineamami

Design pattern

Collapse
 
schniz profile image
Gal Schlezinger

In my opinion - data structures. Implementing LinkedList, Trees, and even a Stack and a Queue can open your mind when solving problems. Understanding data structures help to understand why there are so many database types. Why there are tabular, key/val, graph and even message queues. That leads to strong architectural choices.

Collapse
 
loilo profile image
Florian Reuschel

What stuck most with me from studying CS (and isn't even a very abstract topic) are Design Patterns.

Learn to recognize and apply patterns and take the time to learn patterns from people who've already dealt with many failures so you can avoid solving them yourself.

Collapse
 
drterrible profile image
A Amine

Design patterns

Collapse
 
amrullah profile image
Amrullah Zunzunia

Watch Crash Course Computer Science on youtube. It gives a good overview of almost every subject a CS student is going to encounter.

Collapse
 
patriklarsson profile image
Patrik

Big O seems like a sensible first step. For a wider scope, I truly recommend Rob Conery's The Imposter's Handbook. It's a great intro to a variety of topics that will help you in your career.
bigmachine.io/products/the-imposte...

Collapse
 
johndoemw2016 profile image
John Doe
Collapse
 
mdg583 profile image
Matt

Depending on what kind of dev you are focused on, I really appreciated some courses on computer architecture - circuit design, machine language. Helped give a better conception of how computers actually work, and iron out misconceptions. Also OS design. Maybe not a first priority tough.

Collapse
 
ben profile image
Ben Halpern

Computer architecture is great because it's fundamental but also not too abstract

Collapse
 
andregarvin profile image
andreGarvin • Edited

However I do believe learning algorithms is a great tool to have a a developer or a software engineer in many cases. Because you would need to solve a problem in a very efficient amount of time or not in a coastly time. It's also henaces you probelm solving abilities and how you approach problems in a very efficient way. What I mean by efficient is how you determine weather the algorithm or process is not efficient or is the the fast way of doing it.

Collapse
 
andregarvin profile image
andreGarvin • Edited

I hear a lot of people shouting big O notation and I understand is relevance, however you can also explain the price you pay for certain algorithms and it's "expensive" without referring to big O, or log n, and etc. for example you could say this algorithm is efficient but if the length of a array Is n is a costly matter meaning this takes O(n) or in lamen terms a long process because of the length of the array and how long the process might take

Collapse
 
janux_de profile image
Jan Mewes

Here is a nice "Crash Course Computer Science"

youtube.com/watch?v=tpIctyqH29Q&in...

Collapse
 
tapabilities profile image
Clinton Gallagher

Computer Science is a religion whose adherents worship many false gods.

Collapse
 
bgadrian profile image
Adrian B.G. • Edited

The ones that most likely will encounter in the near future, or has in the past.

If no order is decided you must follow the CS curriculum order because it has a sense and the concepts are bases on previous ones.

The most common are other data structures than arrays, like linked lists, and other algorithms for search and sort.

Other way to deep dive is to learn the internals of your language, though making better optimized code and learning about lower level CS, like how. Sort is implemented in your language.

Later edit:
Minimal algorithms and data structures
Good math classes at Khan academy: Algebra 1&2, trigonometry, statistics
Khan academy computer science

Collapse
 
gireeshmandhale profile image
The Departed

Start using any Linux desktop, if you r not going to be Windows/Microsoft developer, and you will learn everything else including CS concepts on your own..

Collapse
 
dev3l profile image
Justin L Beall

My favorite non-CS computer science algorithms book is: Grokking Algorithms: An illustrated guide for programmers and other curious people.
It stays at a pretty high level, touches the major algorithms, and explains big O very well!
Grokking Algorithms