Typedef in C

Thread Starter

Ian0

Joined Aug 7, 2020
13,132
If you write software that runs on computers/tablets/phones, then you're definitely a programmer.
If you design electronics that doesn't have a processor in it, then you're an electronics engineer.
Between those two extremes lies all the devices with a processor and some electronics on a pcb. "Embedded" software seems to be the trendy name for it.
Maybe you write the software and some other bloke designs the hardware, or vice versa, or maybe you are in a small company and you do both (and answer the phones, and do technical support)
 

ApacheKid

Joined Jan 12, 2015
1,762
Nope, I'm not a programmer per my job classification and duties. Programming is like soldering.
If that job classification entails roles that require the writing/design/debugging of source code then you're a programmer. You are what you do not what your job title might imply. You're a programmer, why the reticence to admit that? Of course if you can stop writing and debugging code altogether then I'll believe you, but your boss might have something to say about it.
 

nsaspook

Joined Aug 27, 2009
16,325
If that job classification entails roles that require the writing/design/debugging of source code then you're a programmer. You are what you do not what your job title might imply. You're a programmer, why the reticence to admit that?
I'm in the EE department, we have people assigned as professional programmers for us to use and (abuse) for non-engineering coding tasks. I don't want that job and don't do that job.

Done...
 

nsaspook

Joined Aug 27, 2009
16,325
It certainly was a profession for me, and a fairly lucrative one in that enabled me to retire comfortably.
Sure (the comment was about me, not all programmers), it's a great profession but it seems clear to me that you can be a electrical engineering hardware guy that programs just like you can be a professional programmer that works with hardware. IMO calling anyone that writes software a 'programmer' detracts from the amount of hard work and skill it takes to be a professional.
 
Last edited:

WBahn

Joined Mar 31, 2012
32,840
While the denotations and connotations of terms is a very fluid topic, I've found that a useful distinction in this area is between that of a "programmer" and that of a "software engineer" (though many argue, and I have to admit I have sympathies in that direction myself, that the latter term is an oxymoron).

As with most things, its a spectrum. Good programmers, which are generally people that learned to code in order to get other things done, move toward becoming more like a software engineer over time as they gain a greater awareness of the arcana of the craft and better approaches to achieving good results. Good software engineers often move somewhat toward the programmer side of the spectrum as they become willing to use the software engineering practices that they've been taught less as a bible and more as a set of really good guidelines in order to not sacrifice the ability to get the job done at all in the name of only being willing to "do it right".
 

ApacheKid

Joined Jan 12, 2015
1,762
While the denotations and connotations of terms is a very fluid topic, I've found that a useful distinction in this area is between that of a "programmer" and that of a "software engineer" (though many argue, and I have to admit I have sympathies in that direction myself, that the latter term is an oxymoron).

As with most things, its a spectrum. Good programmers, which are generally people that learned to code in order to get other things done, move toward becoming more like a software engineer over time as they gain a greater awareness of the arcana of the craft and better approaches to achieving good results. Good software engineers often move somewhat toward the programmer side of the spectrum as they become willing to use the software engineering practices that they've been taught less as a bible and more as a set of really good guidelines in order to not sacrifice the ability to get the job done at all in the name of only being willing to "do it right".
When I began my career in the early 80s I was a "Trainee Programmer". Then after a year I was promoted to "Assistant Programmer" then "Junior Programmer" then "Programmer". Had I stayed I would have eventually reached "Senior Programmer".

The titles "developer" and "software engineer" simply didn't exist, the most technical of programmers back then were titled "systems programmer" people who did stuff at the OS level, compiler level, analyzed crash dumps and so on (there was no such thing as an interactive debugger back then, far from typical anyway).

I don't like the casual way "Software Engineer" is used, it carries implications that never really seem to materialize, same with the term "Computer Science" which is absolutely not science.

Of course we also had "Application Programmer" which was programming with a more customer, business domain focus and less of a technical oriented focus. Good applications programmers were very experienced, able to handle large projects, lots of politics, and so on, although the work was not technical (as I enjoyed) it was critically important and often best performed by more mature seasoned professionals. If you look at the kinds of software that money was being spent on back then it was police records, hospital resource tracking, shipping container management, airline reservations (all of these are genuinely challenging problems despite the apparent "low tech" nature of them) silly little things like knowing what a linked list was or knowing how an integer was stored or aligned, were close to irrelevant very unlikely to be discussed at an interview.

Skilled, experienced programmers were scarce back then, there was a worldwide shortage and the profession carried a degree of elitism, a skilled programmer working for a major company, enjoyed prestige not unlike a doctor or attorney, it could be a very lucrative career, there were no PCs, no internet, most people had never seen a real computer and had an excited interest in computers drawn from movies like 2001's HAL, the after dinner conversations were fun, it was a good time to be working in the field, it was far less routine and run-of-the-mill than it is today.
 
Last edited:

ApacheKid

Joined Jan 12, 2015
1,762
Here's an image of the (once) well known British Computer newspaper "Computer Weekly". This was a glossy broadsheet, very high quality print that was free if you worked in the industry. The ad revenue more than covered the production costs. This was like 50% jobs, the demand was huge, mainframe operators, minicomputer programmers, database experts and so on.

1712271711413.png
 

nsaspook

Joined Aug 27, 2009
16,325
Electrical engineers are the ones that usually become a software engineer for some embedded hardware project. It's almost never the other way around. My boss naturally expects if you design and build some embedded hardware for a job, you are also going to write the firmware for the job, write the design specifications, the hardware/software interface API so someday, maybe, a programmer can take the responsibility. That never happens but it's a possibility, like winning the lottery.
 

ApacheKid

Joined Jan 12, 2015
1,762
Electrical engineers are the ones that usually become a software engineer for some embedded hardware project. It's almost never the other way around. My boss naturally expects if you design and build some embedded hardware for a job, you are also going to write the firmware for the job, write the design specifications, the hardware/software interface API so someday, maybe, a programmer can take the responsibility. That never happens but it's a possibility, like winning the lottery.
I assume that you don't mean that only electrical engineers who write code, can be classified as software engineers. Most such individuals have (in my experience) scant knowledge of data processing fundamentals, database technology, programming language theory or operating system principles.

If you cannot design and write a real functioning compiler or basic real operating system, then I'd say you're not justified in using the title "software engineer" at all. Intimate familiarity with some problem domain is just that. I know programmers who are are experts in international tax law or molecular engineering or physical simulation or quantitative trading, these are no less "software engineer" that someone who writes code to manipulate some little registers in an MCU.
 

joeyd999

Joined Jun 6, 2011
6,281
Electrical engineers are the ones that usually become a software engineer for some embedded hardware project. It's almost never the other way around. My boss naturally expects if you design and build some embedded hardware for a job, you are also going to write the firmware for the job, write the design specifications, the hardware/software interface API so someday, maybe, a programmer can take the responsibility. That never happens but it's a possibility, like winning the lottery.
I've never met a "programmer" that can write good firmware.

And I've been in this business from damn close to the beginning.

Now they just use GUIs to write bad code so they don't have to.
 

ApacheKid

Joined Jan 12, 2015
1,762
I've never met a "programmer" that can write good firmware.

And I've been in this business from damn close to the beginning.

Now they just use GUIs to write bad code so they don't have to.
People who write good firmware are programmers, I'd think this was painfully obvious but it seems not.

And what is a "GUI" to you? do you use an editor? (even emacs) do you use a display (even 25x80 line text)? then that's a GUI. If you're using paper tape and punch cards then please just say so.

As I just said if you've never actually written a working real compiler or an operating system then you shouldn't really refer to yourself as a software engineer, just another very narrow specialization programmer like so many these days.

Let me finish by asking, when was the last time you interviewed for a job as a software engineer?
 
Last edited:

nsaspook

Joined Aug 27, 2009
16,325
I've never met a "programmer" that can write good firmware.

And I've been in this business from damn close to the beginning.

Now they just use GUIs to write bad code so they don't have to.
“If builders built houses the way programmers build programs, the first woodpecker to come along would destroy civilization"

Weinberg’s woodpecker is here. I see a programs written by good programmers in every possible language that are fragile, insecure to the extreme and are exercises in esoteric algorithms. Programs that run great in the design bounds but can't handle the harsh reality of the physical world where things break in a billion unpredictable ways. What I see is a lack of paranoia caused by years of being kicked in the head by murphy's law and the entire clan of horribles most EE types deal with on a daily basis.
 
Top