hardboiled
Correct usage requires learning the right abstractions, but fortunately these abstractions are shared across language communities and frameworks.
If you are doing any data processing work and you do not know about foundational functional concepts ie map/reduce then I would argue the code you write is less readable, overly focused on the idiosyncracies of how to do something rather than how entities and data are related to each other - their logic and structure.
The main optimization is to be correct and expressive of one's intention and purpose. If you need performance use Julia.
Programming in base R is more akin to assembly language and has accreted a babel of inconsistencies that make it difficult to teach and learn. Learning base R isolates you into a Galapagos island of academics who are either ignorant of the needs of data workers or too elitist to engage with those not in their priesthood.
Learning Tidyverse is a considerably better transition for learning other languages, frameworks, and libraries.
Functional programming is closer to algebra than indexing into data structures with magic numbers. I've found more success teaching functional pipelines of data structures using the idioms in Tidyverse as a general framework for data work than base R. Abstraction has a cost but for learning it is the appropriate cost.
I sense that much of this `monopolistic` fear mongering is really about feeling out of date.
https://docs.julialang.org/en/v1/manual/metaprogramming/inde...
This is Julia's native, in-language approach (no delegating to C/C++): https://juliadb.org/
The computational techniques from Automatic Differentiation use these types of entities to calculate derivatives exactly without approximating infinite (limiting) processes.
Calculus can be done constructively without infinite limiting processes purely algebraically using these nilpotents. And from a geometric interpretation there is nothing nonsensical about a tangent line to a curve.
Also you don't differentiate numbers (real or rational), you can only differentiate functions.
Also the idea of a actual infinity is a poetic mathematical one. It doesn't have to fit reality. The issue is whether it is useful and to what extent.
By Håkon Wium Lie,the father of CSS, the CTO of Opera, and a pioneer advocate for web standards
Typing preferences are usually due to trends in language usage having little to do with knowledge.
Plenty of java programmers use static typing without ever having to understand type theory.
But looking to history of language designers/implementers
Dan Friedman
Gilad Bracha http://www.infoq.com/presentations/functional-pros-cons
Guy Steele
Rich Hickey
All of these guys have worked on static languages, have a keener understanding of type theory than most, and yet they seem to promote dynamic languages at least when it comes to their pet languages.
Also, would a Java programmer really reach for that pattern first for this example?
http://confreaks.net/videos/759-rubymidwest2011-keynote-arch...
I think there is a difference between OO as it is practiced and interpreted by mainstream languages such as Java, C++ and how it was originally intended to work (a la Smalltalk, Self). Interestingly as someone who got started with Scheme, I found that Javascript actually helped me understand OO and FP in a more integrated way: Functions/closures as these hybrid Objects or vice versa Objects as Functions/closures. Objects were intended to just abstract away the structure of data and state (but I see lots of OO that treats objects like data structures with lots of mutable state) whereas with functions they are coupled to the representation of the data structure, which is fine if there is either a small set of data structures (lists/trees for Lisp/Scheme) or the domain you're modeling has an optimal stable data representation.
Also after looking at Self, I think class based OO is a more difficult starting point into OO. Inheritance is one modeling method of OO but is way over used. And cause me all sorts of frustration when I started OO.
So if you think you don't like OO, you have to really define for yourself what OO to you means. It means a lot of things to different people. For java programmers it means making everything into classes and interfaces, lots of types and hierarchies, no lambdas(yet?). Some assume the difference between FP and OO is mutable state or first-class-functions. But I don't believe so.
It is really an approach to abstraction: does the structure of the data change more than the operations on that data, then OO is better suited there.
It'd be cool to see R evolve more quickly as a language (implementation wise). We're getting hints of it with the new byte code compiler though.
That would be ideal.
Where you look or focus conveys immense confidence. You can practice looking at people directly in the eyes as you walk up to them.
Confidence is relaxed and not self-conscious or tight. So if you must focus on yourself, I'd begin by focusing on breathing deeply and easily while walking. Try walking and moving your arms slower. Confident people seem to never hurry.
Confident walking is really tough thing to isolate outside of confidence in general.
It's very hard to understand recursion or closures without expressing them out through a language. I don't remember who said it 'but programming is understanding.' Likewise how do I know you understand object oriented programming unless you can program idiomatically in an object oriented language like Smalltalk, Self, or Ruby?
Or how do I know you can program functionally unless you can program idiomatically in a functional language like Scheme, Haskell, or Erlang and not in some hackish, crude way but idiomatically? But in order to program idiomatically and elegantly in the respective languages requires learning libraries, learn the constraints of the language, its quirks, its opinions,etc.
I've tried the 5x5 strong approach to lifts but haven't gained too much weight or muscle. But did get a lot stronger.
Personally, I've never been to into growing muscle. More into developing power and strength. For that I picked up power lifting and kettlebell training.
If pushups get too easy try doing one-arm pushups. One-legged squats (aka pistols) are also good. Best