panzerdp / dmitripavlutin.com-comments

7 stars 0 forks source link

/the-path-of-software-development-craftsmanship/ #22

Open panzerdp opened 3 years ago

panzerdp commented 3 years ago

Written on 09/20/2016 10:00:35

URL: https://dmitripavlutin.com/the-path-of-software-development-craftsmanship/

panzerdp commented 3 years ago

Comment written by Suresh Raj on 09/21/2016 16:48:26

Another great article. Thanks for your writing. I always really like to read these kind of articles, which push learn & try to understand the fundamental concepts clearly first. Totally love it. IMHO developer should also try to understand how something internally works, it gives you really good confident to him.
For e.g. how require function works in nodejs? If you are using any IDE set a break point & start debug. (vs code has a great builtin debugging features) First time it's not easy & straightforward but keep trying.. you will understand something more.. Thank you.

panzerdp commented 3 years ago

Comment written by Jos de Jong on 09/21/2016 19:43:24

Thanks, nice read. I think you're right the most valuable knowledge lying in programming fundamentals rather than an in-dept knowledge of a single framework. Your mainly talking about "algorithms" here, but I would say programming paradigms and patterns is what you should master. See https://www.wikiwand.com/en... and https://www.wikiwand.com/en...

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 09/22/2016 06:35:22

Hello @josdejong:disqus,
Interesting opinion!
I try not to make priorities over the knowledge of framework, language or algorithms & data structures. They are all equally very important. Including the design patterns you mention.
I want to demystify the idea that a trending framework (like ReactJS or any other equivalent) doesn't require you to know very well the basics of programming.
And yes, Design Patterns: Elements of Reusable Object-Oriented Software is planned as my next book to read.
Thanks!

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 09/22/2016 06:55:38

Thanks @disqus_qlWq4wEGFq:disqus!
I'm glad you like the article.

panzerdp commented 3 years ago

Comment written by Erick Bennett on 09/27/2016 21:30:23

Dmitri, another great read, I always look forward to reading your posts.

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 09/28/2016 05:01:17

Thank you @disqus_fgGXfnp7wI:disqus!

panzerdp commented 3 years ago

Comment written by nestormata on 10/08/2016 01:49:42

I love the article.
I totally agree. Many people nowadays think that the important is to use as many buzz frameworks as they can.
Development is about solving problems in the best way possible.
That means understanding the problems, finding solutions, improve them.

panzerdp commented 3 years ago

Comment written by Aash on 10/10/2016 07:27:12

Firstly, I liked your article ascertaining the importance of algorithms in a programmers' life. However, my take on its usage in interviews is different.

For any software developer, it is necessary to have a hold on the fundamentals. However, I don't believe the a developer's ability should be judged solely or mostly on the basis of his knowledge of the fundamentals. For example, in the case of experienced developers, it is much sensible to ask him about the challenges that he faced in his domain and how he ventured to tackle them.

There are people who have done nothing substantial in their career but have an amazing algorithmic skills. And there are people who have toiled hard and solved challenging problems in their daily work, yet are poor in algorithms.

In software development, I think it is more important to see whether the person is excited about the problems and is eager to learn the problems put forward to him.

In any case, I don't undermine the importance of algorithms and I liked your article ascertaining the

panzerdp commented 3 years ago

Comment written by Serban Balamaci on 10/10/2016 10:13:18

Well there you go: I'm your first programmer who says learning sorting algorithms, red-bl trees are a waste of time. Well unless you design some sort of storage engines. I rather encourage you to look at the high end solutions like data structures, concurrent data structures, queues, locks, cache implementations, distributed systems and their problems. And don't worry Java is not going anywhere soon so you can bet on it's frameworks. If you have time to spare instead of the mentioned algorithms I'd rather encourage to look into neural networks at least to understand there is no magic solution behind AI.

panzerdp commented 3 years ago

Comment written by Serban Balamaci on 10/10/2016 10:14:55

The best solution is to know how to pick a framework and not try and reinvent proven data structures, so I think you must understand high end data structure concepts not quick sort in order to do that.
If you're going to make your own queue instead of using one supplied by Guava, sure I can understand that when you want to secure your working place to make sure nobody but you knows how that code works, and that you cannot get fired.
But if you want to work as a team and have another guy just look at the code and recognize immediately the data structure from Guava, that's another story. That's also I think the reason behind Software patterns. That anyone new in the team might recognize the meaning just by a glance.

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 10/13/2016 06:03:39

Thank you @nestormata:disqus,
Development is about everything: the programming language, algorithms, data structures, patterns, clean code, scalability, and so on. Every part is important.

panzerdp commented 3 years ago

Comment written by Sunny R Gupta on 10/13/2016 20:23:09

Great article!
It is not about the libraries, it's about the language.

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 10/14/2016 05:46:14

Thanks @sunnyrgupta:disqus :)

panzerdp commented 3 years ago

Comment written by Sachin Walvekar on 01/05/2017 14:01:15

This is an article that I made all my developers read & will be passing it on to read to trainees who join....Its bang on the target. Thanks Dmitri Pavlutin.

The comments below too are interesting.Thanks All.

panzerdp commented 3 years ago

Comment written by Dmitri Pavlutin on 01/05/2017 14:46:23

Thanks Sachin!

panzerdp commented 3 years ago

Comment written by snsj2 on 01/24/2017 15:39:51

It's undoubtedly true that developers should constantly be up-to-date with the latest trends in technology. When we talk about the fast-changing IT industry, we should bear in mind that the latest technologies, programming languages, etc. should be applied in the development process, so the best result can be achieved – no matter if it comes to web- or mobile applications development services .

panzerdp commented 3 years ago

Comment written by snsj2 on 01/24/2017 15:45:33

It's undoubtedly true that developers should constantly be up-to-date with the latest trends in technology. When we talk about the fast-changing IT industry, we should bear in mind that the latest technologies, programming languages, etc. should be applied in the development process, so the best result can be achieved – no matter if it comes to web- or mobile applications development services. Or at least that’s what BGO Software does – always combines the latest technologies with an excellent implementation for a great user experience.

panzerdp commented 3 years ago

Comment written by dimaip on 02/15/2017 19:41:24

I agree to the main point of this article (prioritizing more abstract knowledge over concrete technologies). But I feel that we development is mostly about tackling design complexity with architectural patterns, and not so much about algorithms. I do get a change to apply my algorithms knowledge from time to time, but patterns are literally everywhere, from C to CSS.

panzerdp commented 3 years ago

Comment written by Iraguha jean paul on 06/30/2019 22:04:25

Totally agree! After graduation, I knew plenty algo and I was pretty good at it but I use less than 5 % of it on my daily work. Being an effective developer is more about knowing about programming paradigms, design & development principles & concepts... In other words, it what problems and how a language or a framework solve problems which are important.