It depends who I’m talking to and where I live. Where I live, engineer is a protected title and requires certification/etc so that takes it out of the race. That leaves the other options. Generally I am a Web Developer to people my age or younger, to people older than me I am usually a Computer Programmer but also sometimes a Developer or Software Developer instead. Realistically, I am a Full Stack Website Developer.
Referring to my job doesn’t get any easier even as someone in tech.
At least in civil, the reason is because the professional engineer (PE) stamps all plans and assumes responsibility for said plans by doing so. Plans cannot be built without a stamp. This is the case because someone has to be found liable if a bridge should kill people, and it shouldn’t be the technicians, designers or EITs under the PE, because they don’t make nearly as much. With great pay comes great liability.
Lives ARE on the line. It was faulty software that caused the Boeing 737 Max to crash twice, killing 346 people. Software runs your car, the trains, rockets, literally everything.
No, actually C#'s answer should be: “What Java said - hold on, what Python said sounds good too, and C++'s stuff is pretty cool too - let’s go with all of the above.”
C#, or as I like to call it “the Borg of programming languages”.
I got my first software developer role last year and it was the first time I’d written C#, I was more TypeScript. Now we use both but I must say I really like C# now that I’m used to it.
I think most programmers would like C# if they spent time with it. It is getting a bit complex because the joke about it over borrowing from other languages is on the money. It is a nice language though and pretty damn fast these days all things considered.
There’s too much MS in the language and runtime for me. The fact that it gives my Linux programs DLL files and the fact that by default the SDK phones home makes me run away in horror from not only writing it but also running other projects written in it.
The biggest selling point about functional languages for me is the type system, mainly algebraic/union types (which imo Scala does the best), pattern matching (and imo Rust does this best), and the incredible type inference, but also all the functional features. But I think the best part about F# specifically comparing it to C# is the removal of a shit ton of the boilerplate. Plus data is immutable by default, always a nice touch.
For F#, the special types may not be super relevant when interacting with C# libraries, but in general you can do everything in F# that you can do in C#, including all the OOP. It’s just an added bonus that you basically get enums on steroids and pattern matching.
I find that writing in F#, even if I write basically the same code I would in C#, speeds up my design/programming a TON and makes it significantly more maintainable and easy to navigate. There’s a lot less clutter and you don’t have to worry about the layers upon layers of repetitive boilerplate.
The only downside IMO is that F# can have some terrible error messages. And of course, you have to learn F# syntax which can be a small pain if you’ve never used ML or Haskell (especially when it comes to function call syntax). But if you’re mainly interfacing with C# libraries then it’s no big deal. I started making an application only utilising C# libraries (mainly DB stuff) the same day I started using F# and it went relatively smoothly, although probably because Rust is the main language I used then.
This resource might help, although I can’t say it’s enough to completely learn the language: fsharp.org/learn/
Rust isn’t really OOP like C#, Java or C++ - it has structs with functions that you could consider an “object” but there is no inheritance. Instead Rust uses traits which are a little bit like interfaces in some languages.
The way the kernel is using Rust at the moment is to produce safe bindings for modules to be written in Rust, i.e. you can create a module in Rust source which will be correctly loaded up, the code is safe by default and will have access to kernel services via bindings. I expect over time that more of the kernel will become Rust, but the biggest impediment right now is Rust relies on LLVM and LLVM only supports a subset of targets that a kernel could potentially support with another compiler like gcc.
Having a thorough process and an engineer approach in software development is also pretty handy. There weren’t many bugs in the AGC. Yet it was programmed mostly in assembly and people had no trouble trusting it with their life.
I got told the difference between a software developer and an engineer is that an engineer factors in a products lifecycle and scalability and communicates this to their team and client
This is my opinion that is basically a compilation of the coworkers I’ve talked to about the subject.
Depends on the role. Passed senior level most prefer to be called engineers. Those are the people designing the whole system. Software developers are usually more mid level and figure out the specifics of how to design smaller sections of the system. They cut a lot of the detailed tickets and write a lot of infrastructure code.
Programmer is usually the juniors who never design much and just take tickets and turn them into code.
When I say senior, mid level, and junior, I’m referring more to the role that you’re fulfilling that day, and not the overall skill level. Engineers will often step in as programmers for more complicated code.
We usually accept any of the terms though because it’s very rare for someone to not jump between the various tasks depending on what the active project is. And at some companies they only hire seniors and they perform all roles.
TL;DR: Every software engineer is a developer and programmer, but not every developer is an engineer, and not every programmer is a developer or engineer.
Lol i do this when the pm wants to note me down as “develor lead” on change requests, and i force him to change it to “developer enthusiast” instead lol i aint leading nothing.
Yeah, you can technically write object oriented code in C. Or any other language. Just that actual OOP languages provide a nicer syntax and compile time checks.
Rust is kind of a good example of this. It’s technically not an object oriented language, but the trait system brings it close.
I was disgusted by the XML at first, but it’s a readable query returning a sane JSON object.
Meanwhile, I’m mantaining Java code where the SQL is a perfectly square wall of text, and some insane mofo decided the way to read the resulting list of Object[] 🤮 is getting each column by index… so I’d switch to SQXMLL in a heartbeat.
Now you may be asking, what happens if the APE loader isn’t installed on my system? In that case, it’ll try to dd the 4kb copy of the APE loader that’s embedded within the host executable, out to the safest folder that’s guaranteed to work, namely ${TMPDIR:-${HOME:-.}}/.ape. If your operating system defines the POSIX-specified $TMPDIR variable, then the ape loader will become $TMPDIR/.ape. Otherwise if $HOME is defined, it’s dropped in in $HOME/.ape. Then, if neither is defined, ./.ape is created in the current directory
I don’t know where “software engineer” started but in Australia engineers have to study for years and then do a minimum amount of study every year to keep their license. Which we don’t have to do. I’ve always been weirded out by Software Engineer even though it seems to be becoming more common.
Engineering is engineering. You design it, you build it, you test it. Engineering. We shouldn’t gatekeep words.
With that said, I recognize that certain engineering disciplines have overlap with public safety, and should come with some qualifications to back it up.
Single software engineer can nowadays do more harm than most of other engineers. Just one SQL injection and all the people’s personal data have been leaked. Single bug in car self driving software and the car drives in to school bus.
I like the title only because I got a degree in computer engineering and passed the fundamentals of electrical engineering exam. I definitely don’t do any engineering but it makes me feel like my degree wasn’t a waste.
Edit: also that was an 8 hour test that I really took for no reason.
Software engineer is an accurate term for a lot of roles. The problem is when software engineers step out of their lane and start pontificating about other engineering fields.
You have to do that to be a “Chartered Engineer”, “Professional Engineer” etc. Some states require you to have some kind of registration to practice in some roles.
“Engineer” remains an unprotected term in all states and territories as far as I know but I could be wrong. It’s definitely unprotected federally.
May I propose a dedicated circuit (analog because you can only ever approximate their value) that stores and returns transcendental/irrational numbers exclusively? We can just assume they’re going to be whatever value we need whenever we need them.
I mean, every irrational number used in computation is reliable to a certain level of precision. Just because the current (heh) methods aren’t precise enough doesn’t mean they’ll never be.
I mean, technically it’s the other 2 out of 10 that are wrong…🙃
HTML, the programming language, is a practical, turing-complete[1], stack-based programming language based on HTML, the markup language. It uses elements defined in HTML, the markup language, in order to do computations.
programmer_humor
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.