Hearing that was pretty shocking, not so much because it’s clearly untrue, but because he held that opinion of other Indian people. He did fall under the description you gave, though. He seemed to struggle with basic Arduino and Raspberry Pi programming even though he had a degree in computer science from an Indian university.
Why would it be shocking for people to perceive nepotism in their own society?
So, in their minds, it is very shocking that a racial minority immigrant said something negative about their own culture. Especially since it sounds even worse than their over-exaggerated negative perception of the US.
In terms of nepotism in particular - we had the Kennedy's, honestly not the worst political dynasty in America but a pretty clear example of name trumping qualifications. I've since emigrated, but I think I was probably disabused of any glorification of the land of opportunity and american exceptionalism by the time I finished middle school.
I was simply saying that a significant number of people in the US get so myopically focused on those issues locally, they don't realize that there is a whole world out there, where those same issues are massively more rampant and ubiquitous. And when they suddenly discover that through a first-hand or a second-hand experience, it is understandable they would be shocked.
Are you providing anecdotal evidence to support him or were you trying to disprove?
Sorry about that!
There's other stuff like that, too. For example, many Americans - especially progressive left politically, but plenty on the right as well - appear to believe that single payer is the norm in the developed world, and US is unique in deviating from that recipe for universal healthcare, even when discussing other options. When you tell them that one can opt to go with fully private insurance in Germany, or that Switzerland runs on something like ACA (much better done, obviously - but the same basic principle), it just doesn't compute.
Or gun control: some lefties literally refuse to believe that civilians can own an AR-15 in Germany, or a silencer in UK, or carry a handgun concealed in Czechia, without much trouble.
PS: US doesn't have universal healthcare, but universal healthcare doesn't imply that government must provide the services.
I get why this is, propaganda aside - the only developed country that borders US is Canada, so their health system is the one that Americans are most familiar with, and the one that's most often used as a prop in political debates here. And Canada is single payer...
But even that doesn't fully explain it. For example, all proponents of M4A in US want to implement it on the federal level. Canadian healthcare system was created bottom-up - started in one province due to popular demand, gradually adopted by others as it became obvious that the benefits vastly exceed any downsides, and eventually the feds stepped into the coordinating role, but provinces still retain the final say as they can always opt out of that federal system. So, why can't US do the same? For that matter, why shouldn't the states be able to decide for themselves whether they prefer the Canadian model, the German one, or the Swiss one - and then we can see which one works better here? I never got coherent answers to any of those questions.
That seems extreme.
I was with you until the "cast (sic) system".
> you are held in more esteem in India when you manage more people.
You can replace "India" with literally any country in the world. Managers and bosses always are and always have been held in more esteem than leaf node workers, in every society past and present. It's got nothing to do with the caste system.
Personal anecdote: I caught up with an American friend from school after about 15 years. He worked in some kind of product/project management role. When I told him I was an engineer in the Bay Area he said "Oh, you're just a programmer?" (OK so he wasn't a great friend, and that was the last time I spoke to him...)
This is true to a much greater or lesser degree depending on country, though. Here in the US you can be a really senior leaf node software engineer with fancy titles like "Staff" or "Senior Staff" or "Distinguished Fellow" and command tremendous respect and compensation.
That doesn't exist in some other countries. I was talking with an Italian friend once who works at a bank over there as a programmer, and seniority was exactly the same as how many people you manage. It was a contradiction in terms as far as he was concerned to be a senior software engineer if you weren't at least managing a team. The first question he asked when I was talking about my job was "How many people do you manage?", and when I responded zero, he immediately thought I was low level (I was not). Everyone aspires to be a manager over there.
My anecdote isn't exactly the opposite of yours, because in mine it's programmers themselves that are assigning status based on how many people you manage, whereas in your anecdote it's someone in an outgroup.
In most industries that aren't tech, compensation and prestige are directly proportional to how many people you manage. Only in tech can individual senior engineers have impact that justifies the high pay without managing people.
Agree on 'Staff' and 'Senior staff'... military terms that never caught on generally. Not sure why they have started being adopted by some companies... I guess in larger companies people want their hierarchy and pay scales and whatnot.
> Consultants
A term so generic as to be almost meaningless. It can apply to an Agile coach, an Ivy League fresh grad billed at $1200/hr by McKinsey et al, or a programmer with an LLC and some marketing skills. These all vary widely in prestige.
> lawyers
Ditto. No one is impressed by a poor ambulance chaser or public defender. Judges, senior partners at big law firms, senior corporate counsel, DAs and attorneys general - those are lawyers people generally respect. And they all have authority over people and laws.
> engineers
Depends on where they work and what they do. Engineer at FAANG or a hotshot startup - that's been glamorized by media and entertainment but that's a relatively recent phenomenon. Engineer at a mid-sized auto parts or chemical company - usually associated with pocket protectors and slide rules, but basically just solid pros that take home a solid paycheck.
> physicians
They don't always hire or fire people but they certainly give orders. To patients, nurses, technicians. Physicians have always been respected, in every society across time.
> architects
Same deal as engineers. Plus on significant projects (like a skyscraper, apartment complex, government building etc) there's probably a team of architects that have one or more managers. Someone with an architect's license working for the city planning office in a non-leadership role? Not especially prestigious.
> designers
Are we talking about fashion designers? They don't manage people? Like literally zero people? That's news to me.[1][2][3]
> board members
They can literally vote to fire the boss of bosses - the CEO. And usually they're appointed on the basis of their achievements in business, law, or the industry.
1. https://en.wikipedia.org/wiki/Calvin_Klein
> A term so generic as to be almost meaningless. It can apply to an Agile coach, an Ivy League fresh grad billed at $1200/hr by McKinsey et al, or a programmer with an LLC and some marketing skills. These all vary widely in prestige.
To add to your point, it is absolutely the case that in places like McKinsey et al., several key measures of the consultants as they make their way up the ladder are directly related to how many people they manage.
Layers - people respect lawyers?
Engineers - we generally have very low respectability, among laypeople.
Hell, I've been (a software developer) in SV for 16 years now and I hadn't heard of the "Staff" title until a few years ago.
Outside the tech world it's barely true, and even within the tech world, the vast majority of companies still require you to enter management the moment you've been promoted a couple of times.
"Senior lawyer" isn't a thing AFAIK. Law firm partners or senior partners have management roles, or at least, influence, in their firms. Otherwise you're an associate, or in private practice, working for the government, or as corporate counsel (where again, you might manage teams of people). A random lawyer with a small private practice isn't going to command a ton of respect in society generally, even if they do very well financially.
You will have to take this as second hand information as I am not familiar with the relics of the cast system. But as he relayed it to me. When you go on a date with a girl that would be considered to be in a higher social status than yourself, the first thing the father will ask is how many people do you manage. Being a manager seems to provide some mobility in the relics of the system that is left. This is how it was relayed to me.
(Am Indian, have gone on plenty of dates without ever meeting anyone's father.)
90% of my class cheated in some form on regular exams until 10th grade. This was known by the management and teachers often hide it. They also increased marks of students by changing their answers lol. Discouraging environment for actual students.
Why?
Because education is a business. Metrics such as 90 percentile scored so and so drives admission rates.
why cheat?
Because lack of good parenting, teachers and dysfunctional infra. Most teachers outside of few top schools are "failures" (not literally) in private schools where they are spending their time trying to crack exams for government jobs or getting another degree. They don't care or aren't paid enough.
Parents won't help their kids or take much interest in what they like. They will be pretty thorough when investigating report cards and standardized bullshit metrics that indian schools make (outside of board) but shallow when empathising with their kids.
Tuition is a widely common practice in india which is similar to daycare in practice, I guess. It gives off an effect of your kid working... Whenever someone gets a bad grade, the first thing to do is increase their tuition time. My previous schools had same teachers taking tuition at home and an after school program. You will get questions and stuff that will come in exam by going there. It was public knowledge too. Most schools are shady. I can't remember one where I didn't see some bs going on like messing with paperwork for tax fraud (openly), messing with report cards, exams, board requirements, etc.
Big chunk of parents are not educated or live in poverty. Their kids will come to school and disrupt it for others but what can you do about it?
Separate them and put them into low cost classrooms? Yeah, that happens. Though it usually starts from 8th grade onwards. Until then, everyone is in the same classroom.
I think the biggest problem is we start investing in kids at a later age than we should. All their junior years, no one sets a good bar for them. They won't suddenly change as drastically as some people hope.
I think it's often a self limiting thing because word gets around that there isn't enough brass rings for everyone.
Universities do their best to keep a bead on the market (at least, the good ones do), but without medical school-style coordination it's almost impossible not to under- or over-shoot substantially in terms of graduate supply.
That said some of my favorite people to work with (smart, easy to work with) are Indian. It's really a shame that the issues affect perception of everybody. It's a good reminder to me not to judge a book by it's cover, metaphorically speaking.
I don't even know why race or color would even matter when it comes to considering one's capability to do some engineering job. At the end of the day just work with whoever can get the job done.
I know intelligent and successful people who would never take financial advice from someone with a beard for example.
Edit: maybe an interesting example. I grew up around smart woman and girls. From observation, I “knew” women were smarter than men. I was in college before I heard that some thought that woman were not suited for math. I couldn’t even process that. But people see patterns and extrapolate based on their observations and what they hear, and often start to believe something that does not exist.
Why? Does fairness serve a business purpose? Are businesses held to be fair to their employees in other circumstances?
What is fair? Perfect proportional representation of the host population? Within what limits? Can we make a heuristic for what's more fair? Should that drive hiring decisions more than other factors?
The way I've come to see it, so-called fair hiring practices are purely a social signal that companies are required, by the market, to hold - and only in the sense that they need to NOT appear to NOT be fair, in terms of bad press.
Other than that, companies don't seem to have any actual obligation to be fair, unless held accountable by some other mechanism (a union, the court of public opinion, government regulations, etc). They will only do so as far as it provides a favourable outlook for the company, and not further. When sweatshop-like conditions are profitable and the attention of the public is elsewhere, for instance, sweatshops you will get. It doesn't matter much if every race is slaving away in there together side by side if they're still slaving away.
Deciding what fair means is indeed hard. But most would today agree (I think) that judging someone to be incompetent based on the reputation of those of the same ethnicity is unfair.
Again, though, the desire to do this is based entirely on marketing, and not on merit.
> judging someone to be incompetent based on the reputation of those of the same ethnicity is unfair
Sure, but mandatory hiring of people of particular ethnicities in order to boost some arbitrary "diversity quotient" (read: non-white quotient) is potentially just as unfair to other qualified applicants.
I see it as a reflection upon America, rather than a reflection on my company.
The same company has black engineers in London.
When we seek new employees - we had 0 black applicants in NYC over the last 3 years. We have a small percentage in London.
An example of something that would serve a business purpose: widening the potential target market. Of course if your company is producing maternity wear then you probably don't want to aim for a gender-balanced customer base. But in general, increasing the size of your taget market can serve a business purpose.
1: https://www.purdueglobal.edu/blog/careers/how-does-workplace...
https://en.wikipedia.org/wiki/Robert_D._Putnam#Diversity_and...
Which model do any of us prefer in most situations: one that allows us to be right more than 50% of times done in miliseconds, or one that takes hours/days/weeks (whatever) and allows 95% of good (or fair) decisions?
When it comes to deciding who I will be working with I would rather take the time (hours/days/weeks) so that that we make a fair (un-baised) decision
As for deciding to whether to evade a baseball being thrown at my head, I would prefer the faster response time. It okay to be biased against fast moving projectiles :-)
Any time you deal with people you need take the time needed to eliminate any biases that are common to many humans
Of course, first you throw out the obviously bad ones - anyone who sent a word document when they clearly asked for PDF; anyone who doesn't have an engineering degree etc. etc. That still leaves you with 500.
What do you do? This is I suppose why implicit bias training exists, so you don't go "this one's from India, the last 10 from India couldn't even spell the company name right, reject".
(The next step in the UK is, reject everyone who doesn't have a first-class degree, if that still leaves you with a long enough shortlist. No wonder students are anxious about getting a first!)
Point I'm trying to make: there's situations in hiring where the time you can take is influenced by the volume of applications.
Agree, but then you would think that engineers (when it comes to working with other engineers) are a little more rational than the average folks and can go beyond superficial observations.
If a cognitive bias lets you arrive at a conclusion 10 times faster and is right lets say 90 percent of the time, is that strictly worse than being super fair and objective as the thinking pattern you employ? I think if you had a process at your job that is 10 times faster and was what right 99.9 percent of the time you would absolutely be for using that process over the one that reaches a 100 percent accuracy rate but was vastly slower for anything that isn't fatal to your career.
Large parts of society seem to reward thinking fast and making quick decisions, and would prefer a quick decision even if its wrong. We have 2 pressures here. Making the decision quickly, and then making the "correct" decision. Your circumstances will determine which is correct at the time. But saying to always stick to one and avoid the other doesn't seem super rational to me.
The last job I worked at, more than 50% developers on the floor were Indian (like either fresh H1b or intra-company transfers), so I noticed that I would get 'lost' in the crowd. A non-Indian person will immediately notice other non-Indian person, and ignore me. It wasn't their fault because most Indians on my floor never bothered to say 'hi' or 'bless you' or even acknowledge anyone who wasn't Indian. But then, I'd also ignore other 'pattern breaking' Indians (until, like me, they made themselves stand out).
> Agree, but then you would think that engineers (when it comes to working with other engineers) are a little more rational than the average folks and can go beyond superficial observations.
You are saying pattern matting is irrational? If one is to apply pattern matching in an absolutely rational way, they would not make abitrary judgements that some traits are/are not superficial. They should just take the fact as is, then make their hypothesis, then prove or disprove it then act upon the result.
They are more likely than the average bear to apply Bayesian probability, which comes alarmingly close to confirming stereotypes in most cases.
That said - Indian cultural quirks definitely play a role in how majority is raised and how they operate. Economic situation and a very clear way to get a well paying job makes people try to get into these fields. IT doesn't have an insane filter like medicine, which is another way to earn a lot in India. Thus you get a lot of people that try to get around the system.
I had two cases happen in India to demonstrate this:
One of developers lied about their qualifications for the previous 3 years. He was supposed to be working for Oracle for 3 years, but we found out that he worked at multiple companies for 3 months at time.
The other one was one of three brothers, but only one of them was somewhat competent and would do the interviews... while the other brothers would actually try to show up for work.
I could not make up this crap.
I'm in US and despite US having 20%(?) black population, I'm yet to have a black American colleague in engineering.
Small nit, this is a nationality, not an ethnicity.
An Indian friend of mine said that IIT is good but hardly anyone can get in and the caste system dictates admissions policies anyway so many people try to get engineering degrees from schools with lax standards. The professors are completely unqualified, according to her, and people have to pay more to learn the material from off-campus tutors but not everyone can afford that.
I think this should be the focus is ending academic fraud rather than some of these other issues. That could do a lot of good. Here is a reference to a story I found that corroborates what I was told.[1]
[1]:https://timesofindia.indiatimes.com/city/chennai/UGC-probe-f...
Like, officially, in writing? Even if it's informal, as an American it blows my mind that that's still a thing.
In history there was a caste system that led to systemic deprivation of education and opportunity to underprivileged castes. So India (few decades back) came up with a reservation system so that people belonging to those castes could get jobs/education/opportunities.
In today's times it's scale is more like racism that you would find in most developed nations.
However after achieving the basic purpose, the reservation system based on caste was never withdrawn. Lots of political parties invested into those vote banks.
Nowadays, the situation is such that many people who get admissions based on the reservation policy are from acceptably well off educated families. There are many people who are relatively poor and financially underprivileged but belong to the upper caste and they cannot get any benefits.
[1] https://en.wikipedia.org/wiki/Regents_of_the_Univ._of_Cal._v...
The relevant portion:
> For candidates in the general category, successful students must generally score within the top 0.25% or top 0.5% of all students to gain admission to the IITs, whereas SC/ST/OBC candidates must generally score within the top 2% of all students to gain admission to the IITs.
> Currently, reservation of 15%, 7.5% and 27% seats are provided for candidates originating from the SC, ST and OBC communities respectively.
[1]: https://en.wikipedia.org/wiki/Reservation_policy_in_Indian_I...
Affirmative Action exists today. The Ivies modified its acceptance criteria to "soft" discriminate against Jewish Americans in the 50s and 60s. There are arguments that this is indeed the case for Asian Americans today.
https://en.wikipedia.org/wiki/Regents_of_the_Univ._of_Cal._v... https://en.wikipedia.org/wiki/Grutter_v._Bollinger
In past times (and by that I mean XX century - before WWII usually) anti-semitism was pretty harsh, and official. Even on university admissions in the US.
I think you stopped reading after the first sentence because encouragement is exactly what I did. And I stand by the comment about naïveté.
But unfortunately even the degrees themselves become less significant. A PhD in mathematics used to mean more than it does now. But another point is that with global literacy going up, scarse skills are now not based on the amount of people with certain degrees, but rather with inherent abilities that are uncommon. (Take Fortran coders as an example.)
I held this point of view for a long time but, after lurking at r/engineering, I've learned that their jobs are (depressingly) similar to ours. I.e. it's almost never deriving things from first principles, but rather trying to quickly bolt together a solution out of pieces looked up at different vendors' catalogs. Most engineers don't even remember the basic equations they have learned at university.
> Heck, I would be offended if someone called me a developer rather than a programmer.
It depends on the specific job, but currently, I can spend 30 minutes changing one line of code followed by one week of deploying, testing it, making sure the configs are all right etc. So that's 30 minutes of programming followed by one week of "installing dishwashers" (as the joke on the team goes). Lately, I see myself more of a software configurator than creator (my nominal job title is a backend web developer).
And engineers have always been assembling boxes together. At first those were the most basic components, like levers. Then we figured out about standardized parts and interfaces, and components got a lot less basic. But, fundamentally, what's the difference between an engineer fitting two cogs together, and an engineer fitting two pieces of electronics?
If you wanted to create something that's better than the pages we had in the Geocities era, you can do that in 5 minutes (download some static page generator, add a theme and voila).
When it was unveiled, the GMail frontend was a remarkable feat of engineering. Nowadays? Polishing to that extent (also scaling, etc) will take time, but creating a knockoff UI is no longer a revolutionary job. Most web developers would be able to single-handedly replicate the basic functionality ('ajax' and lots of client side javascript are no longer arcane).
As web development progressed, so did expectations.
I wrote a web app the other day with vanilla Python, it doesn't do much (it's a tasks app for my wife and I), but it does it's job, and in one file even! It doesn't use fancy front end stuff, just HTML template strings and some links that send CRUD ops to the server, then that saves the data in a big text file. It uses CSS to make it look nice.
I bet I could get a hundred people using it without edits, and it took a few hours. With a proper database and server, it would support thousands easily.
I know the basics of chef/ansible etc but I much prefer traditional dev.
Among many of the people I talk to on a regular basis, if I told them I was a "developer" they would assume that I was a real estate developer.
If I told them I was a "programmer" it would be a little clearer, but before I moved into software I worked in the events industry for a few years, where "programmer" means "one who develops event programming."
In practice, I could append "software" in front of either "programmer" or "developer" to provide that clarity, but "software engineer" seems to be more common, and to me feels like it more adequately covers the totality of my job, which is as much about measuring, planning, and communicating as it is about producing code.
However passing such an exam would probably only be partly correlated to success in the field. Part of this is because exams are imperfect, part because success in the field is not dependent on engineering skill, and part is because the tech field’s success is based on finding/creating/replacing/owning (new) markets rather than pure engineering.
If software is much better than what was there before, even shoddy software engineering will be superior to the existing solutions.
Are those phrases misleading? I don't know. I certainly feel like I worked pretty hard to earn and maintain the certifications I hold, but I can't compare the rigour and level of effort to licensure, because that's not required of me for what I do.
I also know that there are quite a few "certifications" out there that aren't rigorous at all, that are basically multiple-choice exams you can cram for without actually learning anything. I've never bothered going after a CompTIA certification for that reason.
It's a tough problem. On one hand, I despise artificial barriers to entry on principle. On the other hand, being able to understand and trust a person's base level of understanding and competence does have value.
The TN visa could be revoked at any time which is why you want to be really clear when crossing the border. I worked for Microsoft and they recommended that I bring my full job description package and lawyer's letter every time I crossed the border
The best part was when I had to go to the border to apply for the TN visa. The poor guy had a list of questions to ask and clearly had no idea what any of it meant. "And will you be doing any <...long, dramatic pause> programming?"
How are they different, in your mind?
It's not really enforced in tech, but for me the definition is someone who at the minimum studied an engineering degree. Calling yourself an engineer when you studied Computer Science is a bit odd to me.
I call myself an engineer and is anyone has a problem with that, I just point out that I graduated from an engineering college and am eligible to become a PE, and will, should the world ever decide that's an important credential for building software. I work with tons of Mechanical and Aeronautical engineers, none of whom seem to take any issue with my holding a title of engineer.
[1] https://www.softwareengineerinsider.com/abet/abet-computer-s...
This frustrates me because ABET degrees are required for a bunch of government jobs (and the patent bar). While it might make sense for certain fields, it’s silly to gate CS jobs on a credential that the field evidentially doesn’t take seriously.
I asked whether they could take the courses they liked (eg mix a bit of civil, mechanical and electrical) and they said in theory they could, in practice nobody does because your degree wouldn't be accredited. And no accredited degree, no job in engineering. I think for civil it made a bigger difference than the others.
I always thought that was quite sad, since the mathematicians did whatever the hell they wanted between maths, engineering, CS and physics and still ended up with a maths degree.
Really the only major difference at our university (IMO) was that they had a capstone project they did as a group and took two semesters, while mine was done individually and took one semester.
e: and yes, cf. the sibling comment, some of those courses were mandatory curricula set by The Professional Body Formerly Known As APEGBC (I forget what they're called now).
Licensing typically means professional standards set by a licensing body, continuing education requirements, insurance/liability rules, etc.
I think the issue is just university programs aren't granular enough.
I am definitely against the idea of licensing or professional organizations gating who gets to call themselves something. I think it's OK for an organization to invent their OWN term and branding, but they cannot take a generic word like 'engineering' and add regulatory capture on top of it. For instance, if IEEE or ACM wanted to license programmers, they are free to come up with a process for licensing with a title like "IEEE Software Engineer". The market can decide if that bears any value. But that value has to stand on its own, and not rely on government intervention granting those organizations a monopoly over the term 'engineer'.
Real Software Engineering, Glenn Vanderburg, Lone Star Ruby 2010 https://www.youtube.com/watch?v=NP9AIUT9nos
which explains what various kinds of engineers actually do. Not at all dry and boring like it might sound! From the YouTube blurb:
Software engineering as it's taught in universities simply doesn't work. It doesn't produce software systems of high quality, and it doesn't produce them for low cost. Sometimes, even when practiced rigorously, it doesn't produce systems at all. That's odd, because in every other field, the term "engineering" is reserved for methods that work. What then, does real software engineering look like?
"A number of these phenomena have been bundled under the name "Software Engineering". As economics is known as "The Miserable Science", software engineering should be known as "The Doomed Discipline", doomed because it cannot even approach its goal since its goal is self-contradictory. Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter "How to program if you cannot."."
[0]https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E... Edsger W. Dijkstra's "On the cruelty of really teaching computing science"
And lets not mention the new airport in Berlin (or the NYC tube lines) in the context of low cost.
> And lets not mention the new airport in Berlin (or the NYC tube lines) in the context of low cost.
That seems to me a low-quality comment, sorry. The lack of punctuation and the spelling mistakes made it hard to parse, and until you flesh it out more, I'm not sure precisely what point you were trying to make. And more mentioning, less "lets not mention"-ing, please.
Engineer implies a higher level of skill WRT establishing and following processes designed to minimize risk. A software engineer, like their mechanical or civil equivalents, has a strong sense of duty WRT building things that are useful, safe, reproducible, etc.
No doubt the line is gray. But, your stereotypical web app developer (failing fast while chasing a unicorn) is not an engineer.
In the real world, I'd expect Boeing to employ many software engineers [insert 737 Max joke here]. Google and Apple would employ a mix of engineers and developers. And a company that builds CRUD apps on contract would be almost exclusively developers.
All of this ignores the licensed engineer's opinion, which is often that none of us are engineers because we don't have to pass a licensing exam. And often don't even have to pass a particularly rigorous academic program.
That could just as easily describe Google and it is full of “smart people” (tm)
Google and Apple would employ a mix of engineers and developers.
A person with degree or a person with a specific set of skills? If skills, then can you enumerate few of them?
Of course, there is no PE for software. So, within our industry, it's a lot more squishy. There's a bit of "I know it when I see it" here...
If you're building complex systems with an eye for reliability and/or safety, you might be an engineer.
If you're just building a business/consumer app, using infrastructure and tooling that somebody else built and maintains, you might not be an engineer.
With all that said, as a hiring manager, I'm not going to be hung up on what title you held at a previous job, as long as you appear capable of doing the job now. And my career has mostly been on the "just a developer" side of the line - there's nothing wrong with that. I'm simply not building software that has massive negative repercussions if I get it wrong (beyond impact on my employer's bottom line).
Also, we're not putting our licenses/careers on the line by signing off on software releases. As someone with a degree in Mechanical Engineering (but not a licensed engineer) working as a developer, I think the key difference is the accountability and incentives.
Avionics software and some medical devices do have near-Engineering cultures and practices, but a lot of software would look much different if we had real Software Engineering. Half the IoT malware magnets sold wouldn't ship if someone had to put their professional license on the line with every firmware sign-off.
Not all software would need a practicing Engineer certifying that standardized releases, just like you probably don't need a structural engineer to sign off on your patio expansion or treehouse.
Steam boiler explosions very common in the U.S. (and around the world) until we started requiring licenses to design them with serious consequences for neglecting best practices and procedures. It's one thing to bet your company's reputation and move on to somewhere else if the company fails, but quite another to set aside the corporate veil and be personally responsible.
For a look at what an Engineering-like system would look like, a good friend lives in Vienna, Austria and went to church with Joseph Mangan. [0][1] The short version of the story is that airliner air pressure control valves have three positions: (1) closed, (2) slowly bleed pressure, and (3) wide open to equalize pressure on the ground and better ventilate the cabin. Older designs used separate motors for the two different open positions. Mangan was working for an Airbus subcontractor, writing the firmware for a valve that saved weight and shifted complexity from the mechanical design to firmware by using a single motor. From the closed position, it spun the motor one way to open the valve a small amount, and spun the other way to open the valve a large amount. If the firmware were to malfunction while closing the value, it could turn the motor too far and rapidly depressurize the cabin. In order for the subcontractor to ship the product, Mangan had to sign off that a whole bunch of testing and best practices had been followed. Best practices hadn't been followed, he refused to sign off, and his manager faked his signature. (In particular, one of the required standards was that the first thing the firmware does is initialize the processor's interrupt vector to point to actual interrupt handlers. This wasn't the case.) Mangan ended up stealing a bunch of internal documents and posting them online at great personal cost in order to force the company to follow procedures. In the end, after long court battles, Mangan continued to work on certification of the valve firmware, and he eventually signed off on it once it had really met all applicable standards and he was convinced it was safe.
[0] https://en.wikipedia.org/wiki/Joseph_Mangan
[1] https://www.telegraph.co.uk/finance/2923861/Airbus-whistlebl...
Programmer: A person who writes computer programs. I would personally also imply that the programs are typically not deployment of other programs, but this is my own view and not a standard definition. (Actually all of these are not standard definitions. At least, not anymore.)
Developer: A web developer; A person who writes or deploys applications. In the web era I guess most developers have some inherent focus on the internet as a client interface.
I would also add:
Hacker: A person who likes to probe things until nothing jumps out anymore. (These days people call this a White Hat.)
Cracker: A person who likes to probe things until nothing jumps out anymore. Then they probe some more where they really should not and the police get uneasy. (These days called a Black Hat.)
For the non-tech community:
hacker = person committing computer crimes (black hat)
cracker = a tasty snack (or, if you are in the American South, a contemptuous term for a white person)
tinkerer = someone who tinkers around with stuff (what tech community traditionally called hacker as in hacker news)
The concrete definitions are:
Hacker: A programmer; someone who embodies the spirit of the programmer's way of thinking
Cracker: A programmer that commits crimes by illegally breaking in to systems.
If I build an iOS app that streams video to a webpage, am I developer or a programmer?
I've never cared what people refer to me as, and I've never seen anyone voice a preference for it among people I've interacted with.
I call myself a Software Engineer, because pretty much every job title I've had has used that term.
The only anecdotal observation I had is that people in nontech, non SV companies use the term "developer". People in SV style tech companies use the term "engineer". YMMV.
The line is blurring though, as I see the term "engineer" becoming more common in nontech companies too. Just like how leetcode interviews are spreading too.
They decided that "we would have to get serious" about this whole software production thing. Some people like C.A.R. Hoare and Edsger Dijkstra said something to the effect of "formal logic..." to which the reply was, "Hol' up, there. That's too hard." They then assumed the term "software engineering" and went off in the '70s, '80s, and '90s to develop stuff like UML and the software engineeing lifecycle requirements -> code -> testing -> acceptance V-thing.
For the cynical computer science programmery-type person such as myself, the end result seems to have been the software engineering degree, sort of a lite CS degree (just enough to be employable) with more project management and what-not. At least it's more comprehensive than information technology degrees.
Developer: codes websites and apps.
Programmer: writes computer code. Encompasses developers.
Engineer: builds bridges, rockets, cars, missiles, smart tvs, gaming consoles, computers, power stations, electric infrastructure, water treatment plants, etc.
Related: I've come across a handful of programmers that describe themselves as "contractors". So you hang drywall and install toilets?
(I'm most comfortable with "developer" because that corresponds most closely to what what I do feels like. I don't spend so much of my time actually programming, but very little in software is engineering-like)
A computer is a physical machine that runs programs which are encoded digitally on physical hardware (memory).
I could see an argument for considering a computer program to be an engineered "machine" that runs on a turing-complete computational platform. Just because a computer program is digital doesn't mean that it's not an engineered mechanism. In fact, early computer programs did run on physical hardware in a physically mechanical manner.
A doctor or lawer, on the other hand, is not building any type of machination. They are diagnosing patients and having arguments with judges. What exactly are they engineering?
That's exactly the point. Programmers write programs. They don't design engines, machines, or public works. Programmers are excluded from the very definition you're quoting.
If you want to expand the definition to include the application of scientific methods to solve a problem, so that it includes someone that creates a Javascript single page web app, there's no way to exclude those other professions. Programs are not machines by any conventional use of the term.
You can become a licensed software engineer
In any case, software engineering seems to be considered a legitimate engineering discipline.
But to come to your point, in my mind - an engineer is the one who designs the software, a programmer is the one who actually writes good code to make that design a reality, and a developer is a blanket term for someone who does both (or more) jobs.
An engineer isn't just someone who designs things... but also someone who builds and maintains them.
Wouldn't that mean that even a lowly programmer who is just simply maintaining code is also an engineer?
Engineers apply math to create systems. Without Newton and his math there wouldn't be engineers or the other way round: engineers are those who create the stuff that is only possible with Newton's math.
Since only few software needs math to that degree, rarely any software is developed by software engineers.
Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves.
Programmers are to engineers what words (Greek: grams) are to math. They focus on the language and care about expressing ideas in program code.
Then there are also software designers and architects who care about the overall system structure.
I like this analogy, because it confirms my personal biases/discomfort about web and app developing falling under the same umbrella of "engineering" as nuclear reactor design, missile guidance, and the worldwide chemical industry.
However, to advocate against my biases, in my field (ChemE), most of the fundamental work has been done. Very few BS graduates in chemical engineering will design a distillation column or a chemical reactor. Again, most of the basic science and engineering has been figured out long ago (which is why most research ChemE looks more like chemical physics, molecular/systems biology, and materials science than reactors and unit operations).
So, to an approximation, a chemical engineer won't "build" something. They'll stitch together components that were figured out a century ago. In fact, this was the entire point of "unit operations" -- black boxes that can be represented as a functional transformation on their inputs to produce outputs, and can be solved, quasi-linearly, to estimate the overall inputs and outputs of a chemical process.
In that case, by the same analogy, they wouldn't be "chemical process engineers", but "chemical process developers". Yet I wouldn't suggest a chemical engineer who pulls correlations out of Perry's isn't really an "engineer", so with critical review, it's hard for me to justify a believe that somebody who stitches together APIs for a living isn't equivalently an engineer.
[Edit: a relevant xkcd: https://xkcd.com/1988/ -- Most engineering doesn't seem to be that different]
I don't have an engineering degree, or even a CS degree.
I feel pretty uncomfortable calling myself an engineer since it seems to carry a certain weight of responsibility, but seeing as the title was bestowed upon me by my work place, I'll continue using it.
IMO the designations are meaningless until there is a real standard in place for "software engineer" and what it entails (in the US at least).
I refer to myself as a "programmer" or "developer", but I use them interchangeably.
Anyone putting any real weight on the title is splitting hairs.
Of course, I also see titles like "Customer Success Engineer" and "Technical Support Engineer", which are just as, if not more, ridiculous.
On a side note, when people ask what my job is, I usually say "programmer" or "software developer". For some reason I just feel uncomfortable calling myself an "engineer", I think I find it is just a bit pretentious.
Yet I tell everyone that I'm a programmer/developer. To me, having seen what goes for engineering in other fields, I feel like a small subset of engineering jobs in non-software fields is true engineering. To me, that bar is inventing something worth patenting. I'd say its an even smaller subset in software.
The thing is, I wouldn't say it the highest value work is the stuff that is true engineering. Actually implementing ideas is so much more value adding and difficult in my opinion. Execution and front lines gritty work is incredibly undervalued in every industry. So I prefer to go by developer because I take more pride in that part.
I have no issue calling myself engineer, because I have a degree in Informatics Engineering and in Portugal it is a professional title validated by the Engineers Organization and all universities must have a green light to offer such degrees.
What I have an issue with, is developers feeling like calling themselves "engineer" after a six months bootcamp, or not having any kind of engineering degree to start with.
Pretending that engineer is a restricted title does not match the reality of the world today, and is unnecessary at best and creates miscommunication at worst. Language evolves and certain words become more lax and widely applied. We can prevent it in cases that are sufficiently technical (Zoom does not have E2EE, that's a blatant lie), but getting the world to use "literally" as it was originally defined is no longer feasible IMO.
Well, I for one am both a developer and an engineer. I have a B. Eng (equivalent) degree in ICT and I work as a full-stack dev. I don't really have a problem with using either "developer" or "software engineer" to describe myself.
Soft skills and people skills are also scarce skills, in my experience. You can always teach a monkey a new trick (you can always teach a fresh looking young man to program in Python or to solve a differential equation), but you can't as easily teach them to: communicate in a professional manner, talk like a professional to other professionals (both people above you and people below you), write clearly, concisely, and without grammatical or orthographical mistakes, sell yourself or your product, etc.
The geeks will not inherit the Earth. Socially sophisticated people will inherit the Earth.
I didn't have any particular prejudices about Indians before I started dealing with Tata and Cognizant and Infosys and Cap-Gemini and the ATT/IBM/Oracle Global Services divisions, but afterwards, it's just hard. You get to where you just expect dishonesty and incompetence and disorganization and abusive behavior as the default.
Still I think there should be some needed post-grad accreditation for software engineers if they want to actually be called engineers.
Everywhere in the world people flock to careers with prestige and money. Chasing cash in a developing country makes even more sense because being poor there sucks even worse than being poor in a developed country.
Which will depreciate just as fast for the same reason.
This would reduce the need for crazy interviews for those that have passed it, since it proves a level of competence above scraping by for a CS degree, etc! Maybe you need a few years of real work experience to have a chance at passing the Software Engineer accreditation. Just like if you have a long work history at GoogAmaFaceSoft, it's assumed you're already pretty capable.
That's just the opposite of what works. I personally find looking at github or whatever personal project the person had to be the best indicator of whether he/she actually liked/is good at programming - for someone coming out of school or claiming little/no experience otherwise.
You can't blame interviewers being racist on the bad actions of some university. They have to address their own racism themselves.
Yes, you always blame the racists for being racists.
Edit: instead of deleting my (incorrect) parsing of the parent poster, I’ll leave this here and accept my well deserved lashings and downvotes...
Biggest predictor for anything is past experience, and understanding what bad habits people pick up in different places and roles — your interview needs to look for that.
End of the day, people are snobs about education, etc. Some companies just won’t deal with you if you didn’t go to a school on the happy list.
This has been a problem my entire career. Long before China, India, Vietnam, etc entered the fight.
Credentials are just one signal in the torrent of noise.
GP is trying justify racism by interviewers when the people being interviewed and the people mentioned in the article are two distinct groups. This is HN so you can't just say "don't be racist", but even from a logical point of view this doesn't make any sense. How does perceived poor performance of one group justify discrimination of another unrelated high performing group.
Churning out engineers as fast as possible and pressuring everyone to become one despite lack of interest just guarantees you will churn out astronomical numbers of crappy engineers.
And I hate to say it... but it possibly creates unintentional racial bias in interviewers because the sheer volume of crappy engineers being churned out from [Indian/Chinese/etc. universities] has preconditioned you to think all engineers from [Indian/Chinese/etc. universities] are crappy, which couldn't be further from the truth.