Fortsätt till huvudinnehåll

Inlägg

Visar inlägg från september, 2017

Is it necessary to have some basic knowledge of algorithms and datastructures in order to be a good programmer?

The short answer, yes, absolutely. This is a follow up to my previous blog post where I claimed that you don't need to know advanced algorithms by heart in order to be a good programmer. That is still totally true. However, you should have at least some basic understanding of algorithms and data structures. Having this knowledge will help you select the correct tools for the job, for example knowing when to use a stack over a queue, when a linked list is a better selection than an array, when to use a hashset, or a dictionary, and so on. This will help you write easier and more robust code. It is also a really good idea to have some feeling for how your code will perform when input data grows. How will memory consumption and running time be effected if the input data grows by a factor 100, or 1000? This knowledge will help you identify performance bottlenecks in your application and help you come up with ideas on how to attack them. So, if you haven't done it already, ta

Do you need to be able to solve complex algorithmic tasks by heart in order to be a good developer?

Short answer, no, absolutely not. If your daily work consist of designing algorithms and implementing them in code, then you should have a good understanding of algorithms and how to adapt and apply well proven solutions to various problems. However, 99% of all development work does not involve writing complex algorithms. Take a look at the source code of any software. The absolute majority of the code will not involve any complex algorithms at all. Hence, there are a lot of other qualities that are far more important in order to be a good software developer. One of the top qualities is the ability to write clear and simple code that is easy to understand. Avoid using complex solutions unless absolutely necessary, keep the code as short and simple as possible and use clear naming. Another important quality that makes a good software developer is the ability to quickly find information and adapt it to the problem you are working on. Today there are tons of information available onl

Finished Algorithms part I

I really enjoyed the Algorithms course "Algorithms Part I" on Coursera. So much that I enrolled on another algorithm course (more on that in another post). The course is not easy. It requires quite a lot of effort in order to complete the programming assignments. But it is worth the effort. So, if you like some good programming challenges, I really recommend taking the course. You will also have a much better understanding on what impact different solutions will have on your application and how well it will scale. Most software programmers can write a program that handles tens or hundreds entries of data. Handling millions or even billions is a whole different story.