T
T
Trotil2013-09-07 18:41:50
Haskell
Trotil, 2013-09-07 18:41:50

Is it worth giving Haskell to a student as a first language?

Good day! There is a smart ninth grader who is very interested in programming.
The idea is to teach him something special so that he does not repeat the standard self-taught path, but learns something more interesting under the guidance of a mentor.
I'm seriously considering teaching him about Haskell and functional programming.
Reasons for:
+ about C++, Pascal, php and others, he will still have time to get acquainted without my help
+ Haskell after getting used to the "classical" approach is perceived more difficult, but here a "blank slate"
+ a person will receive an additional useful skill that will distinguish him favorably from peers
+ myself finally learn Haskell

Cons:
– learning the language only “for one’s own development”. It is unlikely that he will be able to use it in school and institute projects.
- knowledge of the functional paradigm can harm further learning, there may be conflicts with blockhead teachers

. The complexity of learning is not an argument. It won't pull - ok, so it won't pull.

What will the habra community say?

Answer the question

In order to leave comments, you need to log in

16 answer(s)
O
OnYourLips, 2013-09-07
@OnYourLips

The language should be interesting - have many popular libraries so that the student can immediately do something significant.
The realization that you have just started, but you can already do a lot, motivates you a lot.
These are graphical interfaces, and networking, and the web, and toys, and to keep it all simple, with little bloodshed.
Python can do it all. What about Haskell?

L
leventov, 2013-09-07
@leventov

There was such an experience - OCaml for sure, Haskell, it seems, too. As the first language in the school classroom, in Russia. The results seem to be good. Google it.
I can say from experience that familiarity and even attraction to the functional paradigm when developing in mainstream languages ​​is only a plus.

V
VoidVolker, 2013-09-07
@VoidVolker

Perhaps it will sound stupid, thoughtless and too complicated: since the ninth grader is smart, can he try to give him several EPs at once? Let him try to solve tasks in different ways - first with the help of one YP, then from another YP. Let him compare them in action - this will give him the opportunity to choose what he is really interested in. Or, for example, one YP is for warming up the brain, and the other is for.

D
Danny, 2014-08-18
@iAmDanny

I myself, in fact, am a tenth grader, and maybe my opinion will be useful, as a look from the side on which you want to experiment)
In general, I recently started learning Haskell myself, and I like it. I also like trying out functional goodies in Python. It is quite possible that your ninth grader will like the functionality. But to be honest, I think that Haskell will be a bit difficult as a first language. It is better to start with some kind of Pascal (since its example clearly shows what different data types are), then, for example, Python (and here you can already slowly give functional python buns), and then, finally, if interest does not disappear , you can give Haskell. I think it will be easier to understand it this way.

6
65520, 2013-09-07
@65520

> Do not pull-ok, so it will not pull.
If the result is not important to you in advance, then you can teach anything - I see no reason to look for some logical arguments “for” and “against”;)
And so, Python, as already said here, is one of the best options. Or just the best.
Sorry, I missed the button and shit in the clarifications :(

M
mayorovp, 2013-09-07
@mayorovp

Haskell is the language of mathematicians. Are you sure that your ninth grader knows math well enough?
If you are sure, learn Haskell boldly.

A
Antares19, 2013-09-08
@Antares19

very interested in programming

You can just ask him how he sees programming himself, what he would like to develop and how.
This will be your answer :)

E
EugeneOZ, 2013-09-08
@EugeneOZ

It is unlikely that he will be able to use it in school and institute projects.

School and college are temporary. If you set his brains in such a way that he will then be useless in mainstream programming ...
Haskell can only be taught in parallel with the mainstream language. Java for example.

M
m08pvv, 2013-09-07
@m08pvv

If the student himself wants to learn Haskell, then ok.
If he is smart, then you can teach him assembler and C for microcontrollers - in St. Petersburg, FML No. 30, schoolchildren quite successfully master the production of boards and writing code for microcontrollers at the circle.

A
AxisPod, 2013-09-09
@AxisPod

IMHO, functional languages ​​should be given along with a deep study of mathematics, because here you can unleash their potential. And first of all it is better to give procedural languages. Of the procedural ones, I would also advise Python, it is still easy to understand and at the same time will immediately teach you how to format the program code correctly. But just as the option can move towards PL + GUI, in this case I would advise .NET C #, a large number of components (at least for windows forms, at least for wpf), high flexibility, a large number of literature, prevalence. And then you can move, for example, to Unity3D.

W
wiz, 2013-11-14
@wiz

Costs. In the language and batteries, everything is there for learning on simple, understandable and interesting examples for the child.

C
CodeArsenal.net, 2015-08-12
@machine_messiah

1. It is worth asking the most experimental person.
2. Two concepts can be shown - say Java and Haskell, or C# and SCHEME or LISP.
And then let him choose, and all sorts of abstruse dogmas are show-offs for visitors

M
makondo, 2013-10-09
@makondo

I read somewhere that in Russia there was a group of linguists who experimented on their own children - they taught artificial language from birth.
I can’t find the link, I only found an article about ifkul

M
Marat Akhmetshin, 2014-03-04
@bukrat

I think it is worth giving, but at the same time it is very important not just to give the language, but to give through specific projects. On the other hand, but in general ... does he need it? Maybe there is a need to give him more popular languages, such as C ++?

R
rumkin, 2014-03-04
@rumkin

I would not give any particular language, but would recommend giving everyone a little bit, this will give him an idea of ​​the diversity of languages ​​and of language as a tool, not an end in itself. Let him try to implement the same task using different languages, gradually increasing the complexity. This way you will avoid a situation where your desire to learn Haskell will influence his choice and give him a powerful platform for further self-education.
At one time, I had to relearn from PHP to other "normal" languages ​​for a very long time, and at first it was scary to change the already familiar environment. So let him head into the pool, if this is him, do not stop him.
In general, I would recommend ruby ​​as the first high-level language - it is simple and flexible, with unobtrusive OOP, has a vast community and developed infrastructure, from an early age learns to reuse code, write tests and docks. Although its syntax after the family C, D, Obj-C, PHP, JS, Dart seems to me somehow "childish".
What I would not recommend is PHP and JS - the fate of languages ​​\u200b\u200bis too peculiar and there are too many ignoramuses in the community.

V
VovaOne, 2016-03-02
@VovaOne

While studying at the university, I saw what they do on js (web) and did not understand why java. You need to learn from the general. Find out where which language is used and even see the number of vacancies. Let him choose.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question