micahwelf

Micah

The multi-talented geek of a mailman.

I am generally knowledgeable and usually good at whatever I focus on. I was known as a versatile and effective letter-carrier. I then moved to where the weather is very near perfect all year and the neighborhood couldn't be much better in a world as diverse and scary as this world has become. Now I am trying to re-establish myself in a career programming and working with computers. Since I am so talented (humor), I decided to take a lifelong hobby and turn it into a business that I can do while I am studying for my new area of work. So I also sharpen cutlery, tools, and almost any blade. To support and enhance my studies, I also work as an employee, recently at Deseret Industries, as a security guard, and in night-time cleaning. I also aid my family in the area.


Me and Postal work

I started working in the United States Post Office kind of as a family tradition. I worked as a casual letter carrier for about three months, then came back as a TE letter carrier (still a temporary class, but treated the same as a PTF - career-class employee). That was the best I could be, since that was just after the hiring freeze started nation-wide. No career-class employees have been hired, other than those occasionally transitioned from Rural Carrier Associate, since then that I am aware of.

First email, then competing package delivery, and finally the most recent big economic recession had taken their toll on the post office, and the post office was not adapting well to the first or the last. Management has handled competition well enough, but how do you tackle a new form of communication that is near instantaneous, offers encrypted security, and costs almost nothing to the user? I suggested that the Post Office take advantage of computer technology in a way that only we were capable of, but I doubt my suggestion even made it to the post master of Seattle, because it seemed to me that management had mostly stopped listening to ideas that would require significant change. It certainly didn't help that I was not Career class, because I wasn't even allowed to make my suggestion through the standard internal suggestion system. I wasn't particularly concerned with receiving a reward; I just wanted the Post Office to grow again, so that I could maintain my support for my family and the community. Now that the prime opportunity has passed, the nation may never see the Post Office integrating with computer-based communication.

I quite working at the post office when I needed to change residence and had to change focus to a personally traumatic experience in my life. After an unrelated injury, I decided that working in a physically demanding industry was not going to be good for my future or my family in my long-term career, so I switch to working with computers. I love working with computers, but I still have a long way to go before I can enjoy the kind of constant on-going service to the community and productivity that I enjoyed in the post office. My aim, for a while, was specifically to work with computers and medical technology in hospitals. Even if it is hard (imagine medical exams and IT exams), I feel that this is a good path to providing for my family and getting to really help and serve my community like I did in the post office, but now I feel that the way medicine is handled in hospitals is a huge obstacle for even the technical staff, so I might just prefer any programming away from hospitals. I do love programming, scripting, and organizing computers in general!

Now I am still a USPS letter carrier at heart and my knowledge is sometimes very useful to others or myself, but I am also a cutlery specialist and a serious *mid-level programmer.

* I am more of an advanced script writer, but that just amounts to quick administration and very simple tasks. Also, it is my indecisive, widely distributed study of languages that has prevented me from calling myself more than a little above a beginner in any compiled or virtual machine language. I am essentially a do-it-yourself-until-it-works kind of programmer, like most hobby-programmers, I suppose.

My take on Computer Programming

I love programming, particularly in Ada. I have not found a better language to program in, though I have tried and examined many of them. Ada is both a high level language - almost as high level as an OS shell script - and capable of very low-level constructs (inline Assembly Language). In its functionality, style, and performance capabilities it is comparable to C#, Java, and Pascal. C# and Java are virtual machine languages, so even though recently they can compile into native code, they have a bit of bulk and changing/growing libraries that interface with the native libraries, so they are not particularly low-level-capable and cross-platform support has not been very stable long-term. Pascal is awesome and very similar in style to Ada, but it lacks some significant features and doesn't support as much low-level exactness and detail. Because of AdaCore's support and software, Ada is very cross-platform and can easily communicate with applications and libraries made with other languages.

No matter what anyone tells you, if you intend to be very good at programming, you have to learn at least a little C (Linux and everywhere), C++ (Microsoft libraries), and Objective C/C++ (Apple libraries) - but I have never met, listened to, or read of a programmer who worked in both Ada and some other language who prefered the other language instead of Ada. In fact, both my experience and that of others suggests that Ada should be the first language any programmer learns. It's qualities are too many to mention here, including nearly all of the advantages of the other languages, but easier to read, maintain and document, and well established with the top priority being stable and reliable programming. [ Ada was officially created in 1983 under the direction of the US Department of Defense. ] Where other languages allow bug-creating mistakes and a not-always-clear naming of libraries and execution code, Ada and more so SPARK (a subset and extension of Ada) will hardly compile if common mistakes are found and will quickly point the developer to the mistakes, saving many hours of debugging later. I love Ada! Even so, no Operating System nor native GUI has been developed in Ada (*see note on business), so interoperability with other-language software is necessary. My personal recommendation is: Learn Ada well, then learn Objective C++, and then learn Python (**see note on Java). This order will give you the most cross-platform and critical knowledge base to branch out from.

* For any business starting up with finite funds, speed of development tends to take priority, often leading decision makers to go the route that seems shortest though it may not actually be the shortest (C & descendants are fast to write, though slow to debug). Also a priority is working in a language that your employees won't have to learn fresh. Since, for whatever reason, C and C++ prevailed in the early development communities, building an operating system (very involved and complex task) usually started with one of those languages. Granted, C was the most well established and C++ was very similar and a big upgrade. Ada just seemed too verbose and not well known to make it to the operating systems, and thus didn't gain use for most other general programming; it's often easiest to use the language the OS was written in for the benefit of long term support consistency and the utilization of standard OS libraries. If any business was well established and interested enough to make a great new operating system in Ada, it might have been IBM, who created OS/2 Warp 4, known around the world as the most stable and reliable long-term supported operating system ever. Until it was abandoned by IBM, all your banking and important stuff was handled on machines with OS/2. IBM might have stayed in the operating system market with a bit more than z/OS servers if they had something both unique and effective that did not share any code from Microsoft, was written in a language that could keep up with evolving expectations, and had DoD / Medical special interest; and that's Ada.

** Sorry Java lovers, this essentials list doesn't include Java because it is too big and beautiful — and not a true essential to getting started. The only big OS that uses Java for its primary system calls is Android and that caused enough trouble that Google provided support for C system calls as well.

Someday, in the distant future and with God's blessing, I wish for us to benefit from a giant new operating system made in Ada that fully utilized several CPU architectures and provides full system library support for Microsoft, Linux, and macOS system calls. Essentially, I would like to see a new library named Operating_System that makes a lot of assembly language and low-level calls per implementation, performing everything that current OS's do, but with a much better and more unified code-base. If the computer code we have now survives the Lord's cleansing of the earth, I am hoping for this and better to replace the aging and disorderly systems we still have everywhere, so we can still reference and use all the old data storage, and better for the benefit of the work we will be engaged in.