そもそもプログラムはコンピュータが実行するものだから、
プログラミング自体が広義の「自動化」だと個人的には考えています。
しかし、一般的にプログラミングに関する領域で
「自動化」と呼ばれているものは、
今まで人間が手作業で行なっていたことを
コンピュータに行なわせるものが多いです。
たとえば、よく言われるのがテストの自動化。
xUnitなどのツールを使って、テストの実行を自動化します。
繰り返しやる場合、手動より早く済みます。
ほかには、ビルドや静的解析、ドキュメント生成、
Webクローラーやブラウザの操作、
ゲームも含めたアプリのマクロなどが
自動化というくくりで呼ばれることが多いです。
ただし、自動化にもコストはかかる
(たとえれば自動販売機を置くのもコストはかかる)ので、
自動化すれば必ず成功するとは限らず、判断が必要です。
自動化はメジャーな言語なら問題なく書けると思いますが、
自動化スクリプトを書くのに特に向く言語というのもあります。
昔はWSH(JScript)やAutoHotKeyやUWSCなどを少し使ってましたが、
PowerShellが最近のお気に入りです。
これはシェルスクリプトなので、OS寄りの機能を簡単に書け、
(Windowsの)自動化を書くのに向いてます。
といってもけっきょく、Rubyで一番多く書いてます。
主にテキスト処理を自動化しています。
そこには機械学習や自然言語処理につながる部分もありますが、
かんたんな部分だけご紹介すれば、文字列の置換やテキスト整形ですね。
いくらショートカットを駆使したところで機械には勝てないので、
繰り返し使うのであれば効率的な方法だと考えています。