At First, we are already using "high-level language" which is strongly abstracted very well for human readable.
And more we're using Libraries, Frameworks many cases.
I prefer if you can accomplish intuitive code easily without abstraction.
When I have to write code for accomplish some task, I'll just start from create single file and write code step by step from to top to bottom. That top to bottom code is flat and can read as same as Natural Language like English.
Finally adding test code on order to check is it can accomplish task correctly, that's all nothing wrong.
Wise people's sophisticated design pattern code is difficult to read most cases.
In the Programming World has been have famous best practice that avoid goto statement.
That general opinion says "jumping place to place causing make confusable code" as a one of the reason.
However typically highly abstracted code are tend to digging and jumping tons of files and many methods, interfaces, implementation classes, where come from data, where come from callback, track event dispatcher/subscriber mechanics etc...
Source code is all consisted by character, design pattern is graphical diagram, It is a completely different concept and format.
However, we think that the shiny design patterns described in cool and easy-to-understand diagrams can be easily applied to source code composed of strings.
I think this is actually professional skills matter.
My favorite abstraction I've ever seen is jQuery API.
That's insanely extreme magical spell of CSS, EventHandler, BrowserCompatibiliy, CalculateAnimation without abstraction.