• 1 Post
  • 124 Comments
Joined 2 years ago
cake
Cake day: June 18th, 2023

help-circle
  • I can share my experience with college, which it took me a while to appreciate but eventually I realized that while it wasn’t apparent at the time, it did make a difference. But of course, your mileage may wary, it’s just my personal experience.

    I felt like I’m forced to go through a lot of bloat I’ll probably never need - why do I have to learn stuff like Prolog, Lisp, Smalltalk and other obscure languages that I’ll realistically never need? Why force so much in-depth math, I’ll probably never need to be able to formally prove the Big O of a Hashtable…

    After spending few years working after/during college in offensive cybersecurity, where most of my colleagues did not have a degree, I’ve eventually realized what was the point of all these classes. I noticed that people kept reffering to programming as in “I’m a python programmer”, or “I’m a java programmer”, but I never really felt like that - when someone asked me if I can write something in any language, it didn’t matter what it is, I can just relatively quickly pick up the syntax and write anything I need in whatever you need, and I eventually realized that that’s exactly thanks to the college - the point was not to make me a Smalltalk or Prolog programmer, but to give me a PTSD from every different style of languages, from OOP through functional to whatever Prolog is, and while I do not remember almost anything, I still have the basic understanding of how does that style works, and when I look up any new language I need to use for the job, I’ve already seen and was forced to once learn and understand (well enough to pass exams) something with similar concepts.

    And that’s a really big advantage that people without degrees don’t usually have (at least from my experience with my colleagues). It will teach you how to relatively quickly pick up different technologies and use new things, and that is a really valuable thing. And it’s the same about data structures and other math - you will probably not remember it, but the feeling that “wait a minute, this problem sounds familiar, isn’t there like a obscure tree-thing structure that solves exactly this efficiently?” or “wasn’t there some magic with stacking trig coeficients for this?” will stay with you, and give you a headstart in looking up the concrete details that would be pretty hard to find otherwise.

    So I’m really glad I went to college. And in addition to that, it was amazing for networking - I had a masters in Gamedev and while that didn’t teach me almost anything new, it gave me a lot of friends and an amazing community of passionate people that I keep on making games with.




  • I don’t think you need any active sabotaging in this regard. I’m not really worried about the future of LLMs, because we are already at a point of feedback cascade where thanks to LLMs, more and more of content they steal from the internet has been AI generated by them anyway, which will eventually cause the models to collapse or stagnate. And besides, you wouldn’t be able to sabotage at a scale required for this. Thankfully, the spread of fake AI generated websites and content it has enabled is so massive, that it works as well.

    I’m looking forward to that.



  • I started as part time without any experience durring my college. I was studying gamedev software engineering, but we had one voluntary class about Ethical Hacking.

    I just asked my professor if he can reffer me to someone in the field, followed OWASP Web App Testing guide to the letter when testing the interview homework website, and landed the job without much prior experience (I did attend a few CTF competitions, though).

    Just following the checklist in OWASP testing guide made my results comparable to, or even better to some of my colleagues, and I’ve slowly learned the rest (especially internal domain pentesting) from our internal documentation or shadowing seniors during pentests, and simply being interrested in the field, having initiative and looking up new tools and exploits eventually got me to a Red Team Lead role (not a very good RT, though, but it did improve eventually).

    The pay was pretty good compared to what’s usuall here in Czech, too. I could comfortably pay rent and get by even with part-time, during college.


  • I did Software Engineering Bachelors and then gamedev masters, and while I didn’t really appreciate it at the start, since it felt like I’m learning a lot of stuff I’d never need, I’ve eventually come to be really glad that I did it.

    Throughout the classes it felt pretty meh, I didn’t understand why I have to do so much stuff that I’ll never really use, and always felt like I’m just forgetting 90% of what I was taught the moment I was done with finals for that class. Why do I need to learn Smalltalk? Why Lisp? What even is Prolog? Does anyone even do UML anymore? I want to be a C# programmer, I don’t need this.

    And it was true. From most of the languages I’ve had to go through, I don’t remember almost anything. But that’s not what it was about, and that’s something I only came to appreciate with time - it was not about learning Pharo or Prolog, it was about overcoming the initial learning curve and getting somewhat familiar with OOP or formal-logic style of languages. And while you forget the details, the familiarity will stay with you. The goal is not to make you a Prolog programmer, but to make you a programmer.

    I’ve eventually realized that I can pick up any language pretty quickly, no matter what it is - because I’ve already seen and learned all of the different styles or types of languages there are, and no matter what it is, it’s similar to something I vaguely remember seeing somewhere. And that’s an immense help. I picked that up naturally, I’ve kept hearing the question “what programmer are you? What language you can program in?”, and it felt weird - sure, I do know the most about C#, but I never had issues with picking up whatever was close at hand or needed, and writing anything I needed with a little bit of documentation and googling. And it was thanks to what I learned in school.

    And the same applies to the math and data structures that they hammer into you. Do I remember the difference between red and black tree, or a min-heap, and can I prove it? Not really, but I know they exist, and when I see a problem that sounds like it could use some obscure data-structure, it comes to my mind and I know what keywords to look up. And that’s a skill that I’ve notice is missing from most of the people who didn’t have formal CS background. Same goes for algorithms like FFT - you know it exists and what it’s used for, and seeing a problem that could use it will trigger your PTSD.

    So, I highly recommend giving college a try. You will learn a lot of cool algorithm, and some of the classes were fascinating, and it will give you a vague overview that will stay with you throughout your carreer, feeding you with keywords about stuff that might be usefull for the problem at hand. It’s the best thing I’ve done in regards to programming.




  • What would be ELI5 use case of this? It has been almost a decade since I did anything math-formal in college, and I wonder what would be some practical uses or situations is SW dev where you should turn to this language.

    EDIT: I skimmed the intro to Verifiable C, and I think I vaguely understand the idea - do I get it right, that the point is to basically create a formal definition of the function you are writing, i.e if you have a function that takes an array and sorts it, you’d have something like

    For every sequence a and every i, 0 <= i < len(F(a)) -> F(a)i < F(a)i+1

    (Or whatever would the correct formal definition be, I don’t really remember the details, I know I missed some stuff about properly defining the variables, but the idea of the definition should be kind of correct)

    And then you define this formal definiton in CoQ, then somehow convert your code into CoQ code it can accept it as F(a), and CoQ will try to proove formally that the function behavior is correct?

    So, it’s basically more robust Unit Testing that’s backed by formal math proofs?



  • I use Pixel with GrapheneOS as my phone, and I just have a separate profile that only has WhatsApp installed and nothing else. Since the profiles are completely separated, it doesn’t have access to anything else I do on the phone and it’s not running in the background (the profiles are basically sandboxed fresh slates, and switching it can be set-up to behave in a same way as basically turning off the phone as far as the profile is concerned).

    When the bridge asks me to log in again or refresh a session, I simply switch to the second profile for a minute and re-log in. I’ve heard iIt might be possible to set up an emulator and leave it running on the server, but that felt like too much effort.



  • If you want a headstart, I’d recommend looking into other kinds of languages, such as lisp, assembly, smalltalk and prolog. You will probably have classes on those in college (at least I did have mandatory ones), and it can take a while to wrap your head over such different programming styles.

    And it also helps wonders to make you into a versatile programmer - since you would be vaguely familar with most of the different styles of languages there are, picking up a any new language will be a lot faster, since it will probably be similar to one of the above mentioned.


  • Yeah, that’s my experience as well. In addition to being lazy with updating, so if some kind of supply chain attack happens, I usually sorts itself out before I get to updating :D

    But I did limit my browser extensions, after I a cause with Nano Defender taught me a lesson - it was a mildly popular anit-anti-adblock killer that worked where other adblocks were detected, but the developer sold the extension to a company that turned it into a info-stealer malware and pushed an update through chrome store, which got accepted and propagated, and some of my social network sessions got compromised. So, I just stick to more popular projects where something like this shouldn’t happen, and don’t use random extensions.






  • As far as I know the Discord bridge has some limitations, the major one being that IIRC it doesn’t atually support calls. But just for chatting across servers it has worked well for me.

    There’s also the fact that you have to either trust the project with your password (as in, the the bridfe adds a matrix bot that runs on your server, but needs your pssword), since I think it uses the web version in the background (but then you can also use it for DMs and any server), or set up a bot on the discord server you want to bridge, which obviously cant be done if you’re not an admin. It’s a foss project, but there’s always a small risk of it gping rogue.