I have landed a new job recently and during the job search I also did statistics.
For context I am 30 year old french, had my one and only job for 6 years doing
PHP (sf2, postgres, redis, solr, rest), I have a 2 year degree where in europe
most people have a 3 to 5 year degree.
Here is my statistics to applying to ads on indeed:
- Cover letter doesn't increase my chances of having a reply.
- Changing my CV after the feedback of a recruiter (he asked me to lie by
omission) didn't improved my chances.
- I don't apply to company I recognize the name. If I do lots of people do too
therefor there is a lots of better candidates than me and the company can
afford to run me through many interviews.
- I don't apply to company that do more than 1 interview, they have too much
time on their hands to find a reason not to hire me.
- I don't apply to company that specifically ask for a 3 to 5 years degree even if
I fit the rest of the requirements.
This last job search (the one that landed my first job 7 years ago wasn't a
bliss either) made me feel extremely under-confident in my capacity to grow my
career even having a job.
I suspect english words starting with 'ph' come from french, french words with 'ph' used 'ph' instead of 'f' (same sound) to emphase the fact the word borrow greek root (but who care the word come from greek, does it make it easier to learn? one more shitty rule of french).
> Macros aren't required for reducing boilerplate and don't necessarily reduce boilerplate compared to a non-macro solution in an expressive language.
So i suspect you are thinking of ruby metaprogramming, in that case you have good and bad. With macro you can expand your code and have static tool reason about your code (IDE à la Éclipse). In the other hand in metra prog. you have all the info availlable at runtime and it is more easy to implement.
> I just don't like the difference that being able to cook up your match using macros makes a huge difference when it comes to programming productivity.
The specific problem of wrapper around HTTP API have been resolved with WSDL (https://www.w3.org/TR/wsdl) assumming the use of WSDL the only thing a macro could do is equivalent of what an external program that generate a python file implementing the WSDL could do. I have written a php parser with the racket LLAR macro and it doesn't add more than an external tool like bison.
Reducing boilerplater could make your code less buggy (bugs you catch with your eyes) and could make the meaning of the code more clear.
Racket match is realy nice but it will shine if:
- You use a lot of immutable datasctructures.
- Explore shallow tree like data structures.
> and my personal opinion is macros are a meme
As far i has understand macro is already in use as Annotations for java.
In php, programmers developped complex frameworks that generate code (Symfony for instance) before running the user's code even if it isn't a macro per-se it share the same goal.
And i could have mention c++ template, so i don't think macro are a meme they already exists and there is a demand for it.
The example you give doesn't have boilerplate so macro can't do more.
Macro can help for two things:
- reduce boilerplate
- add new function to your language (often specific and limited in context of use [racket's macro a suposedly composable]). Example: racket match, clojure.async.
If i am not mistaken the salaries given for the US is what the company actually pays, but the salaries given for France it's not what the company pays. We (the french) discuss our salaries in 'brut' (gross) and are never aware of what we actually cost. The company will pays something (close) up to 42% more of this gross value. So i suspect the difference between US salaries and French (and probably german, uk) is unfair.
https://eng.uber.com/differentiable-plasticity/ http://colah.github.io/ https://www.oldnyc.org/ http://microsculpture.net/ https://news.ycombinator.com/item?id=15116379 https://betterhumans.coach.me/cognitive-bias-cheat-sheet-55a472476b18#.7k1nxl9k2