🐥

半導体エンジニアの便利ツール紹介(2024年現在)

2024/09/13に公開

はじめに

現役半導体エンジニアが使っている便利ツール、プログラミング言語等を紹介します。こうしてみると、いろいろなツールを使っているなあとしみじみ思いました。「私も使っている!」「こういうツールもあるよ」などありましたら、ぜひコメントをお願いします!

メーラー・カレンダー

  • Outlook
    →会社用。メールをあまり整理できていないのが悩み。
    日々の業務のため、カレンダーは週間表示にしている。
  • Gmail
    →プライベート用。
  • Googleカレンダー
    →家族間で共有できるのが◎。プライベート用のため月間表示にしている。
  • Jorteカレンダー
    →Googleカレンダーと連携できる。スマホのウィジェット用。

チャット

  • Teams
    →会社用。社外の人ともやり取りできる。
  • Zoom
    →プライベート用。現状、ほとんど使っていない。

ブラウザ

  • Vivaldi
    →広告ブロックがデフォルトで付いているのが◎。
  • Edge
    →Copilot用。古いサイト用でもある。

その他MS Office製品

  • Power Point
    →毎日使う。進捗報告、プレゼンテーション、作図に使用。デザインセンスは研鑽中。
  • Excel
    →毎日のように使う。さまざまなデータを集めてきて、最終的にグラフ化してまとめるのには優秀。
    関数を大量使用してプログラミング環境のように使うのはNG(素直にプログラミング言語を使ったほうが良い)。VBAも読みにくいのでNG。Excel方眼紙など、Excelを最終成果物にはしたくない。
  • OneNote
    →メモ用ソフト。自由度が高い。メモを検索できるのが良い。整理が難しい。
  • OneDrive
    →クラウドストレージ。
  • (Word)
    →バイナリファイルであるため生成AIとの相性が悪い(はず。MSがcopilotなどで頑張っているようだ。)。生成AIを活用できるためMarkdownの方が良い。過去の遺産などで仕方なく使う場面のみ。かつて論文などはLatexを使用していた。

Google製品

  • スプレッドシート
    →プライベート用。
  • Keep
    →メモ用。

テキストエディタおよび統合開発環境

  • Vim
    →圧倒的にVim派。Visual Studio CodeもVimキーバインドで使用。
    最新バージョンなら:terminalオプションでターミナルも起動できる。
  • Visual Studio Code
    →近年、統合開発環境といえばこれ。
    • Plant UML
      →UML図を生成する拡張機能。Javaが必要。
    • Wave Drom
      →タイミングチャートを生成する拡張機能。本家はブラウザ版。
    • draw.io
      →様々な図を描くことができる。本家はブラウザ版。
    • Markdownプレビューワー
      →Markdown形式のファイルをプレビューしてくれる。
    • git graph
      →gitリポジトリの履歴をグラフ化してくれる。

プログラミング言語・バージョン管理・RDBS

  • プログラミング言語
    • Python
      →最近の流行りはやはりこれ。今後は機械学習も頑張っていきたい。
      • numpy
      • pandas
      • matplotlib
    • Matlab / Octave
      →個人的に一番好きな言語。圧倒的に書きやすい。公式の日本語ドキュメントが豊富。
    • C言語
      →大学生のとき最初に習ったプログラミング言語。業務でもたまに使う。
    • シェルスクリプト
      →Glue(糊)言語として活用。if文while文くらいの制御は使う。
      • bash
      • zsh
    • Unix
      →簡単な処理であれば、高級プログラミング言語よりUnixコマンドの方が便利。
      • grep (global regular expression print)
        →ファイル内の特定文字列を検索するのに使用。-rオプション(再帰的検索)をよく使う。
      • sed (stream editor)
        →ファイル内の特定文字列を置換するのに
      • awk
        →プログラミング言語のひとつだが、主にデリミタで区切られたファイルの列抽出に使用。
      • diff / vimdiff
        →ファイル間差分を抽出する。ディレクトリ間比較もできる。
      • tmux
        →ターミナル分割に使用。
      • make
        →複雑なコマンドを流すために使用。引数による分岐なども使う。
  • バージョン管理
    • Git / GitHub
      →定番のバージョン管理方法。過去の遺産でsubversionを使用した経験もあるが、gitの素晴らしさはbranch運用だと思う。
  • RDBMS(関係データベースマネジメントシステム)
    • sqlite3
      →(個人が扱える程度の規模の)大量なデータを整理するのに使える。テーブル設計をしてpythonでSQLを発行するスタイル。sqlite3の軽量かつstand aloneで動作するところに魅力を感じている。

数式エディタ

  • TeXclip
    →Latexで論文を書いていた経験から、簡単な数式ならこちらのWebツールで書く。

生成AI

  • Chat GPT
    →生成AIといえばこれ。成果物を作るために使用。機密情報は入力できない。
  • Copilot
    →ネットワークに接続された生成AI。ブラウジングの代わりになるかも。

Drawツール

  • Inkscape
    →ベクターグラフィックスを作成するのに適している。拡大縮小に強い。
  • Gimp
    →高機能なDrawツール。高機能すぎて使いこなせてはいない。

UML図(Unified Modeling Language)

  • Plant UML
    →決められたフォーマットを持つ様々な図をテキストベースで作成できる。
    Visual Studio Codeの拡張機能で使用するのがオススメ。
    • アクティビティ図(フローチャート)
    • コンポーネント図(ブロック図)
    • シーケンス図
    • 状態遷移図
    • ガントチャート
    • WBS図(階層図)
    • マインドマップ

デジタル回路設計

  • タイミングチャート
    • Wave Drom
      →デジタル回路のタイミングを表す図をテキストベースで作成できる。
      Visual Studio Codeの拡張機能で使用するのがオススメ。
  • 回路図
    • draw.io
      →様々な図をGUIで作成できるブラウザベースのツール。
      デジタル回路の回路図を書くのに良さそう。
      Visual Studio Codeの拡張機能で使用するのがオススメ。

その他Windows用ソフト

  • WinSCP
    →GUIで使えるSFTPソフト(ファイル転送ソフト)。
  • WSL(Windows Subsystem for Linux)
    →Windows上で動かすMicrosoft公式のLinuxエミュレータ。超強力。
    なぜならば、Linuxが使えるということは、様々な作業を自動化できるということ。(Linuxに慣れているエンジニアならばWindowsのバッチを覚えるよりWSLを使った方が良い)
    これが出る前はMinGWなどを使うしかなかった。

Discussion