Если речь идёт о школе, то мне думается, что ассэмблер. Он вбирает в себя гораздо больше, чем просто язык программирования. Он даст понятие о механизмах работы компьютера, объяснит, как работает процессор, как обращаться с памятью и что это вообще такое.... в общем, основы нужно изучать в самом начале. Поэтому ассэмблер 
Однако, подходы различаются довольно сильно и одним АСМом не отделаться. Поэтому, второй- питон 
Помоему сначала надо научиться составлять алгоритмы. А для этого диаграмки самое то.
Если уже умеют составлять алгоритмы и не плохо тогда можно пробовать эти алгоритмы воплощать в жизнь на каком-нибудь языке, но не на ассемблере.
Вот когда получится с Паскалем или Си что-то более/менее приличное тогда можно начинать досконально изучать процессы стоящие за этим всем..
Ассемблер, это хорошо, но только до той поры пока не разберешься как именно работает процессор, как работает защита процессора, как процессор работает с шинами и памятью...
После снова как правило возвращаются к Си, С++, потом начинают лениться Java, C#, а когда совсем обленятся Perl, Python =)