5 Tool Types Every Software Engineer Should Know

Here’s a list of basic tools that every programmer and software engineer should have at their fingertips.
  • This list represents the basic tool types and examples that all programmers and software engineers show have readily available to them. Whether you’re a college graduate transitioning to working life, a young professional changing careers or a seasoned professional trying to stay up-do-date, you should always maintain a handy bag of engineering tools and tricks.

    This is a companion piece to the hardware toolkit equivalent: “What’s In Your Engineering Hardware Toolkit.”

  • Software Tools and Utility

    Here’s a list of useful tools and utility for code development in general:

    -- A good text editor like UltraEdit or Textpad or others.

    -- ManicTime or other time tracking/billable time software package

    -- Overleaf Account for LaTeX creation.

    -- Larder Account for bookmark management. 

    -- PasteBin Account if you code a lot. PasteBin is a text editing site where users can store plain text, e.g. to source code snippets for code review via Internet Relay Chat (IRC).

    -- SourceTree Account again if you code a lot.

    -- AutoHotKey - A Windows based macro language for automating pretty much anything you can do on a Windows machine. Automate the tedious!

  • Software Compilers and IDEs

    A compiler transforms source code written in a computer language like C/C++ into a binary form that can be executed on a computer. Here’s but a few of the more notable compilers:

    -- The GNU Compiler Collection (GCC) – This free, open source software is the standard compiler for most Unix-like operating systems. The collection includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D. Interestingly, it also supports VHDL, Linux, BSDs, OS X and Windows.

    -- Babel is a JavaScript compiler.

    -- FreeBASIC is a completely free, open-source, 32-bit BASIC compiler, with syntax similar to MS-QuickBASIC

    -- The Bigloo system contains a Scheme compiler that can generate C code and Java virtual machine (JVM) or .NET Framework (.NET) bytecode

    -- Free Pascal compiler is a 32 and 64 bit Turbo Pascal and Delphi compatible Pascal compiler.

    An integrated development environment (IDE) allows programs to do everything needed to turn code into functioning apps and programs including coding, syntax checking, linking, compiling, testing, debugging and visualizing the development process. Here is a sample of the more popular IDEs:

    -- Visual Studio by Microsoft – One of the best for Visual Studio for Windows or any other operating system.

    -- Netbeans is a free, open source IDE. Ideal for editing existing projects or starting from scratch.

    -- Code::Blocks is another open source option that is highly customizable that performs consistently across all platforms.

    -- PyCharm from Jet Brains provides users a free Community Edition. It is typically used by Python programmers.

    -- Eclipse is a free, open source IDE. While primarily used for Java application, the IDE has a of plug-ins and extensions to support C, C++, C#, Erlang, Fortran, Haskell, JavaScript, Perl, PHP, Python, Ruby and others.

    -- Xcode IDE is part of Xcode, which is a collection of tools for making apps for Apple devices.

  • Programming Aids

    These activities and tools will help make you a better programmer:

    -- CodeWars features hundreds of programming challenges graded by difficulty, and across various languages.

    -- Note keepers like Evernote provides you with a place to store learnings, articles, information, and keyboard shortcuts or commands you want to remember.

    -- Code editor like Atom, a relatively new code editor created by GitHub.

    -- Engines like Unity, an end-to-end game engine that makes it easier to create multi-platform games.

    -- Automated code analysis like Code Climate , an automated code analysis tool that grades your application on test coverage, complexity, duplication, security, style and more.

  • Software For White Hat, Ethical Hackers

    Unlike black hat or malicious hackers, ethical hackers break into systems legally to find and exploit vulnerabilities and weaknesses in various systems. A good toolkit for ethical hackers would include:

    -- Keystroke Injection

    USB Rubber Ducky is disguised as a generic flash drive that computers recognize as a regular keyboard and automatically accept its pre-programmed keystroke payloads, e.g., backdoor programs, exfiltrate documents, password stealers or any number of penetration testing tasks.

    -- Top Three Hacking Tools (or variations thereof)

    Nmap or Network Mapper is used to scan ports and map networks. This is a free open source hacker tool used mainly for network discovery and security auditing.

    Metasploit penetration testing software is a vulnerability exploitation tool.

    Wireshark is a web vulnerability scanner that captures data packets in a network in real time and then displays the data in human-readable format (verbose). 

    -- Password Cracking Tools

    John the Ripper is an offline password cracker.

    THC Hydra is an online password cracker.

    Aircrack-ng is an 802.11 WEP and WPA-PSK keys cracking program that can recover keys once enough data packets have been captured.

    Cain and Abel Hacking tool is a password recovery tool for Microsoft Windows.

  • IoT Embedded Software Platforms and Tools

    Creating the latest IoT embedded applications requires both hardware and embedded software. Any one of these platforms would be a fine addition to you software toolkit:

    -- Arm mbed is an IoT device platform that provides the operating system, cloud services, tools and developer ecosystem to make and deploy IoT systems based on 32-bit Arm Cortext-M microcontrollers.

    -- Audrino offers both IoT hardware and software ecosystem. The platform software is based on the Arduino programming language and IDE

    -- Node-Red is a visual tool for wiring together hardware devices, APIs, and online services. It is buit on Node.js.

    -- ThinksBoard platform is best used for data collection, processing, visualization, and device management. It uses standard IoT protocols like CoAP, MQTT, and HTTP.

    These are but a small sample of IOT software (and hardware) development platforms. There are many others, including more robust tools for the industrial IOT environments.

 

John Blyler is a Design News senior editor, covering the electronics and advanced manufacturing spaces. With a BS in Engineering Physics and an MS in Electrical Engineering, he has years of hardware-software-network systems experience as an editor and engineer within the advanced manufacturing, IoT and semiconductor industries. John has co-authored books related to system engineering and electronics for IEEE, Wiley, and Elsevier.

Comments (1)

Please log in or to post comments.
  • Oldest First
  • Newest First
Loading Comments...