Dude interviewed some people that did both software and other forms of engineering. Vast majority said software engineering is real engineering.
These are a few things that stood out to me.
In software engineering the gap between tradecraft and engineering is a lot smaller than the other engineering fields like electricians and electrical engineers.
Software engineering can iterate faster because it’s cheap. If civil engineers could iterate like software engineers they would. New modeling tools are allowing this.
A lot of physical engineering defects are being fixed with software. 737 Max was given as an example where the new engine configuration made the plane unstable and it was fixed in software.
A lot of things can be learned from the different fields. All the other engineering fields wish they had version control. Software engineering needs more very focused deep dive books like this the other engineering fields have. Ex: https://www.amazon.com/First-Snap-Fit-Handbook-3E-Attachments/dp/1569905959
Don’t worry about Linux, and don’t try to over complicate things. If you are set on going the Linux route, get a Raspberry Pi. It will give him something really flexible and cheap to experiment with later on.
Look into modded Minecraft. There is a mod called Computer Craft where you can write programs in Lua. One of the things that makes scratch so good for kids is that the results are instantly visible. This is important for kids.
https://www.curseforge.com/minecraft/mc-mods/cc-tweaked
There are programs to control your reactor > https://www.youtube.com/watch?v=N9fC3khXuj8
Unmodded Minecraft has Redstone where you can build logic gates.
Outside of what you already have check into a maker space or a computer club at school. Here in Atlanta there is https://www.codeninjas.com. Maybe there is something similar in your area.
I’m on a team of 5 and we don’t have an on call rotation since developers are not prod ops. But in a sense we are all on call all the time. The NOC has our phone numbers and if we are needed for something urgent we will get a call or a text for things like helping prod ops troubleshoot an issue if they get stuck. My boss has texted me while I was on vacation before. Usually it’s a quick question for something obscure. Once it was an escalation from a senior executive. I don’t have to respond if I’m on vacation, but if I’m getting a call they really need help with something. It also is a good opportunity to lay a guilt trip on your boss that results in a few reward points. Never had to actually log into anything though.
We also have BCP, business continuity plan, events. I work for a company that provides a lot of critical infrastructure. If the BCP event is really nasty, like a natural disaster, and our team needs 24/7 representation on the bridge, we take turns and will relieve each other. You won’t be expected to help out on a BCP event while on vacation.
Besides BCP we usually have to be available for certain production changes. Like a few months ago I had a DNS and load balancer change done. I wasn’t doing the work, but the team making the change wanted me available between 3 and 5 am to validate the change.
If I were paid hourly things would be more formal. I would get overtime(1.5 x hourly rate) + comp time. Since I’m salaried I just sleep in the next day. Our schedules are really flexible. We basically need to be mostly available for meetings for around 4 hours a weekday from late morning to late afternoon, and complete our projects on time. It was like this in the before times. Back then I would go into the office around 11 am for our daily standup. Get lunch with some team mates. Do some afternoon meetings then go home, and do my more focused work at home after dinner time. Most of my team mates did something similar.
Rest of the compensation is your typical American senior software engineer salary with a 10% to 20% bonus, 7 weeks pto, health insurance, life insurance, short term and long term disability insurance, 401k with 6% match, pension, retirement health insurance, pet health insurance, can use the corporate travel agent for personal travel. I actually like this perk a lot. You still pay for personal travel but it means a lot of discounts and upgrades. We also get to keep our various travel points.
The way we do it on my team is debate and discussion. Debate can be tricky in a professional environment. Some people go into thinking they need to dominate their opponent and make it personal. Personally, I would try to avoid hiring people like that in the first place, but sometimes you got to make do. The thing to remember is that you all are on the same side and have the same goal.
I heard this on the radio yesterday. Secretly ruthless is a good way to describe Google.
SHAPIRO: OK. So big picture on this anniversary, 25 years in, if you could describe Google’s legacy in a sentence, what would that be?
PATEL: Secretly ruthless.
SHAPIRO: Oh, that’s rough. Wow. Secretly ruthless - that’s even less than a sentence. Give me a little bit more. Why do you say secretly ruthless?
PATEL: Google has convinced everyone that it is this incredibly sincere and earnest company - that it’s just a bunch of goofballs making cool things. That is true. But I think if we just paid a little more attention to where Google’s money comes from - and it is almost entirely advertising - I think we would be able to see the company and its influence a little bit more clearly. But the truth is, it is an utterly ruthless advertising company that is very, very, very successful at delivering results to its clients.
SHAPIRO: But Nilay, you didn’t mention how cute the Google doodles are.
PATEL: Yeah, the - I understand. They’re very cute.
Electroshock. I that is too “harsh” or “inhumane” then a cheat sheet.
At the end of the day the command line is a tool that you are using to do something. If I have to google “how to commit file changes to bitbucket using the command line”, I’m probably just going to use whatever GUI tool is available. Or I may do something really silly like manually copy the changes into bitbucket’s web interface. If I had a cheat sheet easily available, then I would just look at that. The rest is just practice and repetition.
Just throwing this out there. It really helps if everyone on the team is comfortable enough to ask for help. If you are a manager, it’s your job to create this kind of environment. And if you see some newbie data analyst that just learned python and is intimidated by a bunch of software engineers copying a bunch of changes into bitbucket’s web interface. Don’t tell them that they are doing it wrong or they don’t know what they are doing. Just say “hey, there is a much easier way to do that” and then show them. If a tool makes somebody’s job easier then they will use it.