I started programming in HP Basic around 1974. Line numbers, gosub, the whole bit. I taught myself how to program from the tutorial programs included with the language. TUT01, ....
As I learned how to program I learned what not to do if you want to maintain your code. I learned how to program in blocks, subroutines, etc. virtually while still using BASIC as the tool. If you didn't learn how to be systematic in your coding, you would never be able to build large programs in BASIC. By large programs I mean 1000's to 10's of thousands of lines of code. (I wrote two large programs during this time in BASIC, a chess program and a FORTRAN emulator to do arbitrary precision arithmetic, which I wrote to be able to solve diff eq's to do solar system modeling among other things).
If I had written spaghetti code I never would've been able to debug these monsters. If you are a good programmer you build your own style and mechanisms to manage the complexity. When I went to college, I learned PASCAL, and then I ported my chess program to it in just a few weeks. I loved the structure, but also felt it straightjacketed me with some of its limitations.
Now, my favorite language is LISP, but I program more in C++ as it is the language most of the students I work with know. Over the years I've programmed in more languages than I can recall.
In looking at all the languages, each has its uses. Knowing many languages lets you think in more metaphors, and styles, so you can choose the best one for the problem you encounter. You can program horribly in any language, and you can code elegantly in any language. Learning how to think about how to solve problems logically, efficiently, and elegantly is the key to being a good programmer, not the particular language you are currently using.