半導体エンジニアの便利ツール紹介(2024年現在)
はじめに
現役半導体エンジニアが使っている便利ツール、プログラミング言語等を紹介します。こうしてみると、いろいろなツールを使っているなあとしみじみ思いました。「私も使っている!」「こういうツールもあるよ」などありましたら、ぜひコメントをお願いします!
メーラー・カレンダー
- 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リポジトリの履歴をグラフ化してくれる。
- Plant UML
プログラミング言語・バージョン管理・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
→複雑なコマンドを流すために使用。引数による分岐なども使う。
- grep (global regular expression print)
- Python
- バージョン管理
- Git / GitHub
→定番のバージョン管理方法。過去の遺産でsubversionを使用した経験もあるが、gitの素晴らしさはbranch運用だと思う。
- Git / GitHub
- RDBMS(関係データベースマネジメントシステム)
- sqlite3
→(個人が扱える程度の規模の)大量なデータを整理するのに使える。テーブル設計をしてpythonでSQLを発行するスタイル。sqlite3の軽量かつstand aloneで動作するところに魅力を感じている。
- sqlite3
数式エディタ
- 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の拡張機能で使用するのがオススメ。
- Wave Drom
- 回路図
- draw.io
→様々な図をGUIで作成できるブラウザベースのツール。
デジタル回路の回路図を書くのに良さそう。
Visual Studio Codeの拡張機能で使用するのがオススメ。
- draw.io
その他Windows用ソフト
- WinSCP
→GUIで使えるSFTPソフト(ファイル転送ソフト)。 - WSL(Windows Subsystem for Linux)
→Windows上で動かすMicrosoft公式のLinuxエミュレータ。超強力。
なぜならば、Linuxが使えるということは、様々な作業を自動化できるということ。(Linuxに慣れているエンジニアならばWindowsのバッチを覚えるよりWSLを使った方が良い)
これが出る前はMinGWなどを使うしかなかった。