views:

229

answers:

8

The amount of available programming languages is both a bless and a curse, I think. I know a lot of programming languages already, some at syntax-level only and some good enough to do actual coding (Python, C, C++, Haskell, Perl, BASH, PHP, and lots of others). I have been programming for almost as long as I've been intensivly using computers (6 years), in almost every paradigm (functional, imperative, object oriented), but I don't feel prepared for the software industry.

I've been writing a lot of bigger programs in a lot of different languages, mostly network based, including large multithreaded server/clients, and I still don't feel prepared!

Currently I'm obsessed with my "3-tier" plan, which includes a high level language like Haskell, an interpreted language like Python and a low level language like C, yet I don't feel good enough!

I know how to work in teams, and how to work along given guidelines, but I'm unsure.

Am I prepared?
Please, kind people of stackoverflow, help me out of this mess! :(


Thanks for all the answers, I wish I could chose more answers as THE answer :)

+1  A: 

The single most important thing I can think of to be successful in the industry is to be able to respond quickly and efficiently to change.

mheathershaw
+12  A: 

Sounds like you know an awful lot about programming, but you don't mention anything else. Being a software developer requires more than just programming as a technical skill. Brush up on topics such as source code control, unit testing/test-driven development, continuous integration, etc. Hopefully you'll land in a job where at least one of those is in use. Try and learn as many useful time-savers as you can with your tools; try to become as flexible and efficient with your IDE as possible.

Elsewhere, don't forget to develop the more personal skills; attitude and work ethic, and more related to your field, issues such as eliciting requirements, documenting issues and describing problems and solutions. Don't worry too much about these if you're going in afresh, because you're not expected to have a huge knowledge of them, but if you're at least aware of them and trying to improve, then you have a greater chance of doing so.

Try to appraise yourself of general software development issues that aren't directly coding, if you haven't already - general attitudes to security-oriented development (and testing), good design and similar best practices.

Don't sweat too much about being perfect right off the bat. If you've got no room for improvement, you aren't going to enjoy your career very long, and burning out as a programmer ain't much fun.

Rob
A: 

The only way to know for sure if you're prepared is to try. Sometimes being thrown in the deep end actually helps and you'll find you learn more in that first real world job than you did in all the books/etc that you read in the years before. Also, knowing multiple languages helps you understand underlying semantics of programming in general, but in a real job you'll likely be sticking to one or two languages day to day, so don't get hung up on knowing every language out there.

It's better to try & fail than to spend your life wondering if you're ready.

Alconja
+2  A: 

You know enough - there is a minimum threshold of knowledge required in the industry (which is above what some developers have), but it sounds like you are already there.

For anyone with the aptitude, new programming languages, techniques, etc, are easy to learn. A good company to work for will hire you based on your abilities, not knowledge (which can go stale very quickly).

If you want to stand out as a software developer, ensure you have rock solid communication skills for reports, e-mail, telephone, meetings, etc. That is a rarer gift in the software field, and although it is not necessary more valuable at the junior levels, it pays off in the long run.

James McLeod
+1  A: 

I recently took a programming test which I thought was a good and fair test. I passed it without a great deal of effort. I was told that 50% of the people (these are all people with programmer on the resume) don't even know where to start. Your earnestness and desire will most likely put you in the top third of most places to start with.

rerun
Oh yeah! Most "software developers" don't care. If you care, it'll be difficult to stay out of the top 10%. Unfortunately, competence is not what gets you passed interviews.
Tom Hawtin - tackline
I have given assignments to people who supposedly have 5 years of experience and they can't get anything to compile.
rerun
A: 

Go to dice or monster or whatever your favorite job site is and see what people are looking for. It's not Haskell, it's C++. Learn that well and you're ready to go. Once you're out in the real world, you'll learn quickly enough the things that are important. These are mostly the soft skills that school doesn't teach you. Things like how to get along with the clueless, how to present your ideas so they'll actually be considered, and how to see the forest even though you're stuck under a rock.

jfawcett
I'm pretty sure if he knows Haskell, every other language should just take him a weekend to learn.
Earlz
The question was about being ready for industry. Knowing a programming language that isn't widely used in industry, no matter how difficult, isn't going to get you past the screeners in HR.
jfawcett
+1  A: 

Knowning languages is not all you can do.

If you can, a placement/internship will do wonders. Anyone can program. Real world experience will teach you more than any tutorials, self learning or schooling will.

Naturally, gaining an internship requires some experience, so it's very much catch twenty two.

If going for an internship is not possible, get involved with an open source project. You'll find you'll learn loads by working with people smarter than you.

Finglas
+1  A: 

True knowledge exists in knowing that you know nothing.

Socrates some smart dude

I think this is pretty common among developers. Imo it´s a way better sign then if you would come to the conclusion that you were fully trained.

anddoutoi
"True knowledge is knowing what you don't know." -- Confucius. (I think that's right, but I'm not entirely sure.)
Tom Hawtin - tackline
Could be, I´m not 100% sure but the sources I found said Sokrates. But who ever said it´s true.
anddoutoi