|
I would have gone to uni probably had my mental health and housing situation not been dreadfully unstable through my teens. When I landed at Microsoft at 18 it was a lifeline, so I never went to higher ed - i was too busy working.
I'm going to make a confession - I have only read excerpts of Knuth. I find such material far too dry and math formalisms confound me.
What I liked was the whiteboards. Those are what saved me. Implement an AVL tree on a whiteboard. Okay.
Implement atoi. Okay
That got me through my entry level years.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I've been working in IT for >33 years now.
For the past 20 years, each year I'll go out to O'Reilly.com account, pull up one of the volumes of The Art of Programming and read 2 or 3 paragraphs then bail out. Until the next year when I do it all again.
honey the codewitch wrote: I'm going to make a confession - I have only read excerpts of Knuth.
Uh, yeah, me too. And, it's the same paragraph or two every year.
|
|
|
|
|
Self-taught? So am I.
What is a BS degree anyway? It's a directed learning path, with some discussion, a bunch of lecturing, a lot of book reading, and a little experimentation. That's something we can do entirely on our own without spending $80K on it.
Hell, we can even get the same/updated books, keep them to boot, and not spend the kind of money on them the students are getting fleeced for!
Of course, we do a lot more work experimenting and learning, but that's the fun part!
The only downside is a lack of feedback on our work.
|
|
|
|
|
Any time I hear stuff like this it reminds me of an interview with Scientific Atlanta. At the time I was a pure C coder, dabbled in C++ and I could spell object oriented. This was back in the day when companies spent BILLIONS making sure it was all designed OO and never produced anything. The techies were great, I answered all of their questions, actually debugged a problem that had been plaguing them, but the PM and the architect were two of the most pretentious pricks I ever had the displeasure to meet.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
honey the codewitch wrote: It was at that point that I responded "I just whiteboarded all of your problems, because while you were struggling through English lit to round out your requirements, I was coding, so defend your degree first - after all I didn't pay 80k for mine"
HA!
That's awesome.
|
|
|
|
|
I had a mouth on me in my twenties.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
That's to be applauded.
Who knows where you'd be right now if you had held back and gone with them anyway...
|
|
|
|
|
|
absolutely full of piss and vinegar. I love it.
May I ask, do you just contract, corp to corp etc?
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
I contract. nothing fancy.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Not exactly the same situation, but I had something similar. At the beginning one guy (tech guru of the dept.) was getting really annoying with questions and arguments against me. I just stood up and said: "Up to this point, I do not care if you take me, I don't want to work with such a guy" and left.
2 years later, job was still not occupied... what a surprise!
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I know someone that nobody can/will work with.
It's not because of their demeanor though they can be a bit abrasive, it's more awkward than egotistical.
The reason nobody can work with them is that they developed the entire infrastructure for their websites from the ground up over the course of decades, in PHP and JS.
No JQuery, no React, none of that, but all those features - yes- hand rolled.
Funny thing that nobody can learn it.
"But I documented it thoroughly"
"You don't understand: You can't google it. Documentation can't answer arbitrary questions, and you don't have the time to give a course"
They and their employer are both too invested. And they're all making good money, but they can't grow their business as a result.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
honey the codewitch wrote: And they're all making good money, but they can't grow their business as a result. What it is more than expected, logical in that case.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
They could bring on other people if they updated their tech stack to use modern, off the shelf tools.
I don't think the person I'm talking about is willing to work that way though. NIH in the extreme.
When I worked with them, I did discuss this with them, but didn't get very far.
To my credit, they said I was the one dev that they found they'd be willing to work with again. But I can't do it, for my sanity. And I wasn't able to deliver at the rate that I usually can because I was constantly tripping over what I didn't know about their system.
It's kind of unfortunate too. I actually went to high school with them, and they found out through the grapevine that I was in the field, so they contacted me through a mutual friend. I liked working with them, but I just couldn't be effective to the degree *I* was satisfied with using their tools.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
honey the codewitch wrote: I liked working with them, but I just couldn't be effective to the degree *I* was satisfied with using their tools. And that's what matters most at the end of the day.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
honey the codewitch wrote: some interviewer asked me to defend my lack of a BS degree.
I can spit out massive amounts of BS without any degree.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
The shortest horror story: On Error Resume Next
|
|
|
|
|
I don't believe that you were wrong in your answer.
Stored Procedures are, as you say, closer to the database and so can be more efficient. They are also more secure - the only data that is passed are the parameters, and the only data that is returned is the resulting dataset. OTOH, making changes to Stored Procedures requires changes to the database. The DBA therefore becomes the critical path for any changes.
(I assume that the programmers are working on their own development copy of the database, but the database instance is still the single point of change.)
Doing the same work at the application's data level is much slower (the data must be read from the database, processed, and filtered), is less secure (tables must be open to reading/modification over the network, data must be passed over the network and is open to snooping), but the DBA is no longer on the critical path. This may be more important to some organizations than efficiency and security.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
modified 16-Sep-24 6:55am.
|
|
|
|
|
I think your answer was correct, but it all depends on the situation of course and how the company's database is managed.
|
|
|
|
|
So they want to change the ordering of data used for a report - they have to,change the app code, recompile, and redeploy - and they say your thinking is outdated ! I wouldn't want to work with them at any price. Walk away - and yes, I think you did dodge a bullet.
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Cezar Lamann wrote: Did I dodge a bullet
Yes.
Your response of the use of DB stored procedures being situational was correct, them assuming that you were a proponent of using SPs all the time is their mistake and pretty stupid.
There also maybe a person in the team who could've been your peer or worse, superior who do things their way and won't change for whatever reason. Keep miles away.
|
|
|
|
|
Yeah, you dodged a bullet.
You even told them why it's better than doing it in-code. It seems they've forgotten why you don't do everything in-code.
Their way seems to be a pile of security holes with performance issues. They may also be trying to save money on IT operations by skipping the DBA's required to write and maintain the databases and their SQL code.
Congratulations, Neo.
|
|
|
|
|
Dave Kreskowiak wrote: Their way seems to be a pile of security holes with performance issues.
I'm going to print this on a poster. This sentence is poetry.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
The shortest horror story: On Error Resume Next
|
|
|
|
|
I think you gave the best answer.
I also prefer to have the code in the application rather than the database, but I consider the particular situation.
|
|
|
|
|
There was one thing you said that would've made me worry too, but I suspect you dodged a bullet. Here's the proper answer to that question... To give you context, I've been in this game since the 90s... 94 is when I started coding and 97 I was working as a coder. Anyway, this being the Internet expect less experienced people to disagree with what I'm about to say... ignore them. But, the proper answer to that question is:
It depends.
To start with, no expert DBA will accept a code first answer even if you're using an ORM, etc. Only coders that refuse to learn DBs buy into that. Don't ever buy into code first UNLESS they talk about migrations. Then they're smart. But, you can (and should) do migrations in raw SQL. So, that's not an excuse to not learn DBs or DB design. Otherwise, they're mentally lazy, but I digress. So, it would be nice to know "why" they believe their buzzword nonsense.
When to use a sproc (stored procedure)
- When you need custom logic to run that's too big for a db function. Say maybe in response to a trigger or you want to scaffold out something, etc. Never put this logic in code. Yes it's slower than code, but now you tightly coupled your DB to your code. Good luck reusing that DB. Not to mention, you may potentially have to transfer large amounts of data over the wire, which I can promise will be slower if you have a decent server not under heavy load. That's it. That's the only reason. People will talk about security, but a view or function will do the same thing.
When not to use a sproc (stored procedure)
- Don't use a sproc when a DB function would do the job. DB functions are meant to be concise and point driven.
- Not for encapsulation/security. That's what a view is for.
- Not for complex reporting. I suspect this is what made them potentially not like your answer. Sprocs are slow. Reporting is slow. A performant DB should have separate, flattened, read-only reporting DB for complex operations.
Now, all of this is invalidated if we're talking about distributed computing, using NoSQL, etc. Maybe that's their case, but it sounds like they're just following the hype train. This may also be invalidated if we're working with complex graphs in GraphQL. So, this assumes we're speaking of the traditional client/server paradigm.
Edit: Take away point!!!!
Here's the important thing though, if they were smart enough to know the good reasons to break the mold... they would've mentioned in the interview. If they didn't, they're just probably clowns or cannot communicate very well. A good interview with two educated people is awesome. It's a chance for two pros to chat. I've learned things in interviews where peeps liked me. I've taught things in interviews where I still liked peeps. If it feels like they were being zealots... trust your instinct. Two real pros can chat and learn or at least explain their reasoning. It's only the kiddies who think they're talented that can't.
Jeremy Falcon
modified 16-Sep-24 12:55pm.
|
|
|
|
|
I got your point. And the infamous "It depends" is what I really wanted to say (maybe I should have started my answer with this instead of "Well, sprocs have their place".
I wouldn't blindly rule out a sproc, without knowing what is in front of me and what I should do, functionality-wise (like your last sentence - "all of this is invalidated if we're talking about distributed computing. This may also be invalidated if we're working with complex graphs in GraphQL").
Of course, I would NOT do, in this day and age, just use the .NET code as a shim for exposing sprocs and have the whole business logic in the DB (yes, I worked in an ASP Classic project, that was like this, and I hated every single second I worked on that project).
I have also done my fair share of data warehousing and CQRS, and I understand that for OLAP workloads, a separate DB with denormalized tables/materialized views (e.g. "star schemas") can do wonders.
Heck, I even ask this kind of question when I'm on the interviewer side (e.g. for senior dev positions), to filter out the ones that are 100% on Sproc side or 100% on code-only side. In other words, I knew how to answer this. But to get a rejection based on this (maybe other non-disclosed things as you mentioned), has bummed me out.
|
|
|
|
|