Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

261–270 of 271 posts

Re: Beware of Developers Who Do Negative Work

#261
post #181

Earlier quoted context omitted.

Junior people who are very good at CS often struggle with "real-world software". I had to explain to such a developer once why it was a bad idea to store multiple values into a single database column. It was a simple task of adding a few integer columns to a table but he couldn't let go of the "optimizations" in his mind about how he could use binary bits to represent what we wanted to represent and all that... A per…

I wouldn't say someone who's never heard of first normal form has 'good CS fundamentals'.

I'm talking about multiple values in a single CELL, not a single table. He wanted to use binary bits to encode multiple things into a single cell.

Re: Beware of Developers Who Do Negative Work

#262
post #206

Earlier quoted context omitted.

As someone with a fantastic manager: it's great. He handles the planning and resource allocation for projects and makes sure that I have everything I need to be able to develop, this includes making sure that any external dependencies (like people not on our team) do their stuff and that the team as a whole is maximizing our time. Whenever for some reason something is blocking me that isn't directly code related, he'…

Any senior or lead could handle the planning and the resources. We both agree that there is something to be done. I personally noticed that it doesn't have to be assigned to an full time manager position.

Often, the team lead or senior dev is only aware of their own project, but not of the status of other projects and how they fit into the whole scheme for the company.

Management has a higher level view and often more experience to make the right decisions for the company, that a dev might not be able to make.

Re: Beware of Developers Who Do Negative Work

#264
post #254

Earlier quoted context omitted.

The manager isn't a good politician if you don't believe his bullshit. If the manager himself is a founder, former programmer, or otherwise both intimately familiar with and committed to the process that actually produces the outcome, he may understand the importance of the work and really be working to ensure his team has what it needs so they can do a good job for the company. He's still working for the company, bu…

Why skip secondary and jump straight to tertiary? I've worked with a lot of really good managers who understand the role their group plays without having to delude themselves into thinking their team or function is primary. I think that's something that's really important regardless of the industry. The most enjoyable jobs I've had have been those where there was good, self-aware management. While bad management is o…

I'm not talking about the group or the team. I'm talking about the contribution that each person considers their primary value-add to the company. Every worker will say of their own class of workers "this company would fall apart immediately without us", exposing at least an implied, though it's often explicit, belief that the class of contributions they are personally making are the most valuable.

The issue is not "My engineering group is most important". The issue, rather, is "My engineering group, and consequently the company, would cease to exist if I stopped performing my core competency".

In the case of managers, this core competency is schmoozing. Thus, when the engineering management must choose between engineers who advocate a better/safer/more effective engineering path and their bosses who advocate not that, they will choose to schmooze and give their bosses good news that generates tingly feelings rather than bad news that generates angry feelings.

This is where the manager puts his craft into play. The goal is to manipulate the engineering team into a set of compromises that will allow the manager to generate good feelings for the bosses. Because the manager is not an engineer himself, he doesn't understand the ramifications of these compromises and/or whether it's actually the correct and wise way to proceed. Yet, he will still feel that he has saved the company (and possibly his team's paycheck) for exercising his core competency: manipulating subordinates into taking uncomfortable shortcuts while keeping the bosses satisfied. Middle management is a massive distorter.

Re: Beware of Developers Who Do Negative Work

#265

Earlier quoted context omitted.

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?

Really well. Dev work is way more fun than science! If you want some advice then: - 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.

Thank you, and it is very good that the path I'm looking towards is possible. I've been brushing up on algorithms, mostly as I run into them in things that I have been writing on nights and weekends. Primarily C++ and Python, with a smattering of C, bash, javascript, and php. I have probably about 6-9 months before graduation, so I've been starting to look at fields in more detail, rather than the nebulous concept of "industry" that you typically hear about in academia.

Re: Beware of Developers Who Do Negative Work

#266

Earlier quoted context omitted.

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?

For me, the key things were : - get really proficient in a language, for me it was python, it is a solid, flexible, minimal boilerplate, can use it already for science applications (amazing libraries for it, like pandas, scipy etc) - understand databases, and how to interact with them - start testing (unit, integration and acceptance), this is super important, and key difference with scientist programming. When doing…

Thank you. I've been primarily working with C++ and Python, and consider myself proficient in both, so it is good to hear that Python is usable. I've been meaning to work more with databases, as I haven't interacted with them in particular. Maybe writing a mini-library catalog, as my bookshelves are starting to outgrow the haphazard google spreadsheet where their contents are currently recording. And yeah, testing is something that I try to do in my home projects, but 95% of the coding for research is throw-away code, and so I don't get much of a chance there.

Re: Beware of Developers Who Do Negative Work

#267

Earlier quoted context omitted.

Any senior or lead could handle the planning and the resources. We both agree that there is something to be done. I personally noticed that it doesn't have to be assigned to an full time manager position.

It really depends on the corporate structure. The unfortunate fact of the matter is that, at least in some dosage, middle management is a practical necessity. Many organizations implement far more than they need for the sake of empire building and ego stroking.

Many organizations spend far more resources on empire building and ego stroking than implementing stuff that they actually need. FTFY

Re: Beware of Developers Who Do Negative Work

#268
post #199

Earlier quoted context omitted.

> I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers. Same. Been there, seen that. Seen good managers, seen bad managers, seen place without managers. I don't understand why there are managers in this industry.

A good manager minimizes the amount of time a developer has to spend on stuff that isn't developing. In the right situations, a good manager can make a team of a few devs far more productive than if you added another dev in place of that manager. Bad managers, of course, can be disastrous, though.

If management would be replaced with motivation, developers would be even more productive.

Re: Beware of Developers Who Do Negative Work

#269
post #261

Earlier quoted context omitted.

I wouldn't say someone who's never heard of first normal form has 'good CS fundamentals'.

I'm talking about multiple values in a single CELL, not a single table. He wanted to use binary bits to encode multiple things into a single cell.

So am I - storing multiple values in a cell violates first normal form.

Re: Beware of Developers Who Do Negative Work

#270

Earlier quoted context omitted.

For me, the key things were : - get really proficient in a language, for me it was python, it is a solid, flexible, minimal boilerplate, can use it already for science applications (amazing libraries for it, like pandas, scipy etc) - understand databases, and how to interact with them - start testing (unit, integration and acceptance), this is super important, and key difference with scientist programming. When doing…

Thank you. I've been primarily working with C++ and Python, and consider myself proficient in both, so it is good to hear that Python is usable. I've been meaning to work more with databases, as I haven't interacted with them in particular. Maybe writing a mini-library catalog, as my bookshelves are starting to outgrow the haphazard google spreadsheet where their contents are currently recording. And yeah, testing is…

C++ and python are a suburb combo, they complement each other really well. If you master both, by that I mean not just the syntax, but the different patterns and styles you need to employ in static vs dynamic typed, understand the tradeoffs of both, you've pretty much mastered programming.

Python also glues v. nicely with C, if a part of your code is v. CPU heavy, you can write it with cython, and then call the compiled code from python, as you would a normal python function, and it would run just as fast as native c. This is how all those python data libraries work under the hood (pandas, sklearn etc)

Library catalogue is a great idea for DB learning, you'll learn how to model data, and the relations between them, using tables, foreign keys, primary keys etc. I'd recommend postgres for the DB.

Again, python would be an excellent language for this, you can use sqlalchemy to define your tables, and query them. You can then use flask to provide a web interface for the catalogue.

Post reply on HN