Beware of Developers Who Do Negative Work
151–160 of 271 posts
Re: Beware of Developers Who Do Negative Work
#152Earlier quoted context omitted.
Logic in the Database has the following issues: 1. it doesn't work well with source control 2. deployments, rollback, replication, synchornization - they don't work very well with db procedures 3. unless you connect directly to the db, then you must have some logic on the serverside, usually you end up replicating logic from the db to the serverside 4. Databases languages (even advanced ones like PL/SQL) are not expr…
4, 6 and 7 are my main problems with this. i occasionally have to work with a big application which is essentially written 100% in sql. you simply can't easily change parts without testing the whole thing from start to finish because automated testing at a granular level is horrible. and sql does not lend itself to encapsulation, it does everything to make it hard to break stuff down to manageable pieces and in sql e…
Re: Beware of Developers Who Do Negative Work
#153Earlier quoted context omitted.
I feel your pain. Scientists & data scientists are notorious for spaghetti code. Refactoring scientists code was how I got into software engineering. I used to be a scientist, and I found restructuring/modularizing the analysis code more fulfilling than the actual analysis.
As someone who is currently in that exact situation, and is considering switching away from science, how did the actual switch from science to software go?
- Take some time to learn some CS fundamentals.
- Make sure you know a language that someone that might employ you knows (just so they have a point of reference).
- Write some toy applications in the field you want to move to.
Re: Beware of Developers Who Do Negative Work
#154Earlier quoted context omitted.
What's the solution for source controlled database logic?
What's the problem with source controlled database logic? Have your statements (including those that create stored procedures on setup, migrations, etc) on text files, and just load those into your Git or whatever.
Re: Beware of Developers Who Do Negative Work
#155Earlier quoted context omitted.
This is definitely true on both ends. At a previous company, the tech influencers believed in the archaic "do everything in the database." While we were technically using the .Net stack, we weren't allowed to do any actual business logic in C#. Instead it had to all be done in MS-SQL procedures (or at least at much as possible with very little CLR glue). Similarly at my current company, we had a product were the init…
Can you explain why you feel that "do everything in the database" is archaic? A lot of logic (especially authentication logic) can be put in the database only. Not to mention that I won't trust anything that only has application level security, and nothing at database level to check/limit it.
Re: Beware of Developers Who Do Negative Work
#156Unfortunately, 'negative work' developers are often perceived by the rest of the organisation to be doing good work. They can make quick changes and deliver results fast. It is almost impossible to measure the real impact a developer's changes has, but easy to measure how much they are doing week-by-week. Therefore, the only practical way to make the issue apparent is by stopping the bad code getting in.
So when the developer says my work is "done", it sits in code review for another 2-3 works until it is "done done".
Re: Beware of Developers Who Do Negative Work
#157Earlier quoted context omitted.
It's hilarious, because our best hires are people who had no CS education. Meanwhile, some of the worst hires were CS grads. Things that are hard to teach: Can you work in a team, especially if some of them are remote workers? Can you leave your ego behind? Can you deal with the corporate BS that gets in the way of programming? Can you think of the user, use-cases, business value, etc of the feature/product you're de…
That CS fundamentals and programming are easy to teach is a myth that keeps being perpetuated and I don't understand why. I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard i…
I'll dispute it. I did a year of a split maths/computer science degree, found the computer science easy, and so shifted into the maths degree (on the grounds that I was confident I could teach myself the computer science degree if need be, whereas I wouldn't be able to learn the maths without teaching). Now I work as a programmer.
Most of the best programmers I've worked with have had non-CS degrees - mostly mathematics/physics, but a few from chemistry/biology/engineering, even one historian. I would sooner trust a straight IQ test than CS exercises like reversing a binary tree - the first selects for general intelligence, the second selects for general intelligence plus having sat in a CS class and/or read some CS books, and is no more relevant to day-to-day programming work.
Re: Beware of Developers Who Do Negative Work
#158A first alternate to actually testing things might be "conformance to a model of Best Practices for changes that we think might - maybe - do minimum damage."
Re: Beware of Developers Who Do Negative Work
#159Earlier quoted context omitted.
That CS fundamentals and programming are easy to teach is a myth that keeps being perpetuated and I don't understand why. I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard i…
* Big-O. It's basically enough to know when an algo is going to perform horribly - e.g. O(n^3) - and even then you might choose it because it's simple or your n is currently small. Anyway, senior dev or architect can make this call way better than any grad could, CS or not. * Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory. I co…
To be fair a lot of people seem to have their personal identity invested in poor communication abilities, or see it as somehow "fake" to work on them. E.g. I see How to Win Friend and Influence People recommended here, but you'll see a lot of people who refuse to read it on principle.
Re: Beware of Developers Who Do Negative Work
#160An even more egregious form of negative work is a developer who is stuck using out of date programming practices AND has a large amount of influence at a company. At the other extreme is the developer who is so entranced by "newer is better" mentality that they rewrite everything in an attempt to conform to "latest best practices", increasing complexity massively while introducing a bunch of bugs and huge dependencie…