What type of coder are you?

You must be logged in to create new topics.

What type of coder are you?

  • Profile photo of Pierce Harper
    Pierce Harper

    What language is you favorite and why? What are some cool things you have made?

    Personally I enjoy C/C++ and other low level languages. However recently I have developed a lot of respect for F# and other functional languages.
    The coolest thing I have made so far would have to be a program sandbox which also measures IO and makes a signature based off of it and compares it to known malware. It’s not done, but it should make a pretty cool antimalware program when I finish it.

    You must be logged in to reply to this topic.

  • Profile photo of Brendan Clougherty
    Brendan Clougherty

    My favorite language that I’ve done anything significant with is Objective-C. I’m currently interested in Go, but haven’t had a chance to use it for anything real.

     

    I once built a PHP application to build and track characters for 3rd edition D&D – some friends and I built a gaming table and intended to integrate some linux-based touchscreen computers running this software, but never quite got everything all in one place at the same time.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Johnathan Franck
    Johnathan Franck

    I enjoy Matlab. Once you learn all the tricks, you can do a lot of neat things without loops. It also has fantastic libraries and resources for anything mathematical.

    I’ve made a strawberry detector/locater for a robotic harvester and a facial recognition program in Matlab.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Stoyan Stoyanov
    Stoyan Stoyanov

    I work primarily with C++, but I like to dabble in Haskell every once in a while because I’m drawn to the elegance of the language and its powerful concurrency facilities.

     

    I developed a C++11 Python embedding library and used it to implement an Artificial Intelligence API for game and film simulations. The behaviour of the AI agents had to be configured with Python scripts which was the most challenging aspect of the project.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of David Kinghorn
    David Kinghorn

    IMHO, this question is completely off base.

    Languages are just tools. It’s like asking carpenters “which brand of tools do you like the most”. A better question is “what kinds of things do you enjoy building – bridges, houses, furniture, etc”.

    For coders, this translates into what you enjoy coding. My somewhat off the cuff examples follow.

    1. The designer/developer. A designer/developer has almost certainly doodled all their life. They may have a computer science major but decided they would rather make cool looking games, websites, apps, etc. Or they may have went to art school or have a degree in industrial design but decided that they could make more money doing software, so they learned just enough programming to get by. Either way, a very good designer/developer is indispensable to most user facing projects. Main languages include javascript, C#, objective C, and java, depending on what platform you are working on.

    2. The deployer/debugger. A deployer/debugger enjoys working with projects that are already deployed in the field. They read logs and customer complaints to find bugs, and fix them. They deploy updates in an orderly fashion, sometime at 2am on a Saturday. They work with customers, product support people, the QA team, and the original development team to keep the product in tip top condition. They may have a computer science degree, or may be a systems administrator that has learned just enough coding to find and fix bugs. Main languages include java, C, C++, C#.

    3. The architect/core developer. The architect/core developer is most at home with the core data model and application code that interacts with it. They either have a computer science degree or equivalent work experience. A good architect/core developer can work well with all other coders as well as everyone else in an organization from marketing to customer service. In a pinch, they can help out with any other type of coding, though they are not as efficient as in core development. Main languages include java, C#, javascript, python.

    4. The efficiency expert. The efficiency expert knows how to squeeze every last bit from an algorithm, even if the result is completely unreadable code. This could involve optimizing anything from algorithm complexity to memory or battery usage. Main languages include C, C++, Assembly.

    5. The prototyper. The prototyper creates products that look good in a demo, but break immediately under real world use. They are great for helping others within an organize understand what they want the product to be, but all too often, the prototype is converted into an actual product with disastrous results. Main languages include php, ruby on rails, python, and javascript.

    6. The specialist. Whether you are dealing with compilers, artificial intelligence, or big data, the specialist is always helpful. However, they often understand only the specific problem and not how to design general purpose software. Main languages vary all over the place, from lisp to python to R or matlab.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Not Required
    Not Required

    @david

    While breaking down programmers like you have is generally reasonable, it’s not a great way to talk about languages. Like you said, languages are tools. To use your analogy of “what things do you enjoy building,” it is like you are saying that people who build bridges use hammers and people who build houses use saws.

     

    For example, the “deployer/debugger” person will use whatever languages the project was built with. If the deployed application was built with PHP, you aren’t going to use Java or C to find and fix bugs.

     

    Some languages are great for developer productivity. Others are great for raw speed. Some are good for statistics, others are good for determining the visual layout of content. Some languages are good for a particular job simply because they are well known and hiring developers is one of the key problems facing the team. Some languages work well with Linux; some don’t. Some languages are great for server-side programming. Some languages are great for mobile devices with severe power constraints.

     

    I also take issue with your section on “the prototyper.” There are prototypes. And sometimes people fail to make the leap from proof-of-concept to real product. But this is a type of project, not really a type of developer.

     

    Finally, Ruby on Rails isn’t a language; it is a framework. The language is Ruby. You seem to be implying that it is only good for prototypes. That’s clearly not true. Many people have built million-dollar (and a few billion-dollar) companies selling or running software built with Ruby on Rails.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of David Kinghorn
    David Kinghorn

    Thanks for the response and sorry for the delay. I agree with 99% of what you said.

    Per the general topic, I think that saying which language you like is not really the complete answer of the topic which was “what type of coder are you”. Though my answer wasn’t complete either. I feel a more complete answer would be “what type of projects/roles do you like work on and what languages do you think are best for which projects/roles”. Maybe this is just semantics but the fact that people before me just listed languages and not a kind of project or role in them speaks volumes IMHO.

    You’re right that ruby is used for a lot more things than I mentioned – I just haven’t used it as much so it didn’t spring to mind as much. It can also be used for someone who is deploying lots of software as a scripting language or for someone working on web UI or for talking to databases and having a cloud API.

    As far as the prototyper I described, I feel that it definitely describes a certain set of people/roles, but perhaps I misnamed it. Perhaps “cowboy coder” would be a better description. These are mostly people working on projects that may never see the light of day (ie actual users), so they code first and ask questions later, or not at all. This can be either at startups or at universities or research labs, usually as proof of concepts. My current project was started in such a way, but as it was more evidenced that the project would see the light of day, I put in the effort to rewrite it to the quality standards of a real project rather than a proof of concept. The problem is that many people who start writing code this way don’t bother to rewrite it later, and leave the job to future employees.

    Of course as a member of a small startup, you will likely to wear many of these hats and deal with many different languages. In my current startup, I’ve spent time in almost all of these roles, and several languages including javascript, java, c++, and C#, though I’m most happy dealing with APIs and databases, rather than high level ux or low level drivers.

    You must be logged in to reply to this topic.

    • You must be logged in to reply to this topic.

      Profile photo of Not Required
      Not Required

      I agree. Just coming at the question from different perspectives.

      You must be logged in to reply to this topic.

      • You must be logged in to reply to this topic.

    Profile photo of Tom Utley
    Tom Utley

    Coding isn’t my real job, it’s just a hobby. Therefore I’m a cowboy/prototyper. My real job is solution architecture, integration, and sales. I have to be able to translate from developer to customer, and that is not easy, lol!

    That being said, I love NodeJS and the community surrounding it. I hadn’t programmed anything in years until I saw a video about Node and decided to teach myself. Since then I’ve learned and used all the parts of the ecosystem including Github, Bootstrap, frameworks (Express), Client frameworks (Angular, Ember), MongoDB, and so on. I think it is extremely fun and very interesting.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Roger Browne
    Roger Browne

    I spent 15 years working with Eiffel, a language where sources of bugs are “designed out” as far as possible. In the Eiffel world, if you need a “debugger” for your project, you’ve done it wrong.

    Unfortunately, Eiffel failed to gain traction in the marketplace for various other valid reasons.

    But yes, language does matter.

    Nowadays I code in PHP, not because it’s a great language (it isn’t), but because it’s ubiquitous where my software is deployed.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Jeffrey Creem
    Jeffrey Creem

    Ada, Python, a little C from time to time. Ada (particularly the 2012 revision) shares some of the same goals (and to a lesser extent a similar fate) to Eiffel.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Brian McCullough
    Brian McCullough

    Wow.  This discussion has veered wildly in all sorts of directions.

     

    Years ago, I used to say that there were two types of programmers; Developers and Maintenance Programmers.

    The definitions that I used to use were that Developers were those ones that were described as being hidden in the basement, with the mushrooms, but, more importantly, worked in a straight line, on a single topic or project, and single-mindedly proceeded from the start to the finish.  If you distract them with anything, they are prone to shiny-object syndrome.

    Maintenance programmers are much more capable of keeping multiple balls in the air, multi-tracking their ways through multiple projects and simultaneous tasks, and being able to handle “emergency” interruptions without losing track of everything else.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Brian McCullough
    Brian McCullough

    Answering in the direction that seems to be common, here, however.

    I used to tell people that my mother tongue was PL/1, which explains a lot.  Unfortunately, not many people seem to remember PL/1, which was a language intended to be, and to some extent was, all things to all people.

    More specifically, it was intended to take over the business programming provided by COBOL, as well as the scientific programming provided by FORTRAN.

    Since then, I have done Assembler, C, C++, … and currently do work in PHP, Java, Perl and various other languages, depending on the need and existing environment.  As I also used to say, after the first dozen languages, the next one wasn’t that big a deal.

    These days, I have specialized in “Communications and Databases,” which means, in today’s world, that I do a lot of web-site back ends.  “I don’t do graphics, I just make it work.”

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Michael Brown
    Michael Brown

    Yeah so I fit into precisely none of the above categories.  I generally code in two different styles 1) Whatever way make me most likely to keep my job continue my mortgage payments and 2) hacking around for fun/learning.  Recently I have added to that 3) As fast as I possibly can since I’m the only member of the programming team in a small startup.  I have written C SCSI drivers, Java desktop apps, PHP websites, C & C++ command line applications (woo hoo), Ruby (on rails) web applications, Javascript (supporting both PHP and Ruby projects).  I once got defeated as a maintenance coder by a project that was written as a Korn shell script, that launched a C program with a Motif GUI, which then used Korn shell scripts to execute all of it’s critical functions, mostly by calling a third party C program (with a Motif GUI).  I believe the person that wrote that program was the final type of coder: The A**hat 😉

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Matthew Copple
    Matthew Copple

    I am a mainframe programmer in the financial industry, primarily developing ETL solutions to convert new customers on to our platform. At work, I use COBOL almost exclusively, and though I was very skeptical when I started working with it, I’ve discovered I really like it. Most of previous career was on Unix (Solaris) and Linux, where I almost exclusively used scripting languages, especially perl (which I still have a fondness for). Since then, however, I’ve branched out to Python and PHP, and have been eyeing Ruby for some hobby projects at home.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Jon Kalb
    Jon Kalb

    I’m all in on C++. Although I’m a full time software engineer, I spend almost as much time on C++ community development, lecturing, and training as I do programming. I’m active with my local C++ user group (ACCU Silicon Valley) and run the C++ track at Silicon Valley Code Camp and chair two week-long C++ conferences, C++Now in Aspen, Colorado and CppCon in Bellevue, Washington.

    As I said, I’m all about C++. It supports very high level abstractions without giving up the kind of control and performance that once expects of portable assembler. Of course this comes at a non-trivial cost of complexity. Although I love C++, I never recommend it to hobbyists. Understanding C++ requires a level of commitment that only makes sense for professionals.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Martin Brock
    Martin Brock

    I also like C++, but I’m too old to call it a “low level language”. In my day, only assembly languages were “low level”.

    I don’t write much code in C++ anymore. At work, I primarily use C#, but Javascript is my favorite language these days. I’ve adopted Chrome OS as my personal computing platform, so I code mostly for the browser outside of my day job. I use Python for server side code, but I’ll switch to Java for my next project. I’ve used C#/ASP.Net, but Microsoft’s web development platform is too costly with no commensurate benefits.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Propertea
    Propertea

    After awhile of using Java for android, going back to Python has been quite a relief.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Jon Kalb
    Jon Kalb

    For those that might be interested in C++, I was just interviewed on a new C++ podcast and I shared my take on the state of C++:

    http://cppcast.com/2015/01/jon-kalb-loves-the-cpp-community/

    Jon

     

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Darrin Dickey
    Darrin Dickey

    I’m a front-end developer by day, but I’ve done both front and back-end work. I’ve worked with WordPress, Joomla, SharePoint (Yuck!) as well as building with C#, PHP, Ruby and (currently) AngularJS. Will probably be working with ReactJS before long as well. I’ve also played around with Cocoas2d and IOS, just for fun.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Gary Bendall
    Gary Bendall

    I hear alot of people say C/C++ is their favorite. I am currently self teaching python and I am really enjoying it. I do not have much programming background though but I hope to have a decent background soon.

    You must be logged in to reply to this topic.

  • You must be logged in to reply to this topic.

    Profile photo of Jon Kalb
    Jon Kalb

    As I said before, I’m a C++ guy, but in October/November it looks like I’ll be working on a Django project. I’m pretty comfortable with Python, but Django is new to me.

    You must be logged in to reply to this topic.

    • You must be logged in to reply to this topic.

      Profile photo of go1dfish
      go1dfish

      It’s been quite a few years since I’ve used it (I mostly do client side Ember.js these days) but Django is the best server side web framework I’ve ever had the pleasure to use.  Very well thought out holistic experience.

      You must be logged in to reply to this topic.

      • You must be logged in to reply to this topic.

        Profile photo of Jon Kalb
        Jon Kalb

        Good to know.

        You must be logged in to reply to this topic.

        • You must be logged in to reply to this topic.

You must be logged in to reply to this topic.