TL;DR. To engage into a broad area, you do not need fundamental knowledge about it. You'd rather need to start and pose the right* questions.
* "right" questions are those, that help you to grasp the problem and understand the solution.
If you are a programmer who makes a living out of it, you either belong to the group that outrages because I have reduced your profession to a stupid simplification, you see what's behind it and agree with me, or you just don't care. Whatever it is. I can assure you that programming is not just googling. If you plan and implement full-fledged applications, it requires a minimum amount of creativity, structure and, especially for complex issues, a well-developed problem-solving ability. But that's not what I'm aiming for. In the course of self-optimization and optimization of all areas of life, there is no way around a little bit of code. Fortunately, a lot of smart people, fed up with complicated, hard-to-learn languages, have developed programming languages with trade-offs. They are easier to read, but less performing in some areas, or less powerful or flexible in the overall context. For conservative programmers such trade-offs are certainly a nightmare. For you and me it means that we can approach the topic on a different level, namely to use programming languages purely as a tool to be able to answer questions from your and my subject faster, more precisely and in a more standardized way, even if this subject area natively has nothing to do with programming. Translated with www.DeepL.com/Translator (free version)
To illustrate what I mean by readability, I present you two "Hello World" programs. Both snippets print a "Hello World" message to your running console.
C++
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
Python
print("Hello world")
You can look at almost all programming languages and their "Hello World"-Code on Wikipedia. Particularly entertaining, but not very useful in this area, are esoteric programming languages such as Chef or WhitespaceIf you just want to automate some of your problems, Excel activities or write bots, Python is in my opinion one of the most suitable languages for beginners. You install it, preferably as a package like the ones offered by Anaconda or Google, and you can get started right away. Python is also one of the best programming languages for using machine learning algorithms and models. The emphasis here is on "use", because if you want to implement efficient algorithms, Python in its natural form won't get you far. In most languages, many algorithms and methods are already implemented by other people and collected in libraries. In these libraries you can, so to speak, grab the routines you need, sometimes for a license fee. The noticeable lack of performance loss when using algorithms, methods, routines, especially in the machine learning area is due to the fact that they were implemented in low-level languages such as C, C++ and simply an interface to Python was made. The interface thus only translates commands, to put it into plain language.
Aber woher kommt nun die Aussage meines Titels? Sie kommt daher, das viele Menschen, seien es Studenten, Forscher, Programmierer, oder wie ich es bin Unternehmensberater andauernd auf Probleme beim Programmieren stoßen. Diese Probleme werden dann in eine Fragestellung formuliert und in der Gemeinschaft gelöst. Dieser zusammenhängende Block von Frage und Antwort ist meistens offen einsehbar und es haben sich im letzten Jahrzehnt entsprechende Plattformen herauskristallisiert, die auch auf Google einen hohen PageRank besitzen und daher weit oben in den Suchergebnissen auftauchen. Das setzt allerdings voraus, das du verstehst wie man ein Problem am besten googelt. Um dir eine Idee zu geben, gebe ich dir eine Skizze von meinem Ablauf, welcher nicht festgelegt ist, sondern sich mit der Zeit entwickelt hat.
- After implementing something, I run into an error I do not understand.
- I try to narrow the error down and try to check if I already encountered and solved it before. Some errors are so called "red flags", so the errors happens somewhere else, however it occurs later.
- I try to understand the error message. Googling the definition and common associations with the mistake may help me.
- I copy the the narrowed error message into the Google search, remove personal information like user paths, optionally add the programming language and hit search.
- I check the first Stack Overflow posts or alternatively whatever Stack Exchange platform suits my programming language, try to find my issue in the question and if it fits, try the first answers, read the comments and acknowledge the author of the answer if it worked by leaving my upvote. As of today (3rd of January 2020), the answers underly the Creative Commons license. Make sure to credit the authors accordingly.
- If 5. didn't solve my problem, I check the GitHub repository of the package where I assume the error comes from to identify if it is a known bug. As I am a multi-platform user, I always try to check on issues in that area as well.
- If 1.-6. did not deliver any promising results within 15 minutes, I ask collegues and friends that work in the same area.
- As a last resort, I would pose the question in the appropriate forum myself.
Insbesondere, wenn du Anfänger bist, kann ich dir fast sicher sagen, dass die Probleme, die du haben wirst, bereits in aller Couleur von dutzenden Personen angesprochen und gelöst wurden. Daher das Fazit: Insbesondere für den Einstieg ist das Programmieren lediglich effektives googeln. Nach und nach sammelst du Erfahrungswerte, baust ein besseres Verständnis auf und lernst Hintergründe von Problemen kennen, die dir dabei helfen, in Zukunft besser zu sein.
Did you have any encounters with programming or find any interest in it? If so, do you share my views or how do you tackle problems? Let me know with a comment below!
Song of the day
Favorite part
Ich weiß der Anfang Anzufangen ist hart
Denn manchmal kommt man nicht an Start
Beziehungsweise einfach nicht in fahrt
Aber wenn nicht jetzt wann denn dann
Beweg dein Arsch
SDP – Der Anfang anzufangen
Pingback: Google hat dein Leben bereichert! – alex.all
Pingback: Ein bisschen Programmieren? – alex.all