Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question

migrated from stackoverflow.com Nov 1 '11 at 5:32

This question came from our site for professional and enthusiast programmers.

closed as not constructive by Mark Trapp Nov 1 '11 at 11:01

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
I am curious, are you claiming IQ of 135 on an officially administered test at an actual testing facility or one of those fake online tests that exist to boost your ego? IQ of 135 is exceedingly rare and borderline genius level, putting you in the top 2%. On an official administered test I scored 115 where on an online test I scored 132. –  maple_shaft Nov 1 '11 at 11:09
1  
How did you get into medical school without basic knowlege of alegbra? Your lack of math skills, lack of writting skills, your inability or choosing not to finish things you started, are all negatives. –  Ramhound Nov 1 '11 at 11:35
    
maple_shaft: 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. –  JekyllandHyde Nov 1 '11 at 17:17
    
IMHO You would take a month at most to be a junior/intermediate C# programmer. You should start learning asp.net-mvc3 because it's easy. A| Yeah, my manager have no college education and still knows a lot of programming languages. B| Architecture <---> Civil Engineering. –  Guilherme Costa Nov 7 '11 at 14:01
    
Guilherme Costa: Thank you for your feedback, but a month is an extremely optimistic forecast. I think that it is pretty obvious that you meant a year, didn't you? I already bought my first C# book, it's arriving this week! Thank you again. amazon.com/Computing-NET-Framework-Arthur-Gittleman/dp/… –  JekyllandHyde Nov 8 '11 at 4:35

5 Answers 5

Generelly this is very hard to answer since we don't know you...

But I would roughly estimate 6-12 months to a "hirable" status...

You should invest into some good books (IF C# is the language you want to learn then for example "C# in Depth" - see http://csharpindepth.com/)... after 3-4 months you should start digging through the source code of good opensource software (for example http://codeplex.com or http://codeproject.com)... these are great resources to learn how it should and how it shouldn't be done... another point is aside from technical skills: you will need to get good at communication etc. (a nice compilation see http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/).

As to your question A: If the motivation/determination is right then definitely yes.
As to your question B: on average I would say "somehow correlated".

share|improve this answer
    
Thank you Yahia, especially for the kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer link. –  JekyllandHyde Nov 1 '11 at 16:51

As you said it really does depend on many factors

A fast learner in algebra has no co-relation to how fast you will grasp programming, have you gone through OO concepts and do you find the concepts of class , interfaces and framework methods graspable.

First and foremost thing is you have to invest time to practice and need to have some inclined interest in writing some code coz practice is the main key. you need not worry about the output since 8*8 in the code will give the proper output but you need to know how to write this in so that it performs the calculation. There are many areas to work in programming and only some of them are mathematical.

Short and long answer is Practice , practice, practice and iteratively you would get the concepts right and be on the path of a good programmer and you still hold the urge and enthusiasm to code.

share|improve this answer
    
Yes, I have gone through concepts of OOP and besides grasping them I find them fascinating. –  JekyllandHyde Nov 1 '11 at 16:56

A. There's no reason why you can't be successful without a CS degree. If you have enough determination, really enjoy programming, and can become reasonably good at it, then there shouldn't be any limit to what you can achieve. However, its a fact of life that I think the majority of jobs out there do ask for some sort of formal qualification. So you might be better to initially lower your sights and go for an IT related job in a company that also employs developers, and then attempt to cross skill on the job and apply for internal positions as they arise. I've seen this happen many times myself with coworkers.

B. I can honestly say that I don't think maths figures that much at all in the average developer's job. In 18+ years of developing I've only briefly touched on the linear algebra studied at university. Seriously, with google these days I'm sure you can get by with basic maths skills as a developer. I have worked on some graphical apps that did require some computational geometry skills, but I wouldn't call it advanced maths by any regard.

Good luck...

share|improve this answer
    
+1 about needing at least some kind of degree. It demonstrates committment and seeing something through to the end. Further about math skills, I would expect any programmer to be able to interpret or solve complex algebra, exposure to trig, exposure to calculus, and thorough understanding of discrete mathematics. Someone who does not understand discrete mathematics, logic gates and binary arithmetic has no business coding. –  maple_shaft Nov 1 '11 at 11:03
    
maple_shaft: I actually find discrete math and logic very interesting for what I have seen in my friends' books. –  JekyllandHyde Nov 1 '11 at 16:53
    
@maple_shaft yes, I don't want to detract from the massive advantage you do get if you have a good knowledge of maths. I do for instance use basic algebra often in my job. But I think a lot of people new to programming tend to start with a view that all programming knowledge is related to maths, which I would disagree with. –  dodgy_coder Nov 2 '11 at 4:01

I would say you'd grasp enough in a year or less to get an absolute junior position. (When I had my first job I was straight out of college and didn't have a clue!)

Unfortunately your age may not be on your side. In my experience juniors are expected to be younger or straight out of college, an older person would be expected to have experience. It's a bit of a catch 22, most employers expect experience, but you can't have experience if you can't get the job in the first place.

share|improve this answer
    
It is illegal in the US to discriminate based on age, I certainly make every effort not to judge somebody on that, but unfortunately most employers secretly do. –  maple_shaft Nov 1 '11 at 10:59
    
Same here in the UK, but employers kind of do.. if an older person comes in for a junior position a lot more would be expected of them than a graduate. –  Bex Nov 1 '11 at 13:01
    
Well, I'm 26 right now, I should have restated that "late 20s", but I get what you guys say. Thanks for the feedback. –  JekyllandHyde Nov 1 '11 at 16:58
    
You may just be ok.. I started out at 21.. am now 29.. :) –  Bex Nov 1 '11 at 17:07

A. Is it realistic for someone with no college education to make it to high levels in the industry?

Yes. Especially if you're well motivated and reasonably smart. (And depending on what you mean by "high levels".)

Some formal education specifically in computing (obviously) helps, preferably higher than high-school level though not necessarily a university degree: some kind of diploma or even a semester at night-school in a couple of subjects would be much better than nothing. There are some general computer science concepts that you may or may not pick up on if you just learn one specific language.

Having said that, there are plenty of self-taught programmers, some great, some terrible, and I know some pretty terrible programmers who somehow managed to get a computing degree, so...

You also need good communication skills. Judging solely from your question you have better communication skills than some of my colleagues.

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 have the aptitude and have the motivation to study that much every week I'd say 6-12 months is reasonable to get you ready for a junior programming job, but there will probably still be a lot that you won't know. And bear in mind that you'll be competing with people who've studied full-time for longer than that, so the state of the job market at the time will be a big factor. If you already have friends in the industry they may be able to help you get a foot in the door.

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)?

I've worked in programming for nearly twenty years and never needed calculus (haven't touched it since high school). I've occassionally used some basic trig. If you work on something with a lot of graphics (a game being the obvious example) you will probably be doing a lot of maths including some trig, but the typical "business app" or website doesn't tend to need more than fairly easy algebra. A financial app obviously uses more maths, and naturally if you're developing a maths program you'll need higher maths skills.

In your case you said, "Never made it beyond very basic algebra." Have you done "sets"? If not you might want to learn about that on one of the many maths tutor websites, it will definitely help you in programming. If the reason you didn't progress further in maths is that you didn't understand the harder concepts then you may not have the right aptitude for programming. If you didn't have trouble but just never had an interest because you were headed for medicine then you could be fine. You don't need to be great at maths to be good at programming.

Very high capacity of abstraction and generalization

That will certainly help.

Good luck!

share|improve this answer
1  
I would never hire anybody on my team that didn't have at least some form of degree from a college, university or trade school. Lack of a degree, especially failure to graduate or dropping out shows lack of committment to finish an uninteresting task. One of the best programmers I hired had a bachelors in psychology, and the best QA had an associates in information security. Most of the world will agree with me on this fact. –  maple_shaft Nov 1 '11 at 10:57
    
nnnnnn: thank you for your reply, it's been one of the most complete ones. I haven't studied Sets but it is (besides discrete math and logic) one of the topics that I find interesting. As soon as you take the logarithms and trigonometry out of the equation and it boils down to logic I like it! –  JekyllandHyde Nov 1 '11 at 17:06
    
maple_shaft: it is beyond the scope of this post to discuss the reason why I left medical school in my country of origin, but it was certainly not lack of commitment or ability (the straight A's on my transcript speak by themselves), I'm not willing to finish the career here because of personal life circumstances. –  JekyllandHyde Nov 1 '11 at 17:10

Not the answer you're looking for? Browse other questions tagged or ask your own question.