<html class="apple-mail-supports-explicit-dark-mode"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>For automating Microsoft Office, there are a few ways you could do that. You could learn VBA (Visual Basic for Applications) and use it to write macros, which are still supported in modern Word and Excel and PowerPoint I'm pretty sure and are very powerful. You could also control and automate Office with COM; COM is accessible from many programming languages including Python. You can also write Office 365 add-ons in JavaScript. I haven't used any of these so I'm not sure which one is most powerful or easiest to learn.</div><div><br></div><div>In addition, you could look at Pandoc, which can convert between text-based formats like Markdown, LaTeX, and HTML, and binary formats like DOCX and PDF, so you could write a program or script to generate Markdown and use Pandoc to convert them to Word or PDF, or use Pandoc to convert Word documents to Markdown and process that in a script. For Excel, there are tools for converted Excel spreadsheets to CSV and back, and CSV is very easy to write programs to parse and generate. I don't think Pandoc can do this but there's a command-line tool that uses LibreOffice to convert between any formats it supports, and Excel to CSV is one of the supported conversions. Pandoc also has support for filters, which let you transform a document as it is being converted. If this is useful for what you want to do, you can write Pandoc filters in Lua which is pretty easy to learn, or using any other language although Lua is the easiest to write filters in.</div><div><br></div><div>For more general automation, I think shell scripting is good to learn, either Bash on Linux and MacOS or PowerShell on Windows, although there are several ways to use Bash and UNIX utilities on Windows as well. For Bash scripting, it is important to not only learn the Bash language itself, but also UNIX utilities like grep, sed, tr, awk, etc which can be very powerful for processing text.</div><div><br></div><div>For general programming, I think more important than learning any specific language is having a good understanding of how computers work, good problem solving skills, and mastering different techniques for organizing programs and for translating what you want to do into operations the computer can perform. I have found that after I learned one or two languages, it was pretty easy to learn more, especially since many languages have certain similarities, like if you learn object oriented programming, or functional programming, or static typing, then when you see those concepts in another language, all you will need to learn is new syntax. Languages can be very different from each other, and it is true those differences can lead to very different ways of doing things, but still learning those foundational skills will help you learn new programming paradigms. I learned programming for the first time (besides writing Windows batch files) by reading The Structure and Interpretation of Computer Programs, which is a textbook that used to be taught at MIT. It does a very good job of giving you an in-depth understanding of how computers work and a wide variety of programming techniques and paradigms, and helps you gain good problem solving skills as well. It uses the Scheme programming language, so if you read that book it may be a good idea to become familiar with Scheme first. The book I used for this is just called The Scheme Programming Language. If you fully master that book then you'll probably be ready for any programming language or paradigm you want to learn, and will probably understand them deeper than those who learn them in an introductory programming course, and even if you don't finish the book you will probably still get a lot of value out of it.</div><div><br></div><div>The Scheme Programming Language: https://www.scheme.com/tspl4/</div><div>Structure and Interpretation of Computer Programs: https://sarabander.github.io/sicp/html/index.xhtml</div><div><br></div><div dir="ltr">Sent from my iPhone</div><div dir="ltr"><br><blockquote type="cite">On Sep 23, 2025, at 12:49, Joe Orozco via NFBCS <nfbcs@nfbnet.org> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr">\ufeff<div dir="ltr"><div><p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif">Hello,</p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif"> </p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif">I want to become more efficient with my time. I\u2019m trying to
decide if learning how to program could make me achieve that goal. I work a lot
with MS Word files, spreadsheets, Outlook, and PDF files. I need things to be
more automated in the process of writing reports and generating invoices. Would
I benefit from learning a programming language? If so, which programming
language should I learn? I\u2019m also looking for something that would make me more
marketable for future jobs. I\u2019ve gotten a couple recommendations but want to
pick your brain with a clean slate. By contrast, if you think programming would
only be a distraction if software development is not my primary job, I would be
curious about this feedback as well.</p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif"> </p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif">Thank you kindly for any guidance!</p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif"> </p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif">Joe</p>
<p class="MsoNormal" style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif"> </p></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--<div><br><div>Joe Orozco: Your Message, My Mission<br><a href="https://joeorozco.com/services/" target="_blank">https://joeorozco.com/services/</a> <br></div></div></div></div></div>
<span>_______________________________________________</span><br><span>NFBCS mailing list</span><br><span>NFBCS@nfbnet.org</span><br><span>http://nfbnet.org/mailman/listinfo/nfbcs_nfbnet.org</span><br><span>To unsubscribe, change your list options or get your account info for NFBCS:</span><br><span>http://nfbnet.org/mailman/options/nfbcs_nfbnet.org/emassey0135%40gmail.com</span><br></div></blockquote></body></html>