• 0 Posts
  • 10 Comments
Joined 1 year ago
cake
Cake day: June 28th, 2025

help-circle




  • Working with/on things I found interesting helped a lot. I.e. lots of small projects/scripts, using different frameworks/libraries/languages that looked interesting. Experimenting and exploring different ways things could be done. Programming is one of those “10,000 hours” things; you need to be interested in what you’re doing to do something like that for so long. Computer Science coursework helped a lot too, especially the courses heavy on algorithms, data structures, big-o, proofs, etc.

    In my CS coursework, we were exposed to many different languages and programming paradigms at the very beginning. It’s fine to experiment and start learning multiple languages at once (preferably, all being quite different, such as a pure functional language, procedural language, object-oriented, declarative logic, etc).


  • I started using it as an alternative to Octave/Matlab and Perl. Python is better at general programming than Octave/Matlab, and better syntax than Perl (IMO) while being almost as easy to do the same stuff I was using Perl for. It’s very good for quickly writing small scripts. Issues can arise on large projects/teams because of stuff like type safety, and it also has issues with performance.


  • I’ve had “success” with using them for small one-off projects where I don’t care too much about correctness, efficiency, or maintainability. I’ve tried using various AI tools (Copilot, Cursor agents, etc) for more serious projects where I do care about those things, and it was counter-productive (as studies have shown).

    Hmm, I was curious if ChatGPT still gives inefficient code when asking it to write quicksort in Python, and it still does:

    def quicksort(arr):
        if len(arr) <= 1:  # Base case
            return arr
        pivot = arr[len(arr) // 2]  # Choose middle element as pivot
        left = [x for x in arr if x < pivot]   # Elements less than pivot
        middle = [x for x in arr if x == pivot] # Elements equal to pivot
        right = [x for x in arr if x > pivot]  # Elements greater than pivot
        return quicksort(left) + middle + quicksort(right)
    

    That’s not really quicksort. I believe that has a memory complexity of O(n log n) on the average case, and O(n^2) for the worst case. If AI does stuff like this on basic, well-known algorithms, it’s likely going to do inefficient or wrong stuff in other places. If it’s writing something someone is not familiar with, they may not catch the problems/errors. If it’s writing something someone is familiar with, it’s likely faster for them to write it themselves rather than carefully review the code it generates.




  • People have different levels of “nerves” as others, and it kind of sounds like you may filtering out applicants on an arbitrary metric (how nervous a person may be in an interview). Don’t have enough information about your process to say for sure (obviously), but it may be something to think about. Interviews can be very high-stakes for some people (such as “I may become homeless”), and not for others (“my parents are rich”). After hired, it’s not necessarily as high-staked, and toy problems aren’t what SEs work on day-to-day.