politics, sorry, but this is great (2023 Update)

I know, and it shows.

Programming without hardware design experience is much like writing a novel having sufficient language skills and no life experience to write based on. My observation, I know you disagree.

I don't think nowadays I know any hardware designers of things more complex than some power stage driving relays or a little above that who don't have some programming experience. The better the programming skills are the better the ability to see the whole picture and to make decisions what to do in hardware and what - in software.

Oh but it is. Being more daring and self confident indicates the persons abilities overall, you cannot lie to yourself unless you are delusional; in the latter case you are neither daring nor self confident, just delusional.

I do not see how being daring prevents you from being methodical. OTOH I do see how being methodical but not daring enough is quite some impediment if you are to design things.

Well if you make a living as a politician obviously it is fine to be linked strongly with a party. Or if your busyness relies on help by some politician friend you have etc.

My attitude for > 20 years has been that I do not like anyone of those on offer - so I just do not vote. I am not naive to hope a sufficient part of the population will do as I do (although there is a sufficient part who like what is on offer no more than I do) to make a difference (forcing "them" to offer something of value so the turnout will be sufficient to legitimize them) but I do my part. From what I see on the news my behaviour would be the same were I in the UK or in the US (I am not hit by enough news from the rest of the world).

====================================================== Dimiter Popoff, TGI

formatting link

Reply to
Dimiter_Popoff
Loading thread data ...

Maybe for a meeting, the email time-disconnect works well, but sharing ideas in a one-on-one works better in person. There's a lot of details that get worked out on a whiteboard, or in a hallway discussion, that wouldn't work in conference, or Zoom, or e-mail.

All kinds of interaction (even dead-trees literature) have their benefits.

Reply to
whit3rd

Well of course all kinds of interaction have their benefits. Come to think of it I don't do much personal interaction just lately,

2-3 decades ago I did a lot more of that. I was (still am, I think) pretty good at taking the knowledge other people have and I need. It is just that I live a pretty isolated life lately, may be this is the main reason.
Reply to
Dimiter_Popoff

If the people are right, brainstorming can be inspirational. Two sessions, a couple of days apart, is even better, to let people sleep on things.

One prissy, judgemental, inflexible person can poison a brainstorming session. Don't invite them to the second one.

Brainstorming doesn't work well online, as in here. Few people want to play and many instinctively inhibit thinking.

Reply to
John Larkin

I don't generally like people, but sometimes they have their uses.

Just talking about a thing seems to help. But I fell silly talking to myself.

Reply to
John Larkin

Again, are you talking specifically about programming embedded systems, or programming in general?

When you are writing a program for a specific task, it is good to know a bit about the use of the program. I'm not a great believer in the idea of one person writing a full detailed specification, and a programmer implementing it blindly - that can work for small bits of code, but not real programs. So if you are writing a program to control a piece of farm machinery, for example, you need to talk to the people that make it and the people that will use it - you need to have a feel for the machines. But you don't need to be an expert farmer - any more than the farmer needs to be an expert programmer in order to use the program.

If you are programming an embedded system, and you need to write the driver for a I²C current sensor, you need to know how to read the datasheet and understand the basics of the schematic. But you do /not/ need to be an electronics designer. You don't need hardware design experience. Knowing how to pick the sensor, which lines to measure, what filters to use, how to lay out the board - that gives absolutely /nothing/ of benefit in writing code to use it.

Now, if you want to suggest that some of the best low-level programmers have started out on hardware and moved into programming from that side, and get better results than people who learned Java or C# and are now trying to get to grips with an 8051, I can understand and relate to that. But I would suggest that it is not because of hardware design experience, but because they started with more limited things and worked up, rather than starting learning with a cornucopia of resources and now have to limit themselves.

(For other types of programming, people get better results if they start from very different studies, such as mathematics.)

If you want to go into more detail of your reasoning and /why/ you find hardware design experience helps programming, I'd be interested to hear it. And again, I'd like to hear if it is particular types of programming.

I see these things as more of a team effort - not one individual trying to be an expert on everything. And while I can agree that an appreciation of other parts of the whole is important, I disagree that you actually need experience or expertise in it. An electronics designer needs to understand that their board will go in a box and that the mechanical designer has a job to do. They need to cooperate in certain aspects - board dimensions, mounting holes, cooling. But the board designer does not need experience at mechanical CAD, or to know the difference between moulded and die-cut plastics, or how thick the casing should be - that's the other guy's job. It is the same thing in the split between electronics design and programming.

You talk as though these are binary choices - as though people are either "daring" or "not daring". You also, I think, mix up engineering with invention, and label it all "design". Maybe we are simply talking at cross-purposes here, and using different definitions for our terms.

That is also fine - it's a valid choice. (My preference in such cases is to make a blank or spoiled vote - though I expect different countries and systems handle these in different ways. The intention is to distinguish between "I don't think any candidate is a good choice" and "I can't decide" or "I can't be bothered to vote".)

It's rare, I think, to find a party or politician with whom you agree on all important points. But often you can find one that fits well enough on enough points, and who you think will do a reasonable job - or at least a better job than the alternatives. It's okay, when given a choice of bad options, to pick the least bad.

Reply to
David Brown

I talk to myself all the time while working, not just lately. I usually work alone - the only person I could have in the same room while doing serious work was my wife, she did not mind it. Sometimes - mostly when wrestling some stubborn hardware problem - I shout and scream, for many years there was no one in the neighbour houses to witness my madness but now that there are inhabitants I still don't care... one more reason for them to think I am a nutter (in fact they know me and just accept me as I am). Well I shut the windows during the night so I don't wake them up, I work mostly between 3PM and 3 AM. And most of the time I am just programming anyway, that gets rarely as noisy.

Reply to
Dimiter_Popoff

John Larkin <jlarkin@highland_atwork_technology.com> wrote in news: snipped-for-privacy@4ax.com:

Better still is to give folks an additional half hour after lunch for a 'cat nap'. That is, anything the person wants to sit in their office/spot/wherever and contemplate. There are some companies in Europe that give such an additional little block of time after lunch each day. I do not know what they call it. I call it a cat nap. I think I saw it on 60 minutes or something years ago.

Reply to
DecadentLinuxUserNumeroUno

Overnight, better yet 2 days, seems to work for me to think things over.

I tend to not like divergent suggestions at first, but sometimes they make sense after a day or two. Sometimes, a year or two.

Reply to
John Larkin

Sanity is over-rated. Dare to be goofy. It's good for design.

I fairly often wake up at 3AM and think for a while. I've heard other people say that too. If an idea seems good, I'll get out of bed and explore it, or at least write it down so I don't forget.

Reply to
John Larkin

John Larkin <jlarkin@highland_atwork_technology.com> wrote in news: snipped-for-privacy@4ax.com:

Oh yeah, and a four day work week with the cat nap lunch 1.5 hr. each day. A 3 day weekend would settle all the jerks down a bit.

Instead we have the opposite. Slave drivers like Bosch where ALL work ten hour, seven day work weeks and some 12 hour. And you cannot be late or miss any time, because you get 1.5 points, and a late show is a quarter point, and a missed day is half a point. And the idiots that work for them are blind to the fact that they no longer have a life because 'the money is good'. You see someone that has been there 10 or 15 years and they look like rag dolls from the homeless village. But they have lots of money in the bank to give to bill collectors and lots of gadgets like game consoles. No thanks. I do work on a 40 or salaried. 10 x 7 or 12 x 7 no friggin way.

Reply to
DecadentLinuxUserNumeroUno

I agree with you on all that. (I would point out that projects don't have to be "fun" to be good projects, good engineering, good designs. But it is definitely nice when they are!)

The same thing applies in other directions. If I am making code for a high-speed PWM signal, I need to understand the limits the hardware has for switching times and dead times. I need to know about particular frequency requirements. I need to understand that the hardware /has/ limits, and coordinate with the hardware designer(s) about them. But I don't need to know or care about the details of how it is implemented in the hardware. It doesn't matter if the frequency limits are because of filter components, or EMI, or driver choices. I don't need to be able to analyse harmonics, or know how to lay out components to minimise stray inductance loops or what width tracks should be to keep temperature rises in safe bounds. I don't need to be a hardware designer to write code for the hardware. (It can be interesting to know more of the details - but it is not necessary.)

Indeed.

Some projects are fine for one person to do everything, but often it makes sense to have different people who are most experienced at different parts. They need an overlap of knowledge with their neighbours in the team, but they don't need to be experts.

(I'm snipping the politics to keep the tone lighter.)

Certainly. Heated discussions can occur in real life too, but the more extreme attitudes found online are rare in reality. Almost all the arguments here would be a lot less polarised and a lot more friendly around a pub table with a beer (but not too many!) at hand. I mean, can you imagine Phil Allison talking in real life the way he posts here? He'd be locked up - either in a padded cell as a raving lunatic, or behind bars as a public nuisance.

And as people get more information from random and unvetted sources on the internet, they get more polarised from confirmation bias and conspiracy theories abound.

Agreed. My favourite place in design meetings is standing at the white board.

Reply to
David Brown

Well I can only talk about my own experience, which includes just about all kinds of programming - from lowest level system programming through tools like assemblers, compiler, linkers to shell scripts and the like, even some html if the latter counts for programming. I know I could not have done it all - millions of lines of code done without involving a single bit of outside written code - without all the knowledge I have, it has been demanding enough as it is really. I understand your point and I know the world operates more like the way you say it does - which does not invalidate my point, though.

All I can say is that hardware design experience has been an integral part of my growing up as a programmer, I have been putting together products and then programmed them - obviously I have been buying the silicon and passive components for these but that was about it.

Without the full experience it is clearly practical to do work based on less broad areas of experience but it does not take a huge product complexity to reach a point where making certain decisions takes as broad experience as one can get. Like which part to do in hardware, invent algorithms to reach your goal - you don't have a lot of chances to get it right with just superficial knowledge of half the product.

But don't take me too literally, I know my experiences do not apply to many people. Thus obviously what I think is unlikely to be either a universally applicable truth nor can it be very popular.

====================================================== Dimiter Popoff, TGI

formatting link

Reply to
Dimiter_Popoff

Thanks. We are all products of our own experience and history. My programming history started with BASIC and then assembly on various systems, and a smattering of a half dozen different languages. Then on to university with maths, functional programming, algorithms, and more languages - and an attitude that the actual language is a detail you learn quickly once you understand the important things programming. In my working career I've written assembly on more systems than I care to remember, vast amounts of C, C++, Python, Pascal, and various other languages. I've done electronics design, FPGA work, big server systems and tiny microcontroller systems. All of that influences how I write my code. I like to think I have taken the best parts of those experiences and use it to write better embedded C and C++ code - but of course we /all/ like to think like that!

Would I write C code in exactly the way I write it if I hadn't done any electronics design? Probably not. Does that mean electronics design experience is important for writing good C code? Absolutely not.

It's one thing to feel that your own personal experiences make you better at writing the code you do. It's a different thing to suggest that people /need/ similar knowledge and experience in order to be a good programmer.

Reply to
David Brown

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.