[Tutor] What all technologies should a python developer know?
Alan Gauld
alan.gauld at btinternet.com
Wed Jul 17 22:00:59 CEST 2013
On 17/07/13 16:09, wolfrage8765 at gmail.com wrote:
> I am not so suprised as I used to be. Since I have seen that schools
> do not teach like they should, instead they skip the fundamentals and
> head straight to teaching a language
It gets worse. We used to have a local university that taught a very
good software engineering course.
They started teaching the students how to boot their old DEC mini
computer using the hardware switches on front then progressed to machine
code and assembler then C and Pascal before heading into SQL, Lisp and
Prolog. Some of our best hires came from there.
Nowadays they start with Scratch and move to Smalltalk before
introducing Java and then C++. It's the reverse of the old approach
and much less detailed. Are the students any better?
No, the opposite. But apparently the old course was too difficult and
students were going elsewhere - market forces, and the student is king...
> Lisp or Erlang is probably my next language to learn, as I wish to
> better understand Functional Programming.
To be honest i wouldn't use Lisp to learn FP. Erlanfg or Haskell would
be my recommendation.
Lisp has too many other features and its not always clear which bits are
FP related and which aren't. Lisp is a great FP language if you
undertands FP and know how to apply Lisp to it. But not so great for
learning the new paradigm.
Just my opinion of course others may disagree.
> Dave, how do I "drop down to assembler" with Python? Can you expand
> on this?
Its really the disassembly listing Dave is talking about I think.
Look at several of Eryksun's recent post for examples of how the
disassembly can show what the compiler is doing.
> Also do you think it is still of value to learn Assembly
> Language, and if so which variant, as I understand it, there is a
> unique set for each architecture, although they are usually similiar.
Yes to both points. Assembler is interesting in its concepts rather than
its immediate use - unless you plan on writing device drivers. There are
some emulators on the net you can use(*) - I'd recommend a simple
architecture like the Z80 or 6502. Try to ensure the assembler has macro
support because using macros is another useful technique that originated
in assemblers but can be used (or faked) in higher level languages too.
(*)At least for writing. I still occasionally drop into the assembler
listing when using C/C++ or Pascal(Delphi). But strictly in read-only
mode. I haven't written any assembler in over 10 years...
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list