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 🙂
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.