i started off with a whole bunch of usefull/useless programming language : basic/ logo/vb
but at the univ i started on asm and that is the **** ... anyways it is defenitevely not the easiet to learn from.... need understanding of too many concepts first: binary algebra, moor's law, architecture of the cpu, sync/ async tx&rx system number ...

choosing a first lang depands on your end goal... programing just to know how go with c or c++...
or select something that's directly applyed in your field.

for me, i use to do a lot of dsp on microp, the first c program could not be run cause the buffer was too small and the compiller bad.... thus i went to hardcore asm. the worst also about asm it that it is different to each platform... and cpu architecture....
so if you want some asm help let me know i'll help you out ...