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

help-circle





  • 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.


  • I mean if you have access but are not using Copilot at work you’re just slowing yourself down. It works extremely well for boilerplate/repetitive declarations.

    I’ve been working with third party APIs recently and have written some wrappers around them. Generally by the 3rd method it’s correctly autosuggesting the entire method given only a name, and I can point out mistakes in English or quickly fix them myself. It also makes working in languages I’m not familiar with way easier.

    AI for assistance in programming is one of the most productive uses for it.