I just want to know how long would it take me to become proficient enough (in let's say C#) in order to be able to get into the job market as a junior/entry level programmer. I have read all those articles and discussions about "how long would it take" but the answers always seem to be like "...it will take you two weeks to know the syntax, but it will take you 10 years to become a good programmer..." or "...the same time that it would take you to learn German...". Nevertheless, there is a continuum between the two extremes. I know that I'm not going to produce great code in a few months, I just want to know how long would it take me to write code "good enough" to be considered "hirable". I know that the answer depends on many factors, so I will be as specific as possible describing my situation:
-I'm in my late 20's.
-Haven't made it in programming beyond creating objects in C#.
-Have some friends (5) who studied CS and are working as programmers. A couple of them are able to help me through my learning process though no full time.
-Very underdeveloped mathematics skills. Never made it beyond very basic algebra, not because I didn't understand it, but rather because I studied something unrelated to mathematics.
-Fast learner. I made it through a Basic Algebra book in less than two weeks and scored A in a test after more than 7 years without even opening an arithmetic book. I don't know the multiplication table, but I get by because I know in principle what multiplication is. If you ask me how much is 8*8 my brain goes like: it is 80-(2*8)... yeah, I'm at that level...
-My IQ is consistently over 135 in standard tests.(to maple_shaft: yes, standardized tests, like the ones to complete for MENSA; anyway I'm not that proud about it at all since EQ is where the real deal is. I just brought it up because I know that in the field of programming it is a good trait to have.)
-Very high capacity of abstraction and generalization.
-I won't be able to study full time. I could study for an average of 1.5hrs on work days and 6hrs on days off.
If you read this far maybe you would also be so kind to respond as concisely as possible to these two questions:
A. Is it realistic for someone with no college education to make it to high levels in the industry?
B. How would you describe the relation between the daily work of an application developer in an average project of an average company and mathematics (mainly: calculus, trigonometry, etc)?
Physics <---> Mathematics (Strong Correlation. All great physicists are great mathematicians... there is no way around it).
Architecture <---> Civil Engineering (Somehow Correlated, but you can earn your bread with only some general concepts of it).
General Mechanic <---> Engineering (I'm just going to use the tools that you created to fix what you created, but how I do it is another thing).
Thank you very much in advance for your replies. Please, please, no offensive or repetitive answers; I would appreciate serious answers.
Thank you for your time.