The mind of a programmer

New Home Forum Random or Off Topic The mind of a programmer

This topic contains 39 replies, has 13 voices, and was last updated by  Don 8 months, 3 weeks ago.

Viewing 10 posts - 31 through 40 (of 40 total)
  • Author
    Posts
  • #90227

    MegaDad3D
    Participant

    I don’t know how true it may or may not be that anyone could do programming, if motivated to do it. I will say that there are a subset of people who will grab hold of a programming problem and not let go until it’s solved. The people who have that drive tend to be really good because they are self-driven to make the code work the way it should.

    I noticed the same pattern as you, @Geoffrey , when I took coding classes. The intro class was full, and most of the other students had glazed eyes looking for the “right” answer. At more advanced levels, the students seemed more focused and determined.

    When interviewing for IT work, I always ask candidates what kind of IT tasks they perform on their own. The ones who tinker tend to be driven and for the most part, quite competent and able to learn. The ones who don’t may be OK, but are more likely to need constant prodding after they start working.

    To the point, I think drive is more important than raw aptitude.

    #90229

    Jeffeb3
    Participant

    I noticed the same pattern as you, @Geoffrey , when I took coding classes. The intro class was full, and most of the other students had glazed eyes looking for the “right” answer. At more advanced levels, the students seemed more focused and determined.

    At my school the Intro to C++ was required for all engineers and engineering physicists. The later classes were mostly CS majors. So there might be more to that filtering.

    To the point, I think drive is more important than raw aptitude.

    I’ve found this to be especially true. More important than experience too (although with a lot of experience the person might be better equipped to manufacture their drive). I wish there was a good way to tell this from an interview.

    #90267

    dkj4linux
    Participant

    .. I like to work in an environment where I’m trusted to understand the problem and create solutions that work. I don’t follow orders well, and I don’t describe solutions well enough to just blindly follow. That might be the unique position for me, to not only have found a place where that works, but be able to excel at it.

    You are very fortunate, Jeffe.

    In my experience, with my career and formal education far behind me, I’ve always felt that in any company employing more than a few programmers/engineers/scientists/etc… there are always “thoroughbreds” and there are “plowhorses”.

    When I went to work with a major defense contractor after getting my degree, I became part of a large team of engineers/scientists, developing very large/complex systems for a very demanding customer. There were very specific, well-established, procedures dictated by both customer and contractor… contract specifications/requirements and, in addition, the company’s own written “guidelines and best practices”. The former were quite strict/rigid and there was no deviation without waiver… with the latter there was just a tiny bit of wiggle-room… for proven performers.

    Typically, you started as an unproven participant, on a short leash, working on the “boilerplate” of a project… and, with time and experience, you proved to your peers and your bosses that you were capable of following directions, doing the work, and more. That, in turn, led to more “glamorous”/challenging assignments… working on the more advanced parts of a project, where your creative/artistic “bent” could be applied and appreciated to a greater degree. Initially you were perceived a “plowhorse” and put on a short leash… and then you rose to “thoroughbred” status and were given a longer leash as you continued to prove yourself capable of even more.

    For many, if not most, of us older folks… this is/was a pretty typical progression. It was a process of time — shorter for some, longer for others… but a process of time nonetheless. There were relatively few true “thoroughbreds” who were lucky enough to be recognized as such and given opportunity to fully show their talent/creativity early-on in their career… the rest of us had to bide our time. This was a historically tried and true career path and only a relative few “short-circuited” it. I recognize, however, the times are changing and in our smaller, “connected” world, with the internet and all the online recruiting procedures, maybe it’s more possible than ever before.

    — David

    #90318

    Don
    Participant

    Can’t or won’t? Maybe I’m an optimist, but I think it was maybe just the wrong time or the wrong motovation or the wrong approach for those people.

    A bit of both.  Some can’t, some won’t.   Some people just struggle to break down a large task into smaller steps I think.

    HR detected in the thread! ?

    Nope, cranky overworked programmer who ended up helping with hiring, because I got tried of working with people who couldn’t do the job they were hired to do, because the guy who was hiring them isn’t a programmer, and had no way of gauging their abilities.

    May be i have too high expectations because i hire only senior developers.

    I’ve learned to lower my expectations.  I give people a quick test to see how they code, but the main purpose of it, is to see how security conscious they are.  Over the years, that was one that most people didn’t seem to learn as they went.  They could improve their programming abilities in general, but just would never get a grip on making sure stuff was secure.  I think the main issue is that people get that you shouldn’t trust user input, but they don’t understand what all should be considered user input.

    Good developer should be able to imagine how the code will work. Be able to simulate it in his mind. And predict any side effects of his change that could affect various areas of the application.

    I don’t think that they should be able to, but I think it makes them a better programmer if they can.  The only down side to it, is that then you work out everything in your head, and then you have the boring task if actually typing it out… and then it’s just not fun any more.

    I find it very frustrating to work with people who need exact specifications before starting work.

    Maybe that’s where we differ on thinking anyone can program.  Like I said above, some people just can’t seem to break down a large task into smaller steps, which is a required ability to be a programmer.  Think about reaching out to grab something off your desk.  Most people just think the task is “reach out and grab the thing”, but you have to break it down into smaller things.  First you have to rotate your shoulder to lift your arm, then you have to pivot at your elbow to extend your hand out towards the object.  Next you have to tell each of the joints of your fingers to open, then rotate your elbow again to drop your hand over the object, now instruct all the joints in your fingers to close to grasp the item, then back to the shoulder to lift the arm again, then back to the elbow to bring your hand back to you.  When we actually do it, it’s just one step “1. Grab the object”, but when you have to program it to happen, there is much more to it.

     

    #90321

    BT
    Participant

    I’ve always said that geometry proofs gave me several skills that improved my meager programming ability:

    1. How to break down things into provable (or proven) chunks.
    2. How to apply (math) logic in a systematic fashion
    3. How to deal with hand cramps (as I wrote the proof down)
    #90323

    Guffy
    Participant

    I don’t think that they should be able to, but I think it makes them a better programmer if they can.

    You see, writing a code is not a first task of a programmer )

    It’s usual case when you have work with code that had been written not by you. It can be code written by your colleague who seat aside you, it can be code written by a person who doesn’t more in the project, it can be code of third party library, etc. It can be even your own code that you was write a two years ago.

    So most important thing here is reading. You read a code and at end could understand what it does. Like a simulation, isn’t is? Ideally if you can read it with near to complete understanding not too much slower then any other usual text. And during this process “mark with red marker” weak pieces.

    #90324

    David Walling
    Participant

    Man. There’s a lot of information in this thread. I wish I had paid attention to it from the beginning.

    I’m a systems engineer/AWS architect. My company made a switch to full microservices based code using AWS resources just over a year ago. A lot of engineers are doing OK with the switch, but we’ve had quite a big turn over with engineers that just don’t understand the difference of a microservices container vs a monolithic app.

    On the infrastucture side, we’re running into having to teach systems engineers how to code. All our infrastructure is now being built in cloudformation, managed by bitbucket pipelines, and deployed through source control. The setting up of environments is scripted via user_data scripts and ansible commands.

    I was lucky in that we had some turn over in the Linux side of the infrastructure team just before the switchover, so we were able to find systems engineers with good coding backgrounds. The Windows team wasn’t so lucky and are now struggling with a few legacy engineers that are just not coping well with the new job requirements.

    I agree that programming is an art form just as much as engineering is. The ability to break a large task/job/design into it’s working parts is not something everyone can do. In art, it’s the ability to take a life form and break it into it’s basic circles/ovals/parts and then add detail until the line drawing is complete.

    I did art growing up. Pencils, pastels, charcoal… those were the things I grabbed on road trips to keep myself busy in the car. I’m also a musician. Played in school and continue now with my church. All of these things I think help enable me to look at an issue from multiple sides to discover a proper outcome.

    When we interview someone, I always ask what they do outside of work for fun. I’ve found that someone that has a lot of hobbies is eager to learn. I’m the same way. I like to dabble in everything. I might not be an expert at any one thing, but I can speak intelligently on a lot of subjects and provide examples of what I’ve done to support that information. Someone that spends all their time doing one thing, may be really good at that one thing, but might not do to well if they have to adapt. The on place where this doesn’t work out too well for me is unfortunately at work… I tend to get bored easily. My boss and I are constantly finding new projects for me to research/work on. Just doing the same coding all the time gets boring for me.

    I think that’s a good enough start for me for this post.

    #90325

    Jeffeb3
    Participant

    I mean, everyone (almost) can play basketball though, but very few could be in the NBA. Everyone can bake, but very few could be professional pastry chefs.

    Not that a professional software engineer is in the NBA, but the people in this thread have done 10,000 hours of programming, so they are at a different level than someone who’s just learning programming.

    Anyone can learn the basics, and I think they should. Coming back to the drawing topic, how many art classes did you take in school (before college)? 10?

    I just wish (and I acknowledge this is difficult and impractical) that everyone knew _some_ programming. It just seems like the stigma of programming is that the wall is just too high to climb for everyone to be able to do it. People would have a better understanding of their world, and problem solving, and there would be more devices with a programming interface. It’s hard to imagine, but it seems like such a useful thing.

    #90340

    Guffy
    Participant

    Generally, i’m agree. Like a many people can drive a car. Some of them do this as a job – drive a bus, cargo, taxi, etc. Very few could be racing pilots. And some people just couldn’t driving, so they are still pedestrians.

    The only question is proportions of similar groups in programming science.

    #90356

    Don
    Participant

    Anyone can learn the basics, and I think they should.

    There is a game called Lightbot floating around on the net, might even be a mobile game now.  It’s a good game to teach the basics.  But I’ve still had a few people who couldn’t beat the levels that required using functions.

    Coming back to the drawing topic, how many art classes did you take in school (before college)? 10?

    9 for me, no art classes in High School, so Kindergarten through 8th grade.

     

Viewing 10 posts - 31 through 40 (of 40 total)

You must be logged in to reply to this topic.