Start networking and exchanging professional insights

Register now or log in to join your professional community.

Follow

What separates Google-caliber software engineers from the rest?

user-image
Question added by Faten Almajaly
Date Posted: 2015/06/03
هاشم المشارقة
by هاشم المشارقة , Key Account Manager , Advanced United Systems Ltd. ( A member of Taj Holding Group)

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:

  1. They love coding.  If they weren't paid to write programs, it would be their hobby.  If you don't love programming, you can't fake it.  It's not something you can learn.
  2. They are interested in how things work at all levels of the computing stack.  These days computers are too complex for anybody to deeply understand all the details at every level, but the best programmers are interested in all aspects and happy to dig into the details whenever it matters.  Your garbage collection lecture may well have been deadly boring,  but garbage collection is a fascinating subject.
  3. They are well organized, often to the point of being pedantic.  Modern computer programs are big systems.  Even quick hacks require a precise attention to detail in order to be useful and effective.

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.

Mohammad Basheer abu ahmad
by Mohammad Basheer abu ahmad , مشرف كمبيوتر ، الإشراف على الموظفين , قطاع عام

I'm agree with Mr. Hashem Almasharqh

Emad Mohammed said abdalla
by Emad Mohammed said abdalla , ERP & IT Software, operation general manager . , AL DOHA Company

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 CheckstylePMD, 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:

  • “An interesting and challenging course, [where] you will learn about key conventions in Software Engineering as well as life in general.”
  • “This course is crucial for all ICS students. It was very valuable!”
  • “Excellent course for ICS majors.  Should not miss it.”
  • “Highly recommend this class.”
  • “I really enjoyed this class and learned more than in my entire college career combined. It also made me discover my love for programming”.
  • “Excellent—teaching the real facts that we actually need to know.”
  • “I used to dread software engineering, now I love it.”

On the other hand, some students find the workload to be stressful, as shown by this comment:

  • “A very spirited instructor, sometimes too spirited. The constant requirements for the class both with studying materials and programming can be overwhelming to a student of typical course & out of school load (other classes and work/family obligations).”

 

 

More Questions Like This