Wow, I wish that this was around a year and a half ago. I was working on a pet project of mine to do finite element analysis on PCB Gerber files. One of the biggest stumbling blocks that I ran into was taking a 2D image parsed from a Gerber (side note: Gerber files have a really wacky yet interesting format and structure) and triangulating it. I had wanted to use DT to clean up edges and thin traces in the model but I just couldn't seem to grasp it, as interesting as the math was. It's a shame that I never finished it, maybe I will need to get back to it one of these days.
I work in industrial controls and I have probably at least a dozen different VMs for all of the various programming softwares (each brand of PLC generally has their own proprietary software stack) and versions. Some of these things really don't play nice together and have the tendency to "blow up" now and again, where the whole OS needs to be nuked and reinstalled from scratch. Some programs are a nightmare to get working right and it's nice to be able to share working VMs with my coworkers.
IT also can't get their grubby fingers on the software inside and break anything. I also don't even have admin rights to change my network settings on my host OS, which is 100% required for the job as I need to connect to machine networks running a static IP. With VMs, I can get a USB Ethernet dongle and give it to the VM and get network control that way.
A while back over the course of a week I wrote a python script to modulate the extrusion flow on a 3D printer based on FEA data. I would simulate the forces that would be on the part in Inventor Nastran and export it to a text file (side note: Nastran had the strangest plaintext output of a program I've ever seen. It was like a book, with a title page, table of contents, page numbers, etc. It was clearly a relic of years past). Then I would the Nastran and gcode into the script, and it would increase extrusion where the stresses were high while reducing it where the stresses were low.
Even though it was fairly rudimentary and I never formally tested anything, it seemed to work well enough.
I've been wondering whether I have ADHD for a while now. I have not went to a professional to get diagnosed but at a glance it seems like I share many of the same symptoms. I am ASD though, so maybe it plays into that? I've never taken Adderal, I almost want to once just to see the effects.
I'm curious whether it's this "work chaperone" concept, but I'm not sure. Until recently, I had two other people working in close proximity to me, before they both quit. I definitely got that weird unproductive feeling when I was off-focus, but it was decidedly negative. Think a fear of punishment or embarrassment vs. the positive feeling that I had today. But at the same time, coworkers and SOs are very different in terms of relationship and motivation.
To clarify, that was 5 hours for this week. So an average of 1 hour a day, which is less good to say the least. But I'll have to check out Pomodoro, thanks!
Rockwell Automation's Factory Talk software. It is used for developing GUIs for screens on industrial machines. Horribly expensive, laggy and broken. Versioning is a nightmare with crappy backwards compatibility (if it even decides to open the old project at all without crashing or locking up). God help you if it decides it doesn't want to deploy the screen programs over the network because then it becomes a song and dance to get it working over a USB key. Don't let windows update either as it seems like updates constantly break it. Sometimes it breaks itself and more often than not their (very expensive) support says to nuke everything and reinstall.
There are alternatives, some worse but most better and cheaper. But Rockwell is the industry standard in North America. So their screens get spec'd.
In my opinion the best way to learn this stuff on your own would be to build and program a simple automation system. That could be, for example, a garage door system, pool controller, home brewing system, or even just a trainer with some buttons, indicators, sensors and motors.
You'd need basic electrical tools like a multimeter, control screwdrivers and wire strippers.
You would also need common hardware parts like terminals, din rail, 24v power supply and an enclosure. Maybe even some pneumatics if you're willing to spend more. And of course a PLC. If in North America, get a used Allen-Bradley micrologix or similar from ebay. If in Europe, Siemens s7-1200 would be better. You could also get another brand like Automation Direct Click, though that isn't used in industry as much as the two aforementioned industry standards. You'll also need the programming environments for each respective brand. AB has Connected Components Workbench, Siemens has TIA Portal, and AD Click has its own free to download environment.
You can find lots of wiring guides online for how to connect the basics together, it is pretty simple. If you could get your hands on Autocad or similar drafting program (there are free ones) and make electrical prints for your design that would be great to show in an interview. You'll need to be able to read, understand and possibly make your own prints on the job.
Programming PLCs is a different beast than traditional application programming. The most common language is Ladder Logic, which is a graphical representation of digital logic circuits that resemble relay logic wiring diagrams. There is also Structured Text, which is more like traditional text based programming, but in my experience it isn't nearly as popular in the field.
If you get into SCADA systems like Ignition (they have a free or cheap hobbyist package) you'll see more VBA or python scripting along with SQL and things like that. The industry is also being dragged kicking and screaming into the modern age where everything is increasingly networked together, and a little more thought is needed than putting everything on 192.168.1/24 on an open and unsecured network. Understanding networking and security would be a big advantage.
The programming itself is "simple"; constructs like for loops are considered advanced that an inexperienced engineer can do without, and one could have a fulfilling career without ever encountering a sorting algorithm. The challenge is that it isn't just programming, but mechanical, hydraulic, electrical and pneumatic systems that have their own host of challenges. A big could be caused by a programming issue, but it could also be something like a stuck valve, loose wire, or siezed bearing to name a few.
The best way to actually break in and learn would be to get comfortable with the basics and if possible get a job involving travel. Many jobs in the field require extended periods of travel to different plants, not a lot of people want to do that. And I get it, the travel can be brutal. I was just on an especially rough startup in another part of the country, and I pulled over 3 80 hour weeks in a row. I'm young, single and trying to learn so that doesn't bother me, but ymmv. There are plenty of jobs where you'd only be working in one plant, or several within an hour or two of home base. I can say that I learn way more in the field than designing stuff in the office though.
Last but not least, check out r/PLC. Those folks are great.
PLC programming is quite different than traditional programming but is still mentally challenging and could easily involve time outdoors. Take a refinery for example, lots of the equipment and instrumentation you'd be programming is located outside. Even if you worked on e.g. production lines totally indoors, the production floor is very different from offices!
I work in industrial automation and I love how hands on it is. I'd recommend to any SWE who is bored being cooped up in an office and isn't afraid to get a little dirty. Feel free to reach out to me if you'd liketo know more.
Oftentimes I resent going to work when I'm stuck in the office. I find that I have trouble focusing for eight hours, even when working on more mentally stimulating things. I am lucky to also have laid back and friendly relationships with many of my coworkers, and we share friendly banter throughout the day. This helps break up the monotony a lot.
What really keeps me interested in this job is the field work. Periodically I'll need to travel to the customer's facility, and that work is much more hands on. I'll often be "debugging" with a multimeter and screwdriver, on my knees or back in an electrical panel, or making code fixes that I can see affecting moving machine parts right in front of me.
It's one thing to work on something like traditional software which only directly changes stuff on a computer screen, but I get I get awfully bored and disinterested without some "real", physical results of my work. From what I've learned speaking to others and reading here, I'm not alone. To be honest I don't think I would last for very long at any job without being able to work with my hands.
The amount of dedication and skill it takes to build something like this is massive. I find it amazing how people keep up the motivation to contribute to such projects for hundreds or thousands of hours. I wish I could keep up with something even half as long, I find that these days I get so distracted and easily frustrated that I stop working on my cool ideas after only a few days. I have to wonder what keeps them going to be honest.
For what it's worth, I work in industrial controls. More or less all of the machines we design are one-offs so engineering and labor time dominates the cost of projects vs. materials.
Additionally, unplanned downtime is extremely expensive. If a machine breaks down and a replacement part isn't on the shelf, getting that part fast is much more important than saving a few dollars. Same goes for if we end up with a bunch of guys waiting around for a part to get installed.
I was more referring to issues with shipping and ordering outside of the US. But you are entirely right about them focusing on American measurements, their selection of metric parts is much weaker and more expensive than their customary (main?) Sizes of parts. I do wonder if they are or will be working on improving that any time soon.
Unfortunately I don't see them creating a price filter as they are mainly geared at businesses vs. hobbyists or consumers, where "get it here fast" is more important than saving a few dollars. That being said, I find adding all of the prospective parts to the cart works well for me when I want to compare prices
McMaster-Carr has the best shopping website I've ever seen. The UI is beautifully intuitive; even if I don't know exactly what I need, odds are I can easily find something that will work and they can have it at my doorstep in under 24 hours, no matter how obscure. Even if I don't plan on buying anything, it can be helpful to click through the site just to see what is available. Because most categories of parts have surprisingly well written descriptions and breakdowns, the sire can actually be a good engineering resource.
I've bought from them many times before and have yet to be disappointed with what I got. It is definitely expensive compared to other suppliers or Amazon, etc. But you pay for the convenience.
I hear they aren't very good outside the US though, which is a shame.