@A non-mouse :-
Welcome to Linux.org, and one of the friendliest Linux fora online!
I wouldn't classify myself as a developer, that's for sure......more like an enthusiastic amateur. Mostly a self-taught Bash scripter, I research and get the hang of using new techniques as & when I need them. Usually, this means you're putting what you've just absorbed into practice straight away, so it tends to stick with you better.
My personal view is that there is absolutely no point in attempting to learn an entire language at one sitting BEFORE you even know what you're going to do with it. Take your time - it's NOT a 'race' - and learn stuff, one chunk at a time, working up from the basics through slightly more complicated stuff and so on, until you're comfortable with what you've got your head around so far......this is, after all, the way humans learn as they grow up. And constant practice is NEVER a bad thing. Never be afraid to try a routine out once you've got it in your head.....over & over again if necessary, until you
thoroughly understand what it does, how it works with other routines, how it interacts with stuff in your system, etc, etc.
Remember - you probably know this already anyway! - most programming consists of stringing multiple routines together, in such a way that it eventually produces the output you want. Research whatever you need to - there's an entire encyclopedia's-worth of coding knowledge out there online. Ya just gotta look for it.....and that's what search engines are for. You very soon get the hang of wording queries in such a way as to bring up what you're looking for; like so much else, it just takes practice.
(Some people take to all this stuff as naturally as the rest of us breathe. Others - despite their best efforts - always seem to struggle. Programming is just another language.....and not everybody is born with the right mindset for learning languages. Don't feel bad if you fall into the latter camp, 'cos believe me, you'll be in good company...)
~~~~~~~~~~~~~~~~~
The whole thing of online courses for learning programming languages is a relatively new phenomenon, as is the business of obtaining qualifications for tech-related jobs. Most of the 'old guard' - those of us who've been into this computing lark for decades (some of us dating back to the 60s/70s) - are entirely self-taught, because we were all learning together at the same time as the tech itself was still evolving. Of course, everybody now
requires you to be 'qualified' today, along with fancy bits of paper you can wave around proving your competence, so it's become kind of a necessity. The old system of apprenticeships, of 'learning on the job' isn't really viable anymore.
Ask whatever you like here; that's what we're here for, 'cos we just like helping others, and passing on our own tips, tricks and general knowledge. Knowledge SHOULD be for sharing.....NOT for 'hoarding'.
(I agree with Maarten - @f33dm3bits . Whatever your level of competence with Linux, you won't get anywhere until you have a basic knowledge & understanding of the system in general. Attempting to dive straight into programming without said basic understanding will make the entire process very frustrating!)
Mike.