(Topic ID: 284953)

Software development hangout

By skink91

3 years ago


Topic Heartbeat

Topic Stats

  • 77 posts
  • 19 Pinsiders participating
  • Latest reply 3 years ago by skink91
  • Topic is favorited by 8 Pinsiders

You

Linked Games

No games have been linked to this topic.

    Topic poll

    “Software development hangout”

    • I do software work. 19 votes
      63%
    • I don’t work on software (but this is interesting) 7 votes
      23%
    • Nerds! (I’m out of here... losers) 4 votes
      13%

    (30 votes)

    There are 77 posts in this topic. You are on page 1 of 2.
    #1 3 years ago

    Chatting about software... to free other threads from our “boring” discussion!

    #2 3 years ago

    So to carry on the conversation I am trying to move out of a different thread: what is the difference between a software-engineer and a programmer/coder? I personally don’t believe there is such a separation.

    IMHO: the idea of software-engineering was created by academia to create an imaginary specialty.

    (and yes, I did just make an inflammatory statement to try and elicit outrage responses)

    #3 3 years ago
    Quoted from skink91:

    what is the difference between a software-engineer and a programmer/coder?

    I think a coder still lives at home, while an engineer lives by himself?

    I am a Network Administrator, so all of this "software language" is gibberish to me.

    I believe most people think my job is to "make the internet work"..... Lol

    #4 3 years ago
    Quoted from ralphwiggum:

    I believe most people think my job is to "make the internet work"

    Isn’t it?

    #5 3 years ago

    No difference between software engineer and coder/programmer. Synonymous in my book and I’m one of them or at least used to be Being an R&D director now has removed from day to day coding but I still manage a large group of engineers/coders/programmers!

    #6 3 years ago
    Quoted from Vitty:

    Being an R&D director now has removed from day to day coding

    Do you miss it? I have never wanted to make that transition myself... but know several dev/friends who have been ‘forced’ to do so as well as several who enjoy that side of it.

    -1
    #7 3 years ago

    While there might be little difference between the job responsibilities of a coder/programmer and a software engineer. I will just point out that in order to use the term "engineer", legally, that person will need to licensed. In order to get licensed, depending on what state that person is located in, they will have to have 4 year engineering degree from an accredited university, pass a nationally recognized test to prove that they have the required knowledge and skills and have 4 years of experience under another licensed engineer. That person can then purchase a stamp, used for sealing drawings or other documents, proving that the product is safe for use by the public and performs the functions that it was designed to perform. You can read more about becoming a professional engineer at this website below. The required test provided is called "computer engineering" by the people that create the test for national purposes.
    See this website: www.ncees.com

    #8 3 years ago
    Quoted from Dent00:

    While there might be little difference between the job responsibilities of a coder/programmer and a software engineer. I will just point out that in order to use the term "engineer", legally, that person will need to licensed. In order to get licensed, depending on what state that person is located in, they will have to have 4 year engineering degree from an accredited university, pass a nationally recognized test to prove that they have the required knowledge and skills and have 4 years of experience under another licensed engineer. That person can then purchase a stamp, used for sealing drawings or other documents, proving that the product is safe for use by the public and performs the functions that it was designed to perform. You can read more about becoming a professional engineer at this website below. The required test provided is called "computer engineering" by the people that create the test for national purposes.
    See this website: www.ncees.com

    With all due respect: I think this sort of licensure / certification is complete bunk. Nothing but a power structure that serves zero purpose. Also, never seen any “legal” requirements about using the term engineer.

    “Proving” a product is safe has nothing to do with whatever seal you are mentioning, it has to do with processes applied to the product. No agency will recognize a ‘stamp’ as proof of anything. Period.

    #9 3 years ago

    I don't want to create an argument here, but I will just point out that every state is the USA has board of registration for engineers. The board has people employed to search out people that use the term "engineer" in their title, without being licensed. If a person is performing engineering services and says that they are licensed, when they are not, that person can be fined and such, by this state authorized board. All it takes is one person to file a complaint with the board, for most anything. Most states have a monthly meeting where people that are cited, to determine what the fine or other punishment will be.

    #10 3 years ago

    Why not create an argument? What’s wrong with it? I think they are productive.

    That being said, I think you are conflating two ideas: licensure granting usage of the (rather meaningless IMHO) term “Professional Engineer” and the use of the term engineer.

    It is about as big a deal as being able to legally call something Kentucky Straight Bourbon.

    #11 3 years ago
    Quoted from Dent00:

    I don't want to create an argument here, but I will just point out that every state is the USA has board of registration for engineers. The board has people employed to search out people that use the term "engineer" in their title, without being licensed. If a person is performing engineering services and says that they are licensed, when they are not, that person can be fined and such, by this state authorized board. All it takes is one person to file a complaint with the board, for most anything. Most states have a monthly meeting where people that are cited, to determine what the fine or other punishment will be.

    There is a difference between saying you are an Engineer, and saying you are a PE (Professional Engineer), I know for EE (my degree), we were not really encouraged to take the EIT test, but all my friends in Civil Engineering were since it was needed for official sign offs on construction projects.

    #12 3 years ago

    Exactly... A licensed engineer can stamp drawings and documents to prove that the design is safe for public use and will perform the functions that it was designed to do. A licensed engineer must take an oath to that effect to become licensed and comply with moral and ethical standards as well. The engineer then becomes "responsible" for that design, after he has stamped it, if there are any issues found later. The responsible engineer is also required to have direct involvement in the design and implementation of the design. The same type of licensure is required for a doctor, lawyer or CPA, for instance.

    #13 3 years ago
    Quoted from Dent00:

    Exactly... A licensed engineer can stamp drawings and documents to prove that the design is safe for public use and will perform the functions that it was designed to do. A licensed engineer must take an oath to that effect to become licensed and comply with moral and ethical standards as well. The engineer then becomes "responsible" for that design, after he has stamped it, if there are any issues found later. The responsible engineer is also required to have direct involvement in the design and implementation of the design. The same type of licensure is required for a doctor, lawyer or CPA, for instance.

    Sounds like something that you have personal investment in. I can appreciate that.

    I will also reiterate that (especially given the OP) it is meaningless/bunk with regard to software. And to be honest, I am unconvinced that any type of engineering licensure has the value you attribute to it. But that is just my opinion.

    #14 3 years ago

    One of the things I have found fortunate (for myself) was the large demand in so many different industries for software - what industries/projects are you all working on software in?

    #15 3 years ago
    Quoted from skink91:

    And to be honest, I am unconvinced that any type of engineering licensure has the value you attribute to it.

    Just do a quick check on the pay scale for a coder/programmer vs. a licensed engineer and I think you will see the value. Computer engineering is a relatively new specialty in electrical engineering, but it does exist.

    #16 3 years ago
    Quoted from Dent00:

    Just do a quick check on the pay scale for a coder/programmer vs. a licensed engineer and I think you will see the value. Computer engineering is a relatively new specialty in electrical engineering, but it does exist.

    The fact that you are talking about computer engineering in a software thread leads me to believe you aren’t sure what it is. Sorry man, but computer engineering isn’t new... it has been around for a long time. Also, FWIW... I can tell you that any engineers that are relying on licenses/certs are making nowhere near what I am. Just the facts, fair or not.

    #17 3 years ago
    Quoted from skink91:

    So to carry on the conversation I am trying to move out of a different thread: what is the difference between a software-engineer and a programmer/coder? I personally don’t believe there is such a separation.
    IMHO: the idea of software-engineering was created by academia to create an imaginary specialty.
    (and yes, I did just make an inflammatory statement to try and elicit outrage responses)

    To bring it back to academia, there are differences between Computer Science and Software Engineering, however in my experience there were many shared fundamental courses in either program. Comp Sci seemed to be more math and theory heavy vs design and practical application in Software Engineering. In terms of the real world most jobs are about your experience and what you know so it doesn't really matter where you accrued that knowledge.

    And aside from the already mentioned professional "engineer" label if you really want a create a distinction between a software engineer and a coder I would say a software engineer has the knowledge to design all of the data structures and nuts and bolts whereas a coder is more so putting the rubber to the road.

    #18 3 years ago

    I guess I am just old school. Electrical engineering used to include a specialty referred to as "Digital Design and Computing Systems" and was a part of electrical engineering. The area has become so large and important that a new test was created outside of normal electrical engineering skills to cover only "computer engineering" and a separate license called "computer engineer" was created. Those computer skills are now removed from the normal electrical engineering test. I guess it has been in the last 10 years or so, but I am not sure on the time frame. Just to give you an idea, when I was in school, we used batch processing on an IBM mainframe with punched cards. Fortran was the language of choice for engineers. Terminals were just an idea. Now we have the internet and stuff.

    #19 3 years ago
    Quoted from Smack:

    In terms of the real world most jobs are about your experience and what you know so it doesn't really matter where you accrued that knowledge.
    And aside from the already mentioned professional "engineer" label if you really want a create a distinction between a software engineer and a coder I would say a software engineer has the knowledge to design all of the data structures and nuts and bolts whereas a coder is more so putting the rubber to the road.

    My degree was CompSci. Totally agree about the ‘where you accrued the knowledge’ piece (worked with so many people with advanced degrees that brought less to the table than those without that my personal valuation of them is not very high.)

    Specialties/expertise are critical on a team... though I have always viewed people as dynamic tools too (i.e. they can learn new skills, but how quickly vs. project time-table. etc) I personally believe people either become software developers that are capable of doing all possible design work, or they should possibly follow a different career path.

    #20 3 years ago
    Quoted from Dent00:

    Those computer skills are now removed from the normal electrical engineering test. I guess it has been in the last 10 years or so, but I am not sure on the time frame. Just to give you an idea, when I was in school, we used batch processing on an IBM mainframe with punched cards. Fortran was the language of choice for engineers. Terminals were just an idea. Now we have the internet and stuff.

    I’m almost 50, but computer-engineering was definitely a thing in the 80s (that’s almost 40 years ago now).

    My graduating class (1995) was the last one at my school that had mandatory Fortran, LISP, and COBOL classes. It may have even been the first that had TCP/IP network discussion along with the previous network topology discussions. Point being, we work in technology so we end up becoming outdated the same way our expertise does. Like a ‘live by the sword...’ sort of deal.

    #21 3 years ago

    Hey! Glad this thread was created.

    Quoted from Smack:

    And aside from the already mentioned professional "engineer" label if you really want a create a distinction between a software engineer and a coder I would say a software engineer has the knowledge to design all of the data structures and nuts and bolts whereas a coder is more so putting the rubber to the road.

    I tend to draw the same lines.
    ------

    I'm a degreed computer science graduate, but then went back to school for a MBA later on. I've probably been programming since I was about 12, so about 21 years (yeesh), and I still do it mostly every day, and I wouldn't trade it for anything.

    I of course decided to mix that with hobbies like pinball and do a lot of consulting for products you may have in your home:
    1. Rick and Morty - Mostly working on parts of the video subsystem/lower level framework stuff
    2. TNA - Operating system, field update/package management
    3. Kingpin - Emulation of Capcom 68000 hardware (C++) with a custom hooks into python to script and trigger things quickly and easily
    4. Titan Pinball - Wrote their kits database integration and a lot of their eCommerce backend functionality
    5. Pinball Circus - Mostly in C, runs on the original Americas Most Haunted board system, but did all the code that is currently on the remake
    6. Twilight Zone Backboard Display - Mostly in C++, incorporates hardware and software to trigger videos and animations based on what the game is doing (fully interactive)
    7. P3 - I did a game for the Multimorphic P3 which was mostly in Unity/C#. Also did a lot of the operating system innards for the platform itself.
    8. Demolition Man 2000 - I did a custom cabinet/rendition of Demolition Man that converts it into a Pinball 2000 style game. Mostly uses an assortment of Python/C++ for time-critical code with SDL2/KMS as the graphics backend.
    9. Wizard Blocks - Built Wizard Blocks, that code was mostly in Unity3D/C#, but the hardware firmware on the first few whitewoods was all in C++.

    I'm probably missing a few, but I will tell you, working on such a wide array of projects has allowed me to bring back SO MUCH to my "day job", and that's what's great about this field, you can apply it to tons of different verticals and mutually benefit.

    -- Jimmy

    #22 3 years ago
    Quoted from Compy:

    I of course decided to mix that with hobbies like pinball and do a lot of consulting for products you may have in your home:

    So YOU are one of the chosen few software people who actually get to code in the pin industry. Well-played sir... I am definitely jealous!

    Quoted from Compy:

    I still do it mostly every day, and I wouldn't trade it for anything.

    I feel the same. Every day I wake up feeling like the luckiest guy in the world. Kind of like growing up and realizing you get paid to play/build with legos for a job (albeit virtual ones!)

    #23 3 years ago
    Quoted from skink91:

    So YOU are one of the chosen few software people who actually get to code in the pin industry. Well-played sir... I am definitely jealous!

    I feel the same. Every day I wake up feeling like the luckiest guy in the world. Kind of like growing up and realizing you get paid to play/build with legos for a job (albeit virtual ones!)

    I'm insanely lucky! However I will tell you, if you want to dabble in pinball programming, get a P-ROC and toss it into a WPC game and write some custom rules in Python. You've got to start from the ground up, but damn is it fun when your game flips for the first time. The board will handle all the realtime aspects, and you just connect a computer to it via USB and send it commands (it also receives switch events and there's a python game framework). This was actually what started all of the madness mentioned above.

    #24 3 years ago
    Quoted from Compy:

    7. P3 - I did a game for the Multimorphic P3 which was mostly in Unity/C#. Also did a lot of the operating system innards for the platform itself.

    Quoted from Compy:

    9. Wizard Blocks - Built Wizard Blocks, that code was mostly in Unity3D/C#, but the hardware firmware on the first few whitewoods was all in C++.

    Interested in hearing more about the C# work...

    #25 3 years ago

    I have found it very interesting how many software people (I am including DBAs, devs, IT, analysts, etc.) are really into pinball. Wonder if it is the physical aspect of it vs. purely ‘virtual’ nature?

    #26 3 years ago
    Quoted from skink91:

    I have found it very interesting how many software people (I am including DBAs, devs, IT, analysts, etc.) are really into pinball. Wonder if it is the physical aspect of it vs. purely ‘virtual’ nature?

    It's how we are wired .. math, music, IT, Pinball... Everything we look at is systematic, cyclical, and cause and effect.

    We tend to approach things in our everyday lives the same way, we see something broken, and it is our nature to understand the why and tackle it ourselves.

    Good news for us is Pinball gets broken a lot, and it is just really fun to play when we fix it...

    #27 3 years ago
    Quoted from skink91:

    Interested in hearing more about the C# work...

    Sure!

    Regarding the Wizard Blocks, I ported the PyProcGame framework from Python to C# in nearly its entirety. It has a native C++ wrapper that Adam Preble wrote that talks to libpinproc (as a DLL or so depending on your platform), so all of the game specific junk happens in C# land. Wizard Blocks incorporates this ported framework (NetProcGame) into Unity3D as a script (or series of scripts). The hardware control layer happens in a different thread, and there's a message queue to pass messages back and forth to the Unity thread. The Unity thread listens for commands that can change scenes, manipulate objects, run text animations, etc. The game thread manages handling all the switch events, keeping track of modes, telling the UI thread to change scenes, etc. We separate these so the hardware loop can run much faster and not be constrained by the 30/60fps timing for the displays (or vice versa). Being a pinball 2000 game, we apply an inversion to the root scene so that the projection looks right side up on the glass.

    Regarding the P3, they have a full Unity3d template game/framework that uses NetProcGame (or portions thereof) under the hood, so the premise is the same, but since they can detect where the ball is at any given time, the ball is represented in the Unity scene graph as its own collidable object. It's pretty cool, and you can do some fun physics manipulation in Unity3D as a result. Though my game for the P3 was a much simpler game, it was a Pitch and Bat called Grand Slam Rally (similar to Slugfest), but the game had scoops that would pop up and catch your ball for an "out", and we used a playfield module with 5 different scoops behind the "out scoops" I mentioned that were capable of pitching the ball at different speeds/angles. It was fun to work on.

    -- Jimmy

    #28 3 years ago

    I'm a software architect and project manager. I recently joined a telehealth company who had a bunch of coders that I replaced with engineers.

    To me the main difference between a coder and an engineer is how engineers think of software a whole where coders execute the tasks they are assigned without necessarily seeing the big picture.

    The most visible aspect in a distributed architecture was the redundancy of the code case, the lack of common APIs although they were serving the same endpoints and an overall lack of care for performance.

    I would love to start coding on the P3 platform, unfortunately I'm a terrible handyman so I don't plan on building from scratch, but I would surely like to find a plug and play hardware for a start.

    #29 3 years ago
    Quoted from adol75:

    To me the main difference between a coder and an engineer is how engineers think of software a whole where coders execute the tasks they are assigned without necessarily seeing the big picture.

    This distinction is spot on. The part I might disagree with (perhaps, not sure if you are saying this or not) is saying coder/engineer as if coder is something that means something different than ‘bad developer’ or perhaps more kindly just ‘junior developer’.

    To me, no developer should not be on a path to team lead / architect... if they aren’t they should be looking at other non-dev roles.

    #30 3 years ago

    That may sound a bit more elitist than I intended. What I mean by ‘path to team-lead’ is personal improvement and trending toward excellence in the work and design... to the point where you can hack it, not that you have to actually BE the lead.

    #31 3 years ago
    Quoted from skink91:

    I’m almost 50, but computer-engineering was definitely a thing in the 80s (that’s almost 40 years ago now).
    My graduating class (1995) was the last one at my school that had mandatory Fortran, LISP, and COBOL classes. It may have even been the first that had TCP/IP network discussion along with the previous network topology discussions. Point being, we work in technology so we end up becoming outdated the same way our expertise does. Like a ‘live by the sword...’ sort of deal.

    I graduated in 1985 and my senior design project was using a brand new language called "Forth", which was the predecessor to C and C+. I thought I was cutting edge. I have a great deal of experience with assembly language programming on the 8085. Not much use these days. I was determined to avoid the 6802 because it was Apple. An Apple 2e with a monochrome monitor and (2) 5-1/4 inch disc drives was priced at $1600 at the time and I thought the salesman that quoted me that price was joking and I told him so. He just told me that it was intended for "business use" and that I would probably never own one. I stormed out of the brand new Apple store in a huff and he was right. I will never purchase an Apple product of any kind and have avoided Apple at all costs.
    :
    When I was in school, computer science majors and accounting people used Cobol and Pascal. All still on punched cards, but terminals were starting to get introduced. I thought database work in Cobol was a waste of computing power. I purchased a 300 baud modem that would connect over the phone muffs and everyone on campus thought I was crazy because I did not go to the computer building to run my jobs on the batch cards or paper tape. Several years later, AOL came out and they wanted to charge a fee for that service. I thought all that was silly at the time and that windows was just a fad. I built a Timex Sinclair computer with a parts kit for my 1st personal computer that I purchased through the US Mail for $100 and I could not understand why someone would buy a computer fully assembled and waste all that money. I also thought that disc operating systems stored on disc were a waste of memory. Times have changed a lot and so has the technology.

    #32 3 years ago
    Quoted from adol75:

    I would love to start coding on the P3 platform, unfortunately I'm a terrible handyman so I don't plan on building from scratch, but I would surely like to find a plug and play hardware for a start.

    One clarification on Compy's description. You don't need to start frame scratch on any of the low level stuff. A few of us implemented all of the low level features (hardware interface, game framework, lots of supporting features like ball trough management, score management, service menus, lightshow players, sound subsystem, etc. etc.) Most of the pyprocgame variants for P-ROC/P3-ROC and the P3 SDK include a sample game that you can either play immediately or just with a few tweaks for your setup. Generally speaking, you'd be taking a fully working but minimally featured game and adding your own content.

    With the P3, for instance, the dev kit includes a fully working sample game. You can deploy it immediately on your P3 and play a game. Even when we develop new games internally, we start with the sample game and add the content our new game needs.

    With a P-ROC or P3-ROC for a retheme or fully custom game, SkeletonGame and MPF are the most popular frameworks these days, and both also do almost everything for you. Just add your desired game content. So yes you need to build your game rules from scratch, but you'll be building on top of code a number of other people have spent years developing for you.

    And on topic... I have a BS in computer engineering from Virginia Tech. Required classes were a mix of Electrical Engineering and Computer Science. I spent much of my professional career designing hardware, and I spend a lot more time these days designing/architecting [software engineering] the P3 framework and subsystem and implementing [coding] much of that and some of our games. Ultimately, though, I'm not big on titles. People generally have problem solving skills or not, and people are either interested in system design or not.

    - Gerry
    https://www.multimorphic.com

    #33 3 years ago
    Quoted from gstellenberg:

    I spend a lot more time these days designing/architecting [software engineering] the P3 framework and subsystem and implementing [coding] much of that and some of our games.

    Perhaps I need to step outside my own head for a moment and ask: how do you know when you are changing these 2 hats?

    #34 3 years ago
    Quoted from skink91:

    This distinction is spot on. The part I might disagree with (perhaps, not sure if you are saying this or not) is saying coder/engineer as if coder is something that means something different than ‘bad developer’ or perhaps more kindly just ‘junior developer’.
    To me, no developer should not be on a path to team lead / architect... if they aren’t they should be looking at other non-dev roles.

    I think coder is a different job that fits some organizations, typically the ones that have more layers between the functional specifications and the end product.
    Coders also fits software that are at a more advanced part of their lifecycle where they need updates and bug fixing.

    So I don't think a coder is a bad developer in essence, they just come in play once the foundations are laid out.

    #35 3 years ago
    Quoted from skink91:

    Perhaps I need to step outside my own head for a moment and ask: how do you know when you are changing these 2 hats?

    I think you'll find (and have already found) a wide range of opinions. My personal take is that a software engineer attacks a project with structured thinking with thoughts towards how all of the pieces interoperate and an understanding of the full ramifications of implementing a specific bit of code a certain way, whereas a coder tends to write some code to implement an algorithm or function.

    That said, I think you'll find many "coders" who are fantastic software engineers, regardless of their title, and you'll find some people who call themselves "software engineers" who really just implement systems designed by others.

    I personally don't think about the distinction when I'm developing. I just do what needs to be done and try to design and implement a good solution, whether it's a large system design or a simple function.

    ... and if I ever interview you for a software role, I won't care if you have an engineering degree, a cs degree, a music degree, or no degree at all. You'll just need to convince me you have structured thinking, you can solve problems efficiently, you have experience on par with what you'll be working on, and you work well with others.

    - Gerry
    https://www.multimorphic.com

    #36 3 years ago

    Does anyone still draw a flowchart to start with?
    A good flowchart will keep everyone on track with subroutines and actual intent of the of the various components of a piece of software.
    I am guessing that a flowchart for pinball machine programming would be rather large.
    I can imagine a 24 by 36 sheet of paper covered with it, but perhaps it is larger on more complex rule sets.

    #37 3 years ago
    Quoted from adol75:

    I think coder is a different job that fits some organizations, typically the ones that have more layers between the functional specifications and the end product.
    Coders also fits software that are at a more advanced part of their lifecycle where they need updates and bug fixing.
    So I don't think a coder is a bad developer in essence, they just come in play once the foundations are laid out.

    In my experience, waterfall development is not ideal for most software projects I have been on. That’s not to say I believe Agile is the be-all-end-all... but complete functional specs up front just rarely if ever happens, and iterations are always necessary.

    That said, you are totally right that at some point during the lifecycle you are transitioning from the feasibility phase(s) and into/toward the release phase(s)... less architectural changes, etc. My question is: in these equation when do you pull the ‘engineers’ and insert the ‘coders’? What is the time for knowledge transfer? What are the risks of said transfer?

    If they aren’t the same people, what makes them different? Why swap them out at all?

    #38 3 years ago
    Quoted from Dent00:

    Does anyone still draw a flowchart to start with?
    A good flowchart will keep everyone on track with subroutines and actual intent of the of the various components of a piece of software.

    I definitely still use Visio diagrams when I am trying to get a sense of the lay of the land on new projects, or when trying to figure out an attack plan for a new integration or design.

    #39 3 years ago
    Quoted from gstellenberg:

    and you work well with others.

    Uffda. This one has always been an issue for me. Luckily, I am aware of my many faults and have gotten good at apologizing and asking for forgiveness.

    Having strong opinions is a blessing often and a curse even more often.

    #40 3 years ago
    Quoted from skink91:

    I definitely still use Visio diagrams when I am trying to get a sense of the lay of the land on new projects, or when trying to figure out an attack plan for a new integration or design.

    I still have a drafting triangle with logic symbols on it that I use to draw a flowchart by hand with a pencil.
    I always use a mechanical pencil so that I can make any changes while creating the drawing and I don't have to sharpen it.
    I like 2H or H lead because it shows up better and is easy to erase.
    It has been a long time since I have had to use it.

    #41 3 years ago

    I'm more of a hardware guy these days selling infrastructure solutions into data centres but started out on the software side of things.

    Anyway cool thread and happy to tag along

    #42 3 years ago
    Quoted from Dent00:

    While there might be little difference between the job responsibilities of a coder/programmer and a software engineer. I will just point out that in order to use the term "engineer", legally, that person will need to licensed. In order to get licensed, depending on what state that person is located in, they will have to have 4 year engineering degree from an accredited university, pass a nationally recognized test to prove that they have the required knowledge and skills and have 4 years of experience under another licensed engineer. That person can then purchase a stamp, used for sealing drawings or other documents, proving that the product is safe for use by the public and performs the functions that it was designed to perform. You can read more about becoming a professional engineer at this website below. The required test provided is called "computer engineering" by the people that create the test for national purposes.
    See this website: www.ncees.com

    While this may have been the case in the past (such as for architectural engineering), not so much any more (such as for software engineering). This lawsuit made big news a few years ago regarding this point:

    https://ij.org/press-release/oregon-engineer-wins-traffic-light-timing-lawsuit/

    #43 3 years ago
    Quoted from skink91:

    So to carry on the conversation I am trying to move out of a different thread: what is the difference between a software-engineer and a programmer/coder? I personally don’t believe there is such a separation.
    IMHO: the idea of software-engineering was created by academia to create an imaginary specialty.
    (and yes, I did just make an inflammatory statement to try and elicit outrage responses)

    I think the distinction is in 'one who implements' vs 'one that designs'.

    There are mountains of people who can take a spec and implement it in code... but they just are code monkeys who take literal definitions and implement them in a known language. With them, you get little creativity, little ingenuity, and will drive directly into a wall if that's what the spec says to do and call it 'complete'.

    Where as a true Developer/Scientist works beyond the 'writing the code' and actually is capable/responsible for working on the algorithms or strategies on how to tackle the problem. They also scheme the new ways to solve the problems. They don't just 'implement', they 'create' and then just map those ideas into code. In my experience they are far more likely to come up with elegant approaches in the software because they aren't just using lego blocks, but instead understand and take into consideration what the compliers or hardware constraints.

    The label 'computer engineer' or 'software engineer' at least my experience was from when Universities were expanding the classic electrical engineering curiculum with a hybrid CompSci/EE program. Those 'Computer Engineering' majors would take the traditional first two years of common engineering (math, physics, sciences) but their disciple went to CompSci instead of further sciences for their later years.

    I'll never forget when I was interviewing for university.. and I was sitting with the CompSci advisor and I asked "Ok, so when do you get to play with the hardware..." and he said "you don't...". I said "you spend 4 years at the keyboard?" to which he basically acknowledged as 'yes...' -- I then went right to the EE department and did EE instead

    But by the time I was finishing.. the idea of Digital Signal Processing had expanded the power/reach/importance of programming over pure hardware. The number of 'software' jobs dwarfed the hardware guys which were becoming rarer and rarer.

    #44 3 years ago
    Quoted from Dent00:

    Just do a quick check on the pay scale for a coder/programmer vs. a licensed engineer and I think you will see the value. Computer engineering is a relatively new specialty in electrical engineering, but it does exist.

    I earned a Computer Engineering BS degree from ASU in 1983. It was 90% EE with some software aspects mixed in.

    #45 3 years ago
    Quoted from flynnibus:

    I think the distinction is in 'one who implements' vs 'one that designs'.

    There is little or no separation in implementing and designing in my experience.

    There is no ‘spec’ that can create an architecture, no interface that defines a running engine. The implementation is the design. Software isn’t like board design.

    #46 3 years ago
    Quoted from skink91:

    There is little or no separation in implementing and designing in my experience.
    There is no ‘spec’ that can create an architecture, no interface that defines a running engine. The implementation is the design. Software isn’t like board design.

    I guess you don't work alot with contracted or offshored programmers?

    There is a hell of a difference between the programmers that work off a boilerplate architecture and just try to modify it to fit the particular need.. and really don't understand the 'why' or consequences of a design... and the designers who made the choices prior.. or would make entirely new designs based on the needs.
    You can take an architecture and hand it off to code monkeys would will build it. But if you just give them a set of requirements and don't oversee their actual designs, you can end up with all kinds of garbage that meets the spec, but is a mess upon itself. Modern computing and languages can cover up so much because of the almost unlimited amount of resources available to most simple applications.

    With the insane higher level languages, libraries, PaaS, etc out there today, there are plenty of programmers that can build applications that don't have a snowballs chance in hell of doing the same without all the heavy lifting done for them. It's not just the distinction between a 'good coder' and a 'bad coder'. The stuff most people see as 'good' is the actual design work, or the creative that can analyze the problem for new solutions, or come up with new elegant ways, etc.

    A code monkey can implement a spec -- follow coding standards, apply boilerplate methodologies, update/maintain existing code. But that doesn't mean they had the training, experience, or understanding to DESIGN what they are implementing.

    #47 3 years ago

    I do actually work with offshore contract developer teams as well as offshore contract test teams, some integrated into my teams and some completely independent. I have been doing so for nearly 30 years.

    By all means though, continue to tell me how software development works. The terms and generalizations that you use are entertaining to be certain, but most of it feels like the way it must appear from the outside.

    There’s no question that nearly every developer is to an extent ‘standing on the shoulders of giants’, however no matter how advanced a system, language, or hardware it is running on is - it does NOT cover up flaws. That is just fiction.

    Coding standards don’t make working code... that’s just whitespace, naming, and formatting. Faking it, copying a chunk of code off stackoverflow, etc. will only get someone so far. At some point they have to understand something to integrate things without breaking something else.

    You mention spec again, but I am having trouble deciphering what that could possibly mean with regard to software - please elaborate.

    #48 3 years ago

    Also, you seem to be digging in more on your distinction between implementing and design. Software just doesn’t work that way, sorry.

    #49 3 years ago

    Honestly, software is not a topic worth getting into such arguments over. It’s just software!!

    #50 3 years ago
    Quoted from skink91:I do actually work with offshore contract developer teams as well as offshore contract test teams, some integrated into my teams and some completely independent. I have been doing so for nearly 30 years.
    By all means though, continue to tell me how software development works.

    So you started a discussion but don’t want to actually have one...

    Sounds like you’ve seen it all, not sure why the rest of us are here

    There are 77 posts in this topic. You are on page 1 of 2.

    Reply

    Wanna join the discussion? Please sign in to reply to this topic.

    Hey there! Welcome to Pinside!

    Donate to Pinside

    Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


    This page was printed from https://pinside.com/pinball/forum/topic/software-design-hangout?hl=adol75 and we tried optimising it for printing. Some page elements may have been deliberately hidden.

    Scan the QR code on the left to jump to the URL this document was printed from.