أنشئ حسابًا أو سجّل الدخول للانضمام إلى مجتمعك المهني.
There are excellent programmers at companies other than Google, and there are mediocre programmers at Google. So I'll take your question to be: what separates the best programmers from the rest? Here are some characteristics I see in the best programmers:
OK, so that was interesting to think about, but I suppose it was completely useless as an answer to your real question. What experiences should you get in order to get a job at Google or a comparable company? You should work on free software/open source projects: get your patches accepted, play a real role in the project. You should get an internship at one of the companies you are most interested in working at. Your GPA matters but demonstrated ability to do real programming work matters much much more.
I'm agree with Mr. Hashem Almasharqh
A primary goal of ICS613: Advanced Software Engineering is to take you to the next level with respect to your ability to design and implement high quality software systems using open source software development principles.
This course takes a technological approach to the presentation of traditional software engineering concepts like specification, modeling, analysis, and design. By the end of the semester, you will acquire significant new skills with useful tools including: the Java programming language, the Eclipse integrated development environment, the JUnit testing framework, the git configuration management system and GitHub cloud-based project hosting, the Play web application framework, the Maven build system, and the Checkstyle, PMD, and FindBugs automated quality assurance tools.
Your skill with these tools and traditional software engineering concepts will be complemented by an understanding of open source software development methods, continuous integration and testing, process and product measurement and analysis, agile software development, and web application development.
A secondary goal of this class is to help you establish a “professional persona”. This includes: (a) a professional, permanent email address; (b) a professional portfolio; (c) a technical blog written by you with well-written articles; (d) participation in professional networking sites such as TechHui; and (d) awareness of ethical issues as they apply to software engineering.
While ICS software engineering requires discipline and effort, the results appear to be worth the investment. Here are some recent course evaluation comments:
On the other hand, some students find the workload to be stressful, as shown by this comment: