The Pitt CSC Blog

Configuration

web dev

Configuration

Configuration is a skill that takes time to master. It's frustrating and infuriating but it is also accomplishing and rewarding. Most people don't realize that software development in general (and not just web dev) requires a large amount of configuration. In fact, most developers spend a large chunk of their time debugging and configuring stuff. Now, I've had my fair share of hours (or even days...) configuring libraries, frameworks or even languages. I've found that most configuration errors boil down to 2 things:

  1. Not knowing what you're doing
  2. Software/hardware incompatibility

The former is usually the case for me, although spending time fixing my mistakes has definitely made me a better programmer. I now know how a shell or terminal looks for the commands you input, I know how and why some languages get compiled "automatically" while others require you to do it yourself. I really believe that configuration makes you a better programmer. It gives you a different understanding of how the technology works, other than seeing it as just a tool that is. You'll catch more errors, debug quicker, and be able to explain what's happening much better.

When it comes down to the second category you're out of luck. What I usually do (and this IS VERY STUBBORN) is try to look for some insane way to make the software compatible. The most recent example I have of this is Tensorflow. I bought a new Macbook with an M1 and have had a ton of compatibility issues between the hardware and different software packages. To be honest, I managed to solve my problem, Tensorflow now works on my machine. However, what I did was so convoluted and was mashed together from so many different places that I don't remember how to replicate it. In fact, a forum I had asked for helped on got a reply, it was another developer asking for help on how to solve this same issue. My answer, I don't remember. And this is one of the worst things you could say, not just for the other person but for yourself as well. Say in 2 years time a new processor comes along and I need to download Tensorflow, I now need to put myelf through that same pain once again.

What all configuration problems share, no matter the type, is they make you lose time, a lot of time. And what usually happens once you get up and running is you feel so drained that you can't be asked to follow through with the software, which is such a shame.