The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
2.1 KiB

+++
title = "Things I Learnt The Hard Way - Companies Look For Specialists But Keep Generalists Longer"
date = 2019-07-17
[taxonomies]
tags = ["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.
<!-- more -->
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/team-discussion", prev_chapter_title="Global Changes Must Be Discussed With The Whole Team First", next_chapter_link="/books/things-i-learnt/stupid-bugs-list", next_chapter_title="Keep A List of Stupid Bugs That Took More Than 1 Hour To Solve") }}