What Are Your Indispensable Software Skills?

Using tools properly takes skill, and this goes for software tools as well as hardware. You don’t just buy a paintbrush and on day one paint the Mona Lisa. Similarly, you can’t just open up a CAD program and whip out whatever 3D objects your heart desires, or fire up Vim and start typing. Software tools take a bit of learning before you can wield them efficiently, if even at all. And because you can’t be skilled at everything, no matter how hard we are all trying, it’s good to have at least some of the software tools you know do double duty.

Tom and I were watching [Clough42] design an electronics cabinet for a CNC machine. He does a lot of CNC machining and design work, so he’s no stranger to CAD software. So he downloaded all of the parts that he needed inside cabinet, slid them onto virtual DIN rails, modeled the hinges, and made sure that everything fit before buying anything.

Now I know that some of you out there do CAD modeling like this all the time, but for Tom and I, who are 3D printerers and PCB layouterers, doing the CAD without then following through and finishing up with the CAM seemed a bit novel. I never open CAD unless I’m going to have a machine make the thing – otherwise I’d just draw it out on paper, right? But [Clough42]’s point is that getting models of all of the subparts is so easy these days, you might as well model it.

If, and this is the big “if”, you know your way around the CAD tool of your choice. If you don’t yet, it’s going to be a couple of days’ worth of effort to get there. But once you reach CAD nirvana, you’ll find it’s useful for sketching up anything that has a third dimension to it, not just stuff you need to print out.

What other software tools are like CAD in that once you know them well enough, a wealth of applications opens up before you? Of was this just an instance of having a hammer and everything looking like a nail?

50 thoughts on “What Are Your Indispensable Software Skills?

  1. I’ve customized my vim configuration over the course of a decade to make it work exactly how I wanted; the last time I touched CAD was when some well-meaning aunt got me a CD-Rom about making DOOM WADs and I opened CAD, met a blank screen and took the tiny CD Booklet of keyboard shortcut and spent a week unsuccessfully trying to figure out how to make the screen not blank. I still don’t really understand 3d software, but every now and then I download Blender and mess around.

  2. Given how hard it can be to find the important to you in this usecase dimension listed anywhere, while a 3d model of many of these things is available… I can see going straight to a CAD package making sense when the models for the off the shelf parts actually exist.

    I tend to prefer pencil/whiteboard doodling and only bother with CAD at all once the complexity gets too high for me to be confident everything will fit as I think it should in my head taking those 2d/iso doodles really into the 3rd dimension. And/or when the basic concepts of which feature is on which part, which off the shelf elements are being selected etc is nailed down and I want really decent drawing to work from that won’t be lost to greasy finger smudges or just to leverage the printer to template etc.

  3. “What other software tools are like CAD in that once you know them well enough, a wealth of applications opens up before you?”

    Emacs

  4. At the risk of sounding like a normy / industry shill

    Excel is great for processing text files

    Power Point is about the easiest way to do minor touch ups to images – crop, size, brightness, contrast, color temp and annotate in seconds

    1. The only time I voluntarily used Excel was for a Gov contracting job. They were processing thousands of transactions, by hand, with copy/paste and manually doing operations on them. It was insane. I wrote some VBA to do it for them with a little button, and a filepicker that did it all for them. What took them 16 hours to do manually, was automated and took less than a minute to run from start to finish.

      These were GS13’s by the way. Your Gov at work…

      1. Excel VBA is pretty powerful, it’s usually my goto tool for data manipulation if I don’t have what I need. Not only do you have control over things like the cell functions and formatting but also automated printing, email etc. VBA also works in Word, Outlook, etc. There’s even provision to do things like text to speech and inline asm if I remember correctly.
        Although, sometimes it’s best not to automate yourself out of a job.
        Been there done that, learnt the hard way.
        They refused to use the automation because they didn’t understand how it produced the correct answer, now it’s a six person job, spread over four departments. So ultimately, the last laugh was still mine.

      1. Yeah, if you use excel prepare to lose all your data without warning. Had a sheet with 11+1-digit serial numbers (in the form 3380 4670 abc-d) in it, and excel replaced them all with “3,38E10”, no possibility to undo the rounding. Earlier I tried to recover from a backup, but when I opened the backup file excel helpfully updated the older file to the newer one, destroying the backup. Lots of data loss.
        When you want to write a formula you either get it right on the first try, or you have to write it in a text editor and copy it in: excel doesn’t allow you to change the field to look up the next part of the formula, if it does not parse (too few arguments, unmatched brackets…). Tried to copy it in from another sheet on a thump drive, but ended up with lots of links to the external drive instead. Had to fight excels addiction to change random inputs by interpreting them as date and adding wrong digits, or adjusting it to the local time, or translating them to the local language or units.

        I would strongly recommend to use something else for anything important.

        1. Your failure with Excel is caused by not explicitly specifying column as text data instead of “general” / “numbers” or whatever is default.

          1. Because it is not text data, but numbers (and setting the format of the fields with times to the times format completely broke them).
            Any program destroying data by applying hidden defaults is untrustworthy and therefore must not be used with data you can’t shrug off losing any moment.

          2. It’s actually a setting that’s buried somewhere, not a field formatting issue. Excel did the same thing to me and the only resolution is to change the default setting from “Enable all default data conversion when wntering, pasting, or loading text into Excel”. Didn’t used to be an issue, but they changed the defaults and broke enough spreadsheets that there are multiple forum posts about it. Changing the column to text data doesn’t fix the underlying numerical change excel does by default upon pasting data. That said, I still use excel for the vast majority of my work because it’s what everyone expects and it does do a good job (when data conversion is disabled).

          3. No.. the failure is with Excel. There is NO excuse at this point to not have appropriate undo, and history stepwise reversion, for both user input and automatic operations.

            CHrist. It isn’t 1981 and 48K of memory anymore.

            I spent YEARS at my day job dealing with this. Our dev team routinely said things like `you can’t make a computer do that’. The most expletive redacted ridiculous was keeping column headers from scrolling off screen when the data table was scrolled. Nearly ten years before they finally fixed that, in the most passive aggressive way they could, leaving two key columns with still-scrolling headings, each containing key information about what the column was actually showing (think employee ID number vs payroll number vs job code, all of which were the same format)

            You are wrong. It is NOT M’s failure. It is MS’s failure.

            We need to stop blaming users for problems due to shit software architecture.

      2. I second SQL, though, cvs are quite old hat, but being old hat it has its kinks worked out reasonably well.

        Had better luck with JSON (and its Other Twin, BSON), and stashing/cacheing data into something like SQLite.

        At my work it is usually between Oracle or SQL Server, both are quite good, imho, given one knows how to handle millions of records in hundreds of table. SQLite is good for much simpler things, under million records, etc.

        One of the mistakes I keep running into all the time is thinking “Excel is good substitute for database” : [ it is not, never was, though, dumping data into proper database and reading from Excel instead MAY work. May. Proper tools exist (SQLite, as mentioned) and even Better Tools (I’d say Oracle/SQL-Server) ever more so – SQL Server Light, for example, is free, as in free beer, and last I checked is included in the Visual Studio Community edition, that’s also free beer.

        Advanced data crunching actually has a bit of a learning curve, more like a learning hill, so using tools not fir for the job, ie, office stapler instead of air nailer (or cobbler/shoe hammer instead of air hammer) is a mixed blessing, it works until it doesn’t.

  5. I think inkscape for EEs doing ECAD is a lot more powerful than it might appear. Of course I make the occasional graphic or logo, which can then be imported into KiCAD as PCB art. But it can also be super useful for making timing diagrams, doing circuit sizing estimates, creating flow charts, pin out diagrams for modules and connectors, etc

    I think the real key is to realizing that if you have a 2D othrographic drawing, and you know the dimensions of a single component of the board. You can copy and paste a screen grab and scale it to size using the component as a datum

    1. Inkscape is a wonderful tool for everything vector based. The gcode tool is nice, and I use it for stitching and to create files for my laser cutter. In my dayjob I use it to create graphics the framework we’re using to build a hmi can’t handle.

    1. Yeah!

      I know someone who works on a tool that does that from CAD to wiring harnesses. For automotive. So if you have to ask how much the license costs…

      That would be a very cool FreeCAD (f’rinstance) workbench. Although it’s quite workable between FreeCAD and KiCAD (kicad-stepup workbench), it still feels a little clunky. Would be very cool to see that pushed along a little further.

  6. There is a major roadblock to taking on learning something new-to-you like CAD. That would be the current non-working state of the world’s web search engines.

    Google is no longer viable for finding anything – paid listings; instead of real URLs they give you everything converted into a mile-long tracking hash redirect bullshit thing; all the ‘AI’.

    DDG, being based on Bing, just finds you ecommerce sites selling the thing you searched for and if you try forcing it to refine the results it flat-out gives up and hands you a ‘No results found for…’. DDG is somewhat better if you restrict it to a specific domain but if you are starting from zero on a particular subject, that’s just a big ol’ fail. Maybe try Wikipedia, bro. LOL.

    As far as I know, any other alternatives either also just don’t find what you searched for, or are a paid service that you aren’t allowed to try out before signing up.

      1. As far as non-fiction, the only subject public libraries in Northern Ireland are any good on is Ulster/Irish heritage stuff. I don’t know how we ended up with this, how to fix it, or why librarians think it’s acceptable.

    1. Kagi is a paid service that you ARE allowed to try out. I’m using it since the beggining of this year, and can’t imagine going back to DDG.

  7. Sounds like Assembly vs Modeling.

    There does seem to be more Assembly in videos. Scanning and Assembly, checking clearances, door motions. Wiring seems to screw things up after…

    Doing a layout before the parts arrive or before they’re even ordered.
    I’m jealous, I have too much of a SCAD mind and SCAD is a dead end when it comes to assembly and fillets, just too slow.

  8. For me it’s Microsoft Word, I’ve figured out how to bend it to my will and get past the frustrating bits such as numbered paragraphs and section breaks. A lot of that is VBA and knowing the data model, some of which I owe to Woody Leonard’s Microsoft Word Annoyances written (I think) in the late 90s, and most of those annoyances still exist in the currant versions.

    I’ve been involved in projects to automate creation of long and long-lived (the trickier part) documents for the pharma industry including a couple commercial products as well as custom work for clients.

  9. Indispensable is the art of letting enough free space for cable ferrules and cable bending between din rail device and cable rail:) Boxes in Freecad based on device dimensions, maybe some python script to import Excel csv table export. Btw Excel (and VBA) are great powerful tools.

  10. Perhaps the best use of a programmers time would be to set up no-code solutions for others:
    https://techxplore.com/news/2026-09-code-platform-customize.html

    In the same way Wiles solved Fermat, perhaps there is some genius who…with or without AI help) that can code in an operating system a 0 and a 1 at a type…below assembler….coding so tight there is simply no room for hacking… something that can be hard-wired that has its own fiber networks such that a later superintelligence couldn’t do a Colossus.

    Like how antiquated ICBM equipment or the first atomic reactors run by hand are immune from Stuxnet.

    Air-gapping isn’t enough anymore.

    For now, A.I. just needs to know what actually is possible
    https://techxplore.com/news/2026-09-hardflow-algorithm-generative-ai-high.html

  11. There is this old concept of a “Renaissance Man”, a person skilled in more than one field of expertize. For example I can design a complex electronic circuit including both analog, digital and mixed signal blocks, design a proper PCB for it, assemble the design, program it in C (and a few other languages I know), test it, design a case for it in CAD program, 3D print it or cut the parts on a CNC machine, and write a decent article about it. I also know basics of Blender, can record, edit and add VFX to videos in both AfterEffects and DaVinci Resolve, take and edit photos and use both Windows and Linux. I also can cook and used to make my own wine. I can’t paint, but I’m learning to play a few different musical instruments in a spare time, while trying to loose some weight and dealing with the fact I’m almost blind…

    I also speak fluent Polish, speak English with horrible accent, but I can understand it on native level, and write in it decently. I also know a bit of Spanish, Portuguese, German and Latin. And I want to learn something more exotic…

    The most important skill to know is the skill of learning new skills and new knowledge. Starting with learning the basic principles, because as soon as one knows them, everything else follows…

    I’m sorry for boasting, but being modest is not of my skills. Or is it boasting if I actually can do it?

    1. I also know my way around Windows and Linux, can configure software, install drivers, manage files, use terminals and write scripts to automate repetitive tasks. I can work with version control, development environments, compilers, debuggers and command-line tools, and I am reasonably good at finding the one missing semicolon responsible for an entire evening of suffering. I can also write technical documentation, prepare diagrams, organize data and turn a vague idea into something that might eventually resemble a usable program.

      My greatest software skill is probably the ability to learn a new tool quickly, because software changes constantly and apparently refuses to let anyone become comfortable for more than five minutes.

    2. The concept is not old, just got mixed up with (mostly pointless) propaganda of unclear origin.

      It goes like this, centuries prior, one HAD to master many skills for the simple reason that there weren’t many “helping hands”, ie, things worked out in advance. Blacksmiths, prime example, in addition to knowing the alloys, one had to learn the basics of materials, some chemistry, some mechanical engineering, some civil engineering (to maintain the shop), etc. I think it was called “artisan knowledge” or “guild expertise”, terms may have changed since then, but it is still quite impressive overall, because, for example, some blacksmiths doubled as village doctors, mended bones, did banking, and, of course, were fighters at the times of war.

      I think I prefer “artisan knowledge”, since it evokes image of honest hard-working person, and not guilds with their endless political games and secret knowledge.

      I am on the same page, many skills have to learned, and not all of them are complementary, though, many will find a use.

      Similarly, I started with two languages (both slavic – Ukrainian and Russian), but it locks one into one particular language family tree, so, say, learning Hungarian would quickly prove that one doesn’t know much. No, I don’t know Hungarian (though my wife does – in addition to Polish, English, etc – her university major was philology and comparative studies of european languages). My favorite languages are actually Korean (which I am trying to learn – with limited success) and Japanese (learned some in high school – I was learning English at the same time, too). Point being, once you are out of your comfy zone, and you hit your first major challenge – THAT’S when you are seeing over the First Hill into the Next Valley behind it : ] Surprisingly, I learned this while training for Track and Field, unrelated, but related, one place where one still needs artisan knowledge, good Track and Field is master of the Stadium, and not only Biathlone/Triathlone, I’ve trained with rare geniuses who could do most of the Olympic Sports, and they were who told me that part – once you are over the First Hill, you see three more Other Hills you didn’t know existed, etc : ]

      Dziękuję, good ragchew : ] (my wife is half-polish).

  12. I’d say data processing tools. Command line pipes with cut, rev, awk, jq and so on. Or higher level with Jupyter Notebooks, imagemagick, spreadsheet software, and similar tools. Anything that can take a bunch of data and filter and convert it into what is useful to you.

    1. Yeah, for working with structured or semi-structured data, a solid data processing skillset seems analogous to CAD and equally impactful. Being able to get around in all of *QL languages and concepts, and being able to filter, reshape, and transport data is a magical skill for knowledge work.

  13. This will be unpopular here, but learning how to use AI tools efficiently and in such a way to arrive at a more correct answer than I could have on my own.

    And combining this skill of using AI tools with my other indispensable softwares (kicad, vscode, excel and now lately CAD packages) is just multiplicative.

  14. KQL. Or any query language to get the information you need without spending hours filtering.

    Notepad++ and all it’s fantastic plugins and language recognition makes reading easier.

    Paint.net is surprisingly powerful with just a handful of plugins

    123D design is still my go to for cad (if you can call it that). What I can do with that in 20 mins is better than what I can do in any other cad in an hour (granted I know it’s pitfalls and it’s crap but ive tried all the rest and still return to this for speed, simplicity and muscle memory)

    There are many others over the years that I’ll flip on when I need to access that skill set (some are mental tools as well as physical), but these are what I’ve learned and experienced, they might not be the most modern or best tools but for what I need them for they work. I don’t have a table saw (or the space for one) but with the jigs ive made and what I can do with a mitre saw, circular saw and some other tools I don’t think I’ll ever need one.

  15. Not directly addressing the question in the post, but McMaster has CAD files on a surprising number of parts. 2 & 3D, with 5 or so variations per (i know .dwg & solidworks files are available, can’t remember the rest)

  16. reading these comments like:
    “I fear not the man who has practiced 10000 sw skills once, but I fear the man who has practiced one sw skill 10000 times.”
    it seems some will animate with excel, others will DB with photoshop, and both will be much better then the most :)

  17. I’m using a legit copy of SolidWorks 2003 in a virtual winXP machine under Manjaro… Most/all functionality is basically the same in todays version anyway (although the 3d renders are ugly). It is a very quick process to sketch up ideas, and if I’d like to print the models it spits out flawless stl’s. Models import nicely in KiCad too. I do need to use FreeCad to check if my boards will fit my enclosure etc. My 23year old solidworks copy don’t understand anything KiCad can export. Yeah, my worflow is wierd.

  18. that’s why i love scripted things better than GUI input. like openscad for 3d modeling, or lilypond for sheet music, latex or html (or even *roff) for manuscripts, shell commands instead of GUI file selection dialogs, etc. it lets me leverage my familiarity with tools like nvi / git / grep / perl / etc. i have had a long history of tedious processes that instantly became convenient and flexible when i figured out how to do it through these text / shell interfaces. for example, these days, i can even dispatch winxp commands from a remote shell!

    which brings me to my least favorite attribute of android. it has always been possible with android to launch intents through commandline, generally even remotely. but every aspect of that has changed again and again. every new phone / tablet / tv box has a new technique. to get a remote shell from adb, to use or distribute an sshd app, to invoke ‘am’ or ‘pm’ once you have a shell, to get am or pm to do what you want, every bit of it is constantly changing. every other field of my life, once i get remote invocation to work, i have taken a step forward. but with android, it is constantly a step backwards. the android engineers simply aren’t good people, and this was true long before google’s monopoly was large enough that leveraging that monopoly (‘being evil’) became their primary motivator.

  19. A lot of things that are Python programs could really just have been a shell pipeline of one or more very small Python programs. Especially since there’s no reason that python -c can’t be used with double quotes to get shell variables in.

  20. The first thing I ever wrote was a simple program for apple ][ integer basic

    My greatest skill in software is i can still write software in whatever is the current flavor and explain how the code works …while having never been a programmer

    Its more of a problem solving thing than knowing every in and out of whatever you have to work with. Doesn’t matter if its an for a micro, Lua, python or excel VBA of you can’t form a process you can’t explain it to a box of switches

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.