Vision for the first semester of 2016

Russel Winder via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue Jan 26 02:52:17 PST 2016


Some of this apparently off-topic, but I will get back on-topic by the
end.

On Tue, 2016-01-26 at 21:17 +1300, Rikki Cattermole via Digitalmars-d-
announce wrote:
> I wasn't going to reply, until you tweeted.

Sorry for wrongly assigning geography.

> No just no.

Yes, oh yes, oh yes. 

> When dealing with tertiary institutions especially New Zealand ones, 
> you've got to understand they have massive pressure to get through 
> content. Every single class is standardized nationally, by law.

Sounds like the NZ system is not as good a tertiary education system as
it should be. Having guidelines for curriculum and examination is fine,
but to stadardize at the class level is definitely too low.  UK
universities went through this debate in the 1980 and managed to escape
from legal enforcement.

> You're all worried about doing things best practice in an eco-system.
> That is just not the case here. In these courses they are not meant
> to 
> be teaching a language. But instead use said language to teach with.

There should also be classes in applications construction. Clearly
classes on specification, compilers, etc. the language is tool only and
workflow and best practice of programming are irrelevant.

> The most time a student gets in ANY language is 2 semesters. By the
> time 
> they reach third year (last) they only have 1 per language.
> In these classes the concern is teaching some other relevant concept 
> such as design patterns.

Design patterns are not language agnostic. GoF patterns are 23 year old
and many totally irrelevant with certain programming languages. However
that is a different debate for a different place.

> So you're pushing limited class time for the purpose of teaching
> actual 
> class content instead of non required information for assignments.
> Its a balancing act.

It sounds like the law makers are getting it wrong then. If there is no
time for teaching programming best practice then graduates from the
programme are not ready for employment without first doing an
apprenticeship of some sort.

> But you've got to understand that most of the students going through
> it, 
> are just not interested in going much further then the assignments.
> Simple things like trying OpenGL are beyond them and this is ok.
> They 
> have a lot of things to learn and have real life requirements outside
> of 
> study.

From my time in academia (20 years) I can pretty much agree that most
computing students didn't actually give a shit about computing.
Certainly 40% of them couldn't program. But because of the curriculum
they get degrees, get jobs as programmers and we end up with the mass
of crap code we currently have in the world. 

> The average person learning to program is not spending half the time 
> most D developers do on a slow week. Again this is ok. But we need
> to 
> acknowledge that they won't be anywhere near us or our expectations 
> normally.

Which gets on to a huge hobby horse of mine. If degrees are about
knowledge then there has to be a follow on before people are employed.
Medics do this: three year degree, two or three years on the job
training. Effectively an apprenticeship. Sadly in computing, most
employers assume graduates have the knowledge and the work practice
skills. Clearly they do not.

It seems NZ is enshrining this in law. UK it is jsut what happens.

Of course most university computing academic staff cannot program
either.

> To assume the average person will play around and learn pip ext. is
> just 
> ridiculous. Especially when they have most if not all the code they
> need 
> already available to them via the distribution.

Ridiculous is the wrong word to use here. All Python programmers should
know about pip and PyPI. You are talking about students using Python to
code up answers to exercises. If the academic ensures there is no need
of anything other than the standard distribution, then that is a fine
compromise, in that situation. But a person off that course should
never claim they can program in Python, nor should tehy be considered
for Python programming jobs without further training. 

> These are the same people who we may barely convince to try D out.
> If 
> they struggle to do basic things or at least perceived basic things
> then 
> they won't bother and just say 'too hard'.
> If we can make them happy, most developers over all will be happy.
> Even 
> the average D developer will be glad for it.

Mostly because they cannot be arsed.

Academic's have a responsibility here to configure things for the
students. We did this with C++, Scheme, Miranda, Java, etc. Part of the
initial pack for each course were detailed tested instructions for
students to set up. They didn't have to think, they just had to follow
the recipe.

> At the end of the day, the least amount of steps to do what is
> perceived 
> as basic tasks without any conflicting arguments the better.

True.

1. Download Dub.
2. Dub install standard-distribution

should do it.

> I keep saying about perceived basic tasks. Psychology. A fourteen
> year 
> old today was born in 2002. I learned to program when I was 14. In
> 2001 
> XP was just released. The people learning programming now expect
> GUI's 
> and perceive it as basic. We may know better but at the end of the
> day, 
> how can we appeal to them realistically?

In the university context most of the problems you are pointing out
land squarely at teh feet of the academic, and law makers, not the
students. Students are clearly input and output being treated as cannon
fodder, not as individuals wishing to learn things.

But to get back on topic.

Yes modern development is about IDEs. VIM and Emacs do not count even
though a lot of programmers use them. IntelliJ IDEA (CLion, PyCharm,…),
NetBeans, Visual Studio, Xcode, even Eclipse, are what people mean by
IDEs.

In various Scala, Java, Python, Clojure, workshops I have forced people
to use IDEs who would otherwise have used VIM or Emacs.It is amazing
how much further people get in learning a language and how to use it
with all the extras over and above editing that a good IDE provides. As
a confirmed believer in "Emacs is the One True Editor, VIM is a
scouring agent" I have been converted to good IDEs – bad IDEs get me
back to Emacs very quickly.

So we need a really good, preferably lightweight, but… IDEs that really
make programming, D in this context, easier and fun. The IDE should be
editor, manual, guide, mentor.

The single incident that really brought this home to me was at a
DevoxxUK workshop a couple of years ago, people new to Java were coding
up full on good quality RxJava applications in two hours. Without the
IntelliJ IDEA environment, they would have been nowhere.

So as well as DDT in Eclipse, there should be solid support for
Kingsley and the IntelliJ IDEA D plugin. If we get more people using D,
we will have more people willing to contribute to D development, in
terms of packages on Dub and otherwise.


-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20160126/8f1e58b4/attachment.sig>


More information about the Digitalmars-d-announce mailing list