Hacker News new | past | comments | ask | show | jobs | submit login
Google's guide for becoming a Software Engineer (google.com)
66 points by startupflix 11 months ago | hide | past | web | favorite | 4 comments

The interesting premise of these types of problems is that if one can solve low-level problems with low-level languages while optimizing for performance that this is the key trait of "good engineering."

I wonder if this is based on research. One might speculate that the performance-centric talents that are essential to low-level coding (filesystems, OSs, database engines) may not be the same set of skills that apply to high-level open-ended problem solving (such as figuring out a realistic algorithm to power a dating site, acknowledging human nature's role, or architecting an AWS competitor, etc).

The same talents for low-level coding are necessary for distributed systems and stuff like making a properly usable API for a web site/service. The latter needs more experience because you don't have immediate feedback from mistakes, but the aptitude it requires is the same (or the same kind, but moreso).

These don't seem like paths to follow because the steps don't build on one-another. E.g., the Foundations sequence:

1. Former Coding Interview Question: Find longest word in dictionary that is a subsequence of a given string

2. Using strings in Java (Java For Beginners: Strings, String Functions & Chars)

3. Using arrays in Java (Java For Beginners: Arrays)


13. Java Object References

14. Sort array problem (considerably easier than the first problem although hash tables come after it)

Feels like course for fresh graduates. No Software Design principles, OOD/OOA, CQRS, DDD or any other related things.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact