Hacker News new | past | comments | ask | show | jobs | submit login

As a good friend of mine often says: We work in a field of people who envision themselves as artists, when all that is wanted are painters.



No one wants to be a "programmer."

They'd rather be called "engineers."

With none of the licensure, mandatory education, and so forth. But the world needs programmers and technicians for most of the work we have to do. I do comparably little "engineering" and the little I have done that qualifies for such a statement I recall. Majority of the work is programming and technician work. Nothing wrong with that.


But other branches of engineering are also about doing a lot of repetitive work, exactly what "programmers" do.

Engineers shouldn't compromise on things like safety, security, legislation, budget, properly documenting, properly communicating with others, etc. Same as anyone working professionally with code should, no matter the title.

But there's nothing that says that engineers should only be doing groundbreaking or interesting work.

The "artist" analogy works much better.

EDIT: Perhaps the main difference is what psychoslave mentions below – engineers are expected to question the relevance and necessity of requirements, and work together with business, rather than just doing as asked.


Maybe not in the U.S. but in Europe, Software Engineering is often a field of engineering where one can get licensed.

i.e. in Austria many IT techs and devs are called (at the doctor's office or in formal settings) "Mr. Engineer" ("Herr Ingenieur") if they fulfill some formal criteria and get licensed. A further qualification is becoming a federally certified civil technician for IT (Ziviltechniker or Ingenieurskonsulent) - also something that public sector contracts sometimes mandate.

Software around the world is engineered - it just often isn't in California.


Here's a story for you: I was born and raised in Switzerland, but I live in Germany now. When I first moved here, I was working as a freelancer and needed to register as a sole entrepreneur (Einzelunternehmen, one of the legal entity forms here).

Now, there are several types of taxes you pay in Germany based on your income. One of them is the income tax, the other is called Gewerbesteuer (maybe best translated as "commmercial tax) - and the Gewerbesteuer can be significant (something like 12% of your income). Many freelancers are exempt from the Gewerbesteuer, and so are software engineers. However, I learned that you only qualify as a software engineer if you have actually studied software engineering or a closely related field. I had studied business administration. I tried to explain to them that I have been working as a software developer for over 10 years, literally doing the same job as somebody who had studied software engineering - to no avail. They woulnd't exempt me from the Gewerbesteuer.

I'm not claiming that I'm an "engineer" or that my computer science fundamentals are as good as somebody who studied computer science, but the tax exemption shouldn't be on some bureaucratic difference like what you studied a decade ago, rather on what kind of job you're doing.

Welcome to Germany!


Bizarrely enough, I always had "Software Engineer" written on all my documents here in Germany: my old Residence Permit, tax documents, contracts, the speedy authorisation from Agentur für Arbeit when I moved here, etc. As far as BRD is concerned, I am a software engineer.

But I never really studied software engineering or anything related, only Electric Engineering.

But nobody in the government knows that. I don't have my diploma papers with me and have no time or interest in going to my country of origin and ask my university for it.


It doesn't matter so much because with a degree in electric engineering you are allowed to call yourself an Engineer/Ingenieur, and that is the only thing that matters. It is a Ordnungswidrigkeit (administrative offence) if you call yourself an engineer if you don't have a at least 3 year degree from a university or university of applied sciences.

With a degree in computer science you are also allowed to call yourself an engineer in Germany, for anyone reading this and wondering.


Yeah, Germany is kind of a bureaucratic hellhole. And from what I know France is even worse.

As for formal education - I've seen dozens of people with an engineering diploma who barely can write a FizzBuzz, so it is not the best indicator and mostly people don't look at it when it comes to recruitment aside from big corps. Although that kinda changed lately as junior positions started evaporating and without experience the diploma is the main thing they check.


Yeah. I also never had problems getting a job or similar because of my non-CS degree.


I live in a country where software engineers often have engineering degrees.

What that means in practice is that they study math and physics for the first 2-3 years of their degree, instead of computer science or software engineering.

Does that make them build better systems than Californian devs? Based on company revenues and salaries, I’d say no.


> Does that make them build better systems than Californian devs? Based on company revenues and salaries, I’d say no.

Majority of silicon valley devs are immigrants though, they are good because they are sourced and filtered from all over the world not thanks to American education.


Many of the immigrant devs attended American Education like Stanford, Georgia tech, MIT, CMU, one of the UC’s, etc.


Yet almost every major piece of software or idea started in California and almost nothing noteworthy in the space started in Austria. I think that tells us something about the real value of a piece of paper granting you the right to call yourself an "engineer".


I'm sure there are many things which make this such an unfair comparison that it's not worth making. If there was a firehose of money spraying all over Austria as a result of being the worlds reserve currency I'm sure the shoe would be on the other foot.


What is the mechanism by which being the reserve currency sprays a firehose of money into the US?

Keep in mind that being the major economy also carries costs - the US spends many times as much as other countries on its military and has no realistic path towards spending less.

And either way, their economy has been wildly succesful since the 1800’s.


Plus primary spoken language (Austrian-style German) and size of domestic market explains a lot.


IrfanView?


> Software around the world is engineered - it just often isn't in California.

A gatekeeping organisation you have to pay to enter the workforce isn't the same as something actually being "engineered".


This "gatekeeping organization" is the federal government. They have you pass an exam to prove that you know about public procurement law and how to plan and oversee a software engineering project before they let you work on public sector contracts, where you have to responsibly handle tax payer funds.

For something like this to work there needs to be a strong and technically competent government that the tax payers trust. This is presumably why it works in Austria and not the USA.

You can enter the workforce as a developer here without being licensed or credentialed at all, it's absolutely no problem (legally speaking) - it's just an obvious sign of a commitment to engineering responsibility and quality.


    > they fulfill some formal criteria and get licensed
Can you tell us about the process to get licensed? Do you think it adds value for software developers?

And just to troll a little bit: Do they make you do any hard problems from HackerRank or LeetCode?


"Software around the world is engineered - it just often isn't in California."

Can you explain the difference between 'engineered' software, and the rest? I mean other than being created by someone with an engineering certificate or whatever.


I'm no defender of Degrees as a mark of quality

But, for me it implies that it gets Planned and Worked on formally like other engineering projects, Lists of Requierements, Detailed Propossals, Design documents, BOM's ,Gantt Charts, the whole shebang

The alternative being the ultra lean SV style, where a project is lucky if even the public facing documentation is not at least N-months out of date


Having any documentation it's pretty much a miracle.

Normally in startups it is very common to have the only available documentation be the code itself.


Lately I've come to understand the term engineer somewhat differently from this excellent video from the 'engineerguy': https://www.youtube.com/watch?v=_ivqWN4L3zU

He defines the Engineering Method as: 'Solving problems using rules of thumb that cause the best change in a poorly understood situation using available resources.'

In that sense a Software Engineer would not necessary need to know all the complexities of the complete system to make something work as specified. And I would equate a 'Programmer' more like the Scientist or Mathematician in this case.

Funny how there are so many different ways to look at a title.


Actually I call myself a developer. I'm not that good of a programmer, but quite resourceful as a developer.


Only reason I sometimes say I'm a programmer is because developer sounds like I work for an NGO


Yeah, developer is much more ambiguous. Could also be a real estate developer, or a business developer (fancy word for "sales").


I've come to understand the difference between programmer and software engineer, but what's the difference between (software) developer and programmer?


Maybe it's only in my head, but for me, programmers work 99% of the time with code, while developers also spin up servers, cicd pipelines, domain dns stuff, and more stuff that are not strictly source code.


Developers build software whereas programmers merely flick the switches on an Altair 8800 /s


I call myself an engineer- but the way I understand it is that I still have to know when to use a hammer like simply copy paste code and not some complex solution.


The problem in software is that very frequently you dont have a real hammer. You have hundred amalgamations of swiss army knives that do everything. Like what is the hammer when you want to add some nice dynamic content to a website? Is it just javascript or maybe react?, Angular?, Svelte? Or another example: you want to code a command line app, what language is a hammer here?: C++?, Go?, Bash?, Python?

This analogy falls apart the moment you apply it to anything in software.


Well, the engineer first move should be "do we really need this dynamic to achieve the global goal, or can we do without"?

Most of the time however stakeholders will prefer that someone unleash the last technical shiny tech stack (that no one master in the team and that is about to be dethroned by the even newest thing) to deliver a pixel perfect reproduction of the mock-up rather than question the relevance of the proposal.


I think I might actually like to do more actual engineering, using models and sound notations and planning, thinking about eventualities, not being told not to by management guys, trying to get it right the first time, instead of always being told "later", because otherwise people will suffer (or die) and all that.

I would perhaps even like there to be a license, because then we would maybe get way fewer people interfering with a technically sound decision process. As it is right now, every manager dude thinks they know better what to build than the actual programmers/engineers, even if the programmers/engineers work on the product for years already and have gathered experiences the frequently rotated managers lack. It is always soooo convenient for the manager types to defer good enginnering endlessly, so that ultimately it never happens and shitty products are made.


YES! Couldn't agree more. Although my title has always been Software Engineer, I never introduce myself that way (I prefer Software Developer or just Programmer, or I say "I write code at XYZ").

I went to an engineering school. Actual engineers design bridges and machines and biochemical whatnot, and of course require licensing. I push code around.

I even try to subvert company culture and say things like "Well developers will need to update that API" instead of "engineers".


I prefer the term "developer". In most cases, software is a craft discipline, not engineering.


Some of the best are in fact also painters.

https://paulgraham.com/hackpaint.html


It's the same in the creative industry, no? Teens fall into it practicing the techniques of artistic self-expression wanting to make a career out of showing the world themselves with expressive finesse, but the alienable value in these skills lie in using them to create a consistent brand identity etc.


This articulates something I've been thinking about quite a lot recently; quite nicely.


Tell us more! :)


To extend that further, most professional painters think of themselves as sanders.


Why?


It’s usually more than 80% of the work. Painting something is really fast with modern sprayers but sanding off the old layer is still a lot of elbow grease, even when you have sand blasters.


A Lot like development then, there is a lot of work before you write your first line of code, however like the original post you can do a simple sand down, no undercoat and have something that lasts a dozen years if you keep on top of it.


So we should put a bug in the room and if the painter whistles a tune while working, sanction them for slacking off?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: