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'.
Beware of Developers Who Do Negative Work
261–270 of 271 posts
Re: Beware of Developers Who Do Negative Work
#262Earlier 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.
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
#263Re: Beware of Developers Who Do Negative Work
#264Earlier 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…
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
#265Earlier 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.
Re: Beware of Developers Who Do Negative Work
#266Earlier 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…
Re: Beware of Developers Who Do Negative Work
#267Earlier 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.
Re: Beware of Developers Who Do Negative Work
#268Earlier 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.
Re: Beware of Developers Who Do Negative Work
#269Earlier 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.
Re: Beware of Developers Who Do Negative Work
#270Earlier 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…
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.