I learned by having problems I needed to solve, and I knew that a computer could solve those problems.
For me the most important thing is not having a rule book. If you believe deeply that you need a CS degree or to follow a popular route into the industry then I believe that you will fail to learn as everything will seem to be an obstacle that you are not privileged enough to overcome.
Without a rule book, and with the belief that anything is possible... and if you can break down your problems into logical things you can describe... then you can teach yourself how to solve the problem.
My first step was a simple one, I had a manual mailing list which was names and addresses on bits of paper that I photocopied onto Avery label sheets. This was in 1993 and when the mailing list exceeded 2,000 I knew a computer could do this easier then I could. I purchased an IBM 386 and had no internet access (or knowledge that it existed) and could only learn from books as I also knew no programmers.
I purchased a book called Programming Perl, and just set to it. I think it took about 2 weeks to get the full mailing list application built, with flat-file datastore, printing, etc all complete and working. Looking back, everything was horrible about the implementation, it was ugly, inefficient, virtually unmaintainable... but it worked.
By 1996 I had started selling merchandise to the mailing list and written stock management, VAT accounting and reconciliation, the paper mailing list, an email marketing list, a shopping cart web-site, a community area on the web-site. This was effectively a shift from hobby programmer into a professional programmer and the start of a career in computing.
If I had been told those things were hard, or belonging to the problem domain of highly educated programmers, then perhaps I wouldn't have tried.
Believing in advance that anything was possible gave me the motivation to persevere, an obstacle would clearly be overcome if I could just stand back and think clearly about it.
After that... just carry on solving problems. Every time you have a new problem you gain fresh experience. Over time, that adds up.
you said "I knew that a computer could solve those problems." Where did that knowledge come from? It's not an obvious fact to most people. I have tried to convince students of this, but they tend to be skeptical.
For me the most important thing is not having a rule book. If you believe deeply that you need a CS degree or to follow a popular route into the industry then I believe that you will fail to learn as everything will seem to be an obstacle that you are not privileged enough to overcome.
Without a rule book, and with the belief that anything is possible... and if you can break down your problems into logical things you can describe... then you can teach yourself how to solve the problem.
My first step was a simple one, I had a manual mailing list which was names and addresses on bits of paper that I photocopied onto Avery label sheets. This was in 1993 and when the mailing list exceeded 2,000 I knew a computer could do this easier then I could. I purchased an IBM 386 and had no internet access (or knowledge that it existed) and could only learn from books as I also knew no programmers.
I purchased a book called Programming Perl, and just set to it. I think it took about 2 weeks to get the full mailing list application built, with flat-file datastore, printing, etc all complete and working. Looking back, everything was horrible about the implementation, it was ugly, inefficient, virtually unmaintainable... but it worked.
By 1996 I had started selling merchandise to the mailing list and written stock management, VAT accounting and reconciliation, the paper mailing list, an email marketing list, a shopping cart web-site, a community area on the web-site. This was effectively a shift from hobby programmer into a professional programmer and the start of a career in computing.
If I had been told those things were hard, or belonging to the problem domain of highly educated programmers, then perhaps I wouldn't have tried.
Believing in advance that anything was possible gave me the motivation to persevere, an obstacle would clearly be overcome if I could just stand back and think clearly about it.
After that... just carry on solving problems. Every time you have a new problem you gain fresh experience. Over time, that adds up.