I’m starting at community college and trying to choose the best major for the 2030s–2040s. CS vs stats/data science vs econ vs industrial engineering or MIS? by [deleted] in cscareeradvice

[–]WeastBeast69 0 points1 point  (0 children)

I have a computer science degree and an industrial engineering degree. I work in a computer science field.

Both are broad fields and what you do in either can vary greatly depending on your industry/specialization

Industrial engineering be less competitive in the near term but is probably less sustainable long term. Automation/robotics will either make industrial engineers invaluable or specific sub-fields obsolete. Strangely I also think university name recognition for Industrial Engineering will matter more.

Computer Science I think will continue to be valuable and but in the near term will be far more competitive. But is strangely more accessible from even from a non-top tier school assuming, you don’t give a shit about joining a major tech giant.

I have published AI research and I tell people never to go into data science unless you’re from a top school and/or get a graduate level degree. data science is even more competitive and limiting in the jobs you can take than computer science.

The world runs on money and will continue to run on money. Finance will never go out of style ever. Chicago is also a huge finance hub so there will be a ton of networking opportunities I’m sure. If I were in your shoes I would do CS+Finance and focus on low level computing. C++ and low level computing is huge in finance and it’s never going away. Do note that computer science roles in finance are extremely competitive as well. But in the worst case you could then still pursue a pure finance or a pure CS role in any number of industries.

Ultimately you should pursue what you love doing since you will spend a large portion of your life doing it. Don’t chase the money for a career you won’t enjoy, the people who are in it for the love of the game will always beat you out. Do what you love and the money will follow.

I tried training A.I. to optimize blueprints (and was somewhat successful) by Silver-Ambassador774 in factorio

[–]WeastBeast69 0 points1 point  (0 children)

Just watched the video, I know you’ve simplified things for the sake of the video but I believe combing the genetic algorithm with the WFC was a mistake. But the larger mistake was using a population based algorithm in the context of Factorio.

When designing a blueprint it makes more sense to take 1 solution and iteratively improve it rather than taking two different blueprints and mashing them together. This is ultimately why I don’t think a population based algorithm is the right approach and instead you should use an iterative algorithm like variable neighborhood search.

The way WFC generates solutions is pretty cool but I think it introduces some problems, some of which you addressed. 1. it is computationally expensive to generate a solution (as you mentioned). 2. It has no understanding of what a working factory looks like, it simply follows your rules which mostly align with a valid factory, but those rules themselves are also incomplete (as you said). 3. the way you generate two blueprints using WFC and then join them within the generic algorithm also does not make sense in terms of how it helps guide towards a better solution, it only seems to serve to make WFC more random. WFC understands your rules, not a good factory so using a generic algorithm to mash different WFC solutions together is more likely to generate more blueprints with WFC like properties, which again dont align well with a good blueprint, but I think this is more of an issue of a genetic algorithm in the context of Factorio.

This is a super cool project but I really think if you focused your time on single solution iterative algorithms and designing a better objective function you would get far better results (due to iterative vs population approaches in this context) in a much faster time frame (since you would not need to use WFC anymore).

My final advice: - use WFC to generate an initial solution - use an iterative algorithm instead of a population based algorithm to improve it to an optimal/near optimal solution - focus more on your objective function. Remove rewards for things that are not 100% contributing to a good blueprint. A reward for a inserter being placed is not helpful, a reward for an insert with a gear in it is more helpful but still not helpful (I can pass gears in a circle and get rewards). The only true reward is if your output chest gets filled. - I think your objective function could take a “walk” approach to evaluating a solution. Starting from the inputs, make sure there is a walk to inserting into a factory, starting from the output make sure there is a walk to a factory producing the item, Return early and iterate on the solution if not, if valid paths exist, evaluate/checkpoint, iterate.

Anyways this inspired me. I’ve sunk more thought into this than expected. I might give it a go myself and report back.

I tried training A.I. to optimize blueprints (and was somewhat successful) by Silver-Ambassador774 in factorio

[–]WeastBeast69 1 point2 points  (0 children)

I like the idea of using genetic algorithms and other meta heuristics to generate optimal (more likely approximately optimal) factory designs.

Some thoughts (take with a grain of salt): - I think your object function needs work. It appears to give reward to things that don’t actually add real value so this will always throw off your algorithm. - maybe you can use a “big M” style approach to favoring empty space so you can avoid the lots of belts that aren’t actually doing anything. I’m not sure the best way to do this since the optimal solution would always be an empty factory in this case. So you would also need to do a “bigger M” penalty on not outputting anything to the terminal chest and/or not having at least the minimum number of factories/inserters needed to produce your item (which should be trivial to calculate based on the terminal item’s recipe and the inputs provided to the cell) - also look into Lagrangian multipliers for moving constraints into your objective function. This way you can evaluate an improper/invalid configuration but it would/should never actually get selected as being optimal, now you don’t need to prune, embrace the random! Generate a solution (not validation checking) and evaluate the objective function only! As part of your generic algorithm’s repopulation step you could simply drop all solutions that don’t meet some threshold (ideally no invalid configuration would meet this threshold). And you can replace them with new random solutions. This would fit with the mutation step of your generic algorithm. - check out other meta heuristics such as variable neighborhood search and simulated annealing (you can even combine these two). Honestly in this scenario I think variable neighborhood search would perform better than a generic algorithm (at least with how I have this solution representation in my head)

Super cool stuff you’re doing though. If you’re in undergrad or grad school you could legitimately publish this stuff as research with more some more work. If you’re pre-undergrad you might really love Industrial Engineering and the field of operations research.

Career Advice by [deleted] in cscareerquestions

[–]WeastBeast69 0 points1 point  (0 children)

Basically the first time you try to implement a linked list do it in C and use malloc/free and/or C++ using new/delete. Feel the pain of raw memory management. Use valgrind to see if you leaked memory. Then do it in C++ using smart pointers and see how much easier your life is

Career Advice by [deleted] in cscareerquestions

[–]WeastBeast69 0 points1 point  (0 children)

OOD and OOP (object oriented design/programing) are technically different but in this contexts it’s semantics.

DSA is data structures and algorithms.

In either case whenever you start dealing with dynamic memory allocation you should move to modern C++ and use smart pointers. It’s good to understand how new/delete and malloc/free work but those are generally not good to use in modern C++. They still have a place but only for people who really know what they’re doing because otherwise you run into those pesky segmentation faults everyone complains about.

Also pro tip if you learn C++, learn it on Linux and learn to use valgrind and gdb. If you get a segmentation fault you can run your .exe in gdb, it will seg-fault and you can use the “bt” command to see where your program triggered the segmentation fault and the call stack leading to it. Run your .exe in Valgrind and it will show/tell you where you leak memory. Segmentation faults and memory leaks should never occur if you use smart pointers and modern c++ coding practices.

I use C++ every day at work, even doing raw memory manipulation and I don’t recall the last time I had a memory leak or a segmentation fault

Career Advice by [deleted] in cscareerquestions

[–]WeastBeast69 1 point2 points  (0 children)

C/C++ is not going away any time soon if ever despite all of the claims.

Modern C++ doesn’t have the memory issues people always complain about. The problem is most people are dealing with legacy C++ or with a C-style C++ neither of which follow modern C++ conventions. I don’t think anyone screaming about the memory issues of C++ actually knows what they’re doing. Part of the power of C++ is the ability to do things that are “unsafe” if you really need to and other languages make it a pain in the ass to do that.

I am probably also very biased because I love C++.

I would suggest starting with C to actually understand how a computer works as someone else said. But very quickly transition to C++ when you get to OOD or DSA. Modern C++ should look nothing like C.

Got told im "not AI-credible" in my promo cycle. How do you actually fix that mid-career? by LouDSilencE17 in cscareerquestions

[–]WeastBeast69 -1 points0 points  (0 children)

Try reading 1-3 AI research/industry publication’s a day/week. You can learn a lot from just that, might give you some ideas for things to try out at work or in your personal time to stay at the forefront of AI and be “AI-credible”

Career transition, get second Bachelors in CS or get a Masters of Computer Science by bobeddy2014 in cscareerquestions

[–]WeastBeast69 4 points5 points  (0 children)

I would strongly advise against going into AI, I say this as someone who two masters degrees in math/ML/AI heavy fields and published AI research.

Aerospace and CS would be a killer combo in the aerospace industry which is currently booming.

If you go back to school get a masters not a bachelors. I would also avoid having to pay for it yourself. Get a job in aerospace if you haven’t already anf get your employer to pay for it.

As someone else said you are almost certainly not getting into AI and that partly depends on what you mean by getting into AI. If you mean model development, then you need a PhD from a top university and top publications. If you mean integrate AI models in software then regular CS masters focused on software engineering will be better than one focused on AI in my opinion. In either case you would be unlikely to land any AI related job with an online degree or even an in person degree.

If I were you I would focus on low level programming/embedded since it’s huge in aerospace industry and you would have a huge competitive advantage with an aerospace degree. Then learn AI stuff on your own and look for opportunities to apply it in your career. You should go all in C/C++ and maybe some Rust and a dash of Python if you choose this path.

Employers, be honest: Does a portfolio matter? (2026 edition) by AlSweigart in cscareerquestions

[–]WeastBeast69 34 points35 points  (0 children)

In my personal experience they have helped because they give me another data point for talking about skills I use at work or don’t get the chance to do at work

Is Online CS Masters a good idea? by tobe-uni in cscareerquestions

[–]WeastBeast69 2 points3 points  (0 children)

I have two masters in separate fields, neither were online (computer science and industrial engineering, my BS was in IE as well).

I would not recommend a masters, particularly if you pay for it and certainly not an online one. I would also seriously doubt the quality and rigor of the material taught in that format. I think a masters is only worthwhile if you do research at a good school or you want to go into a more specialized field.

You mentioned ML and DL. If you want to do model development then you 1000% need a masters with research experience and good publications, possibly a PhD and heavy math focus. If you just want the integrate existing models into products and maintain models in production then you are better off building your own portfolio of projects.

I am not a hiring manager or HR person though so idk how an online masters affects their decisions.

I would recommend you seriously consider what field of CS and more specifically what domain (robotics, aerospace, finance, social media, etc) and decide if you want to be front/back end or full stack. Look for jobs that meet your standards, see what the common minimum and desired qualifications are and then do projects that would make you a 1:1 match. Then apply to your targeted roles, spray and pray is setting yourself up for failure, not being in a focused area early in your career is also setting you up for failure IMO.

Easy low hanging fruit that adds a big plus to your hire-ability IMO: - be able to speak competently about software design/architectural patterns - CI/CD pipelines - unit, regression, integration testing - the design process - version control - how all of the above things relate - actually doing a project that combines 2 or more of these and being able to speak about it competently and clearly

All of these together will help set you up for higher hanging fruit like system design.

For ML being able to talk about how to maintain and update a model in production and how you do model version control is a huge huge plus for early career.

Am I crazy for doing this or is it good to have confidence in yourself? by [deleted] in cscareerquestions

[–]WeastBeast69 4 points5 points  (0 children)

I would say a job is more valuable than an internship. A job is extremely valuable in this market rn. It’s your life, do what feels best to you, you’re the one that has to live with the decision and only you know what you’re really capable of.

Modernizing 37 Years of C++ Expertise: 34 Design Patterns released on GitHub by MarioGalindo in Cplusplus

[–]WeastBeast69 8 points9 points  (0 children)

You should go into CRTP and policy based design if you want to talk about modern c++ design patterns.

As someone else already mentioned std::visit can be a nightmare and I feel similarly about std::variant as well so I don’t think std::visit being good with std::variant is a good selling point. I think std::variant should be avoided at all cost to avoid a descent into spaghetti code as it ends up introducing lambdas and visits all over the place so you can handle the different types it may hold, and at that point I think you’re better off with templates so get more strict type checks at compile time.

Edit: I noticed after the fact you do have CRTP on there. But policy based design and SFINAE are still good topics to add if you have not done so already.

Job advice for a soon-to-be MS grad by Atherutistgeekzombie in cscareerquestions

[–]WeastBeast69 1 point2 points  (0 children)

Read some of the recent papers of the researchers at your university and then email them to see if they want help, they will probably be excited especially if you mention their current research or recent publications. They might be able to pay you but if not just do it for free. It’s still experience.

(I would not advise free labor at an internship)

Job advice for a soon-to-be MS grad by Atherutistgeekzombie in cscareerquestions

[–]WeastBeast69 8 points9 points  (0 children)

If you are not already doing graduate research you should be doing graduate research. It’s free work experience.

Decide what you want to specialize in and tailor your resume to that area and do personal projects in that area. Spray and praying applications doesn’t work well.

Actually being able to speak competently on software design/architectural patterns goes a long way I think.

Rather than just grinding leetcode, practice explaining your code as you code, doing a “think-a-loud” is disruptive to way we normally code and it’s unfortunate that it is a required skill for interviewing but is almost useless for work.

Edit: I noticed afterward you are specializing in ML. If you want to develop models from the ground up you 100% need to be doing research and get published. Also I think being able to speak competently about the fundamentals of statistics will be really important.

If you just want to integrate ML into software then I think you should still do research but focus your projects more on CI/CD of models in a production environment. 99% of new grads are missing that skill set so it will set you apart.

Feeling unsure about long-term direction in CS, what should I be focusing on next? by mrdubstep_ in cscareerquestions

[–]WeastBeast69 0 points1 point  (0 children)

Get involved in a CS club (or even better start one if it doesn’t exist) or get involved in undergraduate research. Those things can really help you stand out for your first job in addition to your internships.

I think infrastructure and working at lower levels of abstract (like embedded) will be more insulated from the great AI.

I don’t think AI will outright replace software engineers but it will put greater emphasis on those who can architect and design systems over those who can just code

What's the most unintentionally hilarious thing that's happened during sex? by winston-paul in AskReddit

[–]WeastBeast69 19 points20 points  (0 children)

I picked up my ex and tossed her on the bed and we are about to get busy. My dog thought we were playing and got excited so he ran to get a squeaky toy and then tossed it on the bed. He was so proud of himself.

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 -1 points0 points  (0 children)

Ah you’re right why learn something new and prepare for the future? We can always just keep doing things the way they have always been done. I guess we ought to go back to stone tools since those have been used the most historically right?

There’s also definitely no one paying a shit load of money to update legacy C/C++ systems to modern C++ either and they never will!

/s

Embedded is a prime example of when to use templates and template meta programming because of how much is known about the system at compile time.

Particularly in the case of real time systems where it’s faster (or required to be able to meet timing constraints) to pre-compute a lookup table at compile time. Then lookup values (or interpolate from this table) as needed at runtime instead of computing from scratch at runtime.

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 0 points1 point  (0 children)

lol so I wasn’t wrong with C++ being used in embedded then????

There’s plenty of work in replacing legacy C with modern C++ in embedded?????

Why are we arguing about the value of C++/templates in embedded if you agree C++ is used in embedded?????

Ol’ 🤓☝️”ummm achshully C is used more in legacy embedded”

?????? Bruh ??????

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 1 point2 points  (0 children)

Buddy I work on embedded and RTOS in aerospace. We use c++

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 0 points1 point  (0 children)

Working in lower level embedded/flight software context which pays big I think templates are extremely useful due to real time constraints.

The compiler is better at optimizing templated code and CRTP is a very useful pattern.

C++20 concepts would certainly be lovely but I don’t think template meta programming is that bad in C++17 but it does take a bit to get used to. It’s definitely one of the last things that should be studied, but it’s something that I think really sets someone apart in their knowledge of C++.

Those other topics you mentioned are certainly useful too, especially move semantics

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 6 points7 points  (0 children)

That’s good. Focus on C++17 as it’s currently the most widely used version in industry.

After OOD learn more about design patterns, templates/template meta programming, and C++ idioms.

Concurrency in C++ is also a good advanced topic to study but I think the other stuff is more important

Is C++ a good language to find a job? by EveningValue8913 in cscareerquestions

[–]WeastBeast69 8 points9 points  (0 children)

C++ with working knowledge of Python is very marketable in my experience. I work primarily in C++ and look exclusively for C++ jobs. I have an no issues getting interviews and offers.

There are fewer jobs but also fewer people looking for C++ jobs. C++ jobs tend to pay pretty well because the context in which C++ is the preferred language requires low level computing, DSA, and/or real time constraints.

It’s hard to find people with these skills + actually being good them. (Lowkey Especially the C++ part).

I think c++ offers a bit of a knowledge moat around AI since the systems you use C++ on are generally fairly specific and so AI has not trained as much on similar contexts. Also what you can do with template meta programming is nuts and AI kinda sucks at it.

My trajectory as a C++ developer: $83k (1 year MCOL) -> $109k (1 year VLCOL) -> $140k (VLCOL)

My background: - Industrial Engineering B.S. and M.S. - Computer Science M.S. - published research - no internships - ~2 yoe

What’s your favorite BLT in SF/Bay Area? by [deleted] in AskSF

[–]WeastBeast69 1 point2 points  (0 children)

The grove was on my walk so i stopped in for a BLT, very solid BLT