Recent Posts

Tags

News

  • A blog about Microsoft Windows development, focused on kernel-mode driver development, the Windows DDK, WDK, and related tools.

    To elaborate on the copyright notice at the bottom: all content produced by me on this site is copyright and licensed as follows:

    <!-- Creative Commons License --> Creative Commons License
    This work is licensed under a Creative Commons License. <!-- /Creative Commons License --> <!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <Work rdf:about=""> <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> <license rdf:resource="http://creativecommons.org/licenses/by-nc/2.0/" /> </Work> <License rdf:about="http://creativecommons.org/licenses/by-nc/2.0/"> <permits rdf:resource="http://web.resource.org/cc/Reproduction" /> <permits rdf:resource="http://web.resource.org/cc/Distribution" /> <requires rdf:resource="http://web.resource.org/cc/Notice" /> <requires rdf:resource="http://web.resource.org/cc/Attribution" /> <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" /> <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> </License> </rdf:RDF> -->

    Although I work for Positive Networks, this work is my own and is not connected with my employer in any way.

    <!-- technorati again --> <script type="text/javascript" src="http://embed.technorati.com/embed/8xz8dihr.js"> </script>

Community

Email Notifications

Other Blogs

General

Technical Resources

About Me

Archives

Kernel Mustard

Reflections on Windows System Programming
Steve Dispensa, MVP - Windows DDK

How Do I Become A Programmer?

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.

Comments

Steve Dispensa said:

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.
# October 27, 2004 3:59 PM

Steve Dispensa said:

a
# December 23, 2004 1:00 PM

Steve Dispensa said:

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.
# January 20, 2005 9:26 PM

Steve Dispensa said:

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
# January 20, 2005 11:20 PM

Steve Dispensa said:

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.
# January 26, 2005 8:41 PM

Steve Dispensa said:

I want to become programmer how can i be
# March 25, 2005 9:41 AM

Steve Dispensa said:

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!
# March 28, 2005 7:35 AM

Steve Dispensa said:

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
# March 31, 2005 11:09 PM

Steve Dispensa said:

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
# May 4, 2005 4:11 AM

Steve Dispensa said:

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
# July 23, 2005 2:28 PM

Steve Dispensa said:

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.
# August 11, 2005 12:59 AM

Start Coding Right Now! » How Do I Become A Programmer? said:

Pingback from  Start Coding Right Now!  » How Do I Become A Programmer?

# June 30, 2009 2:48 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)