views:

1640

answers:

12

Skip paragraph for questions.

I don't know if this is appropriate for this site, but here goes. I majored in CompSci in high school, which required me to take some basic computer classes(html, javascript, java, vb.net, networking, circuits, database management). I enjoyed my time in those classes and really liked coding. I cannot see myself doing anything else but programming for a living. I took a break after high school and pretty much did nothing productive for a couple years. I've forgotten almost everything I've learned, but I still get the gist of it. I don't know where to begin. I suppose a college degree in something involving computers would be important, but I don't know which kind. I'm really lost and confused. I need some direction.

Any advice or recommended books/sites for someone that wants to start a programming career?

What kind of credentials should I have period, to even consider a job in this field?

What kind of credentials should I have to secure a good job in this field?

What kind of work should I be looking for?

How did you get started in programming?

Any comments appreciated, thanks for reading.

+4  A: 

I think one of the key things is to realize that just because you took some basic classes in high school doesn't mean you are ready to be a computer programmer. That of course doesn't mean you can't learn, my career hasn't been a very traditional route myself. I would start off by taking a class to kick start your learning. Then I would try to find projects to use those skills. I.E. build a website for yourself, help someone who has a small business with a project they need, help in an open source project in some way (testing can be a good start) and join a local group for your technology of interest.

Here is my path in list form:

  1. Dropped out of high school
  2. Pizza Manager
  3. Started taking IT classes at the community college
  4. Noticed the dot com boom was going on and tried to get a tech job did not succeed because thought "how hard could it be"
  5. Tried to major in CS at a 4 year college (failed at this)
  6. B.A. In Geography
  7. Started out working tech support
  8. Moved to Software QA and wrote QA tools using knowledge from school
  9. Became Programmer
  10. Continue to learn

Also don't think because you spend a lot of time on a computer that it means you are really technical. If you spend time building stuff, researching things and tinkering great. If you are on AIM and updating FaceBook that doesn't count. Key is actually writing code.

wonderchook
+1, my path was not so different.
John McCollum
+3  A: 

1. Any advice or recommended books/sites for someone that wants to start a programming career?

You didn't state what platform you wanted to program on but there are some books that are "classics" in the field that transcend platforms. I would suggest reading Code Complete and the GoF Design Patterns to start out. In addition I would find the best book for whatever platform/language you wish to learn.


2. What kind of credentials should I have period, to even consider a job in this field?

I'd say that IT/Software Engineering is unique in that you can work in this industry without a college education. There are plenty of fortune 500 companies that have plenty of people who had no formal education and some of these programmers might be the best people in their respective departments.

With that said, I suggest getting your degree if you have the means available to you. Self-education is nice and all but I have found that not only do you learn things that most people don't directly learn outside of an academic setting (computer architecture/algorithmic analysis/compilers/etc) but it also teachs you how to learn. Plus having your degree is a huge bonus in terms of getting your foot in the door.


3. What kind of credentials should I have to secure a good job in this field?

I'll re-iterate what I said above... if it is possible get a BS in Computer Science. Skip the programming "certs". I personally feel these add very little value to your application and are unnecessarily expensive. I've heard on more than one occasion that a lot of companies don't event take them into consideration.


4. What kind of work should I be looking for?

After you have picked the language(s) you want to learn, start programming in them as much as possible. Try to do completable projects and increase complexity as time goes on. Once you have a decent portfolio of various code/projects you have worked on I would start putting out resumes to various firms looking for junior developers. You would be surprised about how quickly one can get up to a level of proficiency required for a "junior developer" position.

Simucal
Good point on the degree. My first tech related job required a degree because of some weird government contract, I wouldn't have had a start otherwise.
wonderchook
+4  A: 

Write code like crazy. You can't learn to be a good programmer from a book or at school - by the time you start work if you don't know your stuff by then it will be way too late to catch up. The kids who spend their weekends trying to write minesweeper clones instead of watching TV from the age of 13 to 18 are the future lead programmers. If you do a college degree make sure it focuses on hard stuff with a big emphasis on actual coding skills.

1800 INFORMATION
A: 

In my experience, both in landing programming jobs/contracts and hiring other developers, formal education isn't all that important. That doesn't mean you shouldn't go to school, just don't rely on your classes to get you where you need to be.

With the vast amount of free/open source languages and tools out there, it's easy to get started on your own, outside of school. A true understanding is something you will get from practice and going through the pain of solving problems on your own, not in a classroom.

My advice would be to pick a platform to start with. It could be .NET, PHP, Ruby, Java, etc. Do some research online and figure out what tools you will need (IDE, Compilers, Webserver software) and then start reading and experimenting with samples from blogs, grab copies of some open source projects (in your platform) and try to write as much useful code as you can based on the information you can gather online.

As you learn, the best thing you can do is to find a friend or family member that is willing to help, and explain the concepts and code to them. Even if they aren't technical, going through the process to figure out how to explain something will help you understand it better.

While you are learning, look for internships or entry-level jobs where they understand that you are just learning. The more real world experience you can get, the better. As you move between jobs, you'll find that having the experience and some "war stories" about how you figured out certain problems will go a long way in an interview.

Good luck, I hope you find success. Developing software is definitely an interesting career... it'll keep you on your toes.

Andrew Van Slaars
+2  A: 

Read Eric Raymond's excellent web article "How to Become a Hacker".

If you do all of what is posted here, you will be able to do whatever the hell you want with a computer, including building a career.

A: 

I agree with those who said having a formal education isn't the most important thing. However it's a good starting point. Here's what to do:

  1. Study at a college for a B.S. in computer science.
  2. While you are doing that, code, code, CODE! Not even just your class work. Pursue whatever interests you. If you ever thought, "hey, wouldn't it be cool to turn my iphone into a wiimote," start researching how to do that. If you have a really good idea for a game, start trying to code that.
  3. Also, while at school, look for internships in local companies. I got an internship as a sophomore undergraduate, and a year later I was promoted to Senior Database Architect.

Just do what you love and the rest will follow.

+2  A: 

One needs to have their head examined first.

A: 

Do not expect a job where you are programming 95% of the time. It won't happen. Right now, I am down to maybe 30% or less. You need more skills than just programming:

  • Organise meetings
  • Write specifications
  • Organise tests
  • Get people from the other departments to support you
  • Write progress reports for your bosses
  • Organise the deployment of a piece of software
  • Organise the training for the users
  • Give the training yourself because the external who was supposed to give it came down with flu
  • Be the telephone hotline for the users during the first 1 or 2 months after deployment
  • ...

By the way: I love my job ;-)

Treb
A: 

Keep writing code every minute of every day which you are not working on your non-programming job to pay the bills.

If you have talent, or develop talent during this time, people will find you, and offer you jobs.

Ali A
+1  A: 

QA is probably the easiest way to get into programming. Avoid IT since it usually involves fewer programming opprotunities and can make it harder to make the jump over to development.

Todd Smith
+1 Thought I have found there is a big difference between QA people that will eventually become programmers and people that will just always do QA.
wonderchook
A: 

Rather than suggest books or sites, I'd suggest stopping for a minute to think about what kind of programming do you want to be doing: Writing games, business applicartions like Customer Relationship Management, operating systems, web applications like Google or Facebook have, etc. There are a lot of different parts that can fall under programming.

To even consider a job in this field, you'll likely need to have some experience programming something, somewhere. This could be an open source project you contributed or a program you wrote for fun, but let there be something. There will likely be a few other basic things like Software Development Life Cycle which may be useful in looking at the big picture to some extent.

For a goob job, a Bachelor's degree in Computer Science or Computer Engineering or Software Engineering would be my suggestion. Don't forget to factor in what you enjoy, is that using Windows applications or Flash ones?

To get into the field, you may want to enter through the testing or tech support route for one idea. The logic here is that both fields don't necessary require a lot of upfront knowledge as usually doing the work will reveal what is really involved which may get a bit ugly at times but also may involve writing a little script here or there,

I got started in programming way back on a Commodore 64 back in ~1983 or so. I had fun getting a computer to do what I told it to do and seeing the results of what I typed in come alive. Granted my going to Waterloo was more on the Math side of things as I did well in their Descartes contest they have that gave me a scholarship that assisted with the costs in my education.

JB King
A: 

You are correct that “a college degree in something involving computers would be important”. If you are so passionate about programming, then you must get either a computer programming degree or a computer science degree. Both these degrees have the potential to gear you up for a rewarding career in the programming industry. A couple of certs along with a degree would fuel the chances of getting your foot in the door.

Arthur