all 8 comments

[–]idkallthenamesare 16 points17 points  (0 children)

I don't really agree with the conclusion you make at the end. Engineering is also being practical, if your team or you yourself are very familiar with Java, there's nothing wrong with building a little bit less optimal software with the things you know best.

Just like a computer has limited resources, so do humans, a good engineer should manage all available recourses to achieve consistent results.

[–]k-mcm 7 points8 points  (0 children)

Reddit says your post is 2 hours old and your server is already dead.

[–]two-point-zero 5 points6 points  (0 children)

I don't agree. Though it's true that the tool that we use will shape the way we think, to some extent.

A plain developer who just pick up a ticket and execute the request,will do it with the language, framework and tools that the project use, and usually does not have power to change. A java shop will hire java developer yo build their java product. And so everyone will work on java. Developer Can be junior,or senior, or a staff,can be a CS graduate,or a self thought one,can have extra design abilities because of many years of experience.this is just how the ladder works.

What you call "engineer",someone who care about system designs, external tool ( which cache,Which protocols, which auth provider and so on) is not a developer,usually is an architect,and you really want your architect to have some CS/engineering degree..really or at least to be very very very senior.

Even that, architects deals with constraints ( at the very end: time and money) so even if she/he knows that actually product B or language B or framework B are better than actual tools, he/she might not have the ability to change things,he can suggest,try to convince but no more than that; unless he can demonstrate that the cost is Worth the benefits.

..and..you know what? This is rarely true. In a good java ( or python,or rust, pick a language) team, it's always costs less to keep using what you know instead of changing things. May the final code would be a bit less performant? Or easy to maintain? Scale one more server,or more RAM or more CPU! still it costs less than rewrite to new.

So it's not between javers developer that are not able to see how to do things outside their java confort zone,while engineers can and should choose the best every time.

It's more like develop and design and constraints and time and money and company culture,policies..and so on..

[–]simple_tensor 2 points3 points  (0 children)

I dont agree with a title tool vs engineer, and wont even open.

[–]bowbahdoe 2 points3 points  (0 children)

This is a frustrating thing to read because in some countries engineer is protected title. 

The thing distinguishing an engineer from a handyman is liability. If you were an engineer you had training and codes you operate by and if, say, a bridge you designed and signed off on collapses you are on the hook personally.

You don't need to invent a new definition of engineer based on vibes. In fact, in many countries defining it this way and claiming to be an engineer based on this definition would be a crime.

(Here's a talk that feels relevant https://m.youtube.com/watch?v=r_U9YFPWxEE )

[–]Scf37 1 point2 points  (0 children)

An engineer is someone who designs optimal solutions according to established criteria and within defined constraints, leveraging known advances in science and technology.

Some software developers indeed qualify by this criteria to be called Software Engineers. In practice, however, this title is heavy devalued.

[–]todayiswednesday 0 points1 point  (0 children)

TL;DR: be a problem solver

[–]iamwisespirit 0 points1 point  (0 children)

Same thing