Programming

プログラミングを始めたい人のための快適設定 ― Comfortable settings for people who want to start programming.

World Administrator
2023年8月10日
9 分で読めます
Tech For YouProductivity Hacks
Photo by Max Duzij / Unsplash

Windowsでの環境を想定した記事です。

シェル設定

プログラマといえば、黒い画面でカタカタとしていると思います。その黒い画面を導入します。

Windows ターミナルのインストール
Windows ターミナルをインストールしてセットアップする方法について説明します。

その中にあるリンクからターミナルをインストールしましょう。以下のリンクはMicrosoft Storeへのリンクです。

Get Windows Terminal from the Microsoft Store
Windows ターミナルは、コマンド プロンプト、PowerShell、WSL などのコマンドライン ツールおよびシェルのユーザーのための、高速、効率的、強力な、生産性を向上させる最新のターミナル アプリケーションです。主な機能には、複数のタブ、ウィンドウ、Unicode および UTF-8 文字のサポート、GPU アクセラレータによるテキスト レンダリング エンジン、カスタマイズできるテーマ、スタイル、構成が含まれます。 これはオープン ソース プロジェクトで、コミュニティへの参加をお待ちしております。参加する場合は、https://github.com/microsoft/termin…

ターミナルの拡張

最初の頃はやらなくてかまいませんが、勉強を進めていくうちに環境を快適にしていきたくなることがあると思います。そのようなときは私のおすすめツールを書いておきますので、参考にしてください。導入方法についてもリンクを付しておきます。

  • starship
Starship: Cross-Shell Prompt
Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and Powershell.
  • Alacritty
Alacritty - A cross-platform, OpenGL terminal emulator
Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance.
GitHub - alacritty/alacritty: A cross-platform, OpenGL terminal emulator.
A cross-platform, OpenGL terminal emulator. Contribute to alacritty/alacritty development by creating an account on GitHub.
  • Tabby

インストールをするだけで使えます。設定もGUIで簡単に行えます。

Tabby - a terminal for a more modern age
Tabby is a free and open source SSH, local and Telnet terminal with everything you’ll ever need.
  • WSL

Windows上でLinuxを動かし、操作することができるようになるMicrosoft謹製ツールです。プログラミングを行う中で環境を分離するのにも役立ちますし、そもそもWindowsからLinuxのシステムを使えるだけでもとても便利です。

WSL のインストール
コマンド wsl --install を使用して Linux 用 Windows サブシステムをインストールします。 Windows コンピューター上で、好みの Linux ディストリビューションによって実行される Bash ターミナルを使用します。Ubuntu、Debian、SUSE、Kali、Fedora、Pengwin、Alpine などを使用できます。

Git/GitHub

チーム開発での標準になっています。将来のことを考えないにしても、こうしたツールを使うことで開発がはかどります。

Gitはバージョン管理ツールです。

Git

GitHubはGitを介して使用するオンラインサービスです。

GitHub の概要に関するドキュメント - GitHub Docs
GitHub を使用してソフトウェアの構築、出荷、および保守を始める方法を学びます。 当社の製品を探索し、アカウントにサインアップして、世界最大の開発コミュニティと繋がりましょう。

Editer

Visual Studio Codeを使いましょう。

Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

現在プログラミングを新規に始めるのであれば、Visual Studio Codeを使うのがよいでしょう。起動が速く、動作も軽快な上機能は豊富です。問題が起きることがそもそも少ない上、起きてもウェブに豊富に情報があります。

学習する言語の選択

プログラミングを始める上で、言語選択は重要な要素です。「何を学ぶか」で「何ができるか」が決まるからです。

C/C++

古くから使われている言語ですが、今でも更新が行われており極めると最強の言語です。高速で何でもできてしまいますが、プログラミングそのもの・アルゴリズム的難易度が高いです。

C++ へようこそ - Modern C++
Modern C++ の新しいプログラミング イディオムとその根拠について説明します。

C#

ぱっと見はJavaっぽい文法をしていますが、細かく見ていくとかなり性格が異なり、一長一短ありますが非常によくできた言語だと思います。Microsoft推しの言語です。言語の進化も天下のMicrosoftが行っているので革新的なものがありますが、オブジェクト指向などところどころにつまずきポイントがあります。

C# プログラミング ガイド
これらのリソースを使用して、C# 言語の重要な機能と、.NET 経由でアクセスできる C# の機能に関する詳細を確認してください。

Java

Javaはもともと強固なシステムの構築に使われ、現在でも実際にそうした現場で使われていますが、それよりもAndroidアプリ開発で使われることが多くなってきました。現在ではJavaよりもKotlinを使うことの方がいい場面が多くなってきていますし、iPhoneではSwiftを新たに覚えなければいけないので面倒です。モバイル端末アプリを開発したい場合は勉強してもいいかもしれません。また、単純に熟成した言語を学ぶという意味で学習してもいいと思います。

Java Software
Java software reduces costs, drives innovation, and improves application services. Learn more about Java, the #1 development platform.
JetBrains: Essential tools for software developers and teams
JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

JS/TS

元はウェブページにちょっとした動きをつけるぐらいのものでしたが、フロントエンド開発が進み、何でも屋さんになりました。

デザインに興味があったりや学習を楽しく進めたい方はここから始めましょう。

JavaScript - ウェブ開発を学ぶ | MDN
JavaScript はウェブページ上に複雑なものを実装することを可能にするプログラミング言語です。ウェブページが表示されるたびに静的な情報が表示されるだけでなく、タイムリーにコンテンツを更新したり、インタラクティブマップや 2D/3D グラフィックスのアニメーションを表示したり、またはビデオジュークボックスが流れたりします。ほかにもありますが、これらは 間違いなく JavaScript が関係しています。

Python

インタプリター型言語なので思いついたコードをすぐに動かすことができます。

Welcome to Python.org
The official home of the Python Programming Language

便利機能を最初から入れてくれるAnacondaを入れるのも便利かもしれません。必要な機能が一通りそろいます。

Anaconda | The World’s Most Popular Data Science Platform
Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

Rust

最近のトレンド言語ですが、初心者が学んでもどこが肝なのか全くわからないと思います。三言語目以降に学ぶと感動があると思います。逆に言えば、難易度が高い上に仕事に直結させにくいですし、何がすごいのかもよくわからなくなってしまうので初めての言語には選ばないようにしましょう。

Rust

最近のトレンド言語ですが、初心者が学んでもどこが肝なのか全くわからないと思います。三言語目以降に学ぶと感動があると思います。逆に言えば、難易度が高い上に仕事に直結させにくいですし、何がすごいのかもよくわからなくなってしまうので初めての言語には選ばないようにしましょう。

Rustプログラミング言語
効率的で信頼性のあるソフトウェアを書く力を与える言語

結論

ウェブサイトなど見た目に関する部分を作りたい人はフロントエンドエンジニア、後ろのアルゴリズムを考えたい人はバックエンドエンジニアを目指すことになります。そのほかに、モバイル端末でのアプリ開発を目指している方はその端末でサポートされている言語を学ぶ必要があります。

フロントエンドエンジニア

フロントエンドエンジニアはHTMLとCSSを学んだ後にJS/TSを学びましょう。JS/TSを一通り学んだ後はReactやNext.jsなどの学習を進めていくことになります。

ウェブ開発を学ぶ | MDN
MDN 学習エリアへようこそ。この一連の記事では、ウェブ開発が全くの初心者にとって、シンプルなウェブサイトのコーディングを始めるのに必要な全てを提供することを目標とします。

バックエンドエンジニア

バックエンドエンジニアは選択肢が広いです。極端に言えばどのプログラミング言語を選択することができます。ただし、極端に難しい言語を最初に学ぶことはおすすめしません。

アルゴリズムを研究したいのであればC/C++を学ぶと速度の面で恩恵を受けることができるのでよいでしょう。将来大規模なシステム開発を行いたいなどの夢があるのであればJavaを選択してもいいかもしれません。Microsoftが好きであったり、C#の機能が気に入ったのであればC#を選んでもかまいません。機械学習やAIといった分野を学ぶのであればPythonは適任です。そうでない方にとっても、簡潔でわかりやすい文法と速攻で動かせるのでPythonからプログラミングを始めるのはいいと思います。

二言語目以降であればRustやNimのような発展的な言語を選択するとよりよい成長ができるでしょう。

モバイル端末でのアプリ開発者

モバイル端末でのアプリ開発をしたい人は、それぞれがターゲットにしている端末での言語を学ぶ必要があります。

  • iPhone
    • Swift
Swift - Apple(日本)
  • Android
    • Kotlin
    • Java
Kotlin Programming Language
Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google’s preferred language for Android app development.
Kotlin プログラミング言語を学ぶ | Android Developers

Androidですが、現在ならKotlinを学ぶといいでしょう。

その他

キーボードの設定です。CapsLKCtrlに入れ替えましょう。プログラミングに関係なくこれはおすすめの設定です。

Win+Tabといった基本的なショートカットを覚える。Windowsに関する基本的なショートカットを覚えましょう。Win+Shift+Escといったアプリケーションに関するWindowsのショートカットもいくつか覚えることでキーボードで操作を完結させられます。

Ctrl+cでターミナルはキャンセルできる、などターミナル操作では慣れない操作が多いので、少しずつ覚えていきましょう。また、pwd(Print Working Directory)で現在の階層を表示できる、ls -Aでフォルダーの中身をすべて表示できる、など独特のコマンドを多用しますので、ちょっとずつ覚えていきましょう。