diff --git a/content/books/things-i-learnt/_index.md b/content/books/things-i-learnt/_index.md index df8079a..3299e6b 100644 --- a/content/books/things-i-learnt/_index.md +++ b/content/books/things-i-learnt/_index.md @@ -68,3 +68,5 @@ template = "section-contentless.html" * [Code Formatting Tools Are Ok, But No Silver Bullet](code-formatters) * [Code Style: Follow It](code-style) * [... Unless That Code Style Is The Google Code Style](google-code-style) +* Personal + * [Companies Look For Specialists But Keep Generalists Longer](specialists) diff --git a/content/books/things-i-learnt/google-code-style/index.md b/content/books/things-i-learnt/google-code-style/index.md index 953ef12..db4c93d 100644 --- a/content/books/things-i-learnt/google-code-style/index.md +++ b/content/books/things-i-learnt/google-code-style/index.md @@ -16,4 +16,4 @@ The only reason to use Google Code Style is in case someone less smart than you decided it would be a good idea to use it. Then, I feel sorry for you, but you'll have to follow Google Code Style. -{{ chapters(prev_chapter_link="/books/things-i-learnt/code-style", prev_chapter_title="Code Style: Follow It") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/code-style", prev_chapter_title="Code Style: Follow It", next_chapter_link="/books/things-i-learnt/google-code-style", next_chapter_title="... Unless That Code Style Is The Google Code Style") }} diff --git a/content/books/things-i-learnt/specialists/index.md b/content/books/things-i-learnt/specialists/index.md new file mode 100644 index 0000000..d0c83d0 --- /dev/null +++ b/content/books/things-i-learnt/specialists/index.md @@ -0,0 +1,43 @@ ++++ +title = "Things I Learnt The Hard Way - Companies Look For Specialists But Keep Generalists Longer" +date = 2019-07-17 + +[taxonomies] +tags = ["en-au", "books", "things i learnt", "jobs", "specialists", "generalists"] ++++ + +If you know a lot about one single language, it may make it easier to get a +job, but in the long run, language usage dies or loses its charms and you'll +need to find something else. Knowing a bit about a lot of other languages +helps in the long run, not to mention that may help you think of better +solutions. + + + +Even if you're in a shop that is mainly in one single language, that's no +excuse to not check other languages. But, then again, learning languages that +are just small changes on the current language would not help you either. + +Alan Perlis, author of the ALGOL language, has one excellent phrase: "A +language that doesn't affect the way you think about programming, is not worth +knowing." + +I still maintain one single rule for programming languages: The language I use +at work must not be the same language I use outside it[^1]. That simple rule +made sure I was always learning something new. + +Learning a new language can also help you understand things in some language +you used before: Rust help me understand how generics works in Java; seeing +how to do dependency injection in C++ help me understand how Spring does it in +Java. + +On top of that, because I was always learning something new, moving between +projects was something that happened a lot. At one point, I was hired to work +with Python, but the contract was taking too long to be signed, and my manager +asked if I could help some other team with their iOS application. Because I +did learn a bit about Objective-C, surely I could help. Later, another project +in C show up and guess who also knew C? + +[^1]: ... which led me into some sad times when I was working with Python. + +{{ chapters(prev_chapter_link="/books/things-i-learnt/google-code-style", prev_chapter_title="... Unless That Code Style Is The Google Code Style") }}