699 karma · joined March 14, 2021
All of this to say I have been writing software professionally since 2006, and while I do struggle with the thinking behind functional programming and math-heavy subjects like graphics programming, I have written lots of business software that has brought me personal satisfaction. I would really like to understand calculus better, but I'm not sure if it would actually do anything for my skills in programming. If math is holding you back, think about whether you need the full breadth of CS knowledge, or if you just enjoy writing software.
I became better at code organization, making code maintainable and simple enough to understand unless performance was an issue, and general people skills. I can understand why math and software are so close to each other, but at the same time, I don't think it needs to hold you back unless you really want to go into a topic that is deeply intertwined with math. It took me four times to get past pre-Calculus, and once I did, I realized that I just did not enjoy that type of math and didn't need it to build useful software (as in makes people's lives easier and/or generates profit for business) that I also find fun to create.
Maybe it's a right of passage to burn yourself badly enough over-architected solutions, where you finally start to understand you don't need all the complexity. Write the code for humans, as simple as you can. Keep large performance issues in mind, but only code around them when they become a problem or are extremely obvious. If anything, it's helped me to steer junior developers away from complex code, while encouraging them to try it out in their own time. Go ahead and figure things out on your own, but let's not do it on a shared codebase, please?
I got on to my local public library (in the US) with an 800 baud modem on the Atari 8-bit. There was barely any security, which was all bypassed by "password". I could check out books for individuals, alter the amount they owed in late-fees, or erase that someone had a book and then erase that the book ever existed. I have always been more of a white/grey hacker, as far as I don't always report an exploit, but I don't abuse it either. Now that I'm older, I am happy to report exploits confidentially.
I quickly found the BBS in my area were not as usable at 800 baud, and moved to a 286 with a modem slightly higher baud. Until my family got a 386, it was a bit slow, but I was still sitting there like an addict consuming my digital fix! Even in the mid-90's I was amazed at the speed of modems coming out. I believe in 1997/early 1998 I had saved enough money to buy myself my own PC, and had a faster modem. I'm not sure what the speed was back then, but it was good enough to play Quake 1. I started to lose touch with the low-level of computers around that time, but also saw the value in higher-level programming. I think having understood lower-level computers in my early years helped me to understand things like memory management in current days, where a lot of my co-workers have no concept of running into memory problems until they hit a wall.
Once I saw how fun that was to actually run and show friends (which I think was the big draw for me in the 80's), I created an English to Pig Latin translator, which was more based on an official example, but I remember putting more work into it, including a trigger for certain "bad words" my friends would definitely enter, and giving them a surprise flash and warning. Not sophisticated in any way, just a bunch of IF statements for specific words, then a fall through for anything not matching to be translated.
I used to have a book on experiments using a 6-volt battery, and I got my son one of those 30-in-1 kits, and we had a lot of fun with it. I was more easily able to move from the electronic kit to software with him, having had interest in both, and now he's picked up the software itch.
I have recently gone through a conversation with a client that has been told in NY state (in the US) that something similar to GDPR is coming for those that deal with PII. Both the client and the agency I work for have added various scripts to the website for dynamic forms, tracking (Google Analytics), and newsletter functionality. It's at a point where everything that is 3rd party has to be discovered first, then seeing if there is the ability to anonymize everything (either by default, or with a user consent dialog). Even with current laws, it seems intentional to keep things vague.
I have a solution for custom content management systems that usually makes it fairly easy for me to incorporate customer requests without needing to toss out my existing solution and start over. Almost a type of framework built over an existing open source CMS product. I maintain about 90 websites as the only backend developer, and have spent about 12 years now working through various versions of the software to custom tailor a solution that works for nearly all situations I have come across. I don't do front-end development any longer, but I was involved heavily at the beginning stages to make sure both the front-end and backend were flexible and broken apart into modules.
Of course, you have to have a culture where making a mistake doesn't immediately lead to being let go or publicly reprimanded. I have definitely learned quite a few things about people and code by helping juniors work through bugs that may not have been so obvious (including occasionally finding bugs in 3rd party libraries).
I came from a world of Mercurial, and I would love to be able to commit very often, and then be able to squash all those commits into a single commit. I feel git rebase does that, but I haven't been able to truly grok how to do that without running the possibility of completely destroying all changes I've made. I can't lose a giant feature (which is what I generally build) that may take an entire week to build, because I used the wrong git rebase command. I would love to be able to change an individual file and commit it to compare against new changes, but then pull all of these temporary changes/commits and merge/squash them all into a single commit, in case I need to rollback everything due to some breaking update.
I feel like we are in agreement that taking these manuals, considering nobody was physically hurt, is a good thing. The tactics and policies for law enforcement should absolutely be available to anyone, considering our tax dollars go towards these employees. Transparency is needed in order to help guarantee constitutional rights, as well as to know when individual rights have been violated. I'm not anti-law enforcement, I'm anti-corruption.
I believe there is a middle ground where everyone can be happy, and firmly believe that the Rust maintainers in the Linux project will keep on top of the C interfaces to know when there will be changes. Going back to my comment, I realize that I presented why the C developer/maintainers don't want Rust, but that is not my own stance. In my opinion, there is enough interest in the Rust for Linux project that acting as though there is only a single maintainer, and if they disappear the entire project fails and all Rust code stops compiling is unrealistic and FUD.
I can see a whole host of problems being tackled, especially in driver development and safety concerns, by using Rust. I feel the C maintainers are acting as if the entire kernel is going to be rewritten in Rust in a timeframe where any of these people would still even be capable of using a keyboard or not suffering from severe dementia.
My apologies to anyone that thought I was pushing for one side or the other, I was only repeating the recent "drama" that I heard was going on, and I respect both sides.
Whether or not someone believes this to be real or a hallucination, it is still a human experience, and should at least be treated with respect. I think it's perfectly fine to not believe that it is something higher than brain function, but in Buddhism there is the concept of non-duality.
Subject: Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. https://lwn.net/ml/all/20250108135951.GA18074@lst.de/
From my understanding, the current maintainers are worried about being stuck with Rust code should the Rust maintainers leave the project, and Linus is requiring that all code builds that makes it into a release (which includes the Rust code).
I am not for or against Rust being in the kernel, but I can appreciate the view of maintainers on a project of this age being concerned about introducing a second language (one which many of the C developers are not familiar with). This isn't a single company's web application project where a polyglot environment should work well when chosen for the right reasons. The Linux kernel is a backbone of modern computing, and making a decision on what to do without exploring all potential benefits and issues would be irresponsible at best. From what I've read, the Rust proponents want a piece of Rust middleware for DMA access so that each rust component doesn't need to have their own implementation, but the C maintainers don't wish to have to maintain C interface compatibility for Rust. With Linus stating that all code in the project must compile to be accepted in a release, this puts a heavy burden on the C maintainers where they are now required to work with the Rust developers fairly closely. Some of these maintainers have been around for a long time, and are skilled in C and do not wish to learn a new language for when the shit hits the fan and something in the Rust code breaks.
Again, this is just my understanding of the situation from what I've read, I may have some of this completely wrong, and if so I apologize to anyone involved.
I spent my teenage years grabbing cracks and texts from BBS', and enjoyed the whole scene. It's really what sparked my interest into writing software, and I always wished I had learned some lower-level skills beyond running a debugger and poking at memory. I felt like if I knew Assembly, I could get into deeper debugging (cracking was initially my "exciting" topic to cover, but now I feel like it would just be understanding memory better when I run into a strange error).
I feel like learning modern assembly would be more useful, but maybe 6502 assembly is far easier to pick up? The first language I learned was Atari BASIC around 1991, and it was enough to get me to keep on moving to better languages and more powerful CPUs, but I wonder where I would have ended up if I learned assembly either before or after Atari BASIC. I try to keep up with technology, and have read quite a bit on different assembly dialects. I still haven't learned an assembly that I can program in, and I suppose it's because there are so many other high-level languages now and I feel like I need to keep up to what is used in "industry" rather than what is more obscure (but might help in debugging).
I've tried to stay positive and explain that they will fool nearly everyone, the technology they used is usually recognizable to the type of people that would want to bypass it for their own gain (or knowledge, assuming white hat types poking around). Usually putting a spin on how they came up with something that looks secure was a great idea, but the type of people that will exploit something like what they built, will recognize patterns easily (and now that AI is around, you could even make them feel better by stating how there is software built to recognize these patterns).
I am at the beginning stages of looking elsewhere, because of some very poor choices made that disregarded my advice. I have extreme impostor syndrome because I have only helped juniors, but have never worked in a professional capacity with anyone that had more knowledge than myself. That isn't a flex, I wish I had mentors in a professional environment, but I never did. I have learned a ton on my own, and have worked with others that moved on to better careers. I was around at the beginning stages of the company, and have gained a lot of freedom like taking time off to watch my son when he's sick, or if I need to see a doctor. I have built on top of CMS software (Umbraco/.NET) and have figured out how to keep resources below what is recommended, and love what I do, but am being given the "opportunity" and direction from the President to leave the company because my salary can't be covered any longer. Not meant to tell a sob story, just genuinely looking for advice on finding something that will strike my interest and I can contribute to. I have been with this company for almost 18 years, and built it from nothing with a weird technology, into something that a lot of medical, insurance, banking, and law firms depend on.
Any advice is truly appreciated, as I was taken by surprise, but also know that I can achieve far more than what I currently practice. I spend late nights learning for fun, even at 45 years old.
I started using RockBox around 2005/2006, but it still wasn't worth converting my entire music collection to Ogg Vorbis from MP3. Right around that time, my vehicle stereo could suddenly support MP3/WMA files, and I could burn multiple albums to a CD for my truck stereo. MP3 had the broadest support across devices, and basically become an industry standard, even with the licensing.