I don't know, what forums you've been before.
I also knew and turned by back on several, because many I experienced are not about sharing knowledge and exchanging ideas, but are about a handful of top dogs with serious social issues fighting for order of ranks to dominate "their place", only to endorse themselves within their narrow minded way of looking at things.
You can figure out such quickly when somebody new joins, bringing expertise and being mobbed for that.
This forums here is otherwise. It partially may be "just" because of the admins doing a real good job (thanks guys!) But it's also that the majority of the established active community (
many more passive readers here than the ones regulary posting) is respecting and tolerating everybody and anything but disrespect and intolerance (thanks guys!)
There are lots of causes, why somebody is treated as an idiot, or feels like he/she's seen as one. But in most cases it's just because the idiots believe they can discriminate themselves from idiots by pointing at others as being idiots.
By all I can read what you post here, you are for sure neither inferior, nor an idiot.
You started on FreeBSD app. two years ago, coming from Windows, so at zero.

And now, already being a full steam FreeBSD user, you realize your life dream to learn programming while doing it already the right way by yourself: Program. Program what you want to program. See how things work. If not, figure out why. Etc.
Programming is like writing a book. Classes, schools or universities can teach a lot of really good things. But no class, school, teacher nor book can really teach how to write a thrilling novel. This must come from yourself. You can help that a lot by reading a lot many novels by others, and of course write a lot yourself. So, you can learn programming only by doing it and reading other's code.
And again with FreeBSD you have the perfect platform for that: Since it's unix[like] it is by its very nature already a programming environment, designed for being "programmed" by its users. And if it's just editing some config files or writing some simple shell scripts for some automation.
By my idea the original core idea of Unix once based on the understanding, that every user has individual needs what to do with a computer and how. And since there is no way to create neither a one-size-fits-all system that can fully satisfy everybody, nor can be an infinite number of different tailored systems so anybody can find the perfect fit, there can only be one actual possibility: Provide a basic system that offers the users as many possibilities to tailor their own fitting suits. Which in the end also includes programming in many different languages, depending on what you know and what you want to accomplish.
And since it's Open Source you already find a lot of source code on your machine where you can read and learn a lot, and install even more.
So, a lot of novels to read to improve your writing.
You learn. And "only" that is already prove enough for not being an idiot.
What do stupid and smart people have in common?
Both make stupid mistakes. Sometimes even
really stupid.
But then what differs smart people from stupid ones?
Stupid people refuse to admit made a mistake, refuse to learn.
While smart people at least trying to not repeat the same mistakes, which starts by admitting mistakes, which starts by not blaming others for their own mistakes.
Stupid people don't ask questions, because they believe asking questions reveals them as not knowing it, so being stupid.
Smart people ask questions, because they know and admit they don't know it, but they want to know, to understand, to learn it.
A valuable lesson for life programming teached me: There is no perfection.
Becoming a better programmer doesn't mean making fewer mistakes. Sure, when you have some experience you don't do so much of the noob's errors like simple syntax errors anymore. But also those never vanish to total zero. Instead the better you become the more complex the errors become you produce. By my definition being a good programmer doesn't mean making few errors. A good programmer to me is good at finding and correcting errors.
You see, writing ad hoc a correct piece of code only proves, that you can do what you've learned so far. But it teaches you nothing new. We learn by errors made. This doesn't mean producing more errors teaches more. Having errors is nothing good. You don't need to know anything to produce errors. But finding and solving the things, that brings you forward, because this way you learn.
You are having fun at what you're doing.
That's all what counts.
Where your journey may lead you one day, nobody can tell yet.
My wife and I found many of our most favorite places not by some tourist guide or Google trip advisor, but by just losing our way or simply spontaneousely leave the road, and follow an unknown sidetrack, see where it leads to. Sure, sometimes it's "Aaargh! Where the f#34 are we?! Turn back!!" That's why most stay on the main road and follow established advisors: The fear of disappointment. We learned, not so seldom we find some nice places, a nice little restaurant or café, a nice view, often nice people, or sometimes even a small paradise. And since it's nowhere mentioned in some social media, there are no masses of idiots running there just to also been there, to "check it off" their stupid "bucket list." And that's why my wife and me will not post such locations on some social media platforms. Because we're not that stupid. Let those idiots stay on the main tracks!
Torsten Sträter once said: "Life is detours. If you always only chose the fastest, direct ways or even do shortcuts in life, you miss it. "
When the OpenSource community teached me one thing, than it's, it doesn't matter who you are, where you're from, which sex, age, religion, culture, color...education or diploma you possess. There is only one thing, and one thing only, that counts:
Can you do it, or not?
Either you write useful code, or you don't.
Nothing else matters. [Metallica]
So,
"Become a Programmer, Motherfucker" [Zed A. Shaw]