Someone asked my the other day how to become a programmer. He mentioned college CS programs, DeVry (a 3-year bachelor’s degree school), a local “programming boot camp”, etc. This is an interesting question, as I’m getting ready to post a few programming jobs for my development team, so I thought about what I told the HR guys to put in the posting.
The most important quality I look for in hiring programmers (apart from technical knowledge/skill) is the ability to make order out of chaos. I don’t know precisely how to formulate this in words, but it’s that characteristic by which people can take an amorphus set of desires (i.e. “i’d like to encrypt files on disk”) and turn them into a functional product, with the 10,000 considerations necessary. Now, in reality, product definitions will be more precise than this, but no matter how well you do defining a task, the creativity of the programmer will still be called upon at some point, and nothing is more irritating to me as a manager than when programmers get blocked on a lack of personal problem-solving horsepower. Notice that this is not something that can be learned at school (or at least I never had any classes that helped me here, in ~250 hours of college). You just have to live life and solve life’s problems.
Related to this, I like to know that the candidate really loves programming. One good way for me to know this, which incidentally is also a fantastic way to learn to program, is to see involvement in some sort of open-source or recreational coding. The upsides to this are huge – I know that the person loves coding as a first principle, I can (often) see actual output from the person, I can get a feel for how fast the person can work, I can learn about task commitment and creative problem solving, etc. The list goes on.
There are also, of course, the basic qualifications that one looks for in a programmer, but to me, they are implied by the above two. I’d be curious to know what others think about what makes a good development team member.
Hi, Steve, we just talked after your presentation in SCE. Summarize what you mentioned above, if I may. You emphasized on capacity to conduct al·go·rith·mic analysis and passion for programming. I am completely agree. Add my two cents, care for others and willingness to take up responsibility are another two characteristics I observed will harness a programmer. BTW, thanks for your kind advices in the noon.
a
How do I go about becoming a programmer if I have a strong desire to become a programmer. I have no formal computer training. To give you an idea, the extent of my programming experience is editing macros in MS Excel. I was told just a few college coarses could teach you the logic behind programming, after that it is learning the different languages. I considered going to a Technology school. Please advise.
Well, I’d say you should pick a reasonable progamming language and grab a book about it, or better yet, look around online for resources about your language of choice. I’d recommend Java or (preferably) C# as good starting languages, as they’re a lot like C/C++, which are the real workhorses of the development world, while being much easier to get a handle on to start with.
Eventually, you really have to get comfortable with C and/or C++, and the best way to get there is, in my opinion, to work on some real code. Find an open-source project of some sort that interests you, go through the bug database, find problems that are within your grasp to solve, and submit patches to the project. After a while of patch submission, if you like the work and are any good at it, you may be invited to be a regular contributor to the project.
Bottom line: the *only* way to become a programmer is to write lots of code. You can’t read it out of books, and you can’t learn it in school. You just have to code.
Joel Spolsky had a recent rant about this precise point, and his article on the topic was much more eloquent than my own – go check out http://www.joelonsoftware.com/articles/CollegeAdvice.html for his thoughts.
-sd
Steve Dispensa, I just reviewed the first half of a book by Stephen R. Davis, "c++ weekend crash course".
Tell me if I am wrong but it seems like most of the literature on programming should be used like a dictionary, rather than reading from start to finish.
I think I have a grasp of the logic behind programming. It seems like, in most circumstances, there is more than
one way to code something.
I have a few simple projects that I need coded.
I am using a windows system and will be using c++. Could you suggest a compiler to use.
I want to become programmer how can i be
Hi there,
Im a philosophy undergraduate specializing in symbolic logic/philosophy of logic, and not knowing what I want to do after graduation I resently visited a careers advisor. I told him that if it was up to me, I would just sit around doing propostional calculus all day, but as there were no jobs requiring me to do that I didnt know what to become. To which he (suprisingly) answered that I was wrong, and said I should become a programmer.
The thing is though, I know nothing about computers. Sure I have studied computability and the ideas of people such as Turing and Godel, I know how you can represent all logical propostions using the operators "not" and "and", and I know that this can be represente d by an integrated curcuit, but thats about it.
Is there still hope for me? What should I do next (except actually learning C++) ? And how similar is programming to problemsolving in propositional calculus anyways?
cheers!
i dont even known a single knowledge in programming but eager to kwon it i dont have time to get to school may you help me to choose a web site to to learn it
Hi,
You mentioned here open-source projects bugs to fix lib.
i was wondering if you have any urls of that kind for that subject, that you familiar with and can refer me to them.
i did a small search of my own but didn’t quite find what i was "looking for".
thanks a lot.
Aviad
well im only 15 but ive made a few programs using vb6 and id like to try learning more about programming and maybe do that as a career. any suggestions?
walter_nguyen@hotmail.com
Anyone with enough patient to solve problem and have a curiosity mind will be capable to be a "mediocre " programmer.
To be a great programmer one have to be a scientist that continuously do r & d , and of course to have great IQ for doing the logic. In other words, interest and intelligent play important part here.
But to be a fantastic one, he need to be a great team player that loves to share his knowledge with others where this will multiply the efficiency of the whole team by few hundred percent. So communication skill is the key word here.
Hey for all you guys wanting learn programming, there are many languages to start with, some say start with perl, python, php, etc.. I began with php and moved to c, check out this book Absolute Beginner’s Guide to C, 2nd Edition by Greg Perry. ISBN: 0672305100, it is a really good beginners book and covers all the basics you will need, plus it is written in a easy to understand fashion.
Bottom line: the *only* way to become a programmer is to write lots of code. You can’t read it out of books, and you can’t learn it in school. You just have to code.
Its really really good words which make me again programmer, unfortunately i lost touch with programming since last 8 months now i again start coding which bring back my all lost knowledge of .NET thanks for just a great forum
One can always start with the dynamic languages like Python or Ruby. They are a great way to start working on writing some code without a lot of strain.
Hi,
I have a BS in Mechanical Engineering, but took a break of several years to raise a couple of kids. In the past, I learned some C++ and wrote some code as part of projects in Fluid Dynamics, but nothing grand. I’m exploring the possibility of becoming a programmer, although I don’t really have the resources to go back to college for a second degree at this time in my life. I’m not afraid of the hard work involved in learning and I do a lot of self-study, but how do you go about demonstrating that you have the skills when actually asking for a job as a programmer if you are shifting gears like me? Do I need to go back to college and get a degree that is related to computer programming?
sir,
i am working in ubuntu desktop but do not know anything about programming but i know few words those needed to be a programmer but i have not understood those very clearly such as source code,data , information, compiler, gigo, algorithms,etc please advice to understand these term
somiran
I recently graduated college, my major was Business admin, with emphasis in Information Systems. I learned a lot about Databases, pretty much SQL, and a lot about the logic that goes into creating a database. Unfortunately I only used sql for one semester, i was more worried about doing well in all my classes and graduating.
Are c# and java what companies are looking for?? or is that just a starting point? Would learning c or c++ be more important, or relevant?
I haven’t been able to sell my self well to a company because of my lack of knowledge. Please advice, I have the passion and intelligence to learn it, I’ve always been interested in it, now i can put in the time on my own to really learn it.
Any advice someone has as far as starting my career in this field would be great.
Thanks
soconnor02@gmail.com