If you are a student and is really interested in a software job, some actual practice may help. Here are a few things you can do:
- Start early – even in the very first year of your college. Just spend a few hours each week. Pick an easy language to learn like Python or Ruby.
- Learn to program by writing lots of small useful tools, games, apps.
- Share your programs with others and ask for feedback. Ask them whether they find it useful.
- Share the code on github (it is free) or other repositories. Post the link on Geek forums and request feedback too (but please don’t spam the groups). Put your github link in your profile, email signature and on your resume.
- Don’t get upset if people criticize it. All feedback is good when you are learning. Don’t take it personally. If some one cares enough to look at it and give you comments, that is a good thing.
- Once in a while, take all the stuff you have written, factor out common code and create libraries/modules that you can reuse. Go back and change the programs to reuse these libraries.
- Repeat 2-6 as many times as you can, every week, every month.
- Look at some cool open source projects and join in. Contribute in a small way. Keep exploring.
- When you attend tech interviews, tell them about the stuff you have written. Point them to the links. Share the feedback your received and your journey of learning and iterating.
- Don’t worry that if you train in programming language X but the job is for Y that you may not qualify. Except in a few cases, companies are trying to hire smart people with lots of initiative, who are willing to constantly learn and explore.
- It may be a good idea to earn while you learn. It is not just the money, but it is the feeling that someone values what you have done enough to pay for it.
- Find a master programmer to work with. How do you know they are masters? Pretty simple. Take a piece of code they have written and read it. It will read like an essay – elegant, beautiful and clear. A couple of years of apprentice with such great programmers will do more to accelerate your learning than any other activity.
Just learning the standard languages they teach you in your institution is not enough. Practice and feel the joy of programming. You will know whether you like it or not. If you enjoy it, it will show, when you talk to people about it.