Skip to main content

Useful Tools For Software Development

cover photo
Image by Maria_Domnina from Pixabay

The world of Information Technology offers a vast and ever-evolving array of tools, often making it challenging, especially for those starting out in software development, to determine which ones are essential for their needs. From writing your first lines of code to managing complex projects and deploying sophisticated applications, the right tools can significantly impact your productivity and success. This article outlines some of the most commonly used tools and their use cases.
Note this article mainly focuses on tools intended for small teams.

Some of the most commonly used tools

Version Control

  • GitHub
  • Gitlab (many people praise Gitlab for its smooth CI/CD implementation)

Tip:

  • Keep one branch, usually called main or master, as a source of truth meaning it is ready to be deployed at any time.
  • Create branches for changes, bug fixes, or new features instead of directly altering the main branch.
  • Submit changes via pull requests with meaningful commit message and add labels and issue number if there is one. It is always good idea to get the changes reviewed by other team members.
  • Maintain a detailed README document.

If you want to learn about how to integrate Git into your development workflow, check out this article: Git Workflows

Project management

Communication

Deployment

Tip:

  • Using Docker alone is good enough for smaller or simpler projects but once your project gets more complicated, you may inevitably need to start using Kubernetes.

  • Use Continuous Integration and Continuos Development tools (CI/CD) such as Github Actions or Gitlab for automatic deployments.

Creating Graphs

  • Mermaid-js - JavaScript based diagramming and charting tool that uses markdown-like syntax.
  • Drawio - Best of the class for creating general diagrams.
  • Excalidraw - It is virtual whiteboard, best suited for sketching.

Content Management and Blogging

Many companies publish content such as

  • documentation explaining how to use their product
  • useful tips and hacks about their product
  • news and announcements relating to the company, service etc
  • useful articles to get a traffic to their website and introduce their services/product as a part of sharing useful information.

There are many platforms that offer Content Management/ Blogging services, some of them are free, while others are not and some of them require little bit of coding knowledge while others are no-code platforms etc.

Below two platforms require no coding skills

  • Blogger by Google - completely free
  • Medium - most features are free, some features are behind $5 a month paywall though

I prefer Blogger to Medium, because of below four reasons:

  1. blogger offers several themes to choose from
  2. it is possible to customize layout and theme visually
  3. it allows using CSS to customize a theme
  4. blog content can be written in html

You can learn more about above features and how to use them in this article

IT Tools - a Swiss army knife

knife2
Image by Clker-Free-Vector-Images from Pixabay

It-Tools.tech website offers over 80 tools/features ranging from markdown-to-html converter to a QR code generator completely free of charge.

While many of these features can be replicated by experienced programmers with relatively few lines of code, the time and effort involved in writing, maintaining, and hosting these tools can be significant. By providing a ready-to-use platform that houses a diverse range of tools, It-Tools is a convenient and efficient solution to many day-to-day minor headaches.

Learning Resources

Tip:

YouTube has many channels that offer tutorial videos. Even Ivy league universities offer their IT courses for free on YouTube. One great example is Computer Science course, CS50, offered by Harvard University.

On Udemy courses are priced at 240 dollars. But most of the time, there will be 90% discounts, making courses around 15 dollars. So, when you check the Udemy course, if it is listed for 240 dollars, wait a few days and check it again, most likely it will be discounted to 15 dollars.

Many Udemy teachers have YouTube channels. when they launch a new course on Udemy, they announce it on YouTube and almost always provide promotional codes that make the Udemy course's price 15 dollars. So, you should look out for such announcement videos on YouTube.

Q&A Forums

Tip:

On StackOverflow you must ask questions only in English. Besides, your question should NOT be seeking advice or opinion. Otherwise, your question will be voted down and deleted.

If you want to ask advice or others' opinion, you can use Reddit or StackOverflow Discussions.


Conclusion

Note it is just a short list of commonly used tools. Besides there is no one-size-fits-all golden rule. You should further research and try out different tools by yourself. Often times it is just matter of preference. For example some people hate MS Projects software while there are plenty of people who love it.

Comments

Popular posts from this blog

脱初心者! Git ワークフローを理解して開発効率アップ

Git – チーム開発に必須のバージョン管理システムですが、その真価を発揮するにはワークフローの理解が欠かせません。 色々な人は Git の使い方を良く知っていますが、Git を仕事やワークフローに統合する方法を余り良く知らない人もいます。本記事では、Git をワークフローに組み込むことで、開発プロセスがどのように効率化され、チーム全体のパフォーマンスが向上するのかを解説します。Centralized Workflow から Forking Workflow まで、代表的な 9 つのワークフローの特徴を分かりやすく紹介します。それぞれのメリット・デメリット、そして最適なユースケースを理解することで、あなたのプロジェクトに最適なワークフローを選択し、開発をスムーズに進めましょう! Centralized Workflow Feature branching/GitHub Flow Trunk Based Flow Git Feature Flow Git Flow Enhanced Git Flow One Flow GitLab Flow Forking Workflow 分かりやすくするために、同じコンセプトを説明するに一つ以上の図を使った場合があります。 Centralized Workflow 説明: 集中化ワークフローではプロジェクトにおけるすべての変更の単一の入力箇所として中央リポジトリを使用します。デフォルトの開発用ブランチは main と呼ばれ、すべての変更がこのブランチにコミットされます。 集中化ワークフローでは main 以外のブランチは不要です。チームメンバー全員がひとつのブランチで作業し、変更を直接中央リポジトリにプッシュします。 メリット: SVN のような集中型バージョン管理システムから移行する小規模チームに最適。 デメリット: お互いのコードが邪魔になり (お互いの変更を上書きするように)、プロダクション環境にバグをい入れる可能性が高くて、複数のメンバいるチームでこのフローを使いにくい。 地図: graph TD; A[Central Repository] -->|Clone| B1[Developer A's Local Repo] A --...

Introduction to SQLFluff: How to make your SQL code clean and error-free

Image by Jake Aldridge from Pixabay You know oftentimes, the cause of runtime or compile errors and hours of debugging agony is all due to simply a missing semicolon. Have you ever had such experience? If you had, you are not alone. There are two ways to avoid these unfortunate situations: either become a perfect developer who never makes mistakes, or use helpful tools such as linters that can catch these errors early on. I am nowhere near being a perfect developer who never makes a mistake. In fact, I'm probably the opposite of a perfect developer, so even if I wanted to, I wouldn’t be able to teach you how to become a perfect developer. But what I can teach you is using linters. A Wikipedia defines a linter as a "static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs." If you're not convinced yet on using linters, consider this scenario: in a large project with multiple members, different people tend to ...

WinMerge のセットアップと使う方

WinMerge は、Windows 用のオープン ソースの差分およびマージ ツールです。WinMerge は、フォルダーとファイルの両方を比較し、違いを理解して扱いやすい視覚的なテキスト形式で表示します。この記事でWinMerge のセットアップと使う方を教えます。 source: https://winmerge.org WinMerge をダウンロード WinMerge のウェブサイト に行って、「WinMerge-2.16.44-x64-Setup.exe」ボタンを押し、WinMerge 2.16 をダウンロードしてください。 WinMerge をインストール ダウンロードされたソフトウェアをクリックし、ポップアップ画面で「Next」を押してください 「Languages」部分をスクロールダウンし、「Japanese menus and dialogs」を選択し、「Next」ボタンを押してください ターミナル等からも WinMerge をアクセス出来ようにする為に「Add WinMerge folder to your system path」オプションを選択し、希望によって他のオプション選択してください 「Enable Explorer context menu Integration」オプションを選択したら、フォルダ/ファイルを右キリックし、コンテクストメニューから WinMerge を開くようになります。 「Install」ボタンを押し、「Next」ボタンを押し、その後、「Finish」ボタンを押してください 言語を日本語にする もし WinMerge の言語が日本語じゃなくて、英語なら、「Edit」タブから「Options」を押してください。 ポップアップ画面で右側の下にある「Languages」と言うドロップダウンメニューから日本語を選択し、「OK」ボタンを押してください WinMerge を使う方 「ファイル」タッブから「開く」を押し 参照ボタンを押し、比較したいフォルダ・ファイルを指定 比較したいフォルダを指定する方法: ポップアップ画面から対象のフォルダーを選択し、「Open」を押してくだい 何も選択しないで、「Open」を押してくだい 右側下にある「比較」ボタンを押し ...