First of all, you can't be a software developer(SD) overnight nor you can be one in a span of a month or a two. Imagining you are an engineering student pursuing Computer Science and Engineering I would tell you to master a programming language which is being used the most in the industry.
At the moment Java,Python,Ruby on Rails,PHP and so on are being used in some companies. There might be more languages in the market but u pick one and stick to it. A SD role is given to a person who has the knowledge and skill set to code a program on his own in many ways reaching the same solution. In order to be a SD you should be very confident of your coding and should practice programming day/night.
My personal suggestion for those who are interested in coding is to practice simple programs by coding at least 2-3 programs a day. Stick to a single programming language and master at it.
Once you decide your favourite one then start doing practice on it and try to get the knowledge about little basic things that are required. If you know the basic well the its easy to crack an interview as a fresher (Those fresher who have less salary expectations).
Most people who come from other (NON-Technology) backgrounds find comfort initially with HTML, CSS, Java Script and other similar technologies. There are just plenty of resource for new learners of every type.
JAVA is a all rounder and so knowing it is always an asset to have it on your resume.
But as I said, you just need to practice,
If internship is hard to come by:
1) take online programming tests or certifications.
2) Join an OpenSource project (the big ones are Mozilla, Apache, Chromium, Ubunut/Fedore, KDE, Drupal.......... ) and start contributing. I started my OS contributions by correcting the documentation, then looking at the tests then the bugs and all the while looking at the source code.