Michael Safyan

Tech FAQ


How do you come up with these FAQs?

These questions are based on anecdotal observations of common questions that I've received or seen on StackOverflow, in person, by email, or by some other means. It's not a rigorous science. If you have a question that you'd like to see here but isn't, feel free to , and if I hear it often enough, I just might add it to this list.

Which programming language should I learn?

It depends on what kind of application you are writing, but my personal recommendation is:

  • Android: choose Java (or C++ if necessary)
  • iOS: choose Objective-C (or Swift)
  • Server-side: choose Python for rapid iteration, Java for large/stable projects
  • Browser: use HTML, CSS (or Sass), and JavaScript (or Dart)

See Which programming language should I learn? for a more detailed answer.

I plan to learn C++, Java, and Python. Which should I learn first?

One could argue either way, but in my personal opinion, it is better to learn C++, first; C++ may be more difficult, but it is essential to understanding the fundamentals much in the same way that doing arithmetic by hand is harder than doing it with a calculator but is necessary to fully grasp the mechanics of how those operations work. In C++, there are often multiple ways of doing the same thing (such as both pass-by-value and pass-by-reference), which makes it possible to compare and therefore understand the approaches; in another, simpler language with only one of those choices, understanding or appreciating the choice is difficult without a basis for comparison.

Which programming language should I learn to get into Google?

I wouldn't really worry about that when choosing a programming language (though I would consider overall language popularity as an indicator of how likely it is that employers use that language). While some employers do look for people with knowledge in a very specific language, Google tends to look for general coding skills (not necessarily language-specific expertise, though you should be an expert in at least one language) in addition to strong algorithmic knowledge, good object-oriented and system design skills, good engineering/testing practices, and a close culture fit.

Which programming languages are used at Google?

It really depends on the product or project. There are many languages used within Google, including C++, Java, Python, HTML, CSS, JavaScript, Go, and Dart among many others. In addition to these, there are various other proprietary, domain-specific languages (DSLs) in use for various different projects. And lots and lots of protocol buffers.

Which programming languages do you typically use at work?

Most of my day-to-day programming is in Java with some code in HTML, CSS, JavaScript, and a proprietary internal templating engine. I also use C++ and, to a lesser extent, Python on ocassion. It can vary quite a bit.

Which programming languages did you use to create your website?

Please see the credits page for the list of languages and technologies used to create this website, though the short answer is JavaScript, HTML, and CSS for the client-side code and Python for the server-side code.


My statements are my own and do not necessarily reflect the opinions of Google Inc.