Please indicate the source: http://blog.csdn.net/gaoxiangnumber1
Welcome to my github: https://github.com/gaoxiangnumber1
Getting the Right Experience
- Without a great resume, there’s no interview. And without great experience, there’s no great resume. Therefore, the first step in landing an interview is getting great experience. The further in advance you can think about this the better.
- For current students, this may mean the following:
- Take the Big Project Classes: Seek out the classes with big coding projects. This is a great way to get somewhat practical experience before you have any formal work experience. The more relevant the project is to the real world, the better.
- Get an Internship: Do everything you can to land an internship early in school. It will pave the way for even better internships before you graduate. Many of the top tech companies have internship programs designed especially for freshman and sophomores. You can also look at startups, which might be more flexible.
- Start Something: Build a project on your own time, participate in hackathons, or contribute to an open source project. It doesn’t matter too much what it is. The important thing is that you’re coding. Not only will this develop your technical skills and practical experience, your initiative will impress companies.
- Professionals may have the right experience to switch to their dream company. For instance, a Google dev probably already has sufficient experience to switch to Facebook. However, if you’re trying to move from a lesser-known company to one of the “biggies;’ or from testing/IT into a dev role, the following advice will be useful:
- Shift Work Responsibilities More Towards Coding: Without revealing to your manager that you are thinking of leaving, you can discuss your eagerness to take on bigger coding challenges. As much as possible, try to ensure that these projects are “meaty” use relevant technologies, and lend themselves well to a resume bullet or two. It is these coding projects that will, ideally, form the bulk of your resume.
- Use Your Nights and Weekends: If you have some free time, use it to build a mobile app, a web app, or a piece of desktop software. Doing such projects is also a great way to get experience with new technologies, making you more relevant to today’s companies. This project work should definitely be listed on your resume; few things are as impressive to an interviewer as a candidate who built something “just for fun”
- All of these boil down to the two big things that companies want to see: that you’re smart and that you can code. If you can prove that, you can land your interview.
- In addition, you should think in advance about where you want your career to go. If you want to move into management down the road, even though you’re currently looking for a dev position, you should find ways now of developing leadership experience.
Writing a Great Resume
Appropriate Resume Length
- In the US, it is strongly advised to keep a resume to one page if you have less than ten years of experience. More experienced candidates can often justify 1.5 - 2 pages otherwise.
- Think twice about a long resume. Shorter resumes are often more impressive.
- Recruiters only spend a fixed amount of time (about 10 seconds) looking at your resume. If you limit the content to the most impressive items, the recruiter is sure to see them. Adding additional items just distracts the recruiter from what you’d really like them to see.
Employment History
- Your resume does not-and should not-include a full history of every role you’ve ever had. Include only the relevant positions-the ones that make you a more impressive candidate.
- Writing Strong Bullets
For each role, try to discuss your accomplishments with the following approach: “Accomplished X by implementing Y which led to z”
Projects
- Developing the projects section on your resume is often the best way to present yourself as more experienced. This is especially true for college students or recent grads. The projects should include your 2 - 4 most significant projects. State what the project was and which languages or technologies it employed. You may also want to consider including details such as whether the project was an individual or a team project, and whether it was completed for a course or independently. These details are not required, so only include them if they make you look better. Independent projects are generally preferred over course projects, as it shows initiative.
- What should you build? Honestly, it doesn’t matter that much. Some employers really like open source projects (it offers experience contributing to a large code base), while others prefer independent projects (it’s easier to understand your personal contributions). You could build a mobile app, a web app, or almost anything. The most important thing is that you’re building something.
Programming Language
- One alternative is to list most of the languages you’ve used, but add your experience level. This approach is shown below:
Languages: Java (expert}, C ++ (proficient), JavaScript (prior experience).
Use whatever wording (“expert’; “fluent’; etc.) effectively communicates your skillset.
Advice for Non-Native English Speakers and Internationals
- Some companies will throw out your resume just because of a typo. Please get at least one native English speaker to proofread your resume.
- Additionally, for US positions, do not include age, marital status, or nationality. This sort of personal information is not appreciated by companies, as it creates a legal liability for them.
Beware of (Potential) Stigma
- Certain languages have stigmas associated with them. Sometimes this is because of the language themselves, but often it’s because of the places where this language is used. I’m not defending the stigma; I’m just letting you know of it.
- A few stigmas you should be aware of:
- Enterprise Languages: Certain languages have a stigma associated with them, and those are often the ones that are used for enterprise development. Visual Basic is a good example of this. If you show yourself to be an expert with VB, it can cause people to assume that you’re less skilled. Many of these same people will admit that, yes, VB.NET is actually perfectly capable of building sophisticated applications. But still, the kinds of applications that people tend to build with it are not very sophisticated. You would be unlikely to see a big name Silicon Valley using VB. In fact, the same argument (although less strong) applies to the whole .NET platform. If your primary focus is .NET and you’re not applying for .NET roles, you’ll have to do more to show that you’re strong technically than if you were coming in with a different background.
- Being Too Language Focused: When recruiters at some of the top tech companies see resumes that list every flavor of Java on their resume, they make negative assumptions about the caliber of candidate. There is a belief in many circles that the best software engineers don’t define themselves around a particular language. Thus, when they see a candidate seems to flaunt which specific versions of a language they know, recruiters will often bucket the candidate as “not our kind of person”. Note that this does not mean that you should necessarily take this “language flaunting” off your resume. You need to understand what that company values. Some companies do value this.
- Certifications: Certifications for software engineers can be anything from a positive, to a neutral, to a negative. This goes hand-in-hand with being too language focused; the companies that are biased against candidates with a very lengthy list of technologies tend to also be biased against certifications. This means that in some cases, you should actually remove this sort of experience from your resume.
- Knowing Only One or Two Languages: The more time you’ve spent coding, the more things you’ve built, the more languages you will have tended to work with. The assumption then, when they see a resume with only one language, is that you haven’t experienced very many problems. They also often worry that candidates with only one or two languages will have trouble learning new technologies (why hasn’t the candidate learned more things?) or will just feel too tied with a specific technology (potentially not using the best language for the task).
- Where possible, try to truly diversify. The languages in the cluster of {Python, Ruby, and JavaScript} are somewhat similar to each other. It’s better if you can learn languages that are more different, like Python, C++, and Java.
Preparation Map
- The following map should give you an idea of how to tackle the interview preparation process. One of the key takeaways here is that it’s not just about interview questions. Do projects and write code, too!
Please indicate the source: http://blog.csdn.net/gaoxiangnumber1
Welcome to my github: https://github.com/gaoxiangnumber1