Programming is a combination of creativity and mental structure (art and science).
To solve problems it is necessary to think "outside of the box", but to solve that creative solution and bring it to reality, order and structure are necessary. It is not possible to reach an efficient solution without an algorithm that takes advantage of the best available resources.
La programación es una combinacion de creatividad y estructura mental (arte y ciencia). Para resolver problemas es necesario pensar "outside of the box", pero para resolver esa solucion creativa y llevarla a la realidad es necesario orden y estructura. No es posible llegar a una solucion eficiente sin un algorismo que aproveche de la mejor forma los recursos disponibles.
I definitely think you need to have an analytical mind to be able to break problems down into smaller pieces. Definitely a logical mind as well. I suppose abstract would help also. I'm sure my mind isn't extremely fertile anymore, but I do what I can with what I have, lol!
My mind is only fertile as far as silly things go 🙁 But I prefer to think that no one was born with an analytical mind (or almost no one) and this can be acquired by training logical thinking and problem-solving (programming is good for that btw :) ) I don't place creativity apart from logic though, both have to do with recognizing and using patterns, creativity just does that in an unexpected and unusual way, which still has its logic (otherwise it's just nonsense).
So, the answer to your question is "no" 😄😄 I don't like generalizations and artificial boundaries much. Like saying that some traits are necessarily required for getting good at something. Almost everything can be learned and everyone has a place in programming with their strong and weak points (which are not set in stone either)
It is definitly necessary to have a fertile mind to start learning anything. If you think I know everything, chances of learning anything new almost diminishes.
I dont know what is abstract thinking.. we dont get to find solution to every problem ourselves, not everyone's mind is always buzzing with ideas.
And if one person has found a good solution, then it is good idea to take it or further work on that solution.
A phone was Graham bell's idea, working on his framework, phones have come really further, now touch screen phones.
Just like biological stuffs...the combination of acquired/ environmental and inherited traits define us. We don't have control over the latter so we cultivate our environment to effectively and efficiently enable us acquire best traits that serve us well. So yes it's necessary but they automatically build up as you put in effective inputs i.e more reading, more practice ....
Hola hola, tu pregunta es muy dificil pero creo que la respuesta es no. Ser un buen programador claramente no es solo saber el lenguaje pero puedo decirte tranquilamene que si tienes paciencia y determinacion puedes lograrlo perfectamente
If you can enumerate what you do between waking up and going to the breakfast table in a procedural manner, then you already have a transferable skill to manipulate codes and make something fun out of it.
It is good to think abstractly as it helps you finds solutions for a problem which logically sounds stupid but actually works. But at the same time it is necessary to think logically to understand the solution and problem.
As everyone is saying, thinking abstractly is not something everyone is born. Whether you are born with it or not you still have to improve the way you think. Just take everything positively and work on you problem solving skills and show interest in your ideal programming language.
Then, programming is simple and fun as making a drink
Hi Xzavia Cuello... I was interested in learning more about your comments stating (1) "thinking abstractly is not vital to programming whatsoever" and (2) you have "no worries about abstractions or any under-the-hood mechanics of any of the classes or methods" you use.
Would you mind sharing a little context about the type of development you do and would you say that you're (a) still at the start of or (b) well into your career?
Although you mentioned having no worries about implementation details of the classes you use, would "thinking abstractly" be vital to understanding when something isn't working with such classes; when evaluating the best libraries to use for a given architecture; or while building your own classes?
Are there any areas in this career, where "abstract thinking" could be a benefit or be considered vital for a professional software developer?
Thanks for sharing your insights.
I think that, be come and good or master programming is your practise not everybody have fertile mind or can think out the box, but yust need practise.
thank all of you programmers.
Tener paciencia y determinacion no es suficiente, porque excepto las herramientas tener que las manos. Una mente abstracta es como la mano por el instrumento, la paciencia y determinacion lograran nada sin la.