arulk pillai wrote:The following questions get repeatedly asked. In future I can refer any similar questions to this thread.
You can�t get a job if you don�t have enough experience, but how do you get an experience, if no one is willing to give you one?
If the market is hot, a well-rounded candidate with a decent resume and little or no experience could easily walk into an interview. But, during a difficult job market with economic meltdowns, one needs to have a highly effective resume with at least 1- 2 year experience or more. So, how do you beat this vicious cycle?
-- Try voluntary work through a number of different avenues discussed in Job Hunting Tips. Voluntary work shows commitment and initiative, even if it is not mentally stimulating. It can increase your industry knowledge, give you the much needed hands-on experience, enhance your soft skills, and give you something to write in your resume without any prolonged gap of employment. Since the task of applying for a paid full-time position can take up considerable time, you could start working voluntarily 2-3 days a week, even weekends if required. Even if it does not involve Java/JEE, provided you can gain any other sought-after technical skills like SQL, XML, integration technologies, Web development, etc and more importantly valuable soft skills, domain knowledge, software development processes and methodologies that are easily transferable to your future dream job.
Now, on a more positive note, while gaining hands-on experience and learning on the job, you will likely uncover paid opportunities by being an excellent contributor with enthusiasm and personal growth or by networking with similar professionals you would not have met otherwise. Voluntary work is generally a win/win situation for both the employer and the employee. Even though larger brand name organizations may look more impressive on your resume and can give you a greater chance of potential internal paid opportunities, smaller companies are more likely to offer you a voluntary work, and also in general, you will not only get to learn more things faster, but also your efforts will get noticed and recognized quicker. You can even try contacting your local charities for any potential openings in IT. Don�t be too concerned about the size or brand name of the organization, but pay more attention to type of skills, experience, and capabilities you will be gaining. Brand name or popularity may take you to the interview stage, but cannot guarantee success in interviews without the right knowledge, skills, capabilities, and experience. If you properly use the guidelines in this book, you can draw on your other strengths and achievements to look more impressive on your resume than to just rely on brand name or popularity.
-- Contribute to open-source projects to gain much needed hands-on experience in sought-after technologies and frameworks. The choices are plenty ranging from widely used products such as NetBeans, Eclipse, GlassFish, etc to smaller hobby projects, which have been open-sourced by their developers. Pick the one depending on your level of experience, interest, and motivation. If your motivation is to learn Spring & Hibernate, then pick a project that uses both. How do you benefit from open-source project contributions?
== Gives you a pretty good big picture of different technologies, tools and frameworks used in a typical application. A typical Java application uses Eclipse, NetBeans, or similar IDE, Java, JUnit, Log4j, Ant, Maven2, Spring, Hibernate, Apache commons library, etc. Try to analyze and understand how all these pieces fit together.
== You get to read a lot of code and learn from it. You can not only learn the best practices, but also can learn to identify potential issues.
== Write your own small programs just to learn the language and libraries (APIs) used in the open source projects. For example, Java APIs and Apache commons library that has very useful utility methods such as StringUtils, CollectionUtils, MapUtils, BeanComparator, Validate, etc. Observe the coding and formatting standards.
== learn how to use the tools like CVS, SVN, Eclipse, Maven2, Net Beans, etc.
== Experiment by making changes to your local copy of the code. Try going through JEE deployment descriptors, Spring, and Hibernate configuration files to understand how different pieces are wired up.
-- Self-taught projects and tutorials to build up confidence and acquire some level of experience with the sought-after technologies and frameworks. Some open-source projects can be a bit overwhelming for some beginners. So, choose carefully. Alternatively, you could take up some self-taught projects by using sought-after technologies and frameworks. While this can be an easier option, it is not easy to be disciplined and looks less impressive on your resume compared to open-source contribution. Having said that, this option is better than not doing anything at all. It at least, shows commitment and initiative with some level of familiarity with popular technologies and frameworks. Improve credibility by providing your URL or mentioning availability of your source code. What is even better is that, if your self-taught project is based on a creative idea and if you think it can be useful to others, you can open-source it or even try selling it.
Each approach has its own pros and cons. If you are a beginner and looking for work, voluntary work will not only give you the experience employers are looking for, but also can open doors for paid job opportunities. If you are already in an employment, and either not mentally challenged or not acquiring the required skills and experience, try contributing to open-source projects. If you are not in much luck with first two options, and sitting idly or you have a bright idea, then try working on a self-taught project, while looking for a paid job.
[ October 22, 2008: Message edited by: arulk pillai ]
Henry Wong wrote:
Shalini Zing wrote:I am not able to decide whether I should change my domain to get a job because I am seeing a lot of vacancies for .net n all as compared to java (in Mumbai).
Quite frankly, I don't see working in .NET as "changing domains", as a developers should be fluent in multiple technologies. I have worked in .NET (albeit, for only a few months) and kinda enjoyed it. C# is a cool language.
So, if you could obtain a .NET job, why not?