📜 ⬆️ ⬇️

Self-education and Hello, world: the problem of introductory courses and not only

Hello! My name is Ivan and I am an alcoholic self-taught. IT implies self-education. And so I relied on my own brain - I have no higher education. Yes, in the modern world it is the lesser of problems. But I’m touching on this because I want to talk about education in general.

Needless to say that now there are courses on photographing food on Instagram? Do not…
There are "millions" of paid and free courses, and there is even a whole section on this notorious resource devoted to this burning problem - courses for courses, after which future job entrants can be proud that they have a piece of paper, and school students (except jokes) can be proud the fact that at least someone at least taught something. And in this whirlwind you can understand all. And those who just want to eat and live, doing some good thing - kursodelov, and those who attend these courses, hoping to get qualified and work.

Do not consider it as an advertisement - Stepik discovered for himself not so long ago, and yes, there are really free and at the same time suitable courses, after which you feel that you have enriched your horizons, learned to think differently and benefit from it.

There is MIREA and there is a free network academy (with some reservations) even with access to real hardware (I don’t call a vendor) - take it and study, as they say, be useful to society. This is me to the fact that there are good examples and I don’t want to spit on all our education in principle.
')
But! I would like to spit, frankly, in the approach to the education of beginners in most courses, in the "textbooks" and "tutorials." I remember that Habr is not a place for complaints. But I want to draw attention to the real problem.

So, "Hello, world" JS, a primitive approach:

window.document.write(“Hello, world!”); //     window –        window . 

My reaction: thanks, I already knew that programming languages ​​allow you to work with information, write it and read it in and out of files. Not a fool. Further ... A little more realistic example:

 function myFunction() { document.getElementById("demo").innerHTML = "Hello, world!"; } 

My reaction: thanks, now I see how to interactively replace text in a paragraph, and not just write a Halloween world on top of everything. But this is not enough! Next, I want to understand how to learn to speak the language to you by writing your own library to it. Because I want to work, develop the sphere in which I come! And in this very rare courses can help me. I (suppose, just started to learn JS) go to watch jQuery code, having a rather poor set of knowledge from such HW-courses, articles and other things ... And of course I begin to understand that I did not learn anything in the course, as well as from articles.

More fun! For example, having already learned enough on my own over the years and years, I want to make my life easier and rewrite the wrapper for search engines and sites with docks to Jscript so that I can find it very quickly. At first it was such a batch file:

 @echo OFF :setfind set /ps="Find: " "C:\Program Files\Mozilla Firefox\firefox.exe" ^ https://www.google.ru/search?q="%s%" GOTO setfind 

I launch - I hammer - the browser with the necessary request and without unnecessary search parameters (and therefore much faster) opens itself in the right place. Now, as already said, I want to rewrite this in Jscript. I’m going to MSDN, I’m seeing a working window.prompt (str, str) method ;

I calmly write it to the script code and I expect intuitively that WSH will eat it ... But ... The window object is not defined. And here I start to feel like an idiot, dig a stack of flow flou and find wsf there with the export of the in-bootbox function from VB ... But - this is not very beautiful.

In the end I find something beautiful, although I don’t remember where, (it turns out that I had to create a wsf file, while the docks have all the chews except this one!) And I understand that I can write all this and that I’m not a fool -So, but - the question ... Why is there no such thing on the courses? Why docks have such self-evident structures:
JScript uses your alert, confirm, and accept user input from your user. The boxes are methods of the window object. In the case of a window of choice, it’s not a problem. it helps you to remember

But there is nothing that should make it just work ?! The funny thing is that I came across wsf many years ago, but just forgot how and what it is eating. And so ... I calmly write instructions to the new file ... And it turns out the devil knows what. For what kind of coffee grounds I should have guessed that Windows Script Host does not know how to js “from the center of the field”? Well, well, it was necessary to study WSH from the beginning, he is to blame. But. This is something I do not remember in any courses. Teach the simplest - do not teach the essence. They do not teach how to use something in practice, and then a person tries to use a microscope as a hammer.

In fact - most courses teach a set of some abstract tricks, not showing the essence of action. And after all these cycles, conclusions and physical sense, you feel that you have not learned anything.

The funny thing is that in the wake of my self-study, which lasts for years, you can write a book, except for jokes. Test drive this gave a positive feedback, by the way. You can continue ... Take HW, for example, for ActionScript:

 trace('Hello World!'); //   ,    ? 

Such an example does not teach anything. AS does not show anything about the essence. The newcomer leaves "not salty, but with the" basics ", yes ...

The same applies, for example, the C language ... Halloween World does not show us the true capabilities of the language. And should. In itself, education should form a specialist - a person who can put everything studied into practice. However, everything turns out very strange ... But a positive example. The most useful HV I have seen:

 template <typename T> class Hello { public: Hello(T hello) { std::cout << "Hello, " << hello << std::endl; } }; template <> class Hello<class World> { public: Hello() { std::cout << "Hello, world!" << std::endl; } }; int main(void) { Hello<World>(); return 0; } 

Hell! It shows how to use templates ... Immediately. And does not consider a novice idiot.
In the end, what I personally want to get from education, I find only on “in-depth” courses, which can be found with difficulty, sometimes very large. In this case, the course fee, of course, does not guarantee anything. Why am I talking about courses? They give at least some system in knowledge. And the lack of systematic learning is generally a very terrible thing, especially in our case ... Where consistency and orderliness is a head.

And what is the result? As a result, then we observe articles complaining about a fallen level of juniors and programmers who cannot fizbazz ... And it’s not the juniors that are to blame, but how much the profession has become massive. At the same time, the classic “tower” gives a certain basis, the main layer of knowledge no longer gives. It remains to stick with the courses and numerous numerous articles (correct me if I am wrong) ... And they often, although they give historical information about the language and an overview of the possibilities of languages, do not usually show anything in practice ... And when a person, for example, studies Basic constructions in C are trying to do something with OpenGL - usually it’s nonsense ...

And finally, as they say: “If you want it to be done well, do it yourself”, so it is quite possible that I will soon make a course the way I see it, and I will be ready to listen to all kinds of criticism and comments. Immediately and well it turns out very rarely, ready to receive kicks. I can not look at it all and do nothing.

That's all I wanted to say. Thanks to all.

Source: https://habr.com/ru/post/330556/


All Articles