• 2 Posts
  • 53 Comments
Joined 1 year ago
cake
Cake day: August 9th, 2023

help-circle



  • I actually had my most difficult time ever setting up Linux on my 5800X3D and 3070 recently.

    PopOS wouldn’t save my resolution on reboot, and then after fixing it all of my games were running at the wrong resolution or breaking in various frustrating ways. All Linux native games too. Jumped to Fedora and every single game flickered like mad and then once I got that fixed my package manager inexplicably broke. I was about to install Ubuntu before saying fuck any chance of instability and going to Debian.

    I had to manually install way more than any of the other distros, but everything just worked once I got my graphics driver installed. I was really disappointed given I’ve been using Linux on and off for 8 years, and my Steam Deck has been nothing but solid. I’m honestly just disappointed things have trended in a bad direction, and I hope this was just a one off experience and not the norm now.





  • Preface: I realize after writing this I possibly came off as one of those, “just learn to code” people. I’m not. People should only join the field if they’re passionate about or at least enjoy it otherwise they will burn out fast. With that said, I don’t think the field as a whole should be written off by those who enjoy the work, and CS degrees are as useful to software engineers as physics is to a mechanical engineer. Back to the main discussion.

    I think we just have different views on where AI is headed and what it is capable of. Neither job is going to be replaced any time soon by AI IMO, but I’m pretty certain a UPS driver will be replaced much sooner as it’s a fundamentally simpler problem to solve.

    For comparison, software engineering is critical thinking turned up to 11 with tons of ambiguity and guesswork as to what people actually want vs what they’re asking for. It’s very people and communication focused despite what stereotypes might portray, and you often have to figure out and tell people what they actually want instead of doing what they say they want. Automating software engineering would be more like automating an entire supply chain as opposed to one part of the supply chain (delivery driver) because there’s so many different types of software engineers out there. Not to mention you need software engineers to automate software engineering.

    As for pay, that $170k is the absolute top end for UPS drivers and you have to work your way up from warehouse to a delivery position. Software engineers top end is generally around $500k (you can get up to $1 mil but it’s rare enough I wouldn’t consider it fair for the point of this conversation), with starting being ~$95k for most new grads. Absolute worst case scenario you go work for the government for $70k and earn a healthy pension with dope benefits, regular raises, and amazing work life balance.

    Student loans are definitely a consideration and can be high risk, but attending a community college for your first two years before state school you can get out under $30k of debt. My total tuition cost for 5 1/2 years of college was <$20k in California. I was fortunate enough that my mom paid for my education, but I could’ve covered the cost with loans and paid them back by now. This is all ignoring that software engineering internships regularly pay in excess of $50/hr making it possible to put yourself through school while working summers just like your grandparents did.

    I agree somewhat with your concern over the uncertainty of the world, but I figure no one really knows where we’re headed so I might as well do what I love and make as much money as possible in the meantime. Neither are bad career options IMO and trades can be awesome, but it’s important to consider the long-term risks that often come from certain occupations including those sitting at a desk all day.


  • It still kind of is though? The market is ass right now but my TC last year as a new grad was $200k and I only started in April. If you grind interview prep you’re bound to get something eventually, and new grad software engineers currently pay near to low six figures.

    It’s not easy but CS bachelor’s degree to software engineer is a solid career prospect long term even if the market sucks right now. Not to mention trades destroy your body in ways that cause long term issues, and pay way less over the course of a career unless you’re doing something exceedingly risky.





  • Because by not using a password manager I guarantee you are duplicating passwords between services. This means the second a service you use is compromised, every single service you use with that same email/password combination is compromised. Even if every one of your passwords had a slight deviation malicious actors know people do this and will likely be able to write a program that attempts those deviations on other services. You’re effectively leaving your security up to weakest link in services you sign up for, and security is more often implemented poorly than implemented well.

    By using a password manager you generate a 20+ character long password that is unique to each service you use. These passwords being random and unique to each service protects you from rainbow tables and other hash table based attacks. In the event Bitwarden or another password manager you use is breached anything they get will be worthless as long as your master password is not compromised (which should only ever exist in your head) due to the data being encrypted at rest.

    It is a similar concept to using a secure, trusted middleman for processing payments instead of giving your credit card to every single site that asks for it.








  • That was a pretty interesting read. However, I think it’s attributing correlation and causation a little too strongly. The overall vibe of the article was that developers who use Copilot are writing worse code across the board. I don’t necessarily think this is the case for a few reasons.

    The first is that Copilot is just a tool and just like any tool it can easily be misused. It definitely makes programming accessible to people who it would not have been accessible to before. We have to keep in mind that it is allowing a lot of people who are very new to programming to make massive programs that they otherwise would not have been able to make. It’s also going to be relied on more heavily by those who are newer because it’s a more useful tool to them, but it will also allow them to learn more quickly.

    The second is that they use a graph with an unlabeled y-axis to show an increase in reverts, and then never mention any indication of whether it is raw lines of code or percentage of lines of code. This is a problem because copilot allows people to write a fuck ton more code. Like it legitimately makes me write at least 40% more. Any increase in revisions are simply a function of writing more code. I actually feel like it leads to me reverting a lesser percentage of lines of code because it forces me to reread the code that the AI outputs multiple times to ensure its validity.

    This ultimately comes down to the developer who’s using the AI. It shouldn’t be writing massive complex functions. It’s just an advanced, context-aware autocomplete that happens to save a ton of typing. Sure, you can let it run off and write massive parts of your code base, but that’s akin to hitting the next word suggestion on your phone keyboard a few dozen times and expecting something coherent.

    I don’t see it much differently than when high level languages first became a thing. The introduction of Python allowed a lot of people who would never have written code in their life to immediately jump in and be productive. They both provide accessibility to more people than the tools before them, and I don’t think that’s a bad thing even if there are some negative side effects. Besides, in anything that really matters there should be thorough code reviews and strict standards. If janky AI generated code is getting into production that is a process issue, not a tooling issue.