Page 2 of 2 FirstFirst 12
Results 11 to 16 of 16

Thread: Your Relationship and Perception of Programming

  1. #11
    Senior Member Starjots's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Posts
    2,188
    Programmers are the closest things to wizards we have and programming is magic.

    I'm a dabbler and have dabbled which probably explains the romantic view. But in many fields if you have an idea it's programming that makes it happen.

  2. #12
    Sysop Ptah's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Location
    Chicago
    Posts
    5,164
    Quote Originally Posted by Hephaestus View Post
    This is the dream I'm pursuing at the moment with a prospective employer I'll be interviewing with early next year. I really like what they've shown regarding their culture. Checks a lot of the right boxes for me. They seem to favor the sort of person who wants to spend their time tinkering--my pitch is: I'll do this work for you, learn from it, and use my paychecks as a warchest to make my own shit.
    Hey - sincerely, I hope that pans out for you!

    Just because it's boring business crap doesn't mean I can't learn cool tricks and elevate my fluency for the fun stuff at home.
    Exactly. And it can go both ways.

    I can't count how often I've been able to dust off and slightly adapt a personal pet project and apply it as a massive head-start (if not shoe-fit) for a problem encountered at work. Need a widget for this? Let me dig into the vault. Need a sprocket for that? I happened to be chipping away at one last weekend...

    And, yeah, in the other direction, very often the nature of things (resources, etc) at work allows me to experiment in ways that would be costly, slow or even impossible to do on my own time/resources, heh.

    So, there's a beneficial feedback loop there, for sure.

    I think we've successfully debugged the conversation. It's a semantic issue. What I mean is "software engineering". The meta-landscape of how you think about code, data structures and whatnot.
    Ah. Probably my bad. Seems I misinterpreted. I believe I see what you were getting at now.

    I guess I've always thought of "programming" (the activity itself) as the most boring, albeit most necessary step of the whole creative process. If you can believe it, I actually prefer debugging to writing the first lines of code. That's a common pattern for me; I prefer editing to writing prose, for instance. Although that doesn't mean I dislike the up-front brainstorming or design -- I love that stuff. So basically, I really enjoy everything about software development except the actual programming qua typing-it-out steps. But again, I acknowledge it as strictly necessary, of course. For without the activity of programming, nothing enters reality; it all remains imaginary. Without the activity of debugging what has been programmed, nothing has been proven as viable with respect to reality, as in the nature of the machine, as in what is possible to it within causality qua reality.

    As for the meta-landscape... I suppose I should make a blog post about it, rather than prattle trying to explain myself here. That is, my mental meta-landscape about code, data, etc anchors rather directly upon (for it grew out of) my general personal paracosm and imagination-space, as an outgrowth of its cosmogeny, cosmography and temporal dynamics. Yeah, loopy-sounding, I know. Its essentially a biographical thing in nature.

    Anyhow,
    Last edited by Ptah; 12-25-2018 at 06:31 AM.

  3. #13
    Now we know... Asteroids Champion ACow's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Location
    Melbourne, Australia
    Posts
    2,752
    If someone asked me "what's programming?", purely on an emotional sort of level without giving it any thought i'd currently say something knee jerk like "the understanding of processes and the art of writing formal instructions for implementation thereof".

    I'd also be very much in the "computer science is the worst named department because programming has nothing to do with computers and it isn't science" type vein. Its a creative act, not an empirical investigation one.

    Of course, on interrogation, there's a whole host of other knowledge areas in practical programming that don't get encompassed by those ideas.

    - where the hell does "functional programming" or "object oriented programming" fall in that definition? (I accept there's no workable definition of either) What about SQL?
    - there's a whole practical issue around the fact that programming in the real world takes in a whole lot of other disciplines and practices: tools, methods, culture, subject matter. As ptah said, and I think I get exactly what he means, debugging isn't the same as writing the program: debugging almost is as close to detective work as I can think of. That being said, I can't conceive the existence of someone I would consider a good programmer who isn't a good debugger: the former implies the necessary mindset of the later in my mind.
    - I actually really get off on efficiency and algorithmic optimisation... where the hell does that fit in?
    - What about the whole language aspect of programming and going meta on programming languages themselves? Algol isn't lisp isn't java isn't javascript isn't eiffel isn't haskell. I think people who have become relatively fluent in more than one programming paradigm must be pretty heavy supporters of at least a weak sapir-worf hypothesis.

    Anyway, this was a rambling post, because its such a wide open ended question.

    If i tried to talk about how I think of good programming and good programmers at a touchy feely level, i'd say something like: Arrogant yet humble, curious, logical and deductive, structured, investigative. And the ones I actually like working with have to be open and creative as well.

  4. #14
    Meae Musae Servus Hephaestus's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Location
    Ceti Alpha V
    Posts
    13,982
    Quote Originally Posted by Starjots View Post
    Programmers are the closest things to wizards we have and programming is magic.

    I'm a dabbler and have dabbled which probably explains the romantic view. But in many fields if you have an idea it's programming that makes it happen.
    This resonates with my view--though I'd say a well rounded mathematician/engineer fits the bill too. There is magic in invention.

    The question was largely because I wondered if competence drowned out the magic. There's a few layers of magic that I perceive, and I wonder how much that awe is a shared experience among the upper echelons of skill. I'm trying to improve my theory of mind.

    The lowest level is just the ignorant astonishment of a black box of wondrous behaviors. But I think that magic is mostly novelty. Learning how something works, for some portion of the populace, means losing the magic--an idea incomprehensible to be immortalized by the Insane Clown Posse. These are the people who don't want to learn how a magic trick is done because it "spoils it" for them. For me that's the cool part. And the most valuable lesson as they expose weaknesses in attention and cognition I think worth being aware of.

    Similarly, I've never been put off learning how movie special effects are made--though I tend to be more interested in practical effects than CGI. To me, the neat thing about Disneyland is their mastery of film effects is so good they can do them right in front of you and you don't notice if you aren't looking for it.

    Quote Originally Posted by Ptah View Post
    As for the meta-landscape... I suppose I should make a blog post about it, rather than prattle trying to explain myself here. That is, my mental meta-landscape about code, data, etc anchors rather directly upon (for it grew out of) my general personal paracosm and imagination-space, as an outgrowth of its cosmogeny, cosmography and temporal dynamics. Yeah, loopy-sounding, I know. Its essentially a biographical thing in nature.
    As I said--it was a coin flip as to whether you would take the hard literal, or see the Tron.

    But I was confident that if anyone else saw the paracosmic aspect, it would be you.

    Quote Originally Posted by ACow View Post
    Its a creative act, not an empirical investigation one.
    I don't see those as mutually exclusive--and I don't think you do either.
    debugging almost is as close to detective work as I can think of.
    A little off my real target, but the juxtaposition was right there.

    I think it depends a lot, as I think you were trying to explicate, on exactly what the hell you're after. Computer science absolutely contains empirical investigation. I do it all the time to understand a new function--and when writing new functions/classes of my own. That's what makes REPL fun and engaging. You try something out, when it doesn't do what you expect, you look at what it did do, and then make changes and hone your code based on that. There's certainly a lot of creativity involved, but there's also a ton of experimentation. Creativity and experiments go together like warm bread and soft butter.

    If there were no science to it, we wouldn't have iteratively evolved up to where we are now--and new breakthroughs in computer science aren't always hardware driven, though they can be, and one can argue that some of the really clever bits came about from limitations of the hardware, but it can start to feel like arbitrariness to maintain a paradigm pretty quick.

    Or would you say that deep learning and AI aren't a scientific endeavor? Or that it wasn't computer science? How about the development of compilers and linkers? What are they then?

    Edit: I think I can understand reluctance to term it science when much of the time, you get to define the behaviors rather than discover them--but I think it takes the same skillset as your empirical experimental science to get things working, which creates the fuzziness. I'm guessing your reluctance stems from the question: "What are you discovering?" as discovery is what science is for, and the other sciences, especially the physical sciences, have more obvious, intuitive and definitive answers.

    - What about the whole language aspect of programming and going meta on programming languages themselves? Algol isn't lisp isn't java isn't javascript isn't eiffel isn't haskell. I think people who have become relatively fluent in more than one programming paradigm must be pretty heavy supporters of at least a weak sapir-worf hypothesis.
    But at the same time... Once you've learned one language, you have a strong place to start to learn another. Some problems are just more tractable in some languages, and while some of that has to do with familiarity, some of it comes from specific language features that are useful and helpful--in theory, R is more ideal for statistical work than Pascal because that's what it was built for and it has statistics friendly functions you don't have to import. But if your language is Turing complete, you can theoretically get those features. If you really wanted, you could give your version of C++ automatic garbage collection--assuming you knew how to make automatic garbage collection work.

    My current paradigm is to see the code as all just nodes and edges on a tree--but that's just one high level perspective that helps me keep my thinking usefully modular. But in the end, it's all got to find it's way to the same sort of hardware patterns. They all reduce to an assembly instruction set, it's just some of them lend themselves to certain shapes more readily than others.

    It's a little bit like recursive vs iterative. Some problems have more obvious recursive solutions than others, and every now and then, the recursive solution is just so much easier to see than the iterative, that even knowing all recursive solutions are just setting up an iterative solution, but more fragile because of the overhead, I can't help but go for them because... they're right there.

    I do find it interesting that learning multiple languages is so useful for discovering new meta of programming languages in general, and to that extent, yes, I can see how one might interpret that as support for Sapir-Whorf--but on the null hypothesis end, it could just be from the exercise of comparison and contrast. The act of seeing how different approaches result in the same conclusion results in a more meta understanding of how they all work, and that understanding comes not from any particular revelation of the language, but from extracting the core of what the languages were doing, albeit with different syntax. Being forced to see how things that look different are the same changes what you see the things as being.

    I think the only way to resolve that question would be through a massive set of testing on novice programmers. We'd need a list of maybe half a dozen languages that are deemed very different idiomatically. For that we can start with trained programmers who can spend some time reflecting on what lessons they learned from learning new languages and which languages they think they learned the lessons from learning. (Gah. That feels like dialog from the Matrix Sequels or the Star Wars Prequels.) Then we can take a bunch of novices, separate them into groups and have each group learn all the languages in the set, but in a different order, reflecting on what they learned and note which language they apparently learned it from. If there is sufficient parity in that for some meta-concept "A" that most students discovered, and most of them learned from the same language regardless of what order they took it up, then I'd say that was solid support for Sapir-Whorf.

    It might be an excellent way to test the hypothesis as it's massively easier to teach programming languages than it is natural languages. But there are a ton of variables that are awful wobbly and tricksy. For example, how to be sure our student body had the potential to uncover those meta-concepts? And does it matter if the concepts are transmitted rather than uncovered? Intuitively, time spent using the language would have a non-trivial effect as well, and how to account for aptitude? And which aptitudes do we need to account for? General programming is a good one, but does having aptitude for software development entail an aptitude for these sorts of meta-insights?

    That last one I personally believe the answer is "no". I had a conversation with my dad last night where he mentioned something about finding it strange when he met people teaching programming who had never discovered the wonder and awe of the discipline. It was a pretty amazing conversation that was hard to follow at times because apparently, how we talk about this stuff has changed a lot over the last few decades and I had to do a fair bit of testing my comprehension to get the words to line up. It was nice to see his mind come ablaze again.

    It also reminded me my Grace Hopper number is 2.
    Last edited by Hephaestus; 12-26-2018 at 08:29 AM.
    People think they understand their own mortality, even when that understanding has just changed.

    --Meditations on Uncertainty Vol ξ(x)

  5. #15
    Faster. Than. Ever. Sloth's Avatar
    Type
    INTP
    Join Date
    May 2014
    Location
    Somewhere, I'm sure.
    Posts
    2,430
    Quote Originally Posted by Hephaestus View Post
    I can relate! Though it sounds like the part you stumbled over was the psuedo-random part. Technically () you did make a psuedo-random table, you just failed to insert a source of entropy.
    Haha! It was just like that.

    One of our very first assignments was to make a program that was a random number generator (and as you said before, making a program that spits out text is a lot simpler) That was a very easy program to make, and the code for it was actually quite short (so was the random color generator when it was coded correctly, actually).

    So the random color generator, as I said before, was part of our baby steps into programming GUI stuff, and to make this as painless as possible this assignment was intended to be a throw back to the random number generator with a few extra things thrown in. My manually entered hex code was one way to tell it to spit out colors, as you said, but the idea was for the program to spit out a number 0 - 255 and then take that value and assign it to one of the 256 colors in the 256 color bit thing. Every time you hit the spacebar it was supposed to turn the whole screen a random color. It was getting the random number to assign to the colors that was the step that eluded me for some reason.

    Also I remembered what language we learned, BASIC. Which after some googling makes sense why we would learn that in an intro class.

  6. #16
    Meae Musae Servus Hephaestus's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Location
    Ceti Alpha V
    Posts
    13,982
    Quote Originally Posted by Sloth View Post
    (and as you said before, making a program that spits out text is a lot simpler)
    Caveat: until you get to the hard stuff. Computational Biology can get pretty intense--RNA folding is string manipulation! It was the most interesting subject I ever took that left me struggling to stay awake in class. I think it might have just been because it was right after lunch and in the spring, so my body was saying "NAPTIME!" while I was having my mind blown learning about DNA and RNA and how it all works.

    I think the next big evolution in programming beyond parallel processing is going to be multi-use encoding.

    DNA has some parallels to computer code, but one of the things it has over our code is that the same stretch of a DNA strand might be used to do a dozen different things depending on where your start codon is.

    Imagine having code where you have your code file, and what a function does depends on where you claim the start point for the function is. If you start from line 11, it runs to line 200 and does one thing. If you start from line 10, it runs to line 15 and does something completely different--and if you start from line 200 and work backward, it continues to the beginning of the file and does something else.

    That's genetic code in a nutshell. It's incredible.
    People think they understand their own mortality, even when that understanding has just changed.

    --Meditations on Uncertainty Vol ξ(x)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •