Google Answers Logo
View Question
 
Q: How could I pursue a programming career? ( Answered 4 out of 5 stars,   5 Comments )
Question  
Subject: How could I pursue a programming career?
Category: Computers > Programming
Asked by: grasshop-ga
List Price: $10.00
Posted: 14 Jun 2002 10:31 PDT
Expires: 14 Jul 2002 10:31 PDT
Question ID: 25842
I need career advice from a veteran programmer.  What is the best way
*for me* to pursue a career as a computer programmer?

Here are my constraints:
* I wrote long (but simple) programs in BASIC when I was about 13, but
never really got into programming after that, though I was always a
"power user."  (I'm now in my 30s.)
* I know HTML, SSI stuff, CSS stuff.  I have worked most of the way
through Andrew Johnson's "Elements of Programming with Perl."  I seem
to have a pretty good aptitude for Perl; there's nothing in the book
so far that I didn't understand pretty well (at least, after study--it
was a little hard to get my mind around references to hashes of arrays
of etc.), and I've written several long programs already (e.g., a
url-and-title grabber-and-arranger, a wff detector (logic), a
directory structure mirroring utility (using recursion, very cool!),
and a few others.  I'm comfortable on *nix systems and (I think) my
next project will be to install Linux on a spare hard drive.  I also
want to "make" my own computer!
* I have a taste for work online, which I have done professionally
(just not as a programmer), but if programming opportunities were
richer elsewhere, I'd go elsewhere.
* FWIW, I have a Ph.D. in philosophy, and I'm unemployed.  :-)  But I
don't expect to have a job as a programmer for several years at least.
* Most of my friends are programmers, and I've asked them this
question.  So the answer I'd like to pay for should be a really good
answer of the sort I wouldn't get from a casually concerned programmer
friend!

I'm not trying to ask more than one question :-), but very helpful as
parts of an answer would be such information as the following:
recommendations of books to read; links to online documents that might
help with thinking this through; what language(s) to learn next;
whether I should continue learning Perl in much greater depth or move
on to another language; whether I should aim for an AA degree,
certification, a bachelor's, a master's, a degree by examination (from
Regents College e.g.), or whatnot; what programming languages/fields
are likely to be in demand when I'm ready to be employed (in several
years, I imagine).

In short, I'd love to have a very well-informed opinion, in broad
outlines, about the most effective things *I* could do in the next
five years to make myself a professional programmer.  I'm willing to
"think outside the box"...
Answer  

The following answer was rejected by the asker (they reposted the question).
Subject: Re: How could I pursue a programming career?
Answered By: netcrazy-ga on 14 Jun 2002 12:43 PDT
Rated:1 out of 5 stars
 
Hello grasshop,

First of all, thanks for using Google Answers and I hope after reading
my suggestions and friendly comments, you'll be able to decide
something for your new planned career.

In this answer, whatever I'm suggesting, is from my own experience
only. Though I'm not a career counselor, but I do have given this
suggestion to a friend of mine, who owns a Masters Degree in Chemistry
and wanted to shift to programming career.
I've Masters degree in computers and I've been into this field from
six years. In my six years of experience, I've seen this industry
going with so many ups and downs. From the boom of dot com bubble to
its burst, from evolution of Java and its burst and many others.

So in answer to your question of "what programming languages/fields
are likely to be in demand when I'm ready to be employed", I believe
that no one can answer this as IT industry is very much volatile and
unpredictable in nature. The language or any technology which is
famous or in boom today, may not be available for tomorrow.
But I must say that you should definitely try to get hold of C as this
is a very basic language which I think every programmer should be
knowing.

As you mentioned that you already have a good experience of BASIC
language, so learning C will not be difficult. In fact while learning
any language, you should be strong in your logic. If the logic is
strong, then learning a particular language is not a big task. With
access to Internet, you can very easily learn any language.
Now learning of the language depends on which field of IT you are
looking for. As you mentioned your interest towards Internet, I'm
giving you some of the sites from where you can give a start.

Java Language
http://developer.java.sun.com/developer/onlineTraining/JavaIntro/

C Language
http://www.cs.auckland.ac.nz/~j-hamer/07.211/C/C-Lesson/

and check this one too for C language
http://www.strath.ac.uk/IT/Docs/Ccourse/tableofcontents3_1.html

Advanced course in HTML
http://wdvl.internet.com/Authoring/HTML/

Try this page to find courses on XML, DHTML, CSS, Javascript and many
others
http://html.about.com/library/beginning/bl_htmlclass.htm

This page has a list of several languages with further links to their
respective tutorials
http://stommel.tamu.edu/~baum/programming.html

You can also try something on Multimedia
http://www.liacs.nl/~putten/mm/

VB Course
http://www.free-ed.net/fr03/lfc/030202/120/

Something on Microsoft's .NET
http://samples.gotdotnet.com/quickstart/

Now related to books, check out this link (
http://www.intelinfo.com/books1.html ). It has many books listed and
you can purchase them from Amazon site.

This article on Monster.com site really impressed me and I think it
answers all your questions
http://technology.monster.com/articles/10steps/

Have a look at this link. I found it very interesting and thought that
it might help you
http://www.embedded.com/story/OEG20020405S0049

Regarding your advanced learning in Perl, I would say that there is no
harm in learning advanced features of Perl. It is very much used in
industry and will definitely help you. About getting more education
degrees, certainly this will add a value to your career. If you want
to go for some certifications, you can try this site (
http://butrain.bu.edu/ccp/default.asp#Programming ) for certification
courses. A Microsoft or Sun certification would very definitely help
in getting you a better programming career.

Check out this link in Google groups for a similar question
http://groups.google.com/groups?hl=en&lr=&threadm=Pine.GSO.3.96.991024042104.20918B-100000%40marley.bitstream.net&rnum=2&prev=/groups%3Fq%3Dhow%2Bto%2Bstart%2Bcareer%2Bin%2Bprogramming%26hl%3Den%26lr%3D%26selm%3DPine.GSO.3.96.991024042104.20918B-100000%2540marley.bitstream.net%26rnum%3D2

Search Terms

In Google Groups

how to start career in programming:
http://groups.google.com/groups?q=how+to+start+career+in+programming&hl=en&lr=&sa=N&tab=wg

In Google

programming career: ://www.google.com/search?q=programming+career&hl=en&lr=

I hope this will help you in deciding about your programming career.
Feel free to ask for clarifications and if you are happy with my
answer, please rate it.

All the very best in your programming career :)

Regards,
netcrazy

Clarification of Answer by netcrazy-ga on 17 Jun 2002 07:16 PDT
Hi, 
I'm sorry that you didn't like the answer. But just wanted to let you
know that when you asked for clarification, I clarified it with more
details added to it. But for some reason, I don't see that
clarification posted here. Fortunately, I had that text saved with me
so I'm again posting that over here. I hope might help you in changing
your rating.
 
Here goes the text.  
******************************************** 
I'm putting your question in this way "How much I have to know to get
a job in programming?"
 
1. None at all. No, I'm not being flippant. 
 
I am learning C#, and up to a couple of weeks ago I knew hardly any. 
But I have loads of experience in other languages and certain
application areas,
and I was recruited by my company for that. 
 
Now my project requires some stuff done in C#. At the end of it, I
will be a C# programmer, and modest with it.
 
2. You should know Enough to convince the company that they should
still hire you.
 
Related to point 1. If you show that you are good at programming in
general, but just don't have the any or enough experience in the
language they are looking for, many companies are still prepared to
employ you and you get more experience as a result of the job.
 
Depending on how good you are "generally", this could mean a few
months, enough to write a reasonably-sized application that does
something useful.
 
Also, if you have alot of knowledge about a specific area (graphics,
real-time systems, compilers, mathematics, physics, etc), that can
help to get a job. So the more knowledge you've in IT, the better are
your chances of being picked up by a good copany.
 
3. A couple of years. 
 
To be considered to have "reasonable" experience, 2 years is what
places want on average. You may also want to do some volunteer work to
gain some experience.
 
And I'd also suggest you to have a programming experience of atleast 6
months. This will give you a strong foundation while applying for a
job. The requirements for a programmer will entirely depend on the
needs of the employer and it cannot be laid down. But still you should
get hold of some certification courses to start with. If you really
want to get hold of something very strong, then I'll suggest you to
take a degree in Computers where you can get a detailed knowledge
about IT field and then you can decide in which field of IT you want
to develop your career.
 
I hope this will help. 
Good luck with the programming. 
netcrazy 
*********************************************** 
Reason this answer was rejected by grasshop-ga:
First, the respondant seemed to think I asked, "Where can I find links
about X, Y, and Z?"  I explained (though this was not unclear in the
original question) that I am looking for specific, concrete career
advice, describing a regimen whereby I might become a professional
programmer (or the main options for such a regimen).  So, for his
second attempt, the respondant specifically stated that he is
interpreting my question as meaning, "How much I have to know to get a
job in programming?"  But this is not what I asked, either.  In fact,
the only, brief comment I got was much more helpful than both of the
original responses combined.  I'm sorry to be harsh, but for $10, I
expect a rather better answer than the sort that I'd get for free from
Usenet.  I'd like an answer from someone who is very articulate and
knowledgeable, and who will address my exact-stated topic!
grasshop-ga rated this answer:1 out of 5 stars
I'm very sorry, because the respondant seems knowledgeable and
well-meaning, but this simply doesn't answer the question, which was a
request for advice on how best to pursue a programming career.  Please
read my original question for clarification.  I've requested that the
question be reposted.

Subject: Re: How could I pursue a programming career?
Answered By: dharbigt-ga on 17 Jun 2002 18:40 PDT
Rated:4 out of 5 stars
 
Ahoy, matey!

If you're sure you want to be a programmer, follow Cap'n Dharbigt's
simple steps:

Step 0: Start with the basics
  If you don't program in ANSI C, you might want to try learning that
quickly. Don't mind all the libraries, but learning UNIX networking
can be of eternal assistance. Programming the OLD way can seriously
improve your comprehension of computers. Download and install Linux
(even if you don't use it for more than development) and try to port
all of the code you write to Linux (or to Windows if you write
natively in Linux)... a lot of the facilities that vary from one
machine type and platform to can give you insights into how and why
these processes work (and which way is better). Read the original K&R
C bible and
I highly recommend Richard Stevens' books from Addison-Wesley:

   [http://www.amazon.com/exec/obidos/ASIN/0131103628/qid=1024363251/sr=2-1/ref=sr_2_1/104-9870359-6226328]

  [http://www.amazon.com/exec/obidos/ASIN/0201633469/qid=1024363225/sr=8-1/ref=sr_8_1/104-9870359-6226328]

Step 1: Get a programming hobby
  Qualifications and credentials are one thing, but if you are really
going to acquire the true mettle to be a programmer, you need to
tackle as many programming problems as you can.
  Every successful senior software engineer I know ignores his wife
and often his children in order to do the programming he truly loves
to do. Often, this is a pet project, but it always consumes his time
and interest.
  For a lot of people, this means GAMES PROGRAMMING, but it doesn't
have to. Some people work on their own versions of enterprise database
systems, networking programs or low-level search engines. Whatever it
is, remember to keep doing it... even if sometimes it doesn't seem
like it will "sell" or be popular. Remember that this is also your
experience. Programming is one of the few fields where you can simply
write something, contribute it, and call it professional experience.
  I compare it to writing: "A writer writes every day" and likewise, a
programmer must. To acquire new tools and to keep the systematic mind.

Step 2: Get a name for yourself: work on the free projects
  You may not think there are "famous" programmers out there, and
maybe there are only a few, but there are many "famous" projects you
can be associated with and contribute to with the assistance and input
of some of the best coders in the world. Some of these folks are very
helpful to newcomers and you can be a part of a project that makes a
big difference.
  Working on Linux or FreeBSD kernel drivers is an excellent way to
create a small closed-ended project that makes a difference. It also
provides great experience in working with kernels and low-level code.
This alone can up your annual salary $20,000.

Step 3: Learn "perl"
  Why? For one thing, I think perl is the ultimate parsing language.
Most programmers will tell you that the hardest part of programming is
parsing input. Perl will give you insights and abilities to manipulate
data and information that you used to think were reserved for
immortals.
  For another thing, perl is a very BROAD language (unlike C, which
has
fewer methods of accomplishing the same goal)... if you learn perl in
its
beloved entirety, you will be initiated into most of the idioms that
exist
in any other language (including text processing scripting languages
like
awk and sed)...

Step 4: Work like a pro
  Programmers have to have other skills besides programming. The
process of evolving a product from a development model to a production
model involves the use of version control tools and make tools.
Working with other programmers is also often necessary, so try to
communicate and act like a professional. This means doing things that
are "good for you" and good habits. This will make others enjoy
working with you and will improve the quality of your work.
  Document your code for your own clarity as well as the next guy.
Take a look at some of the free project guidelines. Best practices are
available from GNU and FSF sites as well as from most commercial
software companies. These development methodologies can be used even
when it's only you coding, and the fact of the matter is, they are
best practices for a reason.
  Try to use the development tools that the professionals use.
Sometimes these suites are very expensive, but it is worth it to use a
lab at a local college or borrow a copy from a friend for the evening
(not to condone piracy). These tools are often quirky in their own
right, and being comfortable with them can be as important to having
well-integrated code as the actual source.

Step 5: Internships
  If you can't score a job based on your free or side work, you may
need to let a company "give you a chance"... this means fixing bugs
all summer. Remember that most programming establishments want for
leadership and initiative. You can take the internship as an
opportunity to learn the dynamics of a development group as well as
give yourself an opportunity to acclimate to the product. If you like
the product and believe in it MAKE CLEAR YOUR INTENTION TO STAY. You
can train yourself in the internals of the business and will have a
much better chance of being promoted internally than if you were
coming in from the outside with no intimate knowledge of the systems
and processes.
  For the reasons mentioned above, try to get your internship with a
company that you want to stay with if it is possible. A lot of these
companies may not be throwing tons of money around, but we have a
saying: "Get used to it, Hitler."
  You shouldn't be in it for the money, because you will always fall
second-best to some guy who is willing to sacrifice the 12am-4am hours
because he loves it and he gets into it.

Step 6: Get a mentor
  Don't be the wizard in the tower. A lot of coders lose out because
they like to be alone and private. The best code comes from tight
groups because they can make use of each others' individual strengths
and weaknesses. But most code (corporate or otherwise) DOES NOT
UNDERGO PEER REVIEW. If you are at a company or organization that
allows this (financially or otherwise) INSIST UPON PEER REVIEW.
  Similar to this is one of the rules of learning chess: "Watch others
play."
You should also offer to review other people's code. Obviously, some
people may not like this idea, but the fact is that it probably will
only improve both of your coding styles. You can't beat the power of
the third mind for skill improvement.
  And, true to the point, if you can find someone who you revere and
whose code is true, FOLLOW HIM/HER AROUND AND LEARN. This is the way
to get ahead in any science.
  Frankly, I'd love to take a new programmer under my wing, and I know
a lot of other guys who would, too... regardless of sexual preference.

Step 7: Testbed
  Never be afraid to write a tiny program to find out how the language
reacts. A lot of the best programmers take the time to write a
proof-of-concept program before they integrate a data scheme into the
product.
  The best software comes out of places who have programmers who write
nothing but test code and event checkers. Thoroughness is next to
godliness.

Step 8: Skoolin'
  I'm going to be candid and tell you the truth: some classes are
worthless and some are very valuable. What a surprise. Seriously,
though, any course can help you but the best courses have the best
instructors. I don't recommend going to "camps" or "seminars", but
rather, learning from professors or instructors that you know to be
effective. Usually, at a school that teaches CS, there is a lab...
usually in the basement... with poorly-complected people. Ask them who
is the best teacher and then take class after class with him/her.
  Stay attuned to your own learning style. I found for myself that the
basics of data theory needed to be taught to me, but a lot of the
basic functionality of the libraries was very monotonous. I did not
need to have each function of a library explained to me; I could read
the documentation. If you've read this far, you probably can handle
that too... which leads us to our final point:

Step 9: RTFM
  That's right. Read the fine manual, even if it isn't helpful. If it
is helpful, then you've learned something (and you've improved your
researching abilities)... if you end up just seeing page after page of
instructions how to put the paper in the printer... well, maybe you
learned a little Spanish. But
seriously, I have learned about 75-80% of what I know from
documentation, and
although I know everybody doesn't learn the same way, I think it is
incredibly important. I often insist that my employer provide/purchase
appropriate documentation (and ergonomic hardware)-- these are things
that one should simply not do without.
  Nobody should be afraid of the documentation, or of having to
consult it.
I have also written documentation, and it's comforting to know that
people are out there reading it.

  I hope this helps you on your way. May the source be with you.
grasshop-ga rated this answer:4 out of 5 stars
This is grand, thanks a lot cap'n.  I'm glad to have some opinionated,
thought-provoking advice, and several points here were non-obvious to
me.  I didn't know, as you say, that Perl was a very broad language
and that knowing it in depth might be useful for that reason.  Other
stuff like following best practices, taking classes with good
teachers, and getting a mentor is stuff that makes sense but (for me)
has needed to be stated clearly and directly in order to sink in.

Comments  
Subject: Re: How could I pursue a programming career?
From: mike_logan-ga on 14 Jun 2002 13:15 PDT
 
Here is my advice on deciding on a Programming career.

There are several programming directions

Online Application Developer
Application Developer
Database Developer

From hear-say and my own experience database programming is paid the
most
Although you should not worry about money just what makes you happy.

I program in ASP, SQL Server, Flash 5.0, Visual Basic and I'm an MCDBA
(Microsoft Certified Database Administrator)

Some warnings about programming:

If you program for a company that has been doing it for awhile then
the chances of creating a pattern is gone.  You will probably be
forced to adhere a schedule, milestones, test patterns all of which
are good practice but some overly so.

Do you get along with people:
You have to listen to people to create good programs.  A program isn't
good unless it satisfies the user.

To make yourself marketable now the business trends and study them
buzz words now ERP, Baseline, Dashboard, etc.

Get some project management skills VERY IMPORTANT
If you would like to rise above just a programmer one day you will
need some program or project management skills to manage large IT
projects.

HTH

Mike
Subject: Re: How could I pursue a programming career?
From: grasshop-ga on 14 Jun 2002 13:55 PDT
 
Thanks, Mike, this helps quite a bit.
Subject: Re: How could I pursue a programming career?
From: cdmacken-ga on 14 Jun 2002 15:18 PDT
 
The first issue you want to resolve is which type of programmer do you
want to be?  Basically, there are four main job markets
  1. "Software engineer" typically working in the
engineering/science/research sector, developing software (often for
embedded or control systems) using strict engineering principles. 
Typically, this is done in C or C++ and somtimes Java, typically on
Unix.  Usually requires a degree in C.S. or engineering.
  2. "Software developer" working in the commercial software industry,
where software itself is the product of the company you are working
for.  Typically, this is done in C++ using Microsoft technologies.  A
C.S. degree helps, but it's not necessary.
  3. "Programmer/Analyst" working for a company's in-house
dataprocessing department typically developing systems that are used
to update and inquire databases and/or produce reports.  Often these
are old mainframe shops, but their future is probably Enterprise Java
("J2EE") typically running under Unix against Oracle databases. 
Usually, no degree is required.
  4. Small systems:  There are also a lot of opportunities to do
contract work developing smaller scale database systems for small and
medium size companies.  This is typically done in Visual Basic. 
Usually, no degree is required.
  5. "Internet programmer"  Does programming for web sites, often with
PERL, PHP, Java, ASP, etc..  As the web has become more mainstream,
gradually this work has been absorbed by the above more traditional
developers.

The second question is, how should you prepare for a programming
career?
1. Unless you require the structure of a formal program, you should be
able to self study.
2. Make sure you learn someting about UML, Software Engineering,
and/or Systems Analysis in addition to your programming skills.
3. Develop a portfolio of work that you can demonstrate to prospective
employers.
4. You should try to learn both Java and C++.  In terms of learning
Microsoft's .NET versus Sun's J2EE technologies, it depends on what
route you want to go.
5. As a last step, take one of the official Sun or Microsoft
certification exams.  This will give you some sort of formal
qualifications in place of a programming diploma or degree.

Good luck!
Subject: Re: How could I pursue a programming career?
From: grasshop-ga on 14 Jun 2002 16:54 PDT
 
cdmacken, thanks a bunch, this is great.  That's exactly the sort of
thing I was looking for.  I'll definitely look into studying UML,
Software Engineering,
and Systems Analysis.  It's also nice to see specific suggestions of
languages--friends have told me C, C++, and Java are essential.  Next
I guess I should find out where the greatest demand is for the
different sorts of programmers...
Subject: Re: How could I pursue a programming career?
From: grasshop-ga on 17 Jun 2002 11:54 PDT
 
netcrazy, I would be happy to up the rating a bit, maybe to ** (now
that your second answer has been included again), but the system won't
let me.  It doesn't matter much because your second answer doesn't
really answer the specific question asked either.  :-(  I *didn't*
ask, "How much I have to know to get a job in programming?"  I asked,
"What is the best way *for me* to pursue a career as a computer
programmer?"  Those are different questions.  This was later
clarified: "I'd love to have a very well-informed opinion, in broad
outlines, about the most effective things *I* could do in the next
five years to make myself a professional programmer."  For comparison,
I would have rated cdmacken's answer perhaps a ***.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy