Programming languages are like culture. If you're embedded in one then moving to another sometimes seems like a maze of funhouse mirrors.
I once had the misfortune of changing from an Algol environment to a Cobol environment. After a year I'd gotten over my revulsion and became fluent and productive in Cobol.
It's like saying English has lots of irrationalities to it, which is true. But if it's your mother tongue and you're fluent that doesn't matter.
Go is not impaired. Go involves a set of sophisticated choices for software engineering, not for computer science research. If you're going to have many millions of lines of code and some shifting around in your staff, you don't want tricky code that takes a long time to figure out, or that obscures functionality, or that obscures bugs.
The most fundamental things in learning to make software:
1. Alternate writing programs with classwork or book-learning. Back and forth.
2. Learn a programming language that a friend knows, so you have a place to get on-the-spot help. Ideally, somebody sitting next to you.
3. Have a computer available. Almost any home computer will do, no need for something expensive. There's plenty of free software you can download, free tutorials, free books...
4. There are cheap classes at some nearby community college or something like that. Finding the time is harder than paying for them.
5. The most important first courses are about a particular programming language, like "Python Programming 101".
6. The most important second courses are probably "Algorithms and Data Structures" and "Computer Architecture".
The one thing you probably haven't been doing is having friendly work-oriented talks with your boss. A couple of times a week you should have been raising some easy issue just as a "heads-up" so the boss is up to date.
The idea is to break down the social barrier between you two and make sure he knows you, feels relaxed around you, and knows you're competent. A related important goal is to make sure the boss knows that you two can work together as near-equals as part of a team. That's what being promoted really means, from the boss's point of view.
You've run into a colleague more of a predator than an engineer. I've also been pushed out this way and was foolishly resting on my technical laurels.
Of course, the optimal way to respond to this is a contradiction: Raise a big stink, but secretly. This is not easy. I think the history of the "Tempest" security bug should be re-read every few years.
Your description of git raises a 'code smell' with me. I've found git to be far too complex to rely on. No, I don't have a replacement for cooperative development, but the thing is a bug trap (it leads you into complexity, making errors, and so on).
70.17 years:
Last big thing was the programming language Go, a few years ago.
The last thing was differing opinions of Maimonides and Yehuda Halevi on primeval substances with regard to Creation Ex Nihilo.
The very last thing was that the apartment next door is vacant and available for rent.
The very very most recent thing is that I feel like answering this question.
For a real software developer, PHP is a horrible language. And Javascript is almost as bad.
The software tools to help you build and deploy are also a painful mess. You'll have to test on multiple browsers running on multiple operating systems.
It's just a matter of a week or so of overcoming the cultural shock. But you'll have to schedule it in.
Paul Graham says to do it all in Lisp. Most people don't.
Learning Fortran II programming in 1965 on a super-computer at a local university. It had almost a megabyte of memory!
Actually, it was a CDC 6600, which had 131,072 words of 60 bits each, which is kinda the same as nearly a megabyte. I was so impressed that the number 131,072 is still etched in my brain.
I once had the misfortune of changing from an Algol environment to a Cobol environment. After a year I'd gotten over my revulsion and became fluent and productive in Cobol.
It's like saying English has lots of irrationalities to it, which is true. But if it's your mother tongue and you're fluent that doesn't matter.
Go is not impaired. Go involves a set of sophisticated choices for software engineering, not for computer science research. If you're going to have many millions of lines of code and some shifting around in your staff, you don't want tricky code that takes a long time to figure out, or that obscures functionality, or that obscures bugs.